#13 멀티큐

  • by

2023.02.05 – (자료 구조 및 알고리즘) – #7 큐(Queue) – 컨셉(FIFO : First In First Out)

#7 큐(Queue) – 컨셉(FIFO : First In First Out)

– 큐(Queue)도 Stack처럼 간단한 규칙을 가지고 있는 리스트다.

– 규칙: FIFO(First In First Out)

radderveloper.

– CPU 스케줄러가 어떻게 작동하는지 알기 전에 이번 기사와 관련되어 있으므로 먼저 읽어 보자


● 프로세스 상태

– 이전 기사에서 만든 프로세스의 상태를 다시 살펴 보겠습니다.

2023.02.24 – (운영 체제) – #8 프로세스 상태 with 시분할 처리

#8 프로세스 상태 with 시분할 처리

2023.02.17 – (운영 체제) – #4 컴퓨터 부팅 과정 & 인터럽트 #4 컴퓨터 부팅 과정 & 인터럽트 ● 컴퓨터 부팅 과정 – 컴퓨터가 켜질 때 발생하는 과정을 살펴보자 1. 컴퓨터 전원을 누르면 ROM에 저장됨

radderveloper.


출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제

– 프로세스가 생성되면 준비 상태로 전환,
– 준비 상태에서 CPU를 기다리는 프로세스는 CPU 스케줄러에 의해 실행 상태로 전환된다.


– 실행 상태에 있는 프로세스는
1. CPU 할당 시간이 끝나면 다시 준비 상태로
2. I/O 요구가 있으면 대기 상태로
3. 작업이 끝나면 완료 상태로 전환됩니다.

– 이 중 프로세스가 대기 중 준비 상태와 대기 상태는 큐 데이터 구조로 관리된다.


– Queue는 First In First Out 구조이다.


멀티 큐

– 프로세스가 실행 상태 → 준비 상태로 돌아갈 때
OS는 해당 프로세스의 우선순위를 보고 거기에 맞는 ‘준비 큐’에 넣는다.


– 이후 CPU 스케줄러는 “준비 상태의 멀티 큐”에 포함된 프로세스 중에서 적절한 프로세스를 선택하여 실행 상태로 전환


출처 – 인프라, 그림에서 쉽게 배울 운영 체제/프로세스 우선순위를 보고 이에 맞는 “준비 대기열”에 넣습니다.


출처 – 임플란트, 그림으로 쉽게 배울 운영체제/’준비 큐’에 들어간 상태

출처 – 임플란트, 그림으로 쉽게 배울 수 있는 운영체제/“준비 상태의 멀티큐”에 포함된 프로세스 중에서 적절한 프로세스를 선택하여 실행 상태로 전환


– 프로세스가 실행 상태로부터 I/O 요구를 받아 대기 상태가 되면(실행 상태 → 대기 상태)
– I/O 작업 유형에 따라 분류된 대기열에 들어갑니다.


ex)

– 아래 그림에서 하드 디스크 작업은 HDD 대기열로 들어갑니다.

하드 디스크 작업이 완료되고 인터럽트가 발생하면 HDD 대기열을 지연시켜 프로세스를 다시 검색합니다.


출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제

출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제


– 위에서 Queue에 프로세스가 들어간다고 했는데 정확히 말하면 프로세스 정보를 포함합니다.

PCB가 Queue에 들어간다고 말해야 한다.


출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제


● 정리

– 프로세스 정보 포함 PCB는 준비 상태 멀티 큐에 들어가서 실행될 때까지 기다립니다.

있다
– CPU 스케줄러에 의해 실행 상태로 전환된다.

(준비 상태 → 실행 상태)
– 바로 이때 CPU 스케줄러가 준비 상태의 멀티 큐를 참조하여 어떤 프로세스를 실행할지 결정하는 것이다.


출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제


– I/O 작업도 이와 비슷하다.

– 실행 중인 프로세스에서 I/O 작업이 발생하면 해당 I/O 작업의 종류별로 나누어 Queue로 들어가 CPU 스케줄러는 이를 참조하여 스케줄링을 진행한다.


출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제

출처 – 인프라, 그림으로 쉽게 배울 수있는 운영 체제