[OS] 스케줄링의 고려 사항

Sjin·2021년 4월 27일
0

스케줄링

목록 보기
2/3

CPU 스케줄러는 어떤 프로세스에게 우선적으로 CPU를 할당할지 결정해야 한다. 이 때 고려해야 할 사항이 있다.

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

선점형 스케줄링

어떤 프로세스가 CPU를 할당받아 실행 중이더라도 운영체제가 CPU를 강제로 빼앗을 수 있는 스케줄링 방식이다. 컨텍스트 스위칭과 같은 부가 작업으로 인해 낭비가 생길 수 있다. 하나의 프로세스가 CPU를 독점하면 안되므로 빠른 응답 시간을 요구하는 대화형 시스템이나 시분할 시스템에 적합하다. 대부분의 저수준 스케줄러는 선점형 스케줄링 방식을 사용한다.

비선점형 스케줄링

어떤 프로세스가 CPU를 점유하면 다른 프로세스가 이를 빼앗을 수 없는 스케줄링 방식이다. 프로세스가 실행 상태에 들어가면 종료되거나 자발적으로 대기 상태에 들어가기 전까지는 계속 실행된다. 따라서 스케줄러의 할 일이 줄어들고 컨텍스트 스위칭에 의한 낭비도 없다. 하지만 CPU 사용 시간이 긴 프로세스가 점유하고 있을 때 사용 시간이 짧은 프로세스가 오래 기다려 전체 시스템의 처리율을 떨어지는 상황이 발생할 수 있다.

프로세스 우선순위

프로세스의 우선순위가 다르다는 것은 중요도가 다르다는 뜻이다. 대부분의 CPU 스케줄러는 우선순위를 사용한다. 프로세스는 크게 커널 프로세스일반 프로세스로 나뉜다. CPU 스케줄러는 각 프로세스에 우선순위를 부여하는데 커널 프로세스의 우선 순위가 일반 프로세보다 높다. 커널 프로세스는 커널과 관련된 중요한 프로세스이기 때문이다.

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

CPU를 사용하여 작업을 하는 상태를 CPU 버스트라고 한다. 입출력 요청으로 인해 대기 상태로 이동하는 것을 입출력 버스트라고 부른다.

CPU 집중 프로세스

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

입출력 집중 프로세스

저장장치에서 데이터를 복사하는 일과 같이 입출력을 많이 사용하는 프로세스를 말한다. 즉 입출력 버스트가 많은 프로세스이다.

CPU 집중 프로세보다 입출력 집중 프로세스를 먼저 실행 상태로 옮기는 것이 효율적이다. 입출력 집중 프로세스는 입출력이 작업이 많아 CPU를 사용하고 있는 중에도 수시로 대기 상태로 옮겨진다. 그동안 다른 프로세스가 CPU를 사용할 수 있다. 만약 CPU 집중 프로세스가 먼저 실행된다면 타임 슬라이스가 만료되거나 작업이 완료될 때까지 계속 점유하고 있기 때문에 비효율적이다. 입출력 집중 프로세스가 CPU 집중 프로세스보다 실행 상태에 먼저 들어가는 경우를 사이클 훔치기라고 한다.

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

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

전면 프로세스

GUI를 사용하는 운영체제에서 화면의 맨 앞에 놓인 프로세스이다. 현재 입력과 출력을 사용하는 프로세스이며, 사용자와 상호작용이 가능하여 상호작용 프로세스라고도 한다.

후면 프로세스

사용자와 상호작용이 없는 프로세스이다. 압축 프로그램처럼 사용자의 입력 없이 작동하기 때문에 일괄 작업 프로세스라고도 한다.

정리

우선순위 높음우선순위 낮음
커널일반
전면후면
대화형일괄 처리
입출력 집중CPU 집중
profile
프론트엔드 개발에 관심있는 주니어 웹 개발자입니다.

0개의 댓글