프로세스 관련 함수
Win32 API | UNIX |
CreateProcess(); | fork(); exec(); |
ExitProcess(); | exit(); |
WaitForSingleObject(); | wait(); |
새로운 프로세스 생성
- OS는 프로세스 마다 가상메모리 공간을 할당한다.
- 새로운 프로세스가 정상 작동하기 위해 가상 메모리 공간이 준비되어야 한다.
- Process + PCB + VMS(가상 메모리 공간)
- 새로운 프로세스 생성 시 부모 프로세스(기존)와 자식 프로세스(새로운)로 관계가 형성된다.
fork와 exec의 차이
- fork(): 새로운 프로세스를 위해 메모리를 할당한다, 기존 프로세스를 복사한다.
- exec(): 새로운 프로세스를 위해 메모리를 할당 하지 않고, exec()에 의해 호출된 프로세스만 메모리에 남게된다.
- fork()는 프로세스가 하나 더 생기는 것이다. → 새로운 PID가 생성됨. (새로운 세입자를 위해 새 집을 구매)
- exec()는 새로운 프로세스에 의해 기존 프로세스가 대체된다. → 기존 PID 사용 (기존 세입자를 새로운 세입자가 대체)
- fork()는 소요되는 리소스가 많아 비효율적이며, exec()은 기존꺼를 그대로 사용하여 대체하므로 효율적이다.
참고
'IT 지식 > 운영체제' 카테고리의 다른 글
프로세스 휴식, 보류 상태와 문맥(Context) (0) | 2024.08.24 |
---|---|
프로세스와 스레드 (0) | 2024.08.23 |
CPU 예측이 가져오는 문제점(멜트다운, 스펙터) (0) | 2024.08.22 |
CPU와 캐시 메모리 (1) | 2024.08.21 |
DMA와 고성능 소켓 (0) | 2024.08.20 |