728x90

1 선점형 스케줄링과 비선점형 스케줄링

선점은 빼앗을 수 있음을 뜻하고 비선점은 빼앗을 수 없음을 뜻한다.

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

비선점형 스케줄링 : 어떤 프로세스가 CPU를 할당받으면 다른 프로세스가 뺏을 수 없는 방식

 

선점형 스케줄링의 예는 인터럽트 처리가 있다. 인터럽트를 받으면 현재 실행 중인 작업을 중단하고 커널을 꺠워서 인터럽트를 처리시키고 처리가 끝나면 원래 작업으로 돌아간다.

선점형 스케줄링은 Context Switch같은 부가적인 작업으로 낭비가 생기는 것이 단점이다. 하나의 프로세스가 CPU를 독점할 수 없기 때문에 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합하다.

비선점형 스케줄링은 CPU 사용 시간이 짧은 여러 프로세스가 오래동안 기다려야 해서 전체 시스템 처리율이 떨어진다. 주로 일괄 작업 시스템에서 사용하던 방식이다.

 

2 프로세스 우선순위

대부분의 CPU 스케줄러는 우선순위를 사용한다. 

프로세스는 커널 프로세스와 일반 프로세스로 나뉜다. 보통 커널 프로세스의 우선순위가 더 높다. 

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

 

3 CPU 집중 프로세스와 입출력 집중 프로세스

프로세스는 CPU를 사용하여 작업을 하는 실행 상태 또는 입출력을 요청해 완료되기까지 기다리는 대기 상태에 있다.

이때 CPU를 할당받아 실행하는 작업을 CPU 버스트, 입출력 작업을 입출력 버스트라고 부른다.

 

CPU 집중 프로세스 : 수학 연산과 같이 CPU를 많이 사용하는 프로세스를 말한다. 즉 CPU 버스트가 많은 프로세스

입출력 집중 프로세스 : 입출력을 많이 사용하는 프로세스, 즉 입출력 버스트가 많은 프로세스

 

스케줄링을 할 때 입출력 집중 프로세스의 우선순위를 CPU 집중 프로세스보다 높이는 것이 시스템의 효율이 향상된다. 입출력 프로세스가 실행 상태에서 대기 상태로 옮겨지는 동안 다른 프로세스가 CPU를 사용할 수 있기 때문이다.

이렇게 입출력 집중 프로세스가 CPU 집중 프로세스보다 실행 상태에 먼저 들어가는 경우를 사이클 훔치기(Cycle stealing)라고 한다.

 

4 전면 프로세스와 후면 프로세스

전면 프로세스 : GUI를 사용하는 운영체제에서 화면의 맨 앞에 놓인 프로세스. 사용자와 상호작용이 가능해 상호작용 프로세스라고도 한다.

후면 프로세스 : 사용자와 상호작용이 없는 프로세스. 압축 프로그램이 예시이며 일괄 작업 프로세스라고도 한다.

 

전면 프로세스는 사용자의 요구에 즉각 반응해야 하므로 우선순위가 더 높다.

728x90

+ Recent posts