일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- SpringBoot
- 자바의정석
- 국비지원
- 개발자
- 알고리즘
- 소셜로그인구현
- 스프링부트
- 백엔드
- 자바개발자
- 데이터베이스
- 자바
- Codeup
- 프로그래밍
- React
- 코딩
- db
- Java
- 코드업
- 백엔드개발자
- 운영체제
- 리액트
- 자바스크립트
- 프로세스
- 국비지원코딩
- 프로그래머
- 혼공컴운
- 프로그래머스
- 자바알고리즘
- 미라클모닝
- 개발자일기
- Today
- Total
초코딩(chocoding)
CPU의 스케줄링이란? / 선점형 스케줄링과 비선점형 스케줄링 본문
선점형 스케줄링과 비선점형 스케줄링을 알아보기 전에
CPU의 스케줄링에 대해 알아보아야 한다.
CPU의 스케줄링이란?
=> 프로세스가 작업을 수행하려면 스케줄러로부터 CPU를 할당 받아야 한다.
CPU 스케줄러는 ready 상태의 프로세스 중에서 어떤 프로세스에게 CPU를 할당할 지 결정한다.
CPU 스케줄링을 각 프로세스에게 공평하게, 또 효율적이게 하기 위해서 고려해야 하는 사항들이 있다.
- 선점형 스케줄링과 비선점형 스케줄링
=> 선점(preemptive)이란 "빼앗을 수 있음"을 말한다.
즉, 선점과 비선점 스케줄링 방식은 어떤 프로세스가 CPU를 할당 받으면
이를 운영체제가 강제로 회수할 수 있는 스케줄링 방식인 지, 아닌 지에 대한 내용이다.
1. 선점형 스케줄링
-> 실행 상테에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있다.
-> 우선순위가 높은 프로세스를 먼저 수행할 때 유리하고
빠른 응답 시간을 요구하는 대화식 시분할 시스템에 유용하다.
-> 많은 오버헤드(overhead)를 초래한다.
(* overhead : 프로그램의 실행 흐름에서 나타나는 현상 중에 하나로, 특정 기능을 수행하는데 드는 간접적인 시간, 메모리 등 자원을 말함)
2. 비선점형 스케줄링
-> 어떤 프로세스가 실행 상태에 들어가면 그 프로세스가 끝나거나
CPU를 자진 반납하는 경우가 아니라면 계속 실행되는 것을 말한다.
-> 응답 시간을 예측할 수 있고 일괄 처리 방식이 적합하다.
-> 모든 프로세스에 요구에 대해 공정하다.
-> context switch에 대한 오버헤드도 없고 스케줄러가 할 일도 적어져 효율적일 수 있으나
전체 시스템의 처리율이 떨어지게 된다.
'[혼공컴운] 혼자 공부하는 컴퓨터 구조와 운영체제' 카테고리의 다른 글
교착 상태(Dead Lock) / 공유 자원(Shared Resource) / 임계 영역 (Critical Section) / 임계 영역을 해결하기 위한 방법 (0) | 2024.04.04 |
---|---|
프로세스와 스레드에 대하여 (0) | 2024.03.28 |
[혼공컴운] 10-2 / 프로세스 상태와 계층 구조 (0) | 2023.08.04 |
[혼공컴운] 10-1 / 프로세스 개요 (0) | 2023.07.31 |
[혼공컴운] 9-2 / 운영체제의 큰 그림 (0) | 2023.07.28 |