4주차 (1/22 ~ 1/28)
chapter. 09 : 운영체제 시작하기
chapter. 10 : 프로세스와 스레드
chapter. 11 : CPU스케줄링
➡️ 운영체제의 핵심기능 2 : 자원할당-CPU
CPU스케줄링이란?
운영체제가 프로세스들에게 공정하고 합리적으로 CPU자원을 배분하는 것으로, 우선순위
를 기준으로 프로세스 실행 순서 정하는 것
우선순위
: 일반적으로 입출력 집중 프로세스가 CPU 집중 프로세스보다 우선순위가 높다.
: PCB에 우선순위 저장해 놓는다.
프로세스는 CPU와 입출력장치를 모두 사용하며 실행됨 다른말로
실행 상태
와대기상태
를 반복하며 실행됨
입출력 집중 프로세스
: 비디오재생, 디스크 백업 작업등 입출력작업에 많은 프로세스
: 실행상태 < 대기상태
CPU 집중 프로세스
: 연산, 컴파일 같은 CPU 작업 많은 프로세스
: 실행상태 > 대기상태
➡️ 일반적으로 CPU작업속도보다 입출력장치 작업 속도가 느리니까, 입출력집중프로세스 먼저 실행(CPU할당)해 입출력작업 하는 동안(대기상태), CPU집중프로세스가 CPU할당 받아 실행 된다.
CPU이용하는 이용작업을 CPU버스트(CPU burst), 입출력장치 기다리는 작업을 입출력버스트(I/O burst)라고 하기도 한다.
스케줄링 큐(scheduling queue)란?
PCB에 프로세스 우선순위 적혀있지만 운영체제가 일일이 모든 프로세스 PCB 뒤지는 것은 비효율적 그래서 프로세스들을 큐(queue)라는 작업공간에 넣어 관리한다.
큐(queue) 일반적으로 먼저 삽입된 데이터가 먼저 나가는 선입선출방식
프로세스 상태에 따라, 작업 큐(메모리 할당 대기)
, 준비 큐(CPU할당 대기)
, 대기 큐(입출력작업 대기)
등이 있다.
프로세스 상태 다이어그램을 큐에 적용
선점(preemptive)?
- 남보다 앞서서 차지함'을 의미
자원을 독점할 수 없는 방식
자원을 독점할 수 있는 방식
📌 준비큐
를 어떻게 관리하는지에 따라
타임슬라이슬의 크기가 중요
너무 작으면 문맥교환 너무 빈번히 일어남
너무 크면 선입선출방식과 다를 바 없음(호위효과 발생)
Ch.11(11-2) 준비 큐에 A,B,C,D 순으로 삽입되었다고 가정했을 때, 선입 선처리 스케줄링 알고리즘을 적용하면 어떤 프로세스 순서대로 CPU를 할당받는지 풀어보기
3번
선입선처리 스케줄링 : 준비큐에 삽입된 순서대로 프로세스 처리하는 방식.
A -> B -> C -> D 순으로 CPU 할당받아 실행됩니다.