포스트

[OS] 프로세스의 개요

프로세스의 정의

프로세스는 일반적으로 CPU(프로세서)에 의해 처리되는 사용자 프로그램,
시스템 프로그램 등 실행중인 프로그램을 의미합니다.

프로세스는 실행중인 프로그램이라는 정의 외 여러 정의가 존재합니다.

  • PCB(Process Control Block)을 가진 프로그램
  • 메인메모리에 적재된 프로그램
  • 운영체제가 관리하는 실행 단위

이 외에도 여러 정의가 존재하지만 가장 중요한 것은 역시, 실행중이라는 의미입니다.


프로세스 제어 블록

PCB는 운영체제가 프로세스에 대한 정보를 저장하는 공간의 이름입니다.
모든 프로세스는 생성될 때, PCB가 생성되고 프로세스가 종료될 때, PCB가 제거됩니다.

운영체제가 관리하는 프로세스의 정보는 아래와 같습니다.

저장 정보설명
현재 상태프로세스의 준비, 대기, 실행 등의 상태 표시
포인터부모/자식 프로세스 포인터, 현재 메모리 포인터, 자원 메모리 포인터
고유 식별자다른 프로세스와 식별할 수 있는 식별자
스케줄링 및 우선순위운영체제가 사용하는 스케줄링 정보와 실행 우선순위

이 외에도 CPU 레지스터 정보, 주기억장치 관리 정보 등 여러 정보들이 존재합니다.


프로세스 상태 전이

프로세스 상태 전이는 프로세스가 메인메모리에 적재되어 있는 시간동안 상태가 변화하는 것을 의미합니다.
예를들어 프린트 지시, 외장메모리 복사 등 시간이 오래 걸리는 작업을 수행하는 동안
해당 프로세스가 CPU(프로세서)를 독점하면 다른 프로세스는 오랜 시간동안 대기해야 합니다.

따라서 이러한 비효율적 작업처리를 개선하고자
프로세스의 상태를 제출, 접수, 준비, 실행, 대기로 나눠 상태에 따라 CPU를 사용합니다.

상태전이

상태설명
제출사용자가 시스템에 작업을 제출할 상태
접수제출된 작업이 디스크 할당 위치에 저장된 상태
준비프로세스가 CPU를 할당받기 위해 준비하는 상태
준비상태인 프로세스들은 준비큐에 존재
실행준비상태의 프로세스가 CPU를 할당받아 실행되는 상태
CPU의 사용은 할당된 시간만큼 사용하고 반납
I/O작업이 필요하면 대기상태로 전이
대기프로세스가 외부 작업을 대기하고 있는 상태
작업이 끝나면 준비상태로 전이
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.