4-2 Process Management

Copes·2022년 10월 29일
0

OS

목록 보기
7/15

Copy On Write(COW) : Write가 발생했을 시 Copy한다.

A process is created by fork() system call.

  • 프로세스를 생성하는 것
  • pid = 0 : child
  • pid ≠ 0 : parent

A process can execute a different program by the exec() system call.

  • 새로운 프로그램으로 덮어씌우는 것

wait() system call

프로세스 A가 wait() 시스템 콜을 호출하면

  • 커널은 child가 종료될 때까지 프로세스 A를 sleep 시킨다. (block 상태)

  • Child process가 종료되면 커널은 프로세스 A를 깨운다. (ready 상태)

  • 자식이 종료될 때까지 기다리는 시스템 콜

exit() system call

프로세스의 종료

  • 자발적 종료

    • 마지막 statement 수행 후 exit() 시스템 콜을 통해
    • 프로그램에 명시적으로 수행하지 않아도 main 함수가 리턴되는 위치에 컴파일러가 넣어준다.
  • 비자발적 종료

    • 부모 프로세스가 자식 프로세스를 강제 종료시킴
      • 자식 프로세스가 한계치를 넘어서는 자원 요청
      • 자식에게 할당된 태스크가 더 이상 필요하지 않음
    • 키보드로 kill, break 등을 친 경우
    • 부모가 종료하는 경우
      • 부모 프로세스가 종료되기 전에 자식 프로세스들이 먼저 종료됨
  • 자원을 반납하고 부모 프로세스에게 알림

프로세스 간 협력

  • 독립적 프로세스(Independent process)
    • 프로세스는 각자의 주소 공간을 가지고 수행되므로 원칙적으로 하나의 프로세스는 다른 프로세스의 수행에 영향을 미치지 못함
  • 협력 프로세스(Cooperating process)
    • 프로세스 협력 매커니즘을 통해 하나의 프로세스가 다른 프로세스의 수행에 영향을 미칠 수 있음
  • 프로세스 협력 매커니즘 (IPC : Interprocess Communication)
    1. 메시지를 전달하는 방법(Message Passing) : 커널을 통해 메시지 전달

      • 프로세스 사이에 공유 변수를 일체 사용하지 않고 통신하는 시스템

      방법

      1) Direct Communication : 통신하려는 프로세스의 이름을 명시적으로 표시

      2) Indirect Communication : mailbox (or port)를 통해 메시지를 간접 전달

    2. 주소 공간을 공유하는 방법(Shared Memory) : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 Shared Memory 매커니즘이 있음

      • 원래는 독자적인 공간을 가지고 있으나, Shared Memory 방법을 공유한다면 메모리를 공유할 수 있다.
      • Thread : Thread는 사실상 하나의 프로세스이므로 프로세스 간 협력으로 보기는 어렵지만 동일한 process를 구성하는 thread들 간에는 주소 공간을 공유하므로 협력이 가능


0개의 댓글