매주 진행하는 면접스터디에서 아래의 질문들에 대한 정리를 모은 글입니다.
Interview_Question_for_Beginner/OS
FCFS(First Come First Served)
- 먼저 온 순서대로 처리한다.
- 비선점형(Non Preemptive) 스케줄링: 일단 CPU를 잡으면 CPU burst가 완료될 때까지 CPU를 반환하지 않는다. 할당되었던 CPU를 반환될 때만 스케줄링이 이루어진다.
문제점: Convoy Effect(호위 효과)
소요시간이 긴 프로세스가 먼저 도달하여 효율성을 낮추는 현상이 발생한다.
CPU burst, I/O burst
프로세스는 CPU burst와 I/O burst를 왔다갔다하며 실행된다. CPU burst란 말 그대로 CPU 명령을 실행하는 것이고, I/O burst란 I/O를 요청한 다음 기다리는 시간을 의미한다.
SJF(Shortest Job First)
- 다른 프로세스가 먼저 도착했어도 CPU burst가 짧은 프로세스에게 먼저 할당한다.
- 비선점형 스케줄링이다.
문제점: Starvation(기아 현상)
사용시간이 긴 프로세스는 영원히 CPU를 할당받지 못할 수도 있다.
SRTF(Shortest Remaining Time First)
- 새로운 프로세스가 도착할 때마다 새로운 스케줄링이 이루어진다.
- 선점형 스케줄링: 현재 수행중인 프로세스의 남은 burst time보다 더 짧은 CPU burst time을 가진 새로운 프로세스가 도착하면 CPU를 뺏긴다.
문제점: Starvation
📌Prioirty Scheduling
- 우선순위가 가장 높은 프로세스에게 CPU를 할당한다. 우선순위란 정수로 표현하며, 작을수록 높다.
- 선점형 스케줄링: 더 높은 우선순위의 프로세스가 도착하면 실행중인 프로세스를 멈추고 CPU를 선점한다.
- 비선점형 스케줄링: 더 높은 우선순위의 프로세스가 도착하면 Ready Queue의 Head에 넣는다.
문제점: Starvation
해결책: Aging(노화)
아무리 우선순위가 낮은 프로세스라도 오래 기다리면 우선순위를 높인다.
📌RR(Round Robin)
- 현대적인 CPU 스케줄링이다.
- 각 프로세스는 동일한 크기의 할당 시간(Time Quantum)을 갖게 된다.
- 할당 시간이 끝나면 프로세스는 선점당하고 Ready Queue의 맨 뒤에서 다시 줄을 선다.
- RR은 프로세스들의 CPU 사용시간이 랜덤한 경우 효과적이다.
- RR이 가능한 이유는 프로세스의 Context를 저장할 수 있기 때문이다.
장점
문제점
- 할당 시간이 너무 커지면 FCFS와 같아진다. 또 너무 작아지만 잦은 Context Switch로 오버헤드가 발생한다. 그러므로 적당한 할당 시간을 설정하는 것이 중요하다.