안녕하세요 배트맨🦇 입니다 :)
이번 포스팅에서는 CPU 스케줄링에 대해서 다뤄보겠습니다.
스케줄링 알고리즘에 관해서는 다음 포스팅에서 다룰 예정이니 참고해 주세요 !
CPU 스케줄링은 어떤 작업에 CPU를 배정할지 결정하는 것을 말합니다.
어떤 프로세스에 CPU를 먼저 배정하느냐에 따라 시스템 효율이 달라지기 때문에 스케줄링은 전체 작업의 형평성과 효율성을 결정하는 중요한 부분입니다.
프로세스는 생성되어서 종료될 때까지 Ready, Running, Waiting과 같은 상태를 거치며 실행됩니다.
(해당 내용은 프로세스 포스팅을 참고해 주세요)
[OS] 프로세스(Process)
안녕하세요 배트맨🦇 입니다 ! 오늘 포스팅에서는 운영체제의 프로세스의 개념과 동작 원리에 대해 알아보겠습니다. 프로세스(Process) 프로세스는 메모리에 로드(Load)되어 실행 중인 프로그램을
g-batman.tistory.com
CPU 스케줄러는 프로세스의 이런 상태 변화를 조정하는 일을 합니다.
1. 공평성 : 모든 프로세스가 자원을 공평하게 배정받아야 하며, 특정 프로세스가 배제되어서는 안 됨
2. 효율성 : 시스템 자원이 유휴 시간 없이 사용되도록 하고, 유휴 자원을 사용하혀는 프로세스에 우선권을 줌
3. 안정성 : 중요 프로세스가 먼저 작동하도록 배정함으로써 시스템 자원을 점유하거나 파괴하려는 프로세스로부터 자원을 보호함
4. 확장성 : 프로세스가 증가해도 시스템이 안정적으로 작동하도록 해야 함
5. 무한 연기 방지 : 특정 프로세스의 작업이 무한히 연기지 않도록 해야 함
CPU 스케줄러가 어떤 프로세스에 우선적으로 CPU를 할당할지 결정할 때는 여려가지 고려 사항이 있습니다.
하나씩 살펴보겠습니다.
말 그대로 '선점'은 운영체제가 CPU할당을 빼앗을 수 있음을 뜻하고, '비선점'은 빼앗을 수 없음을 의미합니다.
각각의 장단점이 있습니다.
선점형 스케줄링은 특정 프로세스가 CPU를 독점할 수 없어 빠른 응답을 요구하는 시스템에 적합하다는 장점이 있지만, 문맥 교환의 오버헤드가 많다는 단점이 있습니다.
비선점형 스케줄링은 스케줄러의 작업량이 적고 오버 헤드가 적다는 장점이 있지만, waiting 프로세스가 많아 처리율이 떨어진다는 단점이 있습니다.
프로세스의 우선순위가 높다는 것은 CPU를 더 일찍 더 많이 할당받는다는 뜻입니다.
대부분의 CPU 스케줄러는 우선순위를 사용합니다.
예를 들어 사용자가 메모장과 비디오 플레이어를 동시에 사용하고 있다고 가정하면 비디오 플레이어의 우선순위가 더 높습니다. 메모장의 경우 CPU의 연산 속도보다 사용자가 타이핑하는 속도가 느리기 때문에 천천히 실행되어도 되지만 비디오 플레이어는 자주 실행되지 않으면 실시간 영상 처리를 하지 못하기 때문에 화면이 끊깁니다.
사용자가 직접 프로세스의 우선순위를 조절할 수도 있습니다.
(윈도우 기준, 작업관리자 -> '자세히' 탭 -> 특정 프로세스 우클릭 -> 우선순위 설정)
추가로 커널 프로세스와 사용자 프로세스가 있는데 커널 프로세스의 우선순위가 더 높습니다.
CPU 집중 프로세스 : 수학 연산과 같이 CPU를 많이 사용하는 프로세스
입출력 집중 프로세스 : 입출력 처리를 많이 사용하는 프로세스
프로세스는 생성되고 나서 실제 작업 중에는 실행(running)과 대기(blocked) 상태입니다.
입출력 집중 프로세스는 생성되고 입출력 처리를 위해 대기 상태에 오래 머무를 것이고, 그동안 CPU 집중 프로세스가 실행 상태로 있는 것이 효율적입니다. 따라서 입출력 집중 프로세스의 우선순위를 높게 하여 먼저 배정되도록 하는 것이 더 유리합니다.
아래 그림을 보면 더 쉽게 이해할 수 있습니다.
전면 프로세스는 사용자가 보는 화면의 맨 앞에 놓인 프로세스입니다. 현재 입력과 출력을 사용하며 사용자와 상호작용이 가능한 프로세스입니다.
후면 프로세스는 사용자와 상호작용이 없고, 사용자의 입력이 없어도 작동합니다.
쉽게 말해 메모장과 비디오 플레이어를 같이 실행하고 있는데 메모장이 더 앞에 띄워져 있으면 메모장이 전면 프로세스, 비디오 플레이어가 후면 프로세스입니다.
전면 프로세스는 사용자의 요구에 즉각 반응해야 하기 때문에 우선순위가 더 높습니다.
오늘은 CPU 스케줄링의 개념과 스케줄링 시 고려 사항에 대해 알아보았습니다.
제가 있는 곳은 아침부터 비가 오고 있습니다.
실내 일정과 야외 일정의 우선순위를 잘 고려해서 적절한 스케줄링으로 효율적인 하루를 보내야겠습니다(찡긋)
[OS] 교착상태와 데드락, 뮤텍스와 세마포어 (1) | 2025.04.24 |
---|---|
[OS] CPU 스케줄링 알고리즘 (2) | 2023.06.22 |
[OS] 스레드(Thread) (0) | 2023.06.20 |
[OS] 프로세스의 연산 (0) | 2023.06.19 |
[OS] 프로세스(Process) (3) | 2023.01.05 |
댓글 영역