Skip to content

Latest commit

 

History

History
52 lines (46 loc) · 2.91 KB

chapter4-lily.md

File metadata and controls

52 lines (46 loc) · 2.91 KB

Chapter 4️⃣ Process Management

1. 프로세스 생성 (Process Creation)

  • 부모 프로세스가 자식 프로세스를 생성

  • 프로세스의 트리 형성 (계층 구조)

  • 프로세스는 자원을 필요로함, 자원을 수급하는 방법

    • 운영체제로부터 받음
    • 부모와 공유한다 (공유하지 않는 모델이 일반적)
    • COW : write가 발생했을 때 Copy하겠다.
  • 수행 (Execution) 방법

    1. 부모와 자식이 공존하며 수행되는 모델
    2. 자식이 종료(terminate)될 때까지 부모가 기다리는(wait) 모델
  • 주소 공간 (Address space) 배정 방법

    • 자식은 부모의 공간을 복사함 (binary and OS data)
    • 처음엔 부모 프로세스와 동일한 프로그램을 실행
    • 자식 프로세스는 부모 프로세스의 동일한 사본의 메모리 세그먼트를 가짐
    • Copy-On-Write 기법이 많이 사용됨, 쓰기가 일어나기전까지는 물리메모리의 동일 사본을 참조하다가 쓰기가 일어나면 물리메모리의 복사가 이루어짐.
    • exec() 를 호출하여 자식은 그 공간에 새로운 프로그램을 올림

예) 유닉스에서 프로세스 생성하는 방법

  • fork() : 새로운 프로세스 생성하는 시스템 콜, 프로세스가 자신을 복제해서 새로운 프로세스를 생성
    • 자식 프로세스는 fork() 다음부터 실행됨
    • fork() 의 리턴 값이 부모는 양수, 자식은 0
  • exec() : 새로운 프로그램을 메모리에 올리는 시스템 콜, 새로운 프로그램을 덮어씌움
    • 다른 프로그램을 실행할 수 있음
    • 기존의 메모리 공간에 새로운 프로그램을 올림

2. 프로세스 종료 (Process Termination)

  • 자식이 다 죽어야 부모도 죽을 수 있다.
  1. 자발적 종료 exit
    • 마지막 구문 수행후 exit 시스템 콜 호출
    • wait() 시스템 콜
      • 자식이 종료될 때까지 부모가 기다리는 모델
      • 자식이 부모에게 output data를 보냄 wait 통해서
      • 자식이 종료되면 커널은 부모 프로세스를 깨움
  2. 강제 종료 abort
    • 자식이 할당 자원의 한계치를 넘어 사용시
    • 자식에게 할당된 태스크가 더 이상 필요하지 않을 시
    • 부모가 종료하는 경우
      • 운영체제가 자식도 죽임.
      • 자식 프로세스가 먼저 종료되고 부모 프로세스가 종료됨 (단계적인 종료)

3. 프로세스 간 협력

  • 독립적 프로세스 (Independent process)
    • 프로세스가 각자의 주소 공간을 가지고 수행되므로 하나의 프로세스가 다른 프로세스의 수행에 영향을 미치지 못함
  • 협력 프로세스 (Cooperating process)
    • 프로세스 간 협력 메커니즘
    1. 메시지 전달
    2. shared Memory (주소 공간을 공유하는 방법)
    3. thread