개발자는 기록이 답이다
운영체제 3주차 스터디 CPU스케줄링 본문
📌 기아 상태가 무엇인가요?
기아 상태(Starvation)는 운영체제의 스케줄링에서 우선순위가 낮은 작업이 계속해서 CPU 자원을 할당받지 못해 무기한 대기 상태에 빠지는 상황을 말합니다. 즉, 자원을 요청했지만, 우선순위가 높은 다른 작업들에 의해 계속 차단되어 자원을 받지 못하는 상황입니다.
📌 기아 상태를 어떻게 해결할 수 있나요?
기아 상태를 해결하기 위해 노화(Aging) 기법이 사용됩니다. 이 방법은 시간이 지남에 따라 대기 중인 프로세스의 우선순위를 점진적으로 높여주는 방법입니다. 이렇게 하면 결국에는 모든 프로세스가 CPU 시간을 할당받을 수 있게 됩니다.
📌 CPU 스케줄링에 대해 설명해주세요.
CPU 스케줄링은 여러 프로세스가 CPU를 사용하려고 할 때, 어떤 프로세스에 CPU를 할당할지 결정하는 운영체제의 메커니즘입니다. 이 메커니즘은 시스템의 효율성을 극대화하고, 공정성을 유지하며, 다양한 성능 목표를 달성하는 데 중요합니다.
📌 스케줄러의 종류는 무엇이 있나요?
스케줄러는 크게 세 가지로 나눌 수 있습니다:
- 장기 스케줄러 (Long-term scheduler): 어떤 프로세스를 메모리에 로드할지 결정합니다.
- 중기 스케줄러 (Medium-term scheduler): 메모리에 있는 프로세스를 일시적으로 중지하거나 재개합니다.
- 단기 스케줄러 (Short-term scheduler): 실행 가능한 상태에 있는 프로세스 중에서 어느 것을 CPU에 할당할지 결정합니다.
📌 선점형 스케줄링과 비선점형 스케줄링의 차이가 무엇인가요?
- 선점형 스케줄링: 프로세스가 CPU를 사용하는 도중에 다른 프로세스가 CPU를 강제로 가져갈 수 있는 방식입니다. 예: 라운드 로빈, SRTF.
- 비선점형 스케줄링: 프로세스가 CPU를 할당받으면, 작업이 완료될 때까지 CPU를 독점하는 방식입니다. 예: FCFS, SJF.
📌 선입선출 스케줄링(FCFS)에 대해 설명해주세요.
선입선출(FCFS, First-Come, First-Served) 스케줄링은 프로세스가 도착한 순서대로 CPU를 할당받는 방식입니다. 가장 단순한 스케줄링 방법이지만, 오래 걸리는 작업이 먼저 들어오면 뒤에 있는 작업들이 오랫동안 기다려야 하는 단점이 있습니다.
📌 최단 작업 우선 스케줄링(SJF)에 대해 설명해주세요.
최단 작업 우선(SJF, Shortest Job First) 스케줄링은 실행 시간이 가장 짧은 프로세스에 CPU를 우선 할당하는 방식입니다. 평균 대기 시간을 최소화할 수 있지만, 실행 시간이 긴 프로세스는 기아 상태에 빠질 수 있는 단점이 있습니다.
📌 최소 잔류 시간 우선 스케줄링(SRTF) 방식에 대해 설명해주세요.
최소 잔류 시간 우선(SRTF, Shortest Remaining Time First) 스케줄링은 선점형 SJF 방식으로, 남은 실행 시간이 가장 짧은 프로세스에 CPU를 할당합니다. 새로운 프로세스가 도착하면, 현재 실행 중인 프로세스보다 남은 시간이 짧을 경우 CPU를 빼앗습니다.
📌 우선순위 스케줄링에 대해 설명해주세요.
우선순위 스케줄링은 각 프로세스에 우선순위를 부여하고, 우선순위가 높은 프로세스에 CPU를 먼저 할당하는 방식입니다. 선점형과 비선점형으로 나뉘며, 우선순위가 낮은 프로세스가 기아 상태에 빠질 수 있습니다. 이를 방지하기 위해 노화 기법이 사용되기도 합니다.
📌 라운드 로빈 스케줄링에 대해 설명해주세요.
라운드 로빈(Round Robin) 스케줄링은 모든 프로세스가 동일한 시간 할당량(타임 슬라이스)을 순차적으로 할당받는 방식입니다. 시간 할당량이 지나면 프로세스는 대기열의 끝으로 이동하고, 다음 프로세스가 CPU를 할당받습니다. 공정성이 높고 선점형 방식입니다.
📌 멀티 레벨 큐 스케줄링에 대해 설명해주세요.
멀티 레벨 큐(Multi-level Queue) 스케줄링은 프로세스를 여러 개의 큐로 나누고, 각 큐마다 다른 스케줄링 알고리즘을 사용하는 방식입니다. 예를 들어, 하나의 큐는 FCFS, 다른 큐는 SJF를 사용할 수 있습니다. 각 큐는 우선순위가 다를 수 있으며, 큐 간의 작업 이동은 없습니다.
📌 멀티 레벨 피드백 큐 스케줄링에 대해 설명해주세요.
멀티 레벨 피드백 큐(Multi-level Feedback Queue) 스케줄링은 멀티 레벨 큐와 비슷하지만, 프로세스가 서로 다른 큐 사이를 이동할 수 있습니다. 예를 들어, 오래 실행된 프로세스는 우선순위가 낮은 큐로 이동할 수 있고, 이 방식으로 기아 상태를 방지할 수 있습니다.
'CS > 운영체제' 카테고리의 다른 글
운영체제 5주차 스터디 프로세스 동기화 (0) | 2024.09.12 |
---|---|
운영체제 4주차 스터디 프로세스 동기화 (0) | 2024.09.05 |
운영체제 2주차 스터디 프로세스와 쓰레드 (0) | 2024.08.22 |
운영체제 1주차 스터디 운영체제 개요 & 컴퓨터 시스템 동작원리 (0) | 2024.08.16 |
[혼공컴운] 5주차_Chapter14~15 기본미션 및 선택 미션 (0) | 2024.02.11 |