티스토리 뷰
스케줄링의 개요
CPU 스케줄러
프로세서 스케줄러라고도 하며 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정한다.
스케줄링 단계
- 고수준 스케줄링
- 저수준 스케줄링
- 중간 수준 스케줄링
(1) 고수준 스케줄링
- 시스템 내의 전체 작업 수를 조절하는 일
- 가장 큰 틀에서 이루어지는 CPU 스케줄링
- 장기 스케줄링, 작업 스케줄링이라고도 한다.
(2) 저수준 스케줄링
- 어떤 프로세스에 CPU를 할당할지, 어떤 프로세스를 대기 상태로 보낼지 등을 결정하는 일
- 가장 작은 단위의 CPU 스케줄링
- 단기 스케줄링이라고도 한다.
(3) 중간 수준 스케줄링
- 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절하여 과부하를 막는 일
- 고수준 스케줄링과 저수준 스케줄링 사이에 일어나는 CPU 스케줄링
-저수준 스케줄링이 원만하게 이루어지도록 완충하는 역할
스케줄링의 목적
- 공평성 : 모든 프로세스가 자원을 공평하게 배정받아야 하며, 자원 배정 과정에서 특정 프로세스가 배제되어서는 안 된다.
- 효율성 : 시스템 자원이 유휴 시간 없이 사용되도록 스케줄링을 하고, 유휴 자원을 사용하려는 프로세스에는 우선권을 주어야 한다.
- 안정성 : 우선순위를 사용해 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호해야 한다.
- 확장성 : 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치하고 시스템 자원이 늘어나는 경우 이 혜택이 시스템에 반영되게 해야 한다.
- 반응시간 보장 : 응답이 없는 경우 사용자는 시스템이 멈춘 것으로 가정하기 때문에 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 한다.
- 무한 연기 방지 : 특정 프로세스의 작업이 무한히 연기되어서는 안 된다.
스케줄링 시 고려 사항
선점 : 빼앗을 수 있음
비선점 : 빼앗을 수 없음
- 선점형 스케줄링 : 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식
- 비선점형 스케줄링 : 다른 프로세스가 CPU를 강제로 빼앗을 수 없는 스케줄링 방식
구분 | 선점형 | 비선점형 |
작업 방식 | 실행 상태에 있는 작업을 중단시키고 새로운 작업을 실행 가능 | 실행 상태에 있는 작업이 완료될 때까지 다른 작업이 불가능하다. |
장점 | 프로세스가 CPU를 독점할 수 없어 대화형이나 시분할 시스템에 적합 | CPU 스케줄러의 작업량이 적고 문맥 교환의 오버헤드가 적다. |
단점 | 문맥 교환의 오버헤드가 많다. | 기다리는 프로세스가 많아 처리율이 떨어진다. |
사용 | 시분할 방식 스케줄러에 사용 | 일괄 작업 방식 스케줄러에 사용 |
중요도 | 높다 | 낮다 |
프로세스 우선순위
우선순위가 있다는 것은 프로세스의 중요도가 다르다는 의미이다.
따라서 우선순위가 높으면 더 빨리 자주 실행되고, 더 오래 차지한다.
우선순위가 없다면 프로세스의 중요도가 같다는 의미이다.
*우선순위
CPU 집중 프로세스와 입출력 집중 프로세스
▶ CPU 집중 프로세스
- 수학 연산과 같이 cpu를 많이 사용하는 프로세스로 CPU 버스트가 많은 프로세스
▶ 입출력 집중 프로세스
- 저장장치에서 데이터를 복사하는 일과 같이 입출력을 많이 사용하는 프로세스로 입출력 버스트가 많은 프로세스
▶ 사이클 훔치기
- 입출력 집중 프로세스가 CPU 집중 프로세스보다 실행 상태에 먼저 들어가는 경우
전면 프로세스와 후면 프로세스
전면 프로세스
- GUI를 사용하는 운영체제에서 화면의 맨 앞에 놓인 프로세스
- 현재 입력과 출력을 사용하는 프로세스
- 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 한다.
후면 프로세스
- 사용자와 상호작용 없는 프로세스
- 사용자의 입력 없이 작동하기 때문에 일괄 작업 프로세스라고도 한다.
좋아요는 로그인하지 않아도 누를 수 있습니다!
'운영체제' 카테고리의 다른 글
[쉽게 배우는 운영체제] 4장 연습문제(심화문제) 정답 [OS] (0) | 2021.08.30 |
---|---|
[쉽게 배우는 운영체제] 4장 : CPU 스케줄링 (2/2) [OS] (0) | 2021.08.30 |
[쉽게 배우는 운영체제] 3장 연습문제(심화문제) 정답 [OS] (0) | 2021.08.27 |
[쉽게 배우는 운영체제] 3장 : 프로세스와 스레드 (2/2) [OS] (0) | 2021.08.27 |
[쉽게 배우는 운영체제] 3장 : 프로세스와 스레드 (1/2) [OS] (0) | 2021.08.27 |
- Total
- Today
- Yesterday
- 정리
- 알고리즘
- 백준
- 파이썬
- 운영체제
- 쉽게배우는
- Python
- OS
- 풀이
- JS
- BFS
- Web
- 구현
- 연습문제
- 자바스크립트
- 쉽게배우는자바프로그래밍
- 프로그래머스
- 우종정
- 자바
- 문자열
- C++
- java
- 해답
- 정답
- 정렬
- 그리디
- CPP
- py
- 답
- 쉽게 배우는 자바 프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |