##본 포스팅은 운영체제 강의 '이화여자대학교 운영체제 강의 - 반효경 교수님'를 보고 정리한 내용입니다.
스케줄러
운영체제에는 CPU 스케줄러, dist 스케줄러 등이 있는데
분류를 해보자면 다음과 같다.
**스케줄러 소프트웨어가 따로 있는 것이 아니라, 운영체제에서 스케쥴링 하는 코드를 의미한다.
- Long-term scheduler
job scheduler
프로세스 new ->(admitted) -> ready 의 역할을 한다. 즉, 메모리를 누구에게 주는 역할을 한다.
너무 많거나 적은 프로세스가 허용된다면 문제가 발생할 수 있기에 degree of Multiprogramming을 제어한다.
time sharing system에는 보통 없고 바로 ready 상태로 간다.
대신 medium을 둔다. - Short-term scheduler
CPU scheduler
CPU를 누구에게, 얼마나 줄 지 경정
굉장히 빠른 과정이기에, 자주 빨리 milisec 단위로 호출이 된다. - Medium-term scheduler
일단 ready로 다 주고, 메모리가 너무 부족할 떄 프로세스를 통째로 메모리에서 디스크로 쫓아내는 역할을 한다.
프로세스에게 memory를 뺏는 역할
중간 스케줄러가 들어가면서 suspended라는 상태가 추가되었다.
- Suspended (stopped)
외부적인 이유로 프로세스의 수행이 정지된 상태
프로세스는 통째로 디스크에 swap out된다.
리눅스에서 ctrl + z가 그 예이다.
blocked와 비슷하지만, blocked는 cpu만 없고 이멘트를 진행하는 상태이다.
blocked에서는 ready로 돌아갈 수 있지만, suspended는 외부(사람, 운영체제)에서 resume을 해줘야만 한다.
suspended가 추가되면서 상태도는 위와 같이 바뀐다.
'System > OS' 카테고리의 다른 글
운영체제 5강] CPU Scheduling (0) | 2021.10.10 |
---|---|
운영체제 4강] (0) | 2021.10.04 |
운영체제 3-1~3-2] 프로세스 (0) | 2021.09.26 |
운영체제 2-3 ~ 2-4] 시스템 구조 (0) | 2021.09.19 |
운영체제 2-1 ~ 2-2] 운영체제의 개요 (0) | 2021.09.19 |