멀티 스레드란?
하나의 프로세스가 동시에 여러 개의 일을 수행할 수 있도록 해주는 것이다. 즉 하나의 프로세스에서 여러 작업을 병렬로 처리하기 위해 멀티 스레드를 사용한다. 멀티 스레드에서는 한 프로세스 내에 여러 개의 스레드가 있고, 각 스레드들은 스택 메모리를 제외한 나머지 영역(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
'CS 공부 > 운영체제' 카테고리의 다른 글
멀티 프로세스(Multi-Process) vs 멀티 스레드(Multi-Thread) / Chrome의 탭은 프로세스다 (0) | 2023.08.14 |
---|---|
멀티 프로세스(Multi Process)와 시분할 시스템의 동시성(Concurrency) (0) | 2023.08.11 |
뮤텍스(Mutex)와 세마포어(Semaphore) / 동기화문제와 임계영역 (0) | 2022.09.04 |
경쟁 상태(Race Condition)란 ? (0) | 2022.08.28 |
IPC(Inter Process Communication) (0) | 2022.08.07 |
댓글