티스토리 뷰

운영체제/이론

(18) Process Management(Process termination)

geonwoopaeng@gmail.com 2020. 9. 17. 16:06

### Process termination ###

: 프로세스 종료 발생 대부분의 os에서 exit() 시스템 호출이 프로세스 종료에 사용됩니다.(process 끝)

: os는 종료 될 process와 관련된 모든 resource를 할당 해제 합니다.

<Cascading termination>

: parent process 종료되면 모든 child proess를 종료해야 합니다.

(계단식 종료, 순차적(폭포수) 종료)

: 종료는 os에 의해 시작됩니다.

<Two issues in process termination>

1. Zombie process(unerased process, ghost process)

: child process가 종료되었지만 parent process가 child process의 종료 상태를 회수 하지 않았을 경우 child process를 zombie process 라한다.

(child process 가 작업을 끝내고 exit() -> parent process 가 wait() 안 할 경우)

: 종료된 process일 경우 process의 정보가 process table에 남는다.

-> parent process가 wait()를 하지 않으면 child process가 exit()되지만 정보가 남아 있는 상태(zombie process)

2. Orphan process

: child process가 exit()하기 전에 parent process exit()하는 경우

=> wait()를 실행 해줄 process 가 없다(회수 해줄 process가 없다)

<해결>

- 모든 process의 parent process(system d process) 가 orphan process를 인지 해서 system d process가 wait()해서 모든 정보 삭제 해 준다.

 

<Process Termination Command>

1. exit()

: process 자체를 제거하기 위한 System call

: process resource는 os에 의해 할당 해제됩니다.

2. abort()

: parent process가 child process를 종료하기 위한 System call

<이유>

1. child process가 할당된 자원을 초과할 때

2. parent가 exit할 때

 

### Interprocess Communication ###

: process 상호간에 작용하는 통신

< Cooperating processes(다중 process 협력) >

: 동일 정보 공유

: 병렬 및 분산 계산

: 모듈성

< *Interprocess communication(IPC) >

출처: Operating System Concepts 10th Ed (John Wiley & Sons, Inc. 2018)

 

 

 

1. Shared memory based IPC (메모리 공유)

: 공동으로 작업을 처리할 수 있는 공유 메모리 공간을 통한 process 통신

: 통신은 os가 아닌 process에 의해 제어가 됩니다.

: 공유 데이터의 일관성을 유지하려면 동기화가 필요합니다.

2. *Message passing based IPC (메세지 전달)

: 공동의 공간이 주어지지 않고 협업가능 process들이 직접적으로 data를 주고 받는 형식

: os를 통해 제어가 됩니다.

: 보내기 / 받기를 통해 수행됩니다.

: message 크기는 고정적이거나 가변적입니다.

<message passing based IPC communication Type>

1. Direct communication(직접 통신)

: kernel을 통해 바로 message를 주고 받는 형식

: 각 process 가 명시적으로 이름(process id)을 밝힌다.

: send(P, msg): send a msg to proc P.

: receive(Q, msg): recv a msg from proc Q.

2. Indirect communication(간접 통신)

: 바로 보내지 못하고 중간 매체(mail boxes, 공유memoryX, 연산)를 통해 주고 받는 형식

: 여러개의 mail box 생성 가능

: 각 mail boxe는 unique한 id를 가진다.(mail box id)

: 각 process쌍은 여러 통신 링크를 공유합니다.

: send(A, msg): send a msg to mailbox A.

: receive(A, msg): recv a msg from mailbox A.

 

반응형

'운영체제 > 이론' 카테고리의 다른 글

(20) Multithreading Models  (0) 2020.09.19
(19) Thread  (0) 2020.09.19
(17) Process Management(Process creation)  (0) 2020.09.17
(16) Context Switching  (0) 2020.09.17
(15) Processing Scheduling  (0) 2020.09.17
공지사항
최근에 올라온 글