IT 지식/운영체제

프로세스 생성과 복사

Security Engineer 2024. 8. 25. 00:12

프로세스 관련 함수

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()은 기존꺼를 그대로 사용하여 대체하므로 효율적이다.

 

 

 

 

 

 

 

 

 

참고

https://www.inflearn.com/course/%EA%B3%B0%EC%B1%85-%EC%89%BD%EA%B2%8C-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C

 

https://woochan-autobiography.tistory.com/207