먼저 저번 단원에서 CPU 스케줄러에 대해선 '어떤 프로세스를 CPU에게 할당하는지 정해주는 역할' 이라고만 배웠었다.
하지만 그 정해주는 일이 나름 여러 체계가 있었고 프로세스 사이의 어떠한 기준으로 우선순위를 매기는지 그 체계에 대해 다룬다.
나는 그동안 사용자의 입장으로만 컴퓨터를 바라봐 '사용자가 먼저 실행하는것이 당연히 가장 높은 우선순위를 배정받아 가장 먼저 되겠구나' 라는 생각을 가지고 있었는데 물론 그것도 맞지만 컴퓨터 내부적으로 애초부터 우선순위가 정해져 있는 프로세스도 있었다.
스케줄링의 개요
: 여러 프로세스의 상황을 고려하여 CPU와 시스템 자원을 어떻게 배정할지 결정하는 일을 말한다.
- 고수준 스케일링 : 시스템 내의 전체 작업 수를 조절하는 것
→ 실행 가능한 프로세스의 총개수가 정해짐
- 저수준 스케일링 : 어떤 프로세스를 CPU에 할당할지 어떤 프로세스를 대기상태에 보낼지 등을 결정
→ 이전에 배웠던 프로세스 상태에 관한 내용에 해당
- 중간수준 스케일링 : 중지와 활성화로 전체 시스템의 활성화된 프로세스 수를 조절
→ 보류상태에 해당하며 저수준 스케일링이 원만하게 이루어지도록 완충하는 역할을 함
스케줄링의 목적
→ 모든 프로세스가 공평하게 작업하도록 하는 것
- 공평성 : 모든 프로세스가 자원을 공평하게 배정받아야 함
- 효율성 : 시스템 자원이 쉬는 시간 없이 사용되도록 스케줄링을 함
- 안정성 : 우선순위를 사용하여 중요 프로세스가 먼저 작동하도록 배정하여 자원을 보호
- 확장성 : 프로세스가 증가해도 시스템이 안정적으로 작동하도록 조치해야 함
- 반응 시간 보장 : 시스템은 적절한 시간 안에 프로세스의 요구에 반응해야 함
- 무한 연기 방지 : 특정 프로세스의 작업이 무한히 연기되어선 안된다.
스케줄링시 고려사항
1. 선점형 스케줄링
: 운영체제가 실행상태에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있다.
장점 : 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합
단점 : 문맥교환 같은 부가적인 작업으로 인해 낭비가 생김
2. 비선점형 스케줄링
: 프로세스가 실행상태에 들어가 CPU를 사용하면 프로세스가 종료되거나 자발적으로 대기상태에 들어가기 전까지 계속 실행된다.
장점 : 스케줄러의 작업량이 적고 문맥교환에 의한 낭비도 적음
단점 : CPU 사용시간이 짧은 여러 프로세스가 오랫동안 기다리게 되어 전체 시스템의 처리율이 떨어짐
구분 | 선점형 | 비선점형 |
작업방식 | 실행상태에 있는 작업을 중단시키고 새로운 작업을 실행할 수 있음 | 실행상태에 있는 작업이 완료될 때까지 다른 작업이 불가능 |
장점 | 프로세스가 CPU를 독점할 수 없어 대화형이나 시분할 시스템에 적합 | CPU 스케줄러의 작업량이 적고 문맥교환의 오버헤드가 적음 |
단점 | 문맥교환의 오버헤드가 많음 | 기다리는 프로세스가 많아 처리율이 떨어짐 |
사용 | 시분할 방식 스케줄러에 사용 | 일괄작업 방식 스케줄러에 사용 |
중요도 | 높다 | 낮다 |
프로세스 우선순위
: 프로세스의 중요도가 전부 다르기 때문에 우선순위가 서로 다름
- CPU 집중 프로세스 : CPU를 많이 사용하는 프로세스
- 입출력 집중 프로세스 : 입출력을 많이 사용하는 프로세스
CPU 집중 프로세스와 입출력 집중 프로세스가 같이 있을 때에는 입출력 집중 프로세스가 먼저 실행되는 것이 효율적
→ 입출력 집중 프로세스의 중요도↑
→ 사이클 훔치기
전면 프로세스와 후면 프로세스
- 전면 프로세스 : GUI를 사용하는 운영체제에서 화면에 맨 앞에 놓인 프로세스
- 후면 프로세스 : 사용자와 상호작용이 없는 프로세스
이처럼 구글 창은 후면 프로세스 앞에 글쓰기 창은 전면 프로세스에 해당
- 전면프로세스의 중요도가 더 높음
- 전후면 프로세스의 전환은 화면 아래 작업줄의 아이콘을 표시하면 된다.
다중 큐
: 프로세스의 우선순위를 매번 찾기 힘들어 우선순위에 따라 여러 개의 큐를 만들어 놓은 것
준비 상태의 다중 큐
- 프로세스는 준비상태에 들어올 때마다 자신의 우선순위에 해당하는 큐의 마지막에 삽입
고정 우선순위
: 운영체제가 프로세스에 우선순위를 부여하면 프로세스가 끝날 때까지 바뀌지 않는 방식
장점 : 구현하기 쉬움
단점 : 작업 효율이 떨어짐
변동 우선순위
: 부여받은 우선순위가 작업 중간에 변하는 방식
장점 : 시스템의 효율을 높일 수 있음
단점 : 구현이 어려움
- 변동 우선순위 방식의 예
우선순위가 낮은 P1이라는 프로세스가 중요한 자원을 사용한다면 그 자원이 필요한 다른 프로세스들이 모두 기다려야한다.
이 때 P1의 우선순위를 높힌다면 더 빨리 작업을 끝내 다른 프로세스가 자원을 사용할 수 있다.
ㄴ 이것을 반전 우선순위라고 함
대기 상태의 다중 큐
- 같은 장치의 입출력을 기다리는 프로세스의 프로세스 제어블록은 동일한 입출력 큐에 모여 있다.
준비상태의 다중 큐와 대기상태의 다중 큐의 차이
준비 큐 : 한 번에 하나의 프로세스를 꺼내어 CPU에 할당
대기 큐 : 여러개의 프로세스 제어 블록을 동시에 꺼내어 준비상태로 옮김
→ 동시에 끝나는 인터럽트를 처리하기 위해 인터럽트 백터라는 자료구조 사용
용어 정리
CPU 버스트 : CPU를 할당받아 실행하는 작업
입출력 버스트 : 입출력 작업
GUI : 사용자가 편리하게 알 수 있도록 입출력 등의 기능을 아이콘으로 나타낸 것 (그래픽 사용자 인터페이스)
'OS > 쉽게 배우는 운영체제' 카테고리의 다른 글
프로세스 동기화 (1) (0) | 2022.03.03 |
---|---|
CPU 스케줄링 (2) (0) | 2022.02.23 |
프로세스 관리 (2) (0) | 2022.02.19 |
프로세스 관리 (1) (0) | 2022.02.18 |
컴퓨터의 구조와 성능 향상 (2) (0) | 2022.02.14 |
댓글