Terminated 2

[운영체제] 4-1. 프로세스 종료, IPC

3장에서는 프로세스가 생성될 때의 과정에 대해서 다뤘습니다. 오늘은 그러한 프로세스가 종료되기 위해서 거치는 과정들에 대해 알아봅시다. Process Termination 우선, 언제 프로세스가 terminated 상태가 되는지 알아보자. 프로세스가 exit()라는 시스템 콜을 부를 때 프로세스가 다룰 수 없는 signal을 받았을 때 자식 프로세스가 더 이상 필요 없어서, 부모가 자식을 kill할 때 signal이란 프로세스끼리 이벤트가 발생했음을 알리는 수단을 의미합니다. exit() 시스템콜을 사용하여 프로세스를 종료하고 싶다면 아래의 순서로 진행됩니다. 1. OS에 의해서 종료될 프로세스의 자원이 회수됩니다. 여기서 PCB는 제외합니다. 2. 부모 프로세스에게 death-of-child 시그널을 ..

CS/OS 2023.09.27

[운영체제] 2-3. 프로세스 상태도

이번 글에서는 프로세스의 상태도 대표적인 5가지와, 추가적인 2가지까지 해서 총 7가지를 알아보겠습니다. 우선, 이전 글에서 첨부했던 사진을 다시 떠올려봅시다. 여기서 대표적으로 Not Running과 Running 상태를 나타냈었는데, 우선 먼저 Not Running의 세부 상태에 대해서 설명하겠습니다. Not Running Ready - 실행되기를 기다리는 상태입니다. 뒤에 설명한 대기 큐에서 실행을 기다립니다 Blocked(= wait, sleep) - 이벤트가 발생되기를 기다리는 상태입니다. 대표적으로 이 때, 사용자의 입력을 기다리는 상태를 Block이라고 할 수 있습니다. 대기큐(Ready Queue)라는 단어를 잠깐 꺼냈는데, dispatcher(이 개념은 전에 설명했습니다.)가 항상 대기 ..

CS/OS 2023.09.11