CPU Scheduler : CPU가 항상 일을 할 수 있도록 실행될 프로세스를 선택하는 역할
Dispatcher : 선택된 프로세스를 실제로 CPU에서 실행될 수 있도록 만드는 역할(선택된 프로세스에게 CPU를 할당). Context switching. 커널 모드에서 유저 모드로의 전환. 적절한 위치로 선택된 프로세스를 이동
- 여러 문서에서는 스케줄러가 둘의 역할을 다 하는 것처럼 설명하기도 함
스케줄링의 선점 방식
비선점(Nonpreemptive) 스케줄링 : 프로세스가 자발적으로 running 상태에서 빠져나간다(running -> terminated, waiting, ready). 운영체제가 적극적 또는 강제적으로 개입하지 않는다. => 신사적, 협력적(cooperative), 느린 응답성
선점(preemptive) 스케줄링 : 비선점 스케줄링 방식 + 적극적 또는 강제적으로 스케줄링에 개입한다. => 적극적, 강제적, 빠른 응답성, 데이터 일관성 문제
스케줄링 알고리즘
FCFS(first-come, first-served) : 먼저 도착한 순서대로 처리. 큐 방식
SJF(shortest-job-first) : 프로세스의 다음 CPU burst가 가장 짧은 프로세스부터 실행
SRTF(shortest-remaining-time-first) : 남은 CPU burst가 가장 짧은 프로세스부터 실행
Priority : 우선순위가 높은 프로세스부터 실행
RR(round-robin) : time slice로 나눠진 CPU time을 번갈아가며 실행
Multilevel queue : 프로세스들을 그룹화해서 그룹마다 큐를 두는 방식
'공부 기록 > 영상 후기' 카테고리의 다른 글
우선순위 큐와 힙의 개념과 차이, 사용 사례를 설명합니다! 힙이 어떻게 동작하는지도 예를 통해 자세히 설명합니다! (0) | 2023.04.04 |
---|---|
변수와 객체와 메모리의 관계! 자바를 예로 들어 변수와 객체는 메모리에 어떻게 저장되는지 정말 쉽게 설명해요! (0) | 2023.04.04 |
[10분 테코톡] 수달의 JPA N+1 문제 (0) | 2023.04.02 |
[10분 테코톡] 아마찌의 ORM vs SQL Mapper vs JDBC (0) | 2023.04.02 |
[10분 테코톡] 잉, 페퍼의Spring Data JPA 삽질일지 (0) | 2023.04.02 |