View
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-선점형과 비선점형 스케쥴러, 스케쥴링 알고리즘 조합
Melody:) 2021. 11. 25. 23:34선점형과 비선점형 스케쥴러
비선점형
- 프로세스가 자발적으로 blocking상태로 들어가거나, 실행이 끝났을 때만, 다른 프로세스로 교체 가능
- 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
- 예) A가 프로세스가 자체적으로 running이 아니어야만(Block 혹은 종료 혹은 ready 상태) B 프로세스가 실행되는 것.
선점형
- 프로세스 running 중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능
- 하나의 프로세스가 다른 프로세스 대신에 CPU를 차지할 수 있음. 스케쥴러 실행이 프로세스 스테이트에 영향 받지 않음.
- 이전 프로세스 중단 및 다음 프로세스 실행 기준에 고려할게 많기 때문에 비선점형보다 이후에 나옴.
- 예) A 프로세서가 스케쥴러에 의해 실행될 때, 어느 시점(ex. 2초 단위로)에 A를 중지하고 B를 실행시키게 된다.
선점형과 비선점형 알고리즘의 차이
스케쥴러(정책, policy) 구분
- FIFO(FCFS), SJF, Priority-based는 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘=>비선점형 방식에 가깝다.
- RoundRobin은 시분할 시스템을 위한 기본 알고리즘 => 선점형 스케쥴러
스케쥴링 알고리즘 조합
- 우선순위 기반(정적)
- 선점형
- 시분할
- 프로세스 상태
- 위 4가지의 알고리즘을 조합한 스케쥴링 알고리즘에 대해 살펴보자.
- 1칸의 시간을 1초로 설정하였을때, 2초 마다 스케쥴러는 프로세스의 우선순위를 판단하게 된다.
- 우선순위는 사용자에게 빠른 시간에 응답해주어야 하는 것을 우선으로 하여 순위를 매기는 것이 사용자로 하여금 편안함을 느끼게 한다.
마우스/키보드/GUI 반응이 느린 이유에 대해 생각해보자.
스케쥴러가 해결해야하는 이슈이다!
다양하고 복잡한 스케쥴링 알고리즘 필요
- 버벅 거리는 현상을 통해 스케줄링 알고리즘에 대해 생각할 수 있다.
- 리눅스 스케줄러 : O(1), CFS와 같이 다양한 방식으로 스케쥴러 알고리즘을 변경 시도 중
- 인터렉티브, IO, CPU 중심 프로세스로 미리 구분할 수 있다면 보다 개선된 스케쥴링이 가능함.
=> 프로세스의 수가 많을 수록 컴퓨터가 느려질 확률이 높다.
- 인터렉티브, IO, CPU 중심 프로세스로 미리 구분할 수 있다면 보다 개선된 스케쥴링이 가능함.
- 프로세스의 타입에 따라 우선순위를 매겨 그에 맞는 스케쥴링 알고리즘을 사용하면 스케쥴링을 최적으로 개선 가능한 점이 있다.
'Computer Science > 운영체제(OS)' 카테고리의 다른 글
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 내부 동작 (0) | 2021.11.26 |
---|---|
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-인터럽트 란?, 인터럽트 종류 (0) | 2021.11.26 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-프로세스 상태와 스케쥴러, 프로세스 상태기반 스케쥴링 알고리즘 기본 (0) | 2021.11.24 |
컴공전공자_따라잡기 | CH03. 프로세스와 스케쥴러의 이해-스케쥴링 알고리즘 기본 (0) | 2021.11.24 |
컴공전공자_따라잡기 | CH02. 스케쥴링 - 멀티 프로그래밍 (0) | 2021.11.24 |
reply