프로세스 스케줄링 종류 및 목적
1. 프로세스 스케줄링이란?
프로세스 스케줄링은 컴퓨터 운영체제에서 프로세스들을 관리하고 CPU를 할당하는 중요한 작업이라 할 수 있습니다. 이번 글에서는 프로세스 스케줄링의 종류 및 목적 등에 대하여 자세히 알아보도록 하겠습니다.
2. 프로세스 스케줄링 목적
프로세스 스케줄링의 주요 목적은 아래와 같이 설명 할 수 있습니다.
2.1. 공정성
프로세스들 간에 공정한 CPU 할당을 통해 모든 프로세스가 공평하게 실행되도록 함
2.2. 응답 시간 최소화
사용자 경험을 향상시키기 위해 응답 시간을 최소화함(프로세스가 빠르게 실행되어 사용자 입력에 빠르게 반응)
2.3. 오버헤드 최소화
스케줄링 알고리즘이 오버헤드를 최소화하여 시스템의 효율성을 유지.
2.4. 자원 사용 균형 유지
시스템 자원을 고르게 분배하여 자원의 효율적 사용을 촉진.
2.5. 에이징 기법 (우선 순위)
우선 순위 스케줄링에서 기아 상태를 방지하기 위해 에이징 기법을 도입.
3. 프로세스 스케줄링의 단계
프로세스 스케줄링은 상위 단계, 중간 단계, 하위 단계의 단계로 나눌 수 있습니다.
3.1. 상위 단계 스케줄링
시스템 자원을 어떤 작업에 할당할지 결정 함.
3.2. 중간 단계 스케줄링
프로세스들의 일시적 중단 및 활동 재개를 수행.
3.3. 하위 단계 스케줄링
CPU를 어떤 프로세스에 할당할지 결정 함.
4. 선점 vs. 비선점 스케줄링
프로세스 스케줄링은 선점과 비선점 두 가지 주요 유형이 있습니다.
4.1. 비선점 스케줄링
한 프로세스가 CPU를 할당받으면 그 프로세스가 끝날 때까지 CPU를 빠져나올 수 없음.
4.2. 선점 스케줄링
한 프로세스가 CPU를 차지하고 있어도 다른 프로세스가 현재 실행 중인 프로세스를 중지시키고 CPU를 차지할 수 있음.
5. 우선 순위 스케줄링
프로세스의 우선 순위를 기반으로 CPU를 할당하는 방식입니다.
5.1. 정적 우선 순위 vs. 동적 우선 순위
우선 순위가 고정된 정적 우선 순위와 필요에 따라 우선 순위를 재구성하는 동적 우선 순위가 있음.
6. 기한부 스케줄링
작업들이 정해진 시간 내에 완료되도록 계획하며, 경성 실시간 시스템과 연성 실시간 시스템 두 가지 종류가 있습니다.
6.1. 경성(Hard) 실시간 시스템
정해진 시간 내에 완료해야 하는 강한 형태의 실시간 시스템.
6.2. 연성(Soft) 실시간 시스템
시간 제한이 비교적 유연한 실시간 시스템.
6.3. 정적 스케줄링 vs. 동적 스케줄링
태스크 집합이 미리 정의된 정적 스케줄링과 예측할 수 없는 상황에서의 동적 스케줄링이 있음.
7. 멀티(다중) 프로세서 스케줄링
멀티프로세서 스케줄링은 여러 개의 프로세서(또는 코어)를 가진 컴퓨터 시스템에서 프로세스들을 효율적으로 관리하고 CPU 시간을 할당하는 방법을 의미합니다. 이는 병렬 컴퓨팅 시스템에서 중요한 역할을 합니다.
7.1. 동질 시스템 vs. 이질 시스템
프로세서의 형태는 동질 시스템과 이질 시스템으로 나눌 수 있음
7.2. FCFS 스케줄링 (First Come First Served)
가장 간단한 비선점 스케줄링 방식 중 하나임
7.3. SJF 스케줄링 (Shortest Job First)
프로세스의 수행 시간이 가장 짧은 것을 먼저 수행하는 비선점 스케줄링 방식
7.4. 우선 순위 스케줄링
우선 순위가 높은 프로세스에 CPU를 할당함.
7.5. 라운드 로빈 스케줄링
시분할 시스템을 위한 선점 스케줄링 방식 중 하나임
7.6. SRT 스케줄링 (Shortest Remaining Time)
SJF 기법에 선점 방식을 도입한 스케줄링 방식.
결론
프로세스 스케줄링은 운영체제의 핵심 역할 중 하나로, 시스템의 효율성과 사용자 경험에 중요한 영향을 미칩니다. 이번 글에서는 다양한 스케줄링 알고리즘과 목적을 살펴보았으며, 각각의 장단점을 알아보았는데요, 프로세스 스케줄링은 컴퓨터, 운영체제 분야에서 계속 연구되고 발전하고 있으며, 실제 시스템에서 어떻게 적용되는지를 이해하는 것이 중요합니다.
이전 글 – 오라클 스케줄러와 JOB 관리 방법