yoooniverse

[운영체제] 쉽게 배우는 운영체제 4장 CPU 스케줄링 연습문제 답 본문

운영체제/쉽게 배우는 운영체제

[운영체제] 쉽게 배우는 운영체제 4장 CPU 스케줄링 연습문제 답

Ykl 2022. 10. 26. 00:12

연습문제

1. 시스템 내 전체 프로세스의 수를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은? 고수준 스케줄링

2. 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가? 저수준 스케줄링

3. 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링은? 선점형 스케줄링

4. 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 불리는 것은? 전면 프로세스

5. 준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 스케줄링 알고리즘은? FCFS 스케줄링

6. 준비 큐에 있는 프로세스 중 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 스케줄링 알고리즘은? SJF 스케줄링

7. SJF 스케줄링 알고리즘의 단점으로 크기가 큰 작업이 계속 뒤로 밀리는 현상은? Starvation, 아사 현상

8. 아사 현상을 해결하는 방법을 설명 에이징(aging), 프로세스가 양보할 수 있는 상한선을 정하는 방식

9. 서비스를 받기 위해 대기한 시간과 CPU 사용 시간을 고려하여 우선순위를 정하는 스케줄링 알고리즘은 무엇인가? HRN 스케줄링 (Highest Respone Ratio Next)

10. 프로세스가 할당받은 시간(타임 슬라이스) 동안 작업하다가 작업을 완료하지 못하면 준비 큐의 맨 뒤로 가서 다음 자기 차례가 올 때까지 기다리는 선점형 스케줄링 알고리즘 중 가장 단순한 것은? 라운드 로빈 스케줄링

11. 타임 슬라이스의 크기와 문맥 교환의 관계를 설명 타임 슬라이스가 너무 작아 문맥 교환이 자주 일어나면, 문맥 교환에 걸리는 시간이 실제 작업 시간보다 커지며, 문맥 교환에 시간을 낭비하게 되어 실제 작업을 제대로 하지 못하는 문제가 발생.

12. 기본적으로 라운드 로빈 방식을 사용하지만, CPU를 할당받을 프로세스를 선택할 때 남아있는 작업 시간이 가장 적은 것을 선택하는 스케줄링 알고리즘은? SRT 스케줄링 (Shortest Remaining Time)

13. 우선순위에 따라 준비 큐를 여러 개 사용하며 고정형 우선순위를 적용하는 스케줄링 알고리즘은? 다단계 큐 스케줄링

14. 우선순위에 따라 준비 큐를 여러 개 사용하며, 프로세스가 CPU를 사용한 후 우선순위가 낮아지는 특징을 가진 스케줄링 알고리즘은? 다단계 피드백 큐 스케줄링

15. 다단계 피드백 큐 스케줄링에서 마지막 큐에 있는 프로세스(우선순위가 가장 낮은 프로세스)의 타임 슬라이스 크기는? 무한대

16. 다단계 피드백 큐 스케줄링에서 우선순위가 낮아질수록 타임 슬라이스의 크기는 어떻게 변하는가? 커진다

17. 다단계 피드백 큐 스케줄링에서 마지막 큐(우선순위가 가장 낮은 큐)는 어떤 스케줄링 알고리즘처럼 동작하는가? FCFS 스케줄링

 

심화문제

1. 스케줄링의 단계와 그 특징을 설명

작업 대기 ➡️ 보류 프로세스 ➡️ 활성 프로세스 ➡️ 실행 프로세스 ➡️ 작업 종료

  • 작업 대기 ~ 보류 프로세스 : 고수준 스케줄링 // 시스템의 상태를 고려해 작업을 시작의 여부를 결정
  • 보류 프로세스 ~ 활성 프로세스 : 중간 수준 스케줄링 // 작업하기로 한 프로세스 중 시스템의 부하를 조절하기 위해 일부를 보류 상태로 보냄. 시스템이 감당 가능하면 다시 활성 상태로 복귀 시킴
  • 활성 프로세스 ~ 실행 프로세스 : 저수준 스케줄링 // 실제 작업이 이루어지는 부분. 프로세스의 상태를 미세하게 조정하며 작업을 수행

2. 스케줄링의 목적을 설명

공평성 ( 모든 프로세스는 공평한 자원을 배분받음 ) / 효율성 ( 시스템 자원의 유휴시간을 최소화 함 )

/ 안정성 ( 시스템 자원을 파괴하는 프로세스를 방지, 우선순위에 따른 프로세스 배정 )

/ 확장성 ( 시스템 자원의 변화에 유동적으로 반응하는 스케줄링 태도 )

/ 반응 시간 보장 ( 시스템이 적절한 시간 안에 프로세스의 요구에 반응) / 무한 연기 방지 ( 프로세스의 작업이 무기한 연기되면 안됨 )

 

3. 선점형 스케줄링과 비선점형 스케줄링을 비교하여 설명

선점형 : 실행 상태에 있는 작업을 중단시키고 새로운 작업을 실행할 수 있음

비선점형 : 한 번 실행 상태에 들어간 작업은 완료될 때까지 다른 작업으로 대체될 수 없음

 

4. 스케줄링 알고리즘의 선택 기준에 대해 설명

CPU 사용량 / 처리량 / 대기 시간 / 응답 시간 / 반환 시간 ☞ CPU 알고리즘의 효율성 평가 시 고려되는 요소들

 

5. FCFS, SJF, HRN 스케줄링의 특징을 설명

FCFS (First Come First Serve): 가장 단순한 비선점형 알고리즘. 하나의 준비 큐에 들어온 순서대로 CPU에 할당됨.

앞의 작업이 오래걸려 컨베이어 벨트에 작업물이 밀리는 콘보이 효과, CPU 작업 효율 떨어짐

SJF (Shortest Job First): 작업 시간이 가장 짧은 프로세스부터 우선적으로 할당되는 비선점형 알고리즘

작업시간 긴 프로세스가 계속 뒤로 밀리는 starvation 현상 발생 가능. 작업 시간 판단 기준 애매

HRN (Highest Respone Ratio Next): 대기 시간과 작업 시간을 고려하여 우선순위를 정하고 스케줄링을 하는 비선점형

우선순위 결정 기준 : (알고리즘 대기시간 + CPU 사용 시간) / CPU 사용 시간, starvation 개선했음

 

6. 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐 스케줄링의 특징을 설명

라운드 로빈: 순서대로 타임 슬라이스만큼 작업 후 완료하지 못하면 준비 큐의 맨 뒤로 돌아가는 가장 기본적 선점형 알고리즘

SRT (Shortest Remaining Time): 라운드 로빈 방식이되, 잔여 작업 시간이 적은 프로세스를 먼저 할당하는 선점형 알고리즘

다단계 큐: 우선순위에 따른 준비 큐를 여러 개 사용하는 선점형, 고정 우선순위 알고리즘

다단계 피드백 큐: 우선순위에 따른 준비 큐를 여러 개 사용, 할당 시마다 프로세스의 우선 순위 변화, 우선순위에 따른 타임 슬라이스 차등 배정하는 선점형, 변동 우선순위 알고리즘

 

7. 아사 현상과 에이징에 대해 설명

아사 현상: 특정 프로세스의 작업이 계속 밀려 오랫동안 작업이 이루어지지 않는 현상

에이징: 프로세스가 양보할 수 있는 상한선을 정하는 방식. 프로세스가 일정 횟수 이상 양보를 해서 뒤로 밀려났으면 무조건 실행되도록 하는 것.

 

8. 타임 슬라이스의 크기를 정하는 것과 시스템 효율성에 대해 설명. 

타임 슬라이스는 되도록 작게 설정하되, 문맥 교환에 걸리는 시간을 고려해 적당한 수준으로 하는 것이 좋다.

타임 슬라이스가 너무 크면) 프로세스의 속도가 느림

타임 슬라이스가 너무 작으면) 여러 프로세스가 동시에 돌아가는 것처럼 보이지만 시스템의 전반적 성능이 저하됨. 시간 낭비 커짐

Comments