[쉽게 배우는 운영체제] 제 4장 CPU 스케줄링 연습문제 풀이 정답 (심화문제)
연습 문제
1. 시스템 내 전체 프로세스의 수를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은 무엇인가?
- 고수준 스케줄링
2. 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가?
- 저수준 스케줄링
3. 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링은 무엇인가?
- 선점형 스케줄링
4. 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하며 상호작용 프로세스라고도 불리는 것은 무엇인가?
- 전면 프로세스
5. 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가?
- FCFS 스케줄링
6. 준비 큐에 있는 프로세스 중 실행 시간이 가장 짧은 작업 부터 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가?
- SJF 스케줄링
7. SJF 스케줄링 알고리즘의 단점으로 크기가 큰 작업이 계속 뒤로 밀리는 현상을 무엇이라 하는가?
- 아사 현상
8. 아사 현상을 해결하는 방법을 설명하시오.
- 프로세스가 양보할 수 있는 상한선을 정하는 에이징을 사용
9. 서비스를 받기 위해 대기한 시간과 CPU사용시간을 고려하여 우선순위를 정하는 스케줄링 알고리즘은 무엇인가?
- HRN 스케줄링
10. 프로세스가 할당받은 시간(타임슬라이스) 동안 작업하거나 작업을 완료하지 못하면 준비 큐의 맨 뒤로 가서 다음 자기차례가 올 때까지 기다리는 선점형 스케줄링 알고리즘 중 가장 단순한 것은 무엇인가?
- 라운드 로빈
11. 타임슬라이스의 크기와 문맥교환의 관계를 설명하시오.
- 타임슬라이스가 커지면 문맥교환은 작아지고, 타임슬라이스가 작아지면 문맥교환은 커지는 반비례 관계이다.
문맥교환에 따른 추가시간을 고려하여 타임슬라이스를 적적히 설정 해야 한다.
12. 기본적으로 라운드 로빈 방식을 사용하지만, CPU를 할당받을 프로세스를 선택할 때 남아 있는 작업 시간이 가장 적은 것을 선택하는 스케줄링 알고리즘은 무엇인가?
- SRT 스케줄링
13. 우선순위에 따라 준비 큐를 여러 개 사용하며 고정형 우선순위를 적용하는 스케줄링 알고리즘은 무엇인가?
- 다단계 큐
14. 우선순위에 따라 준비 큐를 여러개 사용하며, 프로세스가 CPU를 사용한 후 우선순위가 낮아지는 특징을 가진 스케줄링 알고리즘은 무엇인가?
- 다단계 피드백 큐
15. 다단계 피드백 큐 스케줄링에서 마지막 큐에 있는 프로세스(우선순위가 가장 낮은 프로세스)의 타임슬라이스 크기는 얼마인가?
- 무한대 크기
16. 다단계 피드백 큐 스케줄링에서 우선순위가 낮아질수록 타임 슬라이스의 크기는 어떻게 변하는가?
- 커진다
17. 다단계 피드백 큐 스케줄링에서 마지막 큐(우선순위가 가장 낮은 큐)는 어떤 스케줄링 알고리즘 처럼 동작하는가?
- FCFS 스케줄링
심화 문제
1. 스케줄링의 단계와 그 특징을 설명하시오.
- 고수준 스케줄링 : 전체 시스템 부하를 고려하여 작업을 시작할지 말지를 결정 / 시스템 내의 작업 수를 조절
중간 수준 스케줄링 : 시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보냄
저수준 스케줄링 : 어떤 프로세스에 CPU를 할당할지, 대기상태로 보낼지 등을 결정 / 실제 작업을 수행
2. 스케줄링의 목적을 설명하시오.
- 공평성 : 모든 프로세스가 자원을 공정하게 배정받아야함
효율성 : 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링
안정성 : 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정하여 자원 보호
확장성 : 프로세스가 증가해도 시스템이 안정정으로 동작하도록 조치
반응 시간 보장 : 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정
무한 연기 방지 : 특정 프로세스의 작업이 무한히 연기되어서는 안됨
3. 선점형 스케줄링과 비선점형 스케줄링을 비교하여 설명하시오.
- 선점형 스케줄링은 운영체제가 필요하다고 판단하면 실행 상태에 있는 프로세스의 작업을 중단하고 새로운 작업을 시작할 수 있지만 비선점형 스케줄링은 어떤 프로세스가 실행 상태에 들어가 CPU를 할당하면 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지 계속 실행됨.
선점형 스케줄링은 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합하고, 비선점형 스케줄링은 작업량이 적고 문맥교환에 의한 낭비가 적지만 CPU사용이 긴 프로세스때문에 CPU사용이 짧은 프로세스가 오랫동안 기다리게 되어 전체 시스템 처리율 저하.
4. 스케줄링 알고리즘의 선택 기준에 대해 설명하시오.
- 우선순위가 높은 프로세스는 커널 프로세스, 전면 프로세스, 대화형 프로세스, 입출력 집중 프로세스
우선순위가 낮은 프로세스는 일반 프로세스, 후면 프로세스, 일괄 작업 프로세스, CPU 집중 프로세스
5. FCFS, SJF, HRN 스케줄링의 특징을 설명하시오.
- FCFS 스케줄링 : 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 방식, 한번 실행되면 그 프로세스가 끝나야만 다음 프로세스를 실행할 수 있음, 큐가 하나라 모든 우선순위가 동일 / 처리시간이 긴 프로세스가 CPU를 차지하면 다른 프로세스들은 하염없이 기다려 시스템의 효율성 저하
- SJF 스케줄링 : 준비 큐에 있는 프로세스 중에서 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 방식, 콘보이 효과 완화하여 효율 높임/ 운영체제가 프로그램의 정확한 종료 시간 예측 어려움, 공평성이 떨어짐 = 아사현상 초래 ( 에이징으로 극복)
- HRN 스케줄링 : SJF 스케줄링에서 아사 현상을 해결하기 위한 비선점형 스케줄링, 기다린 시간과 CPU사용시간을 고려하여 스케줄링을 하는 방식