운영체제 - 프로세스 관리(1)

WooHyeong·2022년 12월 30일
0

OS(Operating System)

목록 보기
6/7

프로세스 생성 (Process Creation)

  • 부모 프로세스(Parent process)가 자식 프로세스(children process)생성
  • 프로세스의 트리(계층 구조) 형성
  • 프로세스는 자원을 필요로 함
    • 운영체제로부터 받는다.
    • 부모와 공유한다.
  • 자원의 공유
    • 부모와 자식이 모든 자원을 공유하는 모델
    • 일부를 공유하는 모델
    • 전혀 공유하지 않는 모델
  • 수행 (Execution)
    • 부모와 자식은 공존하며 수행되는 모델
    • 자식이 종료(terminate)될 때까지 부모가 기다리는(wait)모델

프로세스의 생성은 부모가 자식을 생성한다. 부모 프로세스의 주소 공간을 자식 프로세스가 그대로 복사한다. 주소 공간을 복사하고 운영체제에 있는 data(pcb,자원 등) 또한 복사한다.

  • 주소 공간 (Address space)
    • 자식은 부모의 공간을 복사함 (binary and OS data)
    • 자식은 그 공간에 새로운 프로그램을 올림
  • 유닉스의 예
    • fork() 시스템 콜이 새로운 프로세스를 생성

      • 부모를 그대로 복사 (OS data except PID + binary)
      • 주소 공간 할당
    • fork 다음에 이어지는 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올림
      자식 프로세스를 만들지 않고 exec()을 해버리면 완전히 새로운 프로세스로 바뀔 수도 있다.
      사용자가 자식 프로세스를 직접 만드는 것은 아니고, 운영체제를 통해서 생성이 가능하다.

프로세스 종료 (Process Termination)

  • 프로세스가 마지막 명령을 수행한 후 운영체제에게 이를 알려줌(exit)
    • 자식이 부모에게 output data를 보냄(via wait)
    • 프로세스의 각종 자원들이 운영체제에게 반납됨

자발적으로 프로세스가 종료될 때는 exit() 시스템 콜을 해주면 되고,
비자발적으로 프로세스를 강제 종료시키는 경우에는 abort() 시스템 콜을 해주면 된다.

  • 부모 프로세스가 자식의 수행을 종료시킴 (abort)
    • 자식이 할당 자원의 한계치를 넘어섬

    • 자식에게 할당된 태스크가 더 이상 필요하지 않음

    • 부모가 종료(exit)하는 경우

      • 운영체제는 부모 프로세스가 종료하는 경우 자식이 더이상 수행되도록 두지 않는다.
      • 단계적인 종료 (자식의 자식 프로세스를 종료시킨 후에 그 부모들의 프로세스가 종료)

본 포스팅은 이화여대 반효경교수님 운영체제 강의를 바탕으로 작성하였습니다.

profile
화이링~!

0개의 댓글