Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

TH3 6R3@T H@CK

CPU 스케줄링 본문

Study/CS

CPU 스케줄링

vvh0am1 2023. 10. 14. 16:50

※ 운영체제 수업 내용 복습

* 내용 추가 예정

 

 

CPU 스케줄러

∙ 운영체제에서 식당 관리자의 역할을 담당

∙ 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원의 배정을 결정

 

 

고수준 스케줄링

시스템 내의 전체 작업 수를 조절하는 것

어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정

시스템 내에서 동시에 실행 가능한 프로세스의 총 개수가 정해짐

장기 스케줄링, 작업 스케줄링, 승인 스케줄링이라고도 함

 

 

저수준 스케줄링

∙ 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정

∙ 아주 짧은 시간에 일어나기 때문에 단기 스케줄링이라고도 함

 

 

중간 수준 스케줄링

∙ 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막음

∙ 일부를 중지 상태로 옮김으로써 나머지 프로세스가 원만하게 작동하도록 지원

∙ 저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할

 

고수준 스케줄링: 전체 시스템의 부하를 고려하여 작업을 시작할지 말지를 결정

중간 수준 스케줄링: 시스템에 과부하가 걸려서 전체 프로세스 수를 조절해야 한다면 이미 활성화된 프로세스 중 일부를 보류 상태로 보냄

저수준 스케줄링: 실제 작업을 수행

 

 

CPU 스케줄링의 목적

공평성: 모든 프로세스가 자원을 공평하게 배정받아야 하며, 자원 배정 과정에서 특정 프로세스가 배제되어서는 안 됨

효율성: 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링을 하고, 유휴 자원을 사용하려는 프로세스에는 우선권을 주어야 함

안정성: 우선순위를 통해 중요 프로세스가 먼저 작동하도록 배정하여 시스템 자원을 점유, 파괴하려는 프로세스로부터 자원을 보호해야 함

확장성: 프로세스가 증가해도 안정적으로 작동하도록 조치해야 되며 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되게 해야 함

반응 시간 보장: 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 함

무한 연기 방지: 특정 프로세스의 작업이 무한히 연기되어서는 안 됨

 

 

선점형 (Preemptive) 스케줄링

∙ 운영체제가 필요하다고 판단하면 실행 상태에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있는 방식

∙ 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합

∙ 대부분의 저수준 스케줄러는 선점형 스케줄링 방식을 사용

 

 

비선점형 (Non-Preemptive) 스케줄링

∙ 어떤 프로세스가 실행 상태에 들어가 CPU를 사용하면 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행되는 방식

∙ 선점형 스케줄링보다 스케줄러의 작업량이 적고 문맥 교환에 의한 낭비도 적음

∙ CPU 사용 시간이 기 프로세스 때문에 CPU 사용 시간이 짧은 여러 프로세스가 오랜 시간동안 기다리게 되어 전체 시스템의 처리율이 떨어짐

∙ 과거의 일괄 작업 시스템에서 사용하던 방식

 

 

선점형 스케줄링과 비선점형 스케줄링의 비교

구분 선점형 비선점형
작업 방식 실행 상태에 있는 작업을 중단시키고 새로운 작업을 실행할 수 있다. 실행 상태에 있는 작업이 완료될 때까지 다른 작업이 불가능하다.
장점 프로세스가 CPU를 독점할 수 없어 대화형이나 시분할 시스템에 적합하다. CPU 스케줄러의 작업량이 적고 문맥 교환의 오버헤드가 적다.
단점 문맥 교환의 오버헤드가 많다. 기다리는 프로세스가 많아 처리율이 떨어진다.
사용 시분할 방식 스케줄러에 사용된다. 일괄 작업 방식 스케줄러에 사용된다.
중요도 높다. 낮다.

 

 

프로세스 우선순위

커널 프로세스의 우선순위가 일반 프로세스보다 높음

시스템에는 다양한 우선순위의 프로세스가 공존하며 우선순위가 높은 프로세스가 CPU를 먼저, 더 오래 차지
시스템에 따라 높은 숫자가 높은 우선순위를 나타내기도 하고, 낮은 숫자가 높은 우선순위를 나타내기도 함

 

 

CPU 집중 프로세스

수학 연산과 같이 CPU를 많이 사용하는 프로세스로 CPU 버스트가 많은 프로세스

 

 

입출 집중 프로세스

저장장치에서 데이터를 복사하는 일과 같이 입출력을 많이 사용하는 프로세스로 입출력
버스트가 많은 프로세스

 

 

우선 배정

스케줄링을 할 때 입출력 집중 프로세스의 우선순위를 CPU 집중 프로세스보다 높이면 시스템의 효율이 향상

 

 

전면 프로세스

GUI를 사용하는 운영체제에서 화면의 맨 앞에 놓인 프로세스
현재 입력과 출력을 사용하는 프로세스
사용자와 상호작용이 가능하여 상호작용 프로세스라고도 함

 

 

후면 프로세스

 사용자와 상호작용이 없는 프로세스
사용자의 입력 없이 작동하기 때문에 일괄 작업 프로세스라고도 함
전면 프로세스의 우선순위가 후면 프로세스보다 높음

 

 

스케줄링 우선순위 요약

 

 

준비 상태의 다중 큐

프로세스는 준비 상태에 들어올 때마다 자신의 우선순위에 해당하는 큐의 마지막에 삽입
CPU 스케줄러는 우선순위가 가장 높은 큐(0번 큐)의 맨 앞에 있는 프로세스 6에 CPU 할당

 

 

프로세스의 우선순위를 배정하는 방식

고정 우선순위 방식
    ∙ 운영체제가 프로세스에 우선순위를 부여하면 프로세스가 끝날 때까지 바뀌지 않는 방식
    ∙ 프로세스가 작업하는 동안 우선순위가 변하지 않기 때문에 구현하기 쉽지만, 시스템의 상황이 시시각각 변하는데

      우선순위를 고정하면 시스템의 변화에 대응하기 어려워 작업 효율이 떨어짐
변동 우선순위 방식
    ∙ 프로세스 생성 시 부여받은 우선순위가 프로세스 작업 중간에 변하는 방식
    ∙ 구현하기 어렵지만 시스템의 효율성을 높일 수 있음

 

 

대기 상태의 다중 큐

시스템의 효율을 높이기 위해 대기 상태에서는 같은 입출력을 요구한 프로세스끼리 모아 놓음

 

 

다중 큐 비교

준비 큐
    ∙ 한 번에 하나의 프로세스를 꺼내어 CPU를 할당
대기 큐
    ∙ 여러 개의 프로세스 제어 블록을 동시에 꺼내어 준비 상태로 옮김
    ∙ 대기 큐에서 동시에 끝나는 인터럽트를 처리하기 위해 인터럽트 벡터라는 자료 구조 사용

'Study > CS' 카테고리의 다른 글

프로세스와 스레드  (0) 2023.10.14
컴퓨터 구조  (0) 2023.10.11