Process Scheduling

kyungminLim·2024년 4월 8일
0

먼저, process란 program이 실행된 것을 의미한다.
즉, disk에서 수동적인 성격을 띄는 program이 memory에 load되면 그때부터 process가 되는 것이다.

Process State

  • new: process가 생성됨
  • running: Instructions가 executed(실행) 중임
  • waiting: process가 어떤 event 발생을 대기중임
  • ready: process가 processor에게 일을 할당 받기를 대기중
  • terminated: process가 execution을 마무리함

CPU Switch From Process to Process

Process Scheduling

OS의 중요한 기능 중에 한정된 cpu, storage 등의 resource들을 process에 효율적으로 분배하는 것이다.
OS는 CPU(Hardware) Utilization을 높이기 위해, CPU위에 올라가는 Process들을 time sharing하면서 switch한다.

Process Scheduler가 CPU에서 다음 실행하는 process를 선택한다.
Scheduling Queue는 process들로 구성된다.

먼저, new process는 Ready Queue에 놓인 후, 실행을 위한 dispatch(선택)될 때까지 Ready Queue에서 기다린다.
일단, process에게 CPU가 할당되면, 아래 event 중 하나가 발생하기 전까지 해당 process는 현재 CPU 아래에서 실행된다.

  • process가 입출력 요청
  • process가 new child process 생성
  • process가 interrupt 발생을 기다림
  • interrupt 또는 할당시간간격 만료
    이 중에 하나의 event 발생시 process는 core에서 ready queue로 돌아갈 수 있다.

0개의 댓글