운영체제(3) - 프로세스(2)

‘운영체제’를 공부하여 정리한 내용입니다.

3. Operation on Processes

프로세스 생성

  • 프로세스는 실행 도중에 여러 개의 새로운 프로세스들을 생성할 수 있다. (fork())

    • 생성하는 프로세스: 부모 프로세스
    • 생성되는 새로운 프로세스: 자식 프로세스
    • 이 작업의 결과로 우리는 프로세스들의 부모 자식 관계가 일종의 트리를 이룬다는 것을 쉽게 상상할 수 있다.
  • 자식 프로세스의 특징

    • 부모 프로세스의 복사본이다.
    • 혹은, 자식 프로세스가 자신에게 적재될 새로운 프로그램을 가지고 있다.
      • 우선 부모 프로세스를 복사하면서, PCB 공간을 그대로 복사해 온다
      • 이를 새로운 프로그램에 맞게 수정하여 사용한다. (Unix의 exec())
  • 프로세스 생성 후 동작

    • 부모 프로세스가 자식 프로세스가 끝나기를 기다릴 수 있다.
    • 혹은 병렬로 실행된다.
  • 프로세스가 종료될 때

    • 자식 프로세스의 종료
      • 부모 프로세스가 자신의 자식 프로세스를 종료시키는 것이 가능하다.(오직 부모 프로세스만)
      • 자신의 Task를 마치고 자식 프로세스가 그냥 종료될 수 있다.
      • 종료 되면 exit라는 system call을 사용해서 부모 프로세스에게 상태값을 반환하는 것이 가능하다(부모가 wait() 하고 있다면)
      • 자신에게 할당된 자원을 모두 반납 한다.
    • 부모 프로세스의 종료
      • 이 때, 자식 프로세스는 계속 살아있다면,
      • 자식 프로세스의 새로운 부모 프로세스는 init process가 되고,
      • 트리구조가 수정된다.
      • 중요한 것은 init 프로세스 이후의 모든 프로세스는 무조건 부모 프로세스가 있다는 것이다.

4. 프로세스간 통신 (interprocess Communication: IPC), 5. IPC 시스템의 사례

Shared memory

  • (내용 생략)

Message passing (MPI)

  • (내용 생략)

6. Communication in Client-Server Systems

소켓

  • (내용 생략)

Remote Procedure Calls, RPC

  • (내용 생략)

Pipes

  • (내용 생략)

Leave a Comment