본문 바로가기

OS

Thread 쓰레드

http://www.kocw.or.kr/home/cview.do?mty=p&kemId=1046323

해당 강의를 보고 개인적으로 정리를 하는 포스팅 입니다.

 

운영체제

운영체제는 컴퓨터 하드웨어 바로 위에 설치되는 소프트웨어 계층으로서 모든 컴퓨터 시스템의 필수적인 부분이다. 본 강좌에서는 이와 같은 운영체제의 개념과 역할, 운영체제를 구성하는 각

www.kocw.net


Thread(= lightweight process)

쓰레드란, 프로세스 내에서 실제 작업을 수행하는 CPU utilization 의 기본 단위.

프로세스 내에서 쓰레드는 다중으로 존재할 수 있으며, 쓰레드끼리 공유하는 공유자원과 개별 자원을 구분하여 지니고 있음.

 

"즉 프로세스는 자원을 할당받는 작업단위라면, 쓰레드는 자원 사용의 실행 단위이다."

 

격리 자원

- Program counter

- Register Set

- Stack Space

 

공유자원

- Code section

- Data section

- OS resources 

 

각각의 자원을 살펴보면, 쓰레드는 CPU 수행과 관련된 정보는 개별적으로 보관하며,

나머지 리소스들은 공유자원으로 이용한다.

위 그림처럼 주소 공간에서도, PCB 에서도 공유자원과 격리자원을 별도로 보관한다.

 

그렇다면 프로세스 내에서 수행 부분만을 격리시키고,

공유자원을 이용하는 쓰레드를 이용함으로서 얻는 이점은 무엇이 있을까?

 

Thread 의 이점

 

- Responsiveness 응답성 : 다중 스레드로 구성된 태스크에서 한 서버 스레드가 Blocked 상태인 동안에도 동일한 태스크 내의 다른 스레드가 Running 되며 사용자에게 빠른 작업처리 경험을 제공할 수 있다. 

 

- Resource Sharing 자원 공유 : 쓰레드간 동일한 자원을 공유하므로, 동일하거나 비슷한 자원이 필요한 작업을 수행하는 프로세스를 다중으로 띄워 자원을 낭비할 필요가 없다. 

 

- Economy: 쓰레드간 CPU switching 은 프로세스간 컨텍스트 스위칭 보다 훨씬 적은 오버헤드로 동작한다. 또한 공유 자원의 존재로 인해 리소스를 크게 절약할 수 있다.

 

- Utilization of MP Architectures :  다중 CPU 환경에서는 병렬처리로 동일한 작업의 완료 속도를 눈에띄게 향상 시킬수 있다.

'OS' 카테고리의 다른 글

CPU Scheduling  (0) 2022.03.26
프로세스 생명주기  (0) 2022.03.17
Process  (0) 2022.02.23
System Structure & Program Execution  (0) 2022.02.05
운영체제 Intro  (0) 2022.02.05