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 그림이 추가될 예정입니다...
...