다중프로그래밍(Multi- Programming) 이란, 여러개의 프로세스가 시스템 내 존재하는 것이고,
이에 따라 자원을 할당할 프로세스를 선택해야한다. 이것이 스케쥴링의 기본적인 개념이다.
자원관리에는 (시간분할, 공간분할) 방식이 있는데, 프로세스 스케쥴링 시간분할에 속한다.
스케쥴링의 목적은 시스템의 성능 향상에 있다.
성능의 지표
- 응답시간 (response time)
- 작업처리량(throughput)
- 자원활용도(resource utilization)
이 지표중에서 목적에 맞는 것을 고려하여 스케쥴링 기법을 선택하면 된다.
또, 스케쥴링은 선점 스케쥴링(preemtive scheduling) 비선점 스케쥴링(Non-preemtive
scheduling)로 나뉜다.
선점 스케쥴링은 도중에 우선순위가 높은 프로세스가 오면 자원을 뺏길 수 있으며,
응답성이 높으나 문맥교환, 즉 오버헤드가 크다.
비선점 스케줄링은 할당 받은 자원을 스스로가 반납할때까지 사용할 수 있어 문맥교환, 오버헤드가
적지만 평균응답시간이 증가하는 특징을 가지고 있다.
우선순위도 정적 우선순위, 동적 우선순위로 나뉘는데, 정적 우선순위는 구현이 쉽고, 오버헤드가
작지만 변화에 대한 대응이 어렵다. 반대로 동적 우선순위는 구현이 복잡하고 오버헤드가 크지만,
유연한 대응이 가능한 특징을 가지고 있다.
'CS > OS' 카테고리의 다른 글
Process Synchronization (동기화) (0) | 2022.02.07 |
---|---|
Process Scheduling 2(기본 스케줄링 및 알고리즘) (0) | 2022.02.04 |
스레드 관리(Thread management) (2) | 2022.01.30 |
프로세스(Process) 관리, 자원(Resource)의 개념 (0) | 2022.01.29 |
운영체제의 역할˙구분 (0) | 2022.01.28 |