본문 바로가기
운영체제

선점형/비선점형 스케쥴링 방식

by tryotto 2020. 4. 26.

# 선점형 스케쥴링 방식


- 기본 원리 : 하나의 프로세스가 다른 프로세스 대신 CPU 를 차지할 수 있다

> 즉, 미처 프로세스가 끝나기도 전에, 다른 프로세스로 전환될 수 있다


- 주로, 타임퀀텀을 기준으로 context switching 이 발생한다.

> 타임 퀀텀이 끝나서, 다음 프로세스를 결정해야 할 때 여러가지 기준으로

   다음 프로세스를 선정한다

- 종류 :

     1) round robin : 

- 가장 자연스러운 방식. 

  - 어떤 타임퀀텀이 끝났을때, 해당 프로세스가 덜 끝났을 경우, 

  남은 시간만큼의 프로세스를 ready 큐 뒤에 넣는다.




# 비선점형 스케쥴링 방식


- 기본 원리 : 하나의 프로세스가 끝나지 않으면, 다른 프로세스는 CPU 를 차지할 수 없다


- 종류 

     1) FIFO : 먼저 들어오면 먼저 나간다 (큐 기본 방식)

     2) SJF : 소요시간이 짧은 것부터 할당. 단, 끝나고 나서야 다른 프로세스 실행됨





# 스케쥴링의 시점


1) 선점형 스케쥴링 

      - interrupt 발생 시 : 외부 IO 발생 (IO request)

      - time-out 발생 시 : time slicing (시분할) 에 의해, 주어진 타임 퀀텀이 끝났을 경우

      - wake-up 발생 시 : 대기 큐에 있는 프로세스들을 준비 큐에 옮길때

      - terminate 발생 시 : 실행하던 프로세스가 끝났을 경우


2) 비선점형 스케쥴링 

      - interrupt 발생 시 : 외부 IO 발생 (IO request)

      - terminate 발생 시 : 실행하던 프로세스가 끝났을 경우




# 비선점형 스케쥴링 방식일떄, 인터럽트 발생한다면


- execution flow : 

     1) 현재의 프로세스를 멈추고, 인터럽트 서비스 루틴으로 넘어감 

     2) 인터럽트 서비스 루틴에 의해, OS 스케쥴링 루틴으로 넘어가게 된다

     3) 현재 레지스터, 포인터 주소 등을 PCB 에 저장한다

     4) 현재 진행중인 프로세스를 ready 큐에 저장 (running->ready 상태 전환)

     5) 프로세스가 끝났으면, PCB 에서 새로운 프로세스에 대응되는 상태, 레지스터를 꺼낸다

     6) 새로운 프로세스를 그대로 진행한다



'운영체제' 카테고리의 다른 글

커널별 인터럽트 처리  (0) 2020.04.26
커널 종류  (0) 2020.04.26
DMA 와 메모리  (0) 2020.04.26
인터럽트  (0) 2020.04.26