[OS] 프로세스 - 2 (Process)
William Stallings의 『Operating Systems, Internals and Design Principles (9th Ed.)』 을 토대로 작성하였음.
👑 프로세스의 종료
-
프로세스의 종료 상황
프로세스는 생성되고
running상태를 거치면서 여러 상황에 따라 종료될 수 있다.-
프로세스가 exit() system call 을 호출할 때
프로세스가 자발적으로 종료하기 위해서는
exit() system call을 호출해야 한다.
이때 프로세스는terminated상태로 전환된다. -
프로세스가 처리할 수 없는 signal을 수신할 때
프로세스가 처리할 수 없는
signal을 수신하면 종료되는데, 이는 비정상적인 종료를 의미한다. -
커널 모드에서 실행 중 복구할 수 없는 CPU exception이 발생할 때
-
부모 프로세스가 자식 프로세스를 종료시킬 때
부모 프로세스가 자식 프로세스를 필요로 하지 않는 경우 종료시킬 수 있다.
-
프로세스가 종료되면 다음과 같은 단계를 따르게 된다.
-
OS가 프로세스의 자원을 해제하고, 부모 프로세스에게
signal(death of child signal)을 보낸다. -
OS는 프로세스를 종료 상태로 전환하고, 부모 프로세스가 자식 프로세스의 데이터를 수집하기 위해
wait() system call을 호출할 때까지 기다린다. -
부모 프로세스가
wait()을 호출하면, OS는 종료된 프로세스의PCB를 해제한다.
UNIX와 Linux에서는 만약 자식 프로세스를 가지고 있는 부모 프로세스가 종료된다면,
init process가 새로운 부모 프로세스가 된다.
👑 Inter-Process Communication (IPC)
Interprocess Communication이란 다른 프로세스들 간에 데이터를 교환하고 정보를 공유하는
매커니즘이다. 동시에 실행되는 여러 프로세스가 서로 통신하여 데이터를 공유할 수 있도록 한다.
-
Process Cooperation의 장점
-
Information sharing
프로세스 간 통신을 위해 데이터를 교환하고 정보를 공유할 수 있다.
-
Computation speed-up
여러 프로세스가 협력하여 작업을 분산하고 병렬로 실행함으로써 계산 속도를 향상시킬 수 있다.
-
Reliability/Availability
-
cooperation process들이 concurrent하게 실행될 때 동기화 매커니즘이 필요하다.
동기화 매커니즘에는 signal, semaphore, lock 등이 있다.
-
Signal
한 프로세스가 다른 프로세스에게 이벤트의 발생을 알리는 매커니즘이다.
프로세스가 종료되거나 중단되었을 때 등의 다양한 이벤트에 대한 신호를 보낼 수 있다.
이러한 신호를 받은 프로세스는 종료, 중단, 무시, 사용자 정의 처리 함수 실행 등을 할 수 있다.
👑 Signal vs Interrupt vs System call
-
Signal
한 프로세스가 다른 프로세스에게이벤트의 발생을 알리는 매커니즘
프로세스 간 통신을 위해 사용한다. -
Interrupt
운영 체제가 프로세스에게이벤트의 발생을 알리는 매커니즘
주로 하드웨어나 소프트웨어적인 이벤트에 의해 발생한다. -
System call
프로세스가 운영 체제에게서비스를 요청하는 매커니즘
프로세스가 운영 체제에게 특정 작업을 수행해달라고 요청할 때 사용된다.
Leave a comment