ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [OS] Process Management
    Computer Science/Operation System 2020. 4. 9. 12:49

    ✔️ 프로세스의 생성

    1️⃣ 부모 프로세스가 자식 프로세스를 생성한다.

    2️⃣ 프로세스는 트리구조를(계층 구조) 형성한다.

     

    3️⃣ 프로세스는 자원을 필요로 한다.

     OS로부터 자원을 할당 받는다.

     부모 프로세스의 자원을 공유한다.

    4️⃣ 자원의 공유

     부모와 자식이 모든 자원을 공유하는 모델

     일부를 공유하는 모델

     전혀 공유하지 않는 모델 (일반적임)

    5️⃣ 프로세스 수행(Excution)

    부모와 자식이 공존하며 수행되는 모델

    자식이 종료될 때까지 부모가 기다리는(wait, blocked)모델

    6️⃣ 프로세스 주소 공간

    자신은 부모의 공간을 복사한다. (Context까지 다 복사)

    자식은 그 공간에 새로운 프로그램을 올린다. 

    유닉스에서는 fork() 시스템 콜로 부모를 복사하고 주소공간을 할당한다. 그 다음 exec() 시스템 콜을 통해 새로운 프로그램을 메모리에 올린다.

     


    ✔️ 프로세스와 관련한 시스템콜

    fork() : create a child(copy)

    exec() : overlay new image

    wait() : sleep until child is done

    exit() : frees all the resources, notify parent

     

     


    ✔️ IPC ( Inter Process Communication)

    1️⃣ 독립적 프로세스

    ◾ 프로세스는 각자의 주소 공간을 가지고 수행되므로 원칙적으로 하나의 프로세스는 다른 프로세스의 수행에 영향을 미치지 못함

    2️⃣ 협력 프로세스

    프로세스 협력 메커니즘을 통해 하나의 프로세스가 다른 프로세스 수행에 영향을 미칠 수 있음

    3️⃣ 프로세스 간 협력 메커니즘 ( IPC )

    ◾ 메세지를 전달하는 방법 ( message passing ) : 커널을 통해 메세지 전달( Direct Communication, Indirect Communication 등이 있다. )

    ◾ 주소 공간을 공유하는 방법 ( shared memory ) : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 shared memory 메커니즘이 있다.

    ◾ 쓰레드(thread)는 사실상 하나의 프로세스이므로 프로세스 간 협력으로 보기는 어렵지만 process를 구성하는 thread들 간에는 주소 공간을 공유하므로 협력이 가능하다.

     

    'Computer Science > Operation System' 카테고리의 다른 글

    [OS] DeadLock  (0) 2020.04.23
    [OS] Process Synchronization  (0) 2020.04.14
    [OS] CPU Scheduling  (0) 2020.04.10
    [OS] Process / Thread  (0) 2020.04.09
    [OS] Operating System Introduction  (0) 2020.04.09

    댓글

Designed by Tistory.