쉽게 배우는 운영체제 Chapter04

Eunkyung·2021년 10월 19일
0

OS

목록 보기
5/9

1. 스케줄링

1.1 CPU 스케줄러

프로세스가 생성된 후 종료될 때까지의 모든 상태 변화 조정

1.2 스케줄링 단계

  • 고수준 스케줄링 : 운영체제에서 다루는 일의 가장 큰 단위인 전체 작업 수 조절
  • 저수준 스케줄링 : 가장 작은 단위의 스케줄링
  • 중간 수준 스케줄링 : 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하 방지

1.3 스케줄링의 목적

모든 프로세스가 공평하게 작업하도록 하는 것

2. 스케줄링 알고리즘

  • 선점형 스케줄링 : 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식
  • 비선점형 스케줄링 : 어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식

대기 시간, 응답 시간, 실행 시간, 반환 시간의 관계

어떤 스케줄링 알고리즘이 효율적인지 파악하기 위한 평가 기준으로 대기 시간, 응답시간, 반환 시간을 계산한다.

2.1 FCFS 스케줄링

준비 큐에 도착한 순서대로 CPU를 할당하는 비선점형 방식으로 하나의 큐로 이루어져있어 모든 프로세스의 우선순위가 동일하다.

콘보이 효과

처리 시간이 긴 프로세스가 CPU를 차지하면 다른 프로세스들의 대기 시간이 길어져 효율성이 떨어지는 현상

2.2 SJF 스케줄링

준비 큐에 있는 프로세스 중에서 실행 시간이 가장 짧은 작업부터 CPU를 할당하는 비선점형 방식으로 최단 작업 우선스케줄링이다. FCFS 스케줄링보다 평균 대기시간이 줄어들어 시스템 효율이 높아지는 장점이 있지만 준비 큐에 먼저 들어왔음에도 불구하고 작업 시간이 길다는 이유로 계속 뒤로 밀리는 아사현상이 발생하는 단점이 있다.

2.3 HRN 스케줄링

SJF 스케줄링에서 발생할 수 있는 아사 현상을 해결하기 위해 만들어진 비선점형 알고리즘으로, 최고 응답률 우선 스케줄링이다. HRN 스케줄링에서 프로세스의 우선순위를 정하는 기준은 다음과 같다.
우선순위 = 대기 시간 + CPU 사용 시간 / CPU 사용 시간
우선순위에 대기 시간을 고려해서 실행 시간이 긴 프로세스가 일정 시간이 지나면 CPU를 할당받지만 공평성이 위배되어 많이 사용되지 않는다.

2.4 라운드 로빈 스케줄링

한 프로세스가 할당받은 시간동안 작업을 하다가 작업을 완료하지 못하면 준비 큐의 맨 뒤로 가서 자기 차례를 기다리는 방식으로 선점형 알고리즘이다. 이 때 문맥 교환 시간을 고려하여 타임 슬라이스를 적절히 설정해야 한다.

2.5 SRT 스케줄링

SJF 스케줄링과 라운드 로빈 스케줄링을 혼합한 방식으로 남은 시간이 적은 프로세스에 CPU를 먼저 할당한다. 그러나 프로세스의 종료 시간을 예측하기 어렵고 아사 현상이 일어나기 때문에 잘 사용하지 않는다.

2.5 다단계 큐 스케줄링

우선순위에 따라 준비 큐를 여러 개 사용하는 방식으로 프로세스의 우선순위와 작업 형태를 고려해서 스케줄링이 가능하다. 그러나 우선순위가 높은 상위 큐 프로세스의 작업이 끝나기 전에는 하위 큐 프로세스의 작업을 할 수 없다는 단점이 있다.

2.5 다단계 피드백 큐 스케줄링

프로세스가 CPU를 할당받아 실행될 때마다 프로세스의 우선순위를 낮춤으로써, 다단계 큐에서 우선순위가 낮은 프로세스의 실행이 연기되는 문제를 완화한다. 또한 우선순위에 따라 타임 슬라이스를 다르게 설정할 수 있다.

출처

  • 쉽게 배우는 운영체제 - 조성호 지음
profile
꾸준히 하자

0개의 댓글