Process 2

[운영체제] 4-2. 쓰레드 정의

오늘은 쓰레드에 대해서 알아보고, 이와 유사한 개념인 프로세스와의 차이점까지 알아보겠습니다. Thread 쓰레드는 프로세스 내부의 instruction의 집합을 의미합니다. 즉, 프로세스의 하위 개념으로 쓰레드가 존재하는 것이죠. 따라서, 리눅스에서는 lightweight process(경량화 프로세스)라고도 부릅니다. 프로세스가 어떻게 구성되어있는지 기억하시나요?? 프로세스는 stack, code, data, PCB로 구성되어있다고 설명드린 바 있습니다. 그렇다면 쓰레드는 어떻게 구성되어 있을까요?? 쓰레드의 구성요소는 다음과 같습니다. stack thread control block 쓰레드는 프로세스의 instruction set이라고 했으니까, 메서드가 존재할 것이고 그렇다면 지역변수를 저장할 공간..

CS/OS 2023.09.27

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

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

CS/OS 2023.09.27