Posts [OS 운영체제] 프로세스(Process)란?
Post
Cancel

[OS 운영체제] 프로세스(Process)란?


Contents



프로세스 (Process) 란?


프로세스실행 중인 프로그램이다. 수많은 요소들로 구성된 개체로도 생각될 수 있다.

프로세스의 두 필수적인 요소는 프로그램 코드 및 그 코드와 연계된 데이터의 집합이다.

프로세서(CPU)가 프로그램 코드를 수행한다고 가정하면, 그 수행중인 개체가 프로세스이다.



프로세스의 5가지 상태 (Five-State Process Model)


image-20210112224216964


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) 사용 시간, 실제 사용 시간, 계정 번호, 시간 제한


This post is licensed under CC BY 4.0 by the author.

[프로그래머스] 두 개 뽑아서 더하기 / C++

[프로그래머스] 문자열 내 p와 y의 개수 / C++

Comments powered by Disqus.