Fall in IT.

Process Management 알아보기 본문

컴퓨터 & 네트워크/운영체제

Process Management 알아보기

D.Y 2018. 1. 22. 22:56


안녕하세요.

오늘은 프로세스 관리(Process Management)하는 방법에 대해서 알아보도록 하겠습니다.



프로세스를 관리하는 시스템콜 4가지

  1. fork()
    - 부모 프로세스를 복제하는 시스템 콜
  2. exec()
    - 어떤 프로그램을 새로운 프로세스로 태어나도록 하는 시스템 콜
  3. wait()
    - 자식 프로세스가 종료될때까지 기다렸다가(blocked) 자식이 죽으면 ready 상태로 변경되는 시스템 콜 
    - shell(command) 프로그램도 wait()시스템 콜을 사용하는 대표적인 프로그램 입니다.
  4. exit()
    - 프로세스를 종료하는 시스템 콜
    - kill, break 등으로 프로세스를 죽이는 경우, 또는 윈도우창에서 X버튼을 누르는 경우 모두 해당 됩니다.


조금 더 자세히 알아보겠습니다.


fork()

  • 부모 프로세스 id는 양수로 할당되고, 자식 프로세스 id는 0으로 할당 됩니다.
  • 부모 프로세스를 복제하여 생성된 자식 프로세스는 메모리를 처음에는 공유합니다.
    (최초에는 Program Counter만 복제해서 같은 주소공간을 바라보고 있습니다.)
  • 나중에는 자식 프로세스가 write하는 순간(즉, 별도의 데이터 저장이 필요한 순간) 메모리를 할당 받습니다.
  • 이를 Copy-on-write(COW)라고 합니다.
  • 자식 프로세스는 fork()된 시점 이후 문맥부터 실행됩니다.  


fork() / exec() / wait() / exit()

  • 전체적인 흐름도

참조
  • http://www.kocw.net/home/search/kemView.do?kemId=1046323#


Comments