코딩공부/OS

14. 스케줄링 시 고려 사항

뉼👩🏻‍💻 2023. 2. 10. 12:32
728x90
반응형
SMALL

 

📍선점형 스케줄링 preemptive scheduling

: 어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식 

- 운영체제가 필요하다고 판단하면 실행 상태에 있는 프로세스의 작업을 중단시키고 새로운 작업을 시작할 수 있음 

 

◼️ 인터럽트 처리 

: CPU가 인터럽트를 받으면 현재 실행 중인 작업을 중단하고 커널ㅇ르 깨워서 인터럽트를 처리시키며, 인터럽트 처리가 완료되면 원래의 작업으로 돌아간다 

 

* 특징

- 부가적인 작업(문맥 교환) 으로 인해 낭비가 생실 수 있음

- 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합함 

➡️ 저수준 스케줄러 대부분이 선점형 스케줄링 방식을 사용함 

 

 

📍비선점형 스케줄링 non-preemptive scheduling

: 어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식 

- 어떤 프로세스가 실행 상태에 들어가 CPU를 사용하면 그 프로세스가 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행됨

 

* 특징

- CPU 사용 시간이 긴 프로세스 때문에 CPU 사용 시간이 짧은 여러 프로세스가 오랫동안 기다리게 되어 전체 시스템의 처리율이 떨어짐

- 선점형보다 스케줄러의 작업량이 적고 문맥 교환에 의한 낭비도 적음 

➡️ 과거의 일괄 작업 시스템에서 사용하던 방식 

 

 

구분 선점형 비선점형
작업 방식 실행 상태에 있는 작업을 중단시키고
새로운 작업을 실행할 수 있음
실행 상태에 있는 작업이 완료될 때까지
다른 작업이 불가능
장점 프로세스가 CPU를 독점할 수 없음 CPU 스케줄러의 작업량이 적고
문맥 교환의 오버헤드가 적음
단점 문맥 교환의 오버헤드가 많음 기다리는 프로세스가 많아 처리율이 떨어짐
사용 시분할 방식 스케줄러 일괄 작업 방식 스케줄러
중요도 높다 낮다

 

 

📍 프로세스 우선순위

: 우선순위가 높 다는 것은 더 빨리 자주 실행된다는 의미 

 

◼️ 프로세스 - 커널 프로세스 

                - 일반 프로세스 

- CPU 스케줄러는 각 프로세스에 우선순위를 부여하는데 커널 프로세스의 우선순위가 일반 프로세스보다 높음 

- 같은 커널 프로세스라 하더라도 더 중요한 커널 프로세스는 우선순위가 높음 

 

 

 

 

📍CPU 집중 프로세스 

: 수학 연산과 같이 CPU를 많이 사용하는 프로세스 ➡️ CPU 버스트가 많은 프로세스 

 

 

📍입출력 집중 프로세스 

: 저장장치에서 데이터를 복사하는 일과 같이 입출력을 많이 사용하는 프로세스 

➡️ 입출력 버스트가 많은 프로세스 

 

- 스케줄링을 할 때 입출력 집중 프로세스의 우선순위를 CPU 집중 프로세스보다 높이면 시스템의 효율이 향상됨 

➡️ 입출력 집중 프로세스가 실행 상태로 가면 입출력 요구에 의해 대기 상태로 옮겨지기 때문에 다른 프로세스가 CPU를 사용할 수 있지만 CPU집중 프로세스가 먼저 실행 상태로 들어가면 자신의 타임 슬라이스를 다 쓸때까지 다른 프로세스가 실행되지 못하기 때문

 

 

📍전면 프로세스

: GUI를 사용하는 운영체제에서 화면의 맨 앞에 놓인 프로세스 

- 현재 입력과 출력을 사용하는 프로세스이며, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 함

 

📍후면 프로세스 

: 사용자와 상호작용이 없는 프로세스 

- 압축 프로그램처럼 사용자의 입력 없이 작동하기 때문에 일괄 작업 프로세스라고도 함 

 

 

우선순위 높음 ↔️ 우선순위 낮음
커널 프로세스 일반 프로세스
전면 프로세스 후면 프로세스
대화형 프로세스 일괄처리 프로세스
입출력 집중 프로세스 CPU 집중 프로세스

 

- 프로세스에 따라서 대화형인지 일괄처리인지 또는 입출력인지 CPU집중인지 명확하게 구분할 수 없는 경우도 있어서 우선순위를 고려하기 어려울 수 도 있음 

728x90
반응형