오식랜드
[운영체제] CPU 스케줄링 본문
반응형
*CPU 1개로 가정
CPU 스케줄링
- 운영체제의 일부
- 여러 프로세스 상황을 고려하여 CPU에 자원을 배정
스케줄링 종류
- 저수준 스케줄링
- FIFO : Fisrt In First Out 형식
- 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기상태로 보낼지 결정
- ready → running
- 중간수준 스케줄링
- 중지(Suspend)와 활성화(active)로 전체 시스템 중 활성화 된 프로세스 수를 조절
- → 활성상태, 보류상태
- 일부 프로세스를 중지상태로 옮김
- 저수준 스케줄링이 완만히 진행되도록 하는 역할
- 고수준 스케줄링
- 시스템 전체 작업 수 조정
- 어떤 작업을 받아들일지 여부를 결정
- 장기스케줄링 이라고 함
- 그림 전체
스케줄링의 목적
- 공평성
- 모든 프로세스가 자원을 공평하게 배정받아야 함
- 특정 프로세스가 무한 대기에 빠지면 안됨
- 효율성
- 시스템 자원에 유휴시간이 없도록 활용
- 유휴 자원을 사용할 프로세스가 있다면 우선권을 줌
- 안정성
- 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호
- 우선순위에 따라 중요한 프로세스가 먼저 작동되도록
- 확장성
- 프로세스가 증가해도 안정적으로 작동하도옥
- 프로세스 수, 자원의 수와 관계 없도록 잘 배정해야 함
- 반응 시간 보장
- 사용자에게 적절한 시간 안에 반응해줘야 함
- 무한 연기 방지
- 특정 프로세스가 무한 대기에 빠지면 안됨
선점형 스케줄링
- 선점을 허용 → 프로세스가 CPU를 서로 차지하려고 함
- 현재 대부분 이걸로 사용
- 운영체제의 판단으로 진행중이던걸 중지시키고 새로운 프로세스를 시작할 수 있음
- 하나의 프로세스가 CPU를 독점할 수 없음
- 대화형 시스템이나 시분할 시스템에 적합
- 문맥교환이 많아 오버헤드가 많다
- 중요도가 높은 프로그램을 만들 때 주로 사용
비선점형 스케줄링
- 선점을 비허용
- CPU가 작업중인 프로세스가 종료 또는 대기가 될 때 까지 계속 실행
- 문맥 교환에 의한 낭비가 적음
- 하나가 끝날 때 까지 다른 작업을 못하여 시스템 처리율이 떨어짐
- → 작업시간이 긴 프로세스가 작업중이면 기다려야 함
- 일괄 작업 시스템에서 사용
반응형
'dev-log > cs' 카테고리의 다른 글
[운영체제] 인터럽트 (interupt) (0) | 2023.09.27 |
---|---|
[운영체제] 스케줄링 알고리즘 (0) | 2023.09.27 |
[운영체제] 우선순위 (0) | 2023.09.27 |
[운영체제] 스레드 (thread) (0) | 2023.09.27 |
[운영체제] 프로세스 (process) (0) | 2023.09.27 |
Comments