❓ 기아 상태가 무엇인가요?
💭 우선순위가 낮은 프로세스들이 우선순위가 높은 프로세스들에 의해 실행이 계속해서 연기되는 현상입니다.
❓ 기아 상태를 어떻게 해결할 수 있나요?
💭 기아 상태를 방지하기 위한 기법으로 에이징이 있습니다. 에이징은 오랫동안 대기한 프로세스의 우선순위를 점차 높이는 방식입니다.
❓ CPU 스케줄링이란 무엇인가요?
💭 CPU 스케줄링은 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 것입니다.
❓ 스케줄러의 종류는 무엇이 있나요?
💭 장기 스케줄러, 중기 스케줄러, 단기 스케줄러가 있습니다. 장기 스케줄러는 작업 스케줄러라고도 부르며 프로세스를 준비큐에 삽입할지 결정하는 역할을 합니다. 중기 스케줄러는 메모리에 적재된 프로세스의 수를 조절하는 역할합니다.(=스와핑) 단기 스케줄러는 CPU스케줄러라고도 부르며 준비 상태에 있는 작업 중 실행할 프로세스를 선택하여 CPU를 할당합니다.
❓ 선점형 스케줄링과 비선점형 스케줄링의 차이가 무엇인가요?
💭 선점형 스케줄링은 프로세스가 자원을 사용하고 있을 때 다른 프로세스가 해당 자원을 빼앗을 수 있지만 비선점형은 빼앗을 수 없습니다.
❓ 선입선출 스케줄링(FCFS)란 무엇인가요?
💭 준비 큐에 삽입된 순서대로 프로세스를 처리하는 비선점형 스케줄링 방식입니다. FCFS 스케줄링은 호위 효과가 발생할 수 있다는 문제가 있습니다.
❓ 최단 작업 우선 스케줄링(SJF)란 무엇인가요?
💭 준비 큐에 삽입된 프로세스들 중 CPU이용시간의 길이가 가장 짧은 프로세스부터 실행하는 스케줄링 방식입니다. 짧은 작업을 먼저 실행하기때문에 평균 대기 시간이 짧지만 실행시간을 예측하기 어려워 실용적이지 못하고 짧은 작업이 항상 먼저 실행되기 때문에 기아 상태가 발생한다는 단점이 있습니다.
❓ 최소 잔류 시간 우선 스케줄링(SRTF)란 무엇인가요?
💭 최단 작업 우선 스케줄링 알고리즘과 라운드 로빈 알고리즘을 합친 스케줄링 방식으로 프로세스들은 정해진 타임 슬라이스만큼 CPU를 사용하되, 사용할 다음 프로세스로는 남아있는 작업 시간이 가장 적은 프로세스가 선택되는 스케줄링입니다. 최소 잔류 시간 우선 스케줄링은 선점형 SJF 스케줄링이라고도 불립니다.
❓ 우선순위 스케줄링이란 무엇인가요?
💭 프로세스들에 우선순위를 부여하고, 가장 높은 우선순위들을 가진 프로세스부터 실행하는 스케줄링 알고리즘입니다. 우선순위 스케줄링은 기아현상이 발생한다는 근본적인 문제를 가지고있습니다.
❓ 라운드 로빈 스케줄링이란 무엇인가요?
💭 정해진 타임 슬라이스만큼의 시간 동안 돌아가며 CPU를 이용하는 선점형 스케줄링 방식입니다. 프로세스들은 정해진 시간만큼만 CPU를 이용하고, 정해진 시간을 모두 사용하였음에도 프로세스가 완료되지 않았다면 다시 큐의 맨 뒤에 삽입됩니다.
라운드 로빈 스케줄링에서 타임 슬라이스가 지나치게 크면 선입 선처리 스케줄링과 같이 호위효과가 생길 여지가 있습니다.
❓ 멀티 레벨 큐 스케줄링이란 무엇인가요?
💭 우선순위별로 준비 큐를 여러 개 사용하는 스케줄링 방식입니다. 우선순위가 가장 높은 큐에 있는 프로세스들을 먼저 처리하고, 우선순위가 가장 높은 큐가 비어있으면 그 다음 우선순위 큐에 있는 프로세스를 처리합니다. 큐마다 다른 스케줄링 알고리즘을 사용할 수 있고 프로세스들은 큐 사이를 이동할 수 없습니다.
❓ 멀티 레벨 피드백 큐 스케줄링이란 무엇인가요?
💭 다단계 큐 스케줄링에 프로세스들이 큐 사이를 이동할 수 있게한 스케줄링입니다. 멀티 레벨 피드백 큐 스케줄링에서 CPU집중 프로세스들은 자연스레 우선순위가 낮아지고, 입출력 집중 프로세스들은 우선순위가 높은 쿠에서 실행이 끝나게 됩니다. 또한 큐 사이를 이동할 수 있기에 에이징 기법을 적용하여 기아 현상을 예방할 수 있습니다.