stitchsquirtle.log
로그인
stitchsquirtle.log
로그인
운영체제 - CPU 스케줄링
델리만쥬 디퓨저
·
2024년 8월 24일
팔로우
0
CS
공부요약
운영체제
운영체제
목록 보기
7/13
CPU 스케줄링
운영 체제가 CPU를 여러 프로세스나 스레드에 어떻게 할당할지를 결정하는 메커니즘
여러 프로세스가 동시에 실행되기를 원할 때, CPU는 한 번에 하나의 프로세스만을 실행할 수 있으므로, CPU 스케줄러는 프로세스들이 공정하게 , 그리고 효율적으로 CPU를 사용할 수 있도록 조정하는 역할
CPU 스케줄링의 필요성
멀티태스킹
: 하나의 CPU가 여러 작업을 동시에 처리해야 하는 상황에서, 각 작업이 적절한 시간동안 CPU를 사용할 수 있도록 조정하는 것이 필요함
프로세스 처리 속도 향상
: CPU 스케줄링을 통해 응답 시간을 최소화하고, 처리율을 극대화하며, 시스템 효율성을 향상시킬 수 있음
공정성
: 모든 프로세스가 공정하게 CPU를 사용하도록 보장
스케줄링 기준
공정성 (Fairness)
: 모든 프로세스가 CPU를 공정하게 사용할 수 있도록 보장
대기 시간 (Waiting Time)
: 프로세스가 대기 큐에서 기다린 총 시간
응답 시간 (Response Time)
: 프로세스가 실행되기 시작하는 시간과 프로세스가 실행을 요청한 시간 사이의 차이
처리량 (Throughput)
: 주어진 시간 동안 완료된 프로세스의 수
주요 CPU 스케줄링 알고리즘
비선점형 방식
프로세스가 스스로 CPU를 포기하는 방식이며, 강제로 프로세스를 중지하지 않음
컨텍스트 스위칭으로 인한 부하가 적음
FCFS (First-Come, First-Served)
개념
: 가장 먼저 도착한 프로세스를 먼저 처리하는 방식
특징
: 간단하고 공정하지만, 비효율적일 수 있음. 대기 시간이 길어질 수 있으며, 특히 긴 작업이 앞에 있는 경우 문제가 발생할 수 있음.
장점
: 구현이 쉽고 이해하기 쉬움
단점
: 'Convoy Effect'라고 불리는 현상 발생 가능. 긴 작업이 CPU를 차지하면 뒤에 있는 짧은 작업들이 오래 기다리게 됨
SJF (Shortest Job First)
개념
: 가장 짧은 작업(실행 시간이 짧은 프로세스)을 먼저 처리하는 방식
특징
: 이론적으로 최적의 평균 대기 시간을 제공하지만, 정확한 실행 시간을 미리 알 수 없는 경우가 많아 실제 적용이 어려움
장점
: 평균 대기 시간이 최소화됨
단점
: 실행 시간을 예측하기 어려움, 긴 작업이 무한정 기다릴 수 있는 'Starvation' 문제 발생 가능
Priority Scheduling
개념
: 각 프로세스에 우선순위를 부여하고, 우선순위가 높은 프로세스에게 먼저 CPU를 할당
특징
: 중요한 작업을 먼저 처리할 수 있도록 함
장점
: 시스템 요구사항에 맞게 유연한 스케줄링 가능
단점
: 우선순위가 낮은 프로세스가 무한히 대기할 수 있는 'Starvation' 문제 발생 가능. 이를 해결하기 위해 '에이징(Aging)' 기법 사용
선점형 방식
현대 운영체제가 쓰는 방식으로 지금 사용하고 있는 프로세스를 알고리즘에 의해 중단시켜 버리고 강제로 다른 프로세스에 CPU 소유권을 할당하는 방식
RR (Round Robin)
개념
: 각 프로세스에게 동일한 시간 양(타임 퀀텀)을 할당하며, 순환 방식으로 CPU를 처리함
특징
: 멀티태스킹 환경에서 공정하게 CPU 시간을 분배하며, 모든 프로세스가 일정 시간마다 실행될 기회를 가짐
장점
: 반응성을 높일 수 있으며, 긴 작업이 독점하지 않음
단점
: 타임 퀀텀 설정이 중요. 너무 짧으면 문맥 교환(Context Switching)이 너무 빈번해져 오버 헤드 발생, 너무 길면 반응 시간이 길어짐
Multilevel Queue Scheduling
개념
: 프로세스들을 여러 개의 큐로 나누고, 각 큐에 다른 스케줄링 알고리즘을 적용함
특징
: 큐별로 다른 성격의 프로세스를 관리할 수 있으며, 큐 간에도 우선순위를 둘 수 있음
장점
: 다양한 작업을 효율적으로 관리할 수 있음
단점
: 각 큐의 관리가 복잡하며, 큐 사이의 스케줄링 정책이 정교하지 않으면 비효율적일 수 있음
Multilevel Feedback Queue Scheduling
개념
: 프로세스들을 한 큐에서 다른 큐로 이동할 수 있도록 하여, 다양한 성격의 작업을 유연하게 관리함
특징
: 작업의 성격에 따라 적절한 우선순위와 처리 시간을 부여함
장점
: 유연하고 공정한 처리 가능
단점
: 설정이 복잡하며, 튜닝이 필요함
델리만쥬 디퓨저
< 너만의 듀얼을 해!!! )
팔로우
이전 포스트
운영체제 - IPC
다음 포스트
운영체제 - 교착 상태(Deadlock)
0개의 댓글
댓글 작성