Contents
프로세스 (Process) 란?
프로세스
는 실행 중인 프로그램
이다. 수많은 요소들로 구성된 개체로도 생각될 수 있다.
프로세스의 두 필수적인 요소는 프로그램 코드 및 그 코드와 연계된 데이터의 집합이다.
프로세서(CPU)가 프로그램 코드를 수행한다고 가정하면, 그 수행중인 개체가 프로세스
이다.
프로세스의 5가지 상태 (Five-State Process Model)
New(생성)
생성되었지만, 운영체제에 의해 수행 가능한 프로세스 풀로의 진입이 아직 허용되지 않은 프로세스
Ready(준비)
기회가 주어지면 수행될 준비가 되어있는 프로세스
Running(수행)
현재 수행 중인 프로세스
Blocked(블록/대기)
I/O 작업(입출력 연산) 완료 등과 같은 이벤트가 발생할 때까지 수행될 수 없는 프로세스
Exit(종료)
프로세스 수행이 중지되거나, 어떤 이유로 중단되었기 때문에 프로세스 풀에서 방출된 프로세스
디스패처 (Dispatcher) 란?
디스패처
란 프로세서(CPU)를 한 프로세스로부터 다른 프로세스로 교체해주는 프로그램이다.
쉽게 말해, 프로그램이 실행되다 중단되고, 다음 프로그램을 실행하게 해주는 프로그램이라 볼 수 있다.
위 사진의 Ready → Running
단계에서 , 스케줄러 또는 디스패처가 준비 상태에 있는 프로세스 중 하나를 선택해 실행하게 한다.
PCB (Process Control Block) 란?
프로세스 제어 블록(PCB)
은 운영체제가 프로세스를 관리하기 위해 필요한 정보들을 담고있는 자료구조이다.
PCB의 주요 역할은, 수행 프로세스를 인터럽트한 후 나중에 그 인터럽트가 발생되지 않은 것처럼 프로세스 수행을 재개할 수 있도록 충분한 정보를 유지하는 것이다.
즉, 이런 프로세스 정보를 담은 블럭들이 있어 스위칭이 되어도 기억하고 이어서 실행을 할 수 있다.
PCB
는 프로세스 식별자, 프로세서(CPU) 상태 정보, 프로세스 제어 정보를 담고있다.
프로세스 식별자 (Process ID)
각 프로세스를 다른 모든 프로세스로부터 구별하게 해주는 유일한 식별자
프로세스 상태 (Process State)
New, Ready, Running, Blocked, Exit 의 프로세스 상태
프로그램 카운터 (Program Counter)
프로그램에서 다음에 수행될 명령어의 주소
레지스터 저장 영역
누산기, CPU 레지스터, 범용 레지스터 등의 정보
프로세서 스케줄링 정보
스케줄링 및 프로세스 우선순위
메모리 포인터
프로세스와 연계된 프로그램 코드 및 데이터, 다른 프로세스들과 함께 공유되는 메모리 블록들에 대한 포인터
메모리 관리 정보
프로세스 주소공간 정보 저장
입출력 상태 정보
미해결 입출력 요청, 프로세스에 할당된 입출력 장치, 프로세스에 의해 사용 중인 파일들의 리스트 등
계정 정보
프로세서(CPU) 사용 시간, 실제 사용 시간, 계정 번호, 시간 제한