Operation System Ch.5

박우민·2020년 6월 3일
0

스케줄링: 프로세스를 프로세서에 할당할지 결정하는 것

운영체제(스케줄러)가 프로세스를 프로세서에 할당하는 행위를 dispatch라고 함

dispatch 할 경우 process의 상태가 변경되는데, 레디 큐에 있는 프로세스들 중 하나를 short-term scheduler가 프로세서에 할당하게 됨

프로세서들 중에서 어떤 프로세스를 dispatch를 할 것인가 정하는 것이 프로세스 스케줄링이다.

스케줄링 기법 즉 알고리즘음 대표적으로 4가지가 존재한다. FCFS, SJF, SRF, RR

알고리즘 평가는

1) 수행 시간(Burst time), 2) CPU 사용량, 3) 단위 시간당 처리한 프로세스 수(throughput), 4) 하나의 프로세스가 레디큐에서 대기한 시간부터 작업을 마칠 때 까지 걸린 시간(turn around time), 5) 프로세스가 레디큐에 대기한 시간(wating time), 6) 프로세스가 처음 cpu를 할당받기 까지 걸린 시간을 기준으로 한다는데 월케 많냐...

선점 스케줄링 방식과 비선점 스케줄링 방식이 있음

OS가 개입하여 강제로 프로세스의 사용권을 통제하는 방식을 선점 스케줄링이라고 함

프로세스가 스스로 다음 프로세스에게 자리를 넘겨주는 방식을 비선점 스케줄링이라고 함

비선점 스케줄링 방식
First come first served(QUEUE)

  • 수행시간이 큰 프로세스가 들어오면 그뒤에 들어온 프로세스가 오래 기다리게 되는 콘보이 현상이 발생하게 됨

Shortest Job First

  • FCFS의 콘보이 현상를 해결할 수 있음
  • 수행시간의 크기가 가장 작은 것부터 수행
  • 하지만 수행시간을 정확히 파악할 수 없으며, 이전 실행 기록을 바탕으로 추측
  • 수행시간이 큰 프로세스는 뒤로 밀리는 기아 현상이 발생하게 됨

선점 스케줄링 방식
Shortest Remaining Time First

  • SJF의 기아 현상을 해결할 수 있음
  • 남은 수행 시간이 짧은 것 부터 실행, 실시간으로 파악해서 스케줄링한다.

Round Robin
일정 시간 할당량을 단위로 여러 프로세스를 번갈아가면서 할당

선점/비선점 둘다 가능
Priority Scheduling

  • 프로세스에 우선순위를 부여해 프로세스에 할당
  • 프로세스를 에이징해서 오래 대기한 프로세스의 우선 순위를 높히는 방식

https://parksb.github.io/article/10.html

profile
안녕하세요 Software Development Engineer 입니다.

0개의 댓글