[OS] Process Management

East Silver·2021년 12월 26일
0

프로세스 생성

  • 운영체제가 최초의 프로세스를 생성하면, 이미 존재하는 프로세스가 다른 프로세스를 복제 생성한다. 이때 기존 프로세스를 부모 프로세스라 하고, 새로 생긴 프로세스를 자식 프로세스라고 부른다.
  • 프로세스의 트리 (계층 구조)를 형성한다.
  • 프로세스는 자원을 필요로 한다.
    • 운영체제에게 받는다.
    • 부모와 공유한다.
  • 자원의 공유
    • 부모와 자식이 모든 자원을 공유하는 모델
    • 일부를 공유하는 모델
    • 전혀 공유하지 않는 모델(잉반적인 모델)
  • 수행 (Execution)
    • 부모와 자식이 공존하며 수행하는 모델 (이때는 부모와 자식이 CPU를 획득하기 위해 경쟁하는 관계가 됨)
    • 자식이 종료(terminate)될 때까지 부모가 기다리는(wait) 모델

주소 공간

  • 자식은 부모의 공간을 복사한다. (프로세스 ID를 제외한 운영체제 커널 내의 정보와 주소 공간의 정보)
  • 자식은 그 공간에 새로운 프로그램을 올린다.
  • 유닉스의 예
    • fork() 시스템 콜이 새로운 프로세스를 생성한다.
      • 부모를 그대로 복사
      • 주소 공간을 할당한다.
    • fork() 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램으로 주소 공간을 덮어 씌운다.

프로세스 종료

  • 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려준다. (exit)
    • 자식이 부모에게 output data를 보낸다.(via wait)
    • 프로세스의 각종 자원이 운영체제에 반납된다.
  • 부모 프로세스가 자식의 수행을 종료 시킨다. (abort)
    • 자식이 할당 자원의 한계치를 넘어선다.
    • 자식에게 할당된 task가 더 이상 필요하지 않는다.
    • 부모가 종료(exit)한다.
      • 운영체제는 부모 프로세스가 종료하는 경우 자식이 더 이상 수행되도록 주지 않는다.
      • 단계적인 종료

시스템 콜

fork() 시스템 콜

exec() 시스템 콜

wait() 시스템 콜

exit() 시스템 콜

abort() 시스템 콜

프로세스 간의 협력

독립적 프로세스 (Independent process)

협력 프로세스 (Cooperating process)

프로세스 간 협력 메커니즘 (IPC: Interprocess Communication)

메시지 전달 방식 (Message Passing)

공유 메모리 방식 (Shared Memory)

profile
IOS programmer가 되고 싶다

0개의 댓글