본문 바로가기

TIL/CS

Process Management

프로세스 생명주기

 

프로세스 생명주기(process lifecycle)는 컴퓨터 시스템에서 프로세스가 생성되고 실행되며 종료되는 과정을 말한다.

프로세스 생명주기에는 일반적으로 다음과 같은 단계가 포함된다.

 

생성(New)

프로세스가 생성되는 단계. 이 단계에서 운영 체제는 필요한 자원을 할당하고, 프로세스의 상태를 설정하며, 해당 프로세스를 관리하기 위한 다양한 데이터 구조를 초기화한다.

 

준비(Ready)

프로세스가 CPU를 사용하여 실행될 준비가 된 상태. 이 상태의 프로세스들은 준비 큐에 있으며, 스케줄러에 의해 선택되어 실행 상태로 전환될 수 있다.

 

실행(Running)

현재 CPU에서 명령어들이 실행되고 있는 프로세스의 상태.

 

대기(Waiting)

입출력 같은 특정 이벤트의 완료를 기다리는 중인 프로세스의 상태. 예를 들어, 디스크에서 파일을 읽어오는 작업이 완료될 때까지 대기할 수 있다.

 

종료(Terminated)

작업이 끝난 후에 도달하는 최종 단계. 운영 체제는 모든 자원을 회수하고, 해당 프로세서 관련 데이터 구조를 제거한다.

 

 

 

 

 

Waiting Queue (대기 큐)

 

Job Queue

HDD에 있던 프로그램들이 메모리에 올라올 때, 메모리가 가득 차있거나 CPU가 다른 작업을 수행 중이라면 메모리에 올라외 전에 어느정도 기다려야하는데 HDD의 프로그램들이 잠시 기다리는 곳을 Job Queue라고 한다.

 

Ready Queue

메인메모리에 프로그램들이 올라왔더라도 바로 CPU의 서비스를 받을 수 있는 것은 아니다. 다른 프로그램이 수행 중이면 기다렸다가, 수행중인 프로그램이 I/O를 시작하거나, 시공유시스템의 경우 기존 프로세스가 시간초과되면 실행되게 된다. 이렇게 이미 메모리에 올라온 프로세스들이 실행을 위해 대기하는 곳을 Ready Queue라고 한다.

 

Device Queue

I/O 장치를 이용하려면 기존 I/O 작업이 끝나기를 기다렸다가 밀려있던 작업이 모두 끝나야 I/O 장치를 이용할 수 있다. 마우스는 마우스큐, 키보드는 키보드큐와 같이 각각 I/O 장치들은 각각의 대기 큐를 가지고 있는데, 이런 큐들을 통틀어서 Device Queue라고 한다.

 

 

//어떠한 프로세스가 종료될 때는 기다릴 필요 없이 바로 종료되므로 Terminated 상태를 위한 큐는 필요없다.//

 

 

Scheduling (스케줄링)

 

Job Scheduler

Job Queue에서 대기중인 프로그램들을 어떤 순서로 메모리에 올릴 것인지 결정한다.

이러한 과정은 프로그램이 새로 시작될 때, 메인 메모리가 가득찬 경우 등의 상황에서만 발생하므로 발생하는 간격이 긴데

이러한 스케줄러를 Long Term Scheduler라고도 한다.

 

CPU Scheduler

Ready Queue에서 대기중인 프로세스들을 어떤 순서로 서비스 할 것인지 결정한다.

시공유 시스템의 경우 이러한 과정은 1초에도 수십번 ~ 수백번도 일어나기 때문에 이러한 스케줄러를 Short Term Scheduler라고도 한다. 

모든 스케줄링 중에서 CPU Scheduler가 가장 중요하다.

 

Device Scheduler

Device Queue에서 대기중인 프로세스들을 어떤 순서로 I/O 장치를 이용하게 할 지 결정한다.

이는 Disk Scheduler, Print Scheduler, Mouse Scheduler 등 I/O, 보조기억 장치 스케줄러를 통틀어 가리키는 말이다.

 

I/O Bound Process VS CPU Bound Process
  • I/O Bound Process
    • 대부분의 시간을 I/O하는데 쓰는 프로세스들을 의미한다.
  • CPU Bound Process
    • 대부분의 시간을 CPU로 연산하는데 쓰는 프로세스를 의미다.

운영체제(Job Scheduler)는 이들을 적절하게 배합하여 I/O 장치와 CPU 모두 너무 오랫동안 쉬게하지 않아야한다.

 

 

'TIL > CS' 카테고리의 다른 글

DBMS 발전 과정  (0) 2024.03.21
데이터베이스 시스템(DBMS) 개요  (0) 2024.03.21
데이터베이스(DB) 개요  (0) 2024.03.20
프로세스(Process), 스레드(Thread), 스케줄링(Scheduling)  (0) 2024.03.18
CPU, Memory  (0) 2024.03.18