10. Operations on Processes
fork(), exec(), exit() .. 등은 system call임.
- Process Creation (프로세스 생성)
- fork() : OS에게 프로세스를 생성해달라고 요청하는 system call
- Process Execution (프로세스 실행)
- exec() : file system에 어떤 실행파일이 있는데, 이 실행파일을 실행시켜달라고 요청하는 system call
- Process termination (프로세스 종료)
- exit() : 프로세스를 종료시켜달라고 요청하는 system call
- _exit()
- abort()
- wait()
- Cooperating processes (프로세스 간 협력)
: 두 개의 프로세스가 하나의 목적으로 동작할 때, 동기화 하고, 서로 데이터를 전달하고 .. 하는 것.
- Inter-Process Communication (IPC) 와 관련된 system call들.
ㄴ 다양하게 많아서 운영체제 수업 시간엔 다루지 않겠습니다.
11. Process Creation : Unix/Linux - fork()
- 동작 절차
1) 새로운 PCB 하나 생성. (Creates and initializes a new PCB)
: 프로세스를 하나 더 만드는 거니까, 그 프로세스를 다룰 PCB가 하나 더 필요함. 이 PCB에 새 프로세스와 관련해 필요한 정보들을 다 채워야함.
2) 메모리 공간을 잡음. (Creates and initializes a new address space)
: 프로세스는 메모리에 자리를 잡고 수행되는 거니까, 해당 메모리 공간을 잡아야 함.
3) Initializes the address space with a copy of the entire contents of the address space of the parent
: fork()를 통해 자기 자신과 완전히 똑같은 프로세스를 하나 만듦.
Parent process가 위에 저만큼의 메모리 공간을 차지하면서 동작을 하고 있었다고 할 때,
fork()를 하면 이거랑 똑같은 걸 copy하는 거니까
위의 parent process와 똑같은 내용이 아래 child process에 메모리 공간도 똑같이 copy가 된다.
4) 실제 메모리 뿐만 아니라, 운영체제 안에서 parent process가 하던 작업들도 다 똑같이 copy함. (또는 share할 수 있게 함.)
5) Process 상태를 ready 상태로 만들고, PCB를 ready queue에 집어넣음.
: 프로세스 하나를 다 만들었으니까 얘를 실행시킬 수 있게 준비시키는 것임.
6) fork()의 return value
: Returns the child's PID to the parent, and zero(0) to the child
'3-2 > 운영체제' 카테고리의 다른 글
OS - Ch03.Processes (1) (0) | 2023.03.27 |
---|