쓰레드 2

[운영체제] 4-3. 멀티쓰레드

지난 포스팅에서 다룬 쓰레드 개념에 이어서 멀티쓰레드에 대해서 다뤄보겠습니다. 멀티쓰레드 멀티쓰레드는 말 그대로 쓰레드가 여러개 존재하는 것을 의미합니다. 의미는 굉장히 간단하니 넘어가기로 하고, 전에 다룬 멀티 프로스와 혼동될 수 있는 개념이므로, 한번 짚고 넘어가봅시다. 각 instruction은 점(.)을 의미했고, 그러한 점들이 모인 instruction set이 곧 thread라고 설명한 바 있습니다. 그러한 쓰레드들을 기준으로 용어들을 정리한 그림입니다. 즉! 여러 개의 쓰레드가 존재하는 것이 멀티쓰레드가 아니라 하나의 프로세스 내에서 여러 개의 쓰레드가 존재해야 멀티쓰레드인 것입니다. 멀티쓰레드! 왜 쓰는거죠?? 그렇다면 우리는 멀티쓰레드를 왜 사용할까요?? 제가 이 개념을 처음 배우고 느낀..

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