[OS] 3. Process_API

Date:     Updated:

카테고리:

태그:

Process Creation

부모 프로세스는 자식 프로세스를 생성한다. 그리고 그 자식 프로세스는 부모 프로세스가 되어 다른 자식 프로세스를 생성할 수 있다. 그렇게 다른 많은 프로세스를 생성하면 결국 트리 형태를 형성한다.

자식 프로세스는 자원이 필요한다, OS가 주거나 부모로부터 공유한다. 공유에는 3가지 방식이 있다.

  • 부모-자식 모든 자원 공유
  • 부모 자원의 일부만 공유
  • 공유 X

부모와 자식은 동시에 실행되거나 자식이 종료될 때 까지 기다릴 수 있다.

자식은 fork() 함수를 통해 부모를 복제하거나 자식이 새로운 프로그램을 불러올 수 있다.

프로세스 생성을 요약하자면 다음과 같다

  • OS kernel 안에 PCB 생성
  • 메모리 할당
  • binary 프로그램 읽어오기
  • 프로그램 초기화

UNIX example

fork system call은 새로운 프로세스를 생성한다 이때 부모의 PCB를 복제하고 메모리를 할당한다.
execve system call은 fork 후에 사용된다. 디스크로 부터 binary 프로그램을 읽어오고 초기화한다.

Process Termination

프로세스는 마지막까지 실행되면 OS에게 그것을 삭제할지 물어본다 (exit)

  • 자식 프로세스는 부모 프로세스에게 상태 값을 리턴한다. (wait)
  • 자식 프로세스의 자원은 OS에 의해 할당이 해제된다.

만약 자식이 과도하게 자원을 사용하거나, 자식에게 할당된 일이 더이상 필요 없다면 부모는 자식 프로세스를 종료시킬 수 있다. (abort)

image

맨 위로 이동하기

OS 카테고리 내 다른 글 보러가기

댓글남기기