Process Management

Process Creation(프로세스 생성)

  • 부모 프로세스(parent process)에 의해 자식 프로세스(child process)가 생성됨.
  • 프로세스의 트리(계층 구조)생성
  • 프로세스는 자원을 필요로 함.
    • 이 자원은 OS로부터 받음.
    • 부모프로세스와 자식프로세스가 자원을 공유하는 경우도 있지만, 원칙은 독립적이다.
    • Copy-on-Write(COW): write가 발생할 때 copy함 -> 자식 프로세스가 그러함.
  • 실행(Execution)
    • 부모프로세스와 자식프로세스가 같이 실행되는 경우도 있고,
    • 자식 프로세스가 끝날 때까지 부모 프로세스가 block되는 경우도 있다.
  • 주소 공간(Address Space)
    • 자식은 부모의 공간을 복사(모든 메모리/프로그램 카운터 등 복사)함. 여기에 새로운 프로그램 덮어씌움.
    • fork(), exec()이 각각 복제와 덮어씌우는 시스템 콜임.

fork()

  • fork()를 한 시점에 자식 프로세스는 부모 프로세스의 모든 데이터를 복제한다.
  • 그리고 fork()가 된 시점 바로 다음부터 자식 프로세스가 실행된다.
  • 이 때, 자식과 부모 프로세스를 구분하는 것은 프로세스ID다.
    • 자식은 0, 부모는 양수

exec()

  • fork()로 복제된 자식 프로세스, 혹은 자기 자신의 프로세스 중간에 exec()을 통해 새로운 프로그램으로 덮어씌운다.
  • exec()이 된 이후에는 원래 있던 프로그램에 대한 데이터는 사라지고, exec()으로 실행되는 프로그램만 남아 실행된다.

Process Termination(프로세스 종료)

  • 프로세스가 마지막 명령을 수행한 뒤 운영체제에게 알려줌 -> exit() 시스템 콜
    • 자식이 부모에게 output을 보냄. -> wait() 에 의함
  • 부모 프로세스가 자식 프로세스의 수행을 종료시킴 -> abort
    • 자식이 할당 자원 한계치를 넘어섬
    • 더이상 자식에게 할당한 태스크가 필요하지 않음
    • 부모가 먼저 종료(exit)하는 경우
      • 부모가 종료되면 자식은 수행X -> 부모가 종료되기 전 자식을 모두 정리

wait()

  • 일반적으로 자식 프로세스가 있을 때 자식 프로세스가 끝날 때까지 기다릴 때 사용.
  • pid(process id)에 따라 조건 분기를 나누고 부모 프로세스 블럭에 wait() 시스템 콜을 하는 방식으로 사용.

exit()

  • 프로세스 종료시킬 때 사용.
    • 자발적 종료: 마지막 문장 실행 후 exit()
    • 비자발적 종료: 부모 프로세스가 자식 프로세스를 강제 종료하는 경우, 키보드로 kill, break 등을 한 경우, 부모 프로세스가 종료되는 경우.

프로세스간 협력

  • 독립적 프로세스(independent process)
    • 프로세스들은 각자 자신만의 공간을 가지고, 다른 프로세스의 수행에 영향을 미치지 않는 것이 원칙.
  • 협력 프로세스(cooperating process)
    • 협력 메커니즘을 통해 프로세스들끼리 영향을 미치는 것.
  • 프로세스 간 협력 메커니즘(IPC: InterProcess Communication)
    • message passing: 메시지 전달하는 방법. 커널을 통해 메시지 전달.
    • shared memory: 주소 공간을 공유하는 방법. 이 또한 OS를 통해 공유할 수 있음.
    • thread: 동일한 프로세스에서 주소 공간을 공유한다는 차원에서 스레드 또한 프로세스 간 협력 메커니즘으로 볼 수 있음.

Message Passing

  • 프로세스 사이에 공유 변수(shared variable) 사용하지 않음.
  • 커널을 통해 메시지 전달.
  • Direct Communication
    • 통신하려는 프로세스의 이름을 명시적으로 표시
  • Indirect Communication
    • mailbox(or port)를 통해 간접적으로 전달

출처

해당 내용은 KOCW 강의 중 이화여자대학교의 운영체제-반효경 강의의 내용을 정리한 것입니다.

댓글남기기