일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lifting state up
- react code splitting
- JavaScript
- mapped types
- Front-End
- 리액트 코드분할
- TS
- 리액트
- useMemo
- 타스
- 상태 끌어올리기
- Next.js
- 자동 배칭
- 렌더링 동작원리
- 프론트엔드
- 타입스크립트
- router dom
- TypeScript
- 렌더링
- Interface
- React
- state 최적화
- 배칭
- 고급타입
- 자바스크립트
- NextJS
- react rendering
- useCallback
- rendering
- react router dom v6
- Today
- Total
서녕이네 개발단지
면접을 위한 CS 전공지식 노트 [CHAPTER 3] (4) 본문
[SECTION 3.4] - CPU 스케줄링 알고리즘
CPU 스케줄러는 CPU 스케줄링 알고리즘에 따라 프로세스에서 해야 하는 일을 스레드 단위로 CPU에 할당한다.
프로그램이 실행될 때는 CPU 스케줄링 알고리즘이 어떤 프로그램에 CPU 소유권을 줄 것인지 결정한다.
이 알고리즘은 CPU 이용률은 높게, 주어진 시간에 많은 일을 하게, 준비 큐(ready queue)에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것을 목표로 한다.
3.4.1 비선점형 방식
비선점형 방식(non-preemptive)이란?
- 프로세스가 스스로 CPU 소유권을 포기하는 방식이며, 강제로 프로세스를 중지하지 않는다.
👉🏻 따라서 컨텍스트 스위칭으로 인한 부하가 적다.
FCFS
FCFS(First Come, First Served)란?
- 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘이다.
- 길게 수행되는 프로세스 때문에 '준비 큐에서 오래 기다리는 현상(convoy effect)'이 발생하는 단점이 있다.
SJF
SJF(Shortest Job First)란?
- 실행 시간이 가장 짧은 프로세스를 가장 먼저 실행하는 알고리즘이다.
- 긴 시간을 가진 프로세스가 실행되지 않는 현상(starvation)이 일어나며 평균 대기시간이 가장 짧다.
❗️하지만, 실제로는 실행 시간을 알 수 없기 때문에 과거의 실행했던 시간을 토대로 추측해서 사용한다.
우선순위
기존 SJF 스케줄링의 경우 긴 시간을 가진 프로세스가 실행되지 않는 현상이 있었다.
이는 오래된 작업일수록 '우선순위를 높이는 방법(aging)'을 통해 단점을 보완한 알고리즘이다.
3.4.2 선점형 방식
선점형 방식(preemptive)이란?
- 현대 운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 자른 프로세스에 CPU 소유권을 할당하는 방식을 말한다.
라운드 로빈(RR, Round Robin)
라운드 로빈이란?
- 현대 컴퓨터가 쓰는 스케줄링인 우선순위 스케줄링(priority scheduling)의 일종으로 각 프로세스는 동일한 할당 시간을 주고 그 시간 안에 끝나지 않으면 다시 준비 큐의 뒤로 가는 알고리즘이다.
SRF(Shortest Remaining Time First)
SRF란?
- 중간에 더 짧은 작업이 들어오면 수행하던 프로세스를 중지하고 해당 프로세스를 수행하는 알고리즘이다.
다단계 큐
다단계 큐란?
- 우선순위에 따른 준비 큐를 여러 개 사용하고, 큐마다 라운드 로빈이나 FCFS 등 다른 스케줄링 알고리즘을 적용한 것을 말한다.
- 큐 간의 프로세스 이동이 안 되므로 스케줄링 부담이 적지만 유연성이 떨어지는 특징이 있다.
'도서' 카테고리의 다른 글
면접을 위한 CS 전공지식 노트 [CHAPTER 4] (2) (0) | 2023.06.25 |
---|---|
면접을 위한 CS 전공지식 노트 [CHAPTER 4] (1) (0) | 2023.06.24 |
면접을 위한 CS 전공지식 노트 [CHAPTER 3] (3) (0) | 2023.06.24 |
면접을 위한 CS 전공지식 노트 [CHAPTER 3] (1) (0) | 2023.06.20 |
면접을 위한 CS 전공지식 노트 [CHAPTER 2] (4) (0) | 2023.06.19 |