본문 바로가기
OS

프로세스 스케줄링, 스케줄링 큐

by tovantablack 2020. 8. 2.
728x90
728x90

프로세스 스케줄링 process scheduling 이란 수행 가능한 여러 프로세스들 중에서 하나의 프로세스를 선택하는 것으로,

다중 프로그래밍은 CPU의 이용률을 극대화하기 위하여 항상 어떤 프로세스가 실행되도록 하고, 

시분할은 각 프로그램이 실행되는 동안 사용자가 상호작용 할 수 있도록 프로세스들 사이에서 CPU를 빈번하게 교체한다.

 

< 스케줄링 큐 Queue >

실행될 프로세스가 여러 개 있으면 하나만 실행되고 나머지는 CPU가 자유로워질 때까지 대기하는 것으로 선입선출의 방식을 따른다.

큐의 종류에는 작업 큐, 준비 큐, 장치 큐가 있다.

작업 큐 Job Queue 는 메모리 할당을 대기 중인 프로세스들로 구성되고,

준비 큐 Ready Queue 는 CPU 할당을 대기 중인 프로세스들로 구성되며,

장치 큐 Device Queue는 입출력 장치 할당을 대기 중인 프로세스들로 구성된다.

 

프로세스가 시스템에 들어가면 이들은 잡 큐에 넣어진다. 잡큐는 시스템에서 모든 프로세스들이 존재하는 곳이다. 메인메모리에 거주하는 프로세스들은 레디 큐라고 불리우는 리스트에서 실행되기를 기다리고 대기를 한다.

큐는 보통 링크드 리스트로 저장된다. 레디 헤더는 포인터를 포함하는데, 이 포인터는 리스트에서 PCB의 처음과 끝을 가리킨다. 각 PCB는 포인터 필드를 포함하고 있는데, 이는 레디 큐에 있는 다음 PCB를 가리키는 것이다.

 

728x90
728x90

댓글