관리 메뉴

공부 기록장 💻

[운영체제/OS] 쉽게 배우는 운영체제 04장 문제풀이 (CPU 스케줄링) 본문

# CS Study/Opearing System

[운영체제/OS] 쉽게 배우는 운영체제 04장 문제풀이 (CPU 스케줄링)

dream_for 2022. 8. 21. 16:08

 

연습문제

  1. 시스템 내 전체 프로세스의 주를 조절하는 것으로, 장기 스케줄링 또는 작업 스케줄링이라 불리는 스케줄링 수준은 무엇인가?
    • 고수준 스케줄링
  2. 어떤 프로세스에 CPU를 할당하고 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 스케줄링 수준은 무엇인가?
    • 저수준 스케줄링
  3. 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 뺴앗을 수 있는 스케줄링은 무엇인가?
    • 선점형 스케줄링
  4. 현재 입출력을 진행하는 프로세스로, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 불리는 것은 무엇인가?
    • 전면 프로세스
  5. 준비 큐에 도착한 순서대로 CPU를 할당받는 비선점형 스케줄링 알고리즘은 무엇인가?
    • FCFS(First Come First Served) 스케줄링
  6. 준비 큐에 있는 프로세스 중 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 스케줄링 알고리즘은 무엇인가?
    • SJF(Shortest Job First) 스케줄링
  7. SJF 스케줄링 알고리즘의 단점으로 크기가 큰 작업이 계속 뒤로 밀리는 현상을 무어엇이라 하는가?
    • 콘보이 효과
  8. 아사 현상을 해결하는 방법을 설명하시오.
    1. 에이징(나이먹기) - 프로세스가 양보할 수 있는 상한선을 결정하는 방식
      • 프로세스가 자신의 순서를 양보할 때마다 나이를 한 살씩 먹어 최대 몇 살까지 양보하도록 규정하는 것
    2. HRN 스케줄링
  9. 서비스를 받기 위해 대기한 시간과 CPU 사용 시간을 고려하여 우선순위를 정하는 스케줄링 알고리즘은 무엇인가?
    • HRN(Highest Response Ratio Next) 스케줄링
  10. 프로세스가 할당받은 시간(타임 슬라이스) 동안 작업하다가 작업을 완료하지 못하면 준비 큐의 맨 뒤로 가서 다음 자기 차례가 올 때까지 기다리는 선점형 스케줄링 알고리즘 중 가장 단순한 것은 무엇인가?
    • 라운드 로빈 스케줄링
  11. 타임 슬라이스의 크기와 문맥 교환의 관계를 설명하시오.
    • 라운드 로빈 스케줄링이 효과적으로 작동하려면 문맥 교환에 따른 추가 시간을 고려하여 타임 슬라이를 적절히 설정해야 함
  12. 기본적으로 라운드 로빈 방식을 사용하지만, CPU를 할당받을 프로세를 선택할 때 남아있는 자업 시간이 가장 적은 것을 선택하는 스케줄링 알고리즘은 무엇인가?
    • SRT(Shortest Remaining Time) 스케줄링
  13. 우선순위에 따라 준비 큐를 여러 개 사용하며 고정형 우선순위를 적용하는 스케줄링 알고리즘은 무엇인가?
    • 다단계 큐 스케줄링
  14. 우선순위에 따라 준비 큐를 여러 개 사용하며, 프로세스가 CPU를 사용한 후 우선순위가 낮아지는 특징을 가진 스케줄링 알고리즘은 무엇인가?
    • 다단계 피드백 큐 스케줄링
  15. 다단계 피드백 큐 스케줄링에서 마지막 큐에 있는 프로세스(우선순위가 가장 낮은 프로세스)의 타임 슬라이스 크기는 얼마인가?
    • 무한대의 타임 슬라이스
  16. 다단계 피드백 큐 스케줄링에서 우선순위가 낮아질수록 타임 슬라이스의 크기는 어떻게 변하는가?
    • 커짐
  17. 다단계 피드백 큐 스케줄링에서 마지막 큐(우선순위가 가장 낮은 큐)는 어떤 스케줄링 알고리즘처럼 동작하는가?
    • FCFS 스케줄링

 

심화문제

  1. 스케줄링의 단계와 그 특징을 설명하시오.
    • 고수준 스케줄링 : 전체 시스템 부하를 고려하여 작업을 수용할지 거부할지를 결정하여 전체 작업 수를 조절하는 것
    • 중간수준 스케줄링: 중지와 활성화(보류 상태를 결정)을 통해 프로세스가 활성화된 후에 여러 이유로 시스템에 과부하가 걸릴 수 있는 경우 시스템 부하를 조절하는 것
    • 저수준 스케줄링: 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 것
  2. 스케줄링의 목적을 설명하시오.
    • 공평성: 모든 프로세스가 자원을 공평하게 배정받아야 하며, 자원 배정 과정에서 특정 프로세스가 배제되어서는 안 됨
    • 효율성: 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링을 하고, 유휴 자원을 사용하려는 프로세스에는 우선권을 주어야 함
    • 안전성: 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야 함
    • 확장성: 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야 하며 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되게 해야 함
    • 반응 시간 보장: 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 함
    • 무한 연기 방지: 특정 프로세스의 작업이 무한히 연기되어서는 안 됨
  3. 선점형 스케줄링과 비선점형 스케줄링을 비교하여 설명하시오.
    • 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 OS가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식
    • ex) 인터럽트 처리 → CPU가 인터럽트를 받으면 현재 실행 중인 작업을 중단하고 커널을 깨워 인터럽트를 처리
    • OS가 필요하다고 판단하면 실행 상태에 있는 프로세스 작업을 중단시키고 새로운 작업을 시작할 수 있는 방식
    • 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이시분할 시스템에 적합
    • 문맥 교환 같은 부가적인 작업으로 낭비 생김
    • 대부분의 저수준 스케줄러는 선점형 스케줄링 방식을 사용
    • 선점형 스케줄링 방식의 스케줄러에 존재하는 비선점형 프로세스 → 시스템 백업 프로세스 (중요도 매우 낮음)
    비선점형 스케줄링(non-preemptive scheduling)
    • 어떤 프로세스가 실행 상태에 들어가 CPU를 사용하면 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행되는 방식
    • 선점형 스케줄링보다 스케줄러의 작업량이 적고 문맥 교환에 의한 낭비도 적음
    • CPU 사용 시간이 긴 프로세스 때문에 CPU 사용 시간이 짧은 여러 프로세스가 오랫동안 기다리게 되어 시스템의 처리율이 떨어짐
    • 과거의 일괄 작업 시스템에서 사용하던 방식
  4. 선점형 스케줄링(preemptive scheduling)
  5. 스케줄링 알고리즘의 선택 기준에 대해 설명하시오.
    1. CPU 사용률 : 전체 시스템의 동작 시간 중 CPU가 사용된 시간을 측정하는 방법
    2. 처리량 : 단위 시간당 작업을 마친 프로세스의 수
    3. 대기 시간 : 작업을 요청한 프로세스가 작업을 시작하기 전까지 대기하는 시간
    4. 응답 시간 : 프로세스 시작 후 첫번쨰 출력, 반응이 나올 때까지 걸리는 시간
    5. 반환 시간 : 프로세스가 생성된 후 종료되어 사용하던 자원을 모두 반환하는 데까지 걸린 시간
  6. FCFS, SJF, HRN 스케줄링의 특징을 설명하시오.
    • FCFS(First Come First Served) : 준비 큐에 도착한 순서대로 프로세스에 CPU를 할당하는 비선점형 방식
    • SJF(Shortest Job First) : 준비 큐에 있는 프로세스 중 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 방식
    • HRN(Highest Response Ratio Next) : SJF 스케줄링에서 발생할 수 있는 아사 현상을 해결하기 위해 만들어진 비선점형 방식으로, 대기 시간과 CPU 사용시간을 더하여, CPU 사용시간을 나누어 우선순위를 결정하며, 우선순위의 값이 높은 프로세스부터 실행하는 방식
  7. 라운드 로빈, SRT, 다단계 큐, 다단계 피드백 큐 스케줄링의 특징을 설명하시오.
    • 라운드 로빈 : 일정 타임 슬라이스동안 한 프로세스에 대한 작업을 하다가, 작업을 완료하지 못하면 준비 큐의 맨 뒤로 이동하여 자기 차례를 기다리는 방식으로, 선점형 알고리즘 중 우선순위가 적용되지 않는 가장 단순하고 대표적인 스케줄링 박식
    • SRT(Shortest Remaining Time) : 기본적으로 라운드 로빈 방식을 사용하며, SJF 스케줄링을 혼합한 스케줄링 방식으로, CPU를 할당 받을 프로세스를 선택할 때 남아있는 작업 시간이 가장 작은 프로세스를 선택하는 방식
    • 다단계 큐 : 우선순위에 따라 준비 큐를 여러 개 사용하여, 운영체제로부터 부여 받은 우선순위에 따라 프로세스를 해당 우선순위 큐에 삽입하는 고정형 우선순위 방식
    • 다단계 피드백 큐 : 프로세스가 CPU를 한 번씩 할당받아 실행될 때마다 프로세스의 우선순위를 낮춤으로써 다단계 큐에서 순위가 낮은 프로세스의 시랭이 연기되는 문제를 완화하기 위한 방식
  8. 아사 현상과 에이징에 대해 설명하시오.
    • **아사 현상(starvation)**이란, 작업 시간이 길다는 이유로 해당 프로세스가 계속 뒤로 밀려 공평성이 떨어지는 현상이다.
    • 아사 현상을 해결하기 위한 **에이징(나이먹기)**은, 프로세스가 자신의 순서를 양보할 때마다 나이를 한살씩 먹어 프로세스가 양보할 수 있는 상한선을 결정하도록 규정하는 것이다.
  9. 타임 슬라이스의 크기를 정하는 것과 시스템 효율성에 대해 설명하시오.
    • 타임 슬라이스를 설정하는 것은 시스템 효율과 깊은 연관이 있는데, 만약 타임 슬라이스를 매우 작은 값으로 설정하게 되는 경우 문맥 교환이 많은 시간을 낭비하여 시스템의 전반적인 성능이 저하된다.
    • 타임 슬라이스를 큰 값으로 설정하는 경우, 하나의 작업이 모두 끝난 뒤 다음 작업이 시작되는 것처럼 보여져 FCFS 스케줄링과 다를 것이 없으며, 여러 프로세스가 동시에 실행될 때 반응 속도가 매우 느릴 것이다.
728x90
반응형
Comments