본문 바로가기
CS 공부/운영체제

멀티 스레드(Multi Thread)란?

by 횰쓰 2023. 8. 14.

멀티 스레드란?

 

하나의 프로세스가 동시에 여러 개의 일을 수행할 수 있도록 해주는 것이다. 즉 하나의 프로세스에서 여러 작업을 병렬로 처리하기 위해 멀티 스레드를 사용한다. 멀티 스레드에서는 한 프로세스 내에 여러 개의 스레드가 있고, 각 스레드들은 스택 메모리를 제외나머지 영역(Code, Data, Heap)영역을 공유하게 된다. 

 

 

스레드와 프로세스의 용어가 헷갈리다면 다음 포스팅을 참고하자.

 

프로세스 vs 스레드

프로그램(Program) 이란? 사전적 의미 1. “어떤 작업을 위해 실행할 수 있는 파일” (실행파일) 2. 단순히 명령어 리스트를 포함하는 파일 프로세스(Process) 란? 사전적 의미 1. “컴퓨터에서 연속적

hyolls100.tistory.com

 

 

스택 메모리 & PC Register

 

프로세스 내에서 각 스레드는 독립적인 기능을 실행 = 독립적으로 함수를 호출함을 의미하므로, 함수 호출 시 전달되는 인자, 함수의 Return Addres, 함수 내 지역변수 등을 독립적으로 저장할 수 있어야한다. 

 

따라서, 위에서 언급한 것 같이 하나의 프로세스 내에서 각 스레드는 메모리 영역 중에서 스택 영역만을 제외하고 나머지 영역을 공유하는 형태를 갖게 된다.  

 

또한, 각 스레드마다 PC register를 가지고 있어야한다. 그 이유는 한 프로세스 내에서도 스레드끼리 context switch가 일어나게 되는데, PC register에 code address가 저장되어 있어야 이어서 실행할 수 있기 때문이다. 

 

 

 

context switch의 원리에 대해서 자세히 알고싶다면 다음 포스팅을 참고하자.

 

PCB와 Context Switching

Process Management CPU가 프로세스가 여러 개일 때, CPU 스케줄링을 통해 관리하는 것을 말한다. 이 때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능하다. 이러한 프로세스들의 특징을 갖고 있는

hyolls100.tistory.com

 

댓글