티스토리 뷰

학교/운영체제

[05] 운영체제 - 스레드

군옥수수수 2017. 9. 21. 15:06

안녕하세요.
오늘은 2주차의 마지막 주제인 스레드(Thread)에 관해 포스팅해보도록 하겠습니다.
그럼 바로 시작하도록 하겠습니다.

Thread란?
Thread란 CPU를 구성하는 기본단위입니다.
Thread ID, Program counter, register set 및 stack으로 구성되어 있습니다.

Thread를 사용함으로써 오는 장점에는 크게 네 가지가 존재합니다.

1.   사용자의 입력에 빠른 반응을 보여줍니다.
2.   여러 Thread들이 하나의 Process 안에 속하면서 자원을 공유합니다. 그러므로 Process 간의 자원에서 사용되었던 Shared Memory
      같이 추가적인 공유 메모리 공간을 만들지 않아도 되고 운영체제를 거치는 Message Passing 과정을 거치지 않아도 되기 때문에 보다
      효율적으로 자원을 공유할 수 있습니다. 이러한 점은 Multi-Thread가 Multi-Process 보다 좋은 점이라고 할 수 있습니다.
3.   위와 같은 자원의 공유로 인해 Context-switching의 시간Process에 메모리와 자원을 할당하는 것이 더욱 효율적으로 이뤄집니다.
4.   Multi-CPU에서의 Multi-Thread 기법을 통해 확장성을 가질 수 있습니다.

Multi-Thread Models
Multi-Thread의 Model을 살펴보기 전에 우리는 User Thread 와 Kernel Thread에 관해 살펴볼 것입니다.

말 그대로 User Thread는 User level의 Thread 라이브러리를 통해 관리되는 Thread를 말하며
Kernel Thread는 운영체제가 제공하고 직접 관리하는 Thread를 말합니다.

Multi-Thread에는 네 가지 모델이 있는데 다음과 같습니다.
1. Many-to-One model
2. One-to-One model
3. Many-to-Many model
4. Two-Level model


첫 번째로 살펴볼 모델은 Many-to-One model로 하나의 Kernel Thread가
다수의 User Thread를 처리하는 구조입니다.
이러한 구조는 User Thread를 처리하던 중 System call에 의해 blocking이 된다면
전체 프로세스가 막히는 병목현상이 일어나게 되는 문제점을 갖고 있습니다.
두 번째로 살펴볼 모델은 One-to-One model로 처리해야 할 User Thread 한 개당
Kernel Thread를 대응시켜 작업을 진행하는 구조입니다.
이러한 일대일 대응 구조는 Kernel Thread 생성에 과도한 생성의 문제를 가져오게
됩니다. 


그리하여 어느 정도 보완된 모델이 바로 Many-to-Many model이고 그림과 같이
다수의 User Thread를 다수의 Kernel Thread가 처리하는 구조인데 Kernel Thread의 숫자는
User Thread의 숫자보다 같거나 작게 할당이 되어야 합니다.


그리고 최종적으로 보완된 모델이 Many-to-Many model을 더욱 보완하여 만든
Two-level model이며 Many-to-Many model과 One-to-One model을 합친
구조로 중요한 작업은 One-to-One 구조를 통해 처리하고 나머지는 Many-to-Many 구조를 통해 처리함으로써 혹시나 있을 중요한 작업에서의 기다림 현상을 줄일 수 있습니다.

이렇게 해서 스레드(Thread)에 관해서도 살펴보았는데요
Process와 Thread를 비교해가며 공부를 하면 더욱 좋을 것 같습니다.
그리고 이번에 공부를 하다가 찾은 사이트인데 초기에 개념을 잡기에 아주 좋은 사이트인 것 같아 이렇게 공유합니다!
그럼 오늘은 여기까지 하고 다음 3주차에 더 좋은 글로 공부한 것을 기록해보는 시간을 갖도록 하겠습니다!
감사합니다.
https://www.tutorialspoint.com/operating_system/index.htm



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함