홍차의 미로찾기

[방통대/운영체제] 스케줄링 단계와 정책 본문

공부/운영체제

[방통대/운영체제] 스케줄링 단계와 정책

홍차안디 2022. 3. 13. 20:35
반응형

 

<1. 스케줄링>

 

1-1. 스케줄링 단계

① 상위단계 스케줄링

② 하위단계 스케줄링

③ 중간단계 스케줄링

 

1-2. 상위단계 스케줄링

- 시스템에 들어오는 작업들을 선택하여 프로세스를 생성

- 생성한 프로세스를 프로세스 준비 큐에 전달

 

1-3. 상위단계 스케줄링의 작업 선택 기준

- 시스템의 자원을 효율적으로 이용할 수 있도록 하는 것

(자원을 효율적으로 이용할 수 있는 방향으로 작업들을 선택하여 프로세스를 생성)

- 입출력(I/O) 중심 작업과 연산 중심 작업을 균형있게 선택함

 

1-4. 하위단계 스케줄링

- 사용 가능한 CPU를 준비 상태의 어느 프로세스에게 배당할지를 결정

- CPU를 배당받은 프로세스는 결국 실행 상태가 되어 프로세스가 처리됨.

- 수행 주체 : 디스패처(dispatcher - 디스패칭하는 주체. 즉 cpu 할당하는 주체)

 

1-5. 중간단계 스케줄링

- 프로세스를 일시적으로 메모리에서 제거하여 중지시키거나 다시 활성화시킴

- 시스템에 대한 단기적인 부하를 조절

 

 

 


 

<2. 스케줄링 정책>

 

2-1. 스케줄링 기본 목표

공정성

- 모든 프로세스가 적정 수준에서 CPU 작업을 할 수 있게 함.

(하나의 프로세스만 자원을 많이 사용하거나 하지 않도록 함)

균형

- 시스템의 자원들이 충분히 활용될 수 있게 함

(CPU만 많이 사용하거나, I/O만 많이 사용하거나 하지 않도록 함)

 

2-2. 운영체제 종류에 따른 스케줄링 목표

 일괄처리 운영체제

- 처리량의 극대

- 반환시간의 최소화

- CPU 활용의 극대화

 

대화형 운영체제

- 빠른 응답시간

- 과다 대기시간 방지

 

③ 실시간 운영체제

- 처리 기한을 맞춤

 

2-3. 선점(Preemptive) 스케줄링 정책

- 진행 중인 프로세스에 인터럽트를 걸고 다른 프로세스에 CPU를 할당하는 스케줄링 전략

 

특징

- 높은 우선순위의 프로세스긴급하게 처리하는 경우에 유용

- 대화식 시분할 시스템에서 빠른 응답시간을 유지하는 데 유용

- 문맥 교환에 따른 오버헤드 발생

  (문맥 교환이라는 추가 작업 때문에 시간 손해가 존재할 수 밖에 없음)

 

문맥

- CPU의 모든 레지스터와 기타 운영체제에 따라 요구되는 프로세스의 상태

(CPU 정보인 레지스터 정보 등을 말한다. PC와 같은 레지스터가 어딘가에 저장되어 있어야 다시 실행 할 때 다음에 어떤 작업을 실행해야 할 지 알 수 있음)

 

문맥 교환 

- CPU의 현재 실행하고 있는 프로세스 문맥을 PCB에 저장하고

- 다음 프로세스의 PCB로부터 문맥을 복원하는 작업

 

2-4. 비선점(Nonpreemptive) 스케줄링 정책

- 프로세스가 CPU를 할당받아 실행이 시작되면 작업 자체가 I/O 인터럽트를 걸거나 작업을 종료할 때까지 실행 상태에 있게 됨

- 모든 프로세스가 공정하게 순서에 따라 실행됨 -> 응답시간 예측 가능

- 짧은 프로세스가 긴 프로세스를 기다리게 될 수 있음.

 

 

=> 운영체제 만드는 사람이 목표에 따라 스케줄링 방법을 선택해서 설정함!

반응형
Comments