프로세스 2

[운영체제] 5-1. 프로세스 동기화

오늘은 프로세스 동기화에 대해서 다뤄봅니다. 5장에서 다루는 내용들은 운영체제 분야에서 다소 중요한 개념이므로, 꼭 그리고 자세하고 정확하게 짚고 넘어갑시다. 동시성 제어(Concurrency Control) 프로세스 동기화에 대한 설명을 하기 전, 동시성 제어에 대해 짚고 넘어가봅시다. 단일 프로세서를 기준으로 사실 컴퓨터는 하나의 일만 처리하므로 동시라는 말이 어울리지 않을 수 있습니다. 하지만, 매우 빠른 속도로 여러가지 일을 동시에 처리하는 컴퓨터는 마치 사람이 보기에는 동시에 처리되는 것처럼 보일 수 있죠. 동시성을 제어한다는 것은, 프로세스(또는 쓰레드)가 매우 빠른 속도로 변화함에 따라 데이터에 혼란이 있을 수 있는 사태를 방지해야한다는 것을 의미합니다. 따라서, 우리는 이러한 컴퓨터 자원을..

CS/OS 2023.10.02

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

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

CS/OS 2023.09.27