쉽게 배우는 OS Chapter03_Thread

4. 스레드

4.1 스레드의 개념

용어 정리

4.2 멀티 스레드의 구조와 예

4.2.1 멀티 스레드의 구조

multi-thread 만약 클라우드와 동기화 되는 워드 파일 작업을 한다고 했을때, 멀티스레드 없이 멀티 태스킹 방식을 사용한다고 한다고 가정을 해보자. 그렇다면 작업중인 워드의 프로세스를 그대로 fork해서 클라우드 연결 기능만 사용해야할 것이다. 그렇게되면 code, 입력중인 data, 열린 file등등을 그대로 복사하는게 너무 아까워진다. 이러한 낭비를 해결할수 있는게 멀티 스레드이다.

이미지 오른쪽의 멀티스레드 방식에서는 프로세스 내부에 파일을 작성하는 스레드(작업 단위)와 클라우드와 통신하는 스레드가 병렬 동작된다. 그리고 프로세스의 code, data, file등등을 공유하기 때문에 낭비되는 자원이 더욱 줄어든다.

4.2.2 멀티스레드의 장점

4.2.3 멀티스레드의 단점

모든 스레드가 프로세스 내의 공통 자원을 공유하므로, 한 스레드라도 문제가 생기면 프로세스 전체에 영향을 미친다.

4.2.4 멀티스레드 모델

multiteread models

이미지 출처 : Uday Kiran Jonnala의 글

추가 공부 내용 : PCB와 TCB(Thread Control Block)