What is a Process?

SystemsOperating Systems
Yujin

What is a Process?

Process is a program in execution.

It is a unit of work within the system.

Process == PCB + Address Space

Q. 프로세스는 무엇인가요?

A. (당신의 대답)


프로그램과 프로세스의 차이

Program is a passive entity

프로그램은 디스크에 저장된 명령어(instructions)와 데이터(data)의 정적인 집합(file)이다.

Process is an active entity

프로세스는 그 프로그램이 실행되어 할당된 자원(CPU, memory, files)과 실행 상태(registers, stack)를 포함하는 동적 단위이다.

자, 정리해 봅시다. 프로그램은 디스크에 저장된 실행 가능한 정적 파일입니다. 프로세스는 그 프로그램이 실행되어 자원과 실행 상태를 가지는 동적 단위이며 OS가 스케줄링 및 관리하는 대상입니다.

추가로, 하나의 프로그램은 여러 개의 프로세스로서 실행될 수 있다는 점에 유의해야 합니다. 즉, 프로그램은 여러 개의 instance로서 실행될 수 있습니다.

예시 상황을 봅시다. Windows 11 Home에서 notepad.exe라는 프로그램을 더블 클릭해서 실행하면 notepad라는 프로세스가 1개 생성됩니다. 한 번 더 더블 클릭해서 실행하면 notepad라는 프로세스가 1개 더 생성됩니다. 더블 클릭을 2번 했으니까, 총 2개의 notepad 프로세스가 생성된 것입니다. 즉, notepad.exe의 인스턴스가 총 2개 만들어진 것이죠.


프로세스의 주소 공간(Address Space)

프로그램은 디스크(secondary storage)의 파일시스템 자료구조로 관리됩니다. (이에 대한 자세한 내용은 나중에 배우기로 하시죠.)

프로세스는 인-메모리(in-memory) 자료구조로 관리됩니다. OS가 프로세스에게 main memory의 일부를 할당하기 때문에 당연하게 받아들여집니다. 여기서, 그 프로세스는 할당 받은 main memory 용량을 자기 자신만을 위한 주소 공간(address space)로 사용합니다.

stack

 
 
 
heap
data
text

위 그림은 하나의 프로세스에 대한 In-Memory Layout을 나타냅니다. Dual-Mode Operation에서 mode bit = 1일 때, 즉 user process에 대한 주소 공간을 간단히 보여줍니다.

그림을 전체적으로 보면 낮은 주소 쪽에 text section이 있고 높은 주소 쪽에 stack 영역이 있습니다. Stack은 높은 주소에서 낮은 주소 방향으로(top-down) 확장되고, heap section은 낮은 주소에서 높은 주소 방향으로(bottom-up) 확장됩니다.

Address Space에 대해 자세히 알아보겠습니다.

  • text section: program code
  • data section: stores static and global variables
  • heap section: free memory pool for dynamic allocation
  • stack area: used in function calls(parameter, return address, local variables, etc) and context switch(register values including PC and stack pointer)

참고 사항: Section과 Segment의 차이


프로세스 상태(Process State)

프로세스가 실행됨에 따라, 상태(state)가 변합니다.

  • new: The process is being created
  • ready: The process is waiting to be assigned to a processor
  • running: Instructions are being executed
  • waiting: The process is waiting for some event to occur
  • terminated: The process has finished execution

Basic State Transition Diagram of a Process 그림이 추가될 예정입니다...

Process State Transition Diagram new ready running waiting terminated admitted dispatch preempt wait event occurred exit

...