운영체제

[운영체제] 프로세스 스케줄링

prefer2 2021. 8. 27. 15:48

프로세스 스케줄링?


프로세스 스케줄링이란 프로세스가 생성되어 실행될 때 필요한 시스템의 여러자원을 해당 프로세스에게 할당하는 작업을 뜻 하며, 대기 시간은 최소화 하고 최대한 공평하게 처리하는 것을 목적으로한다.

 

스케줄링 목적/평가기준

  • CPU 이용률(CPU utilization) : CPU를 얼마나 바쁘게 하는가. 높을수록 좋다.
  • 처리율(Throughput) : 단위시간당 얼마나 많은 프로세스들이 완료되는가. 클 수록 좋다.
  • 소요시간(Turnaround time) : 프로세스가 요청된 후 완료하기까지 얼마나 걸리는가. 메모리 접근 시간, 대기 큐에서의 대기 시간, CPU에서의 실행 시간, I/O 시간 등의 합으로 계산한다. 짧을수록 좋다.
  • 대기시간(Waiting time) : 프로세스가 대기 큐에서 기다리는 시간의 합. 짧을수록 좋다.
  • 반응시간(Response time) : 프로세스가 요청된 후 첫 번째 응답을 받기까지 걸리는 시간. 주로 상호교환 시스템(interactive system)에서 사용된다. 짧을수록 좋다.

 

프로세스 상태

1. New (생성): 사용자가 프로그램을 실행하면 프로세스가 생성.

2. Ready (준비): 프로세스가 대기 큐에서 CPU를 차지하기 위해서 기다린다.

3. Running (실행): 프로세스가 CPU를 차지하면서 실행되는 상태.

4. Waiting(대기): 프로세스가 입출력이나 이벤트를 기다리는 상태. 해당일이 끝나면 준비상태로 되돌아간다.

5. Terminated (종료): 프로세스 종료 상태

 

스케줄링 큐(Scheduling Queue)


 

프로세스가 시스템에 들어가면 준비 큐(ready queue)에 들어가서 준비 상태가 되어 CPU를 할당받을 때(dispatch)까지 ready queue에서 대기한다. 이 큐는 일반적으로 연결 리스트로 저장된다.

그리고 CPU가 할당되면 아래 사건들 중 하나가 발생할 수 있다.

  1. 프로세스가 I/O(입출력)을 요청하여 wait queue에 저장
  2. 프로세스가 child process를 생성하고 그 프로세스가 종료될 때까지 기다린다. 역시 wait queue에 저장
  3. 프로세스가 interrupt의 결과에 따라 강제로 CPU로부터 제거되어 ready queue에 다시 놓일 수 있다.
  4. CPU 이용시간이 만료되어서 ready 큐로 다시 저장

프로세스가 종료될때까지 이 주기를 계속 반복한다.

 

문맥 교환(Context Switch)


 

프로세스가 실행되다가 인터럽트가 발생해 운영체제가 개입하여 프로세서에 할당된 프로세스를 바꾸는 것을 말한다.

시스템 콜을 사용해야 하는 경우 프로세스가 자체적으로 처리할 수 없기 때문에 운영체제가 개입해야 한다. 프로세서가 다른 프로세스로 스위치할 때, 시스템은 작업중이던 프로세스의 상태를 저장하고 새로운 프로세스의 상태를 로드한다.

컴퓨터과학에서 컨텍스트는 내 시스템에서 활용 가능한 모니터링된 정보들을 의미한다. 프로세서 입장에서 컨텍스트는 PCB이기 때문에 PCB 정보가 바뀌는 것을 컨텍스트 스위치라고 부른다. 컨텍스트 스위치는 오버헤드가 발생하는 작업이기 때문에 너무 자주 일어나면 성능을 저하한다.

반응형