본문 바로가기
반도체 그 다음 학문/운영체제 (OS)

운영체제 Thread ( 스레드, multi thread, one to one, Many to Many, Many to One )

by 전컴반 2022. 4. 13.
반응형
Thread

 

- Thread란 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 하나의 프로그램은 하나의 thread를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 thread를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티 thread라고 한다. 

멀티 thread를 생성하면 반응성, 자원 공유, 경제성, 확장성이 좋아진다.

 

thread는 제어 흐름이다. 하나의 어플레케이션에 여러 개가 존재할 수 도 있다.

 

 

왜 멀티 thread를 할까?? 싱글 thread를 3개 만들어서 IPC통신을 해서 쓸 수도 있는데 말이다.

 

차이점은 멀티 thread는 기존의 소스를 그대로 이용하여 만드는데 프로세스를 모든 걸 새로 생성해야 하니 더 비용이 크다. 이렇게 멀티 thread는 병렬적으로 task들이 수행될 수 있게 구현해야 하고 데이터의 구분도 필요하다.

하지만 독립적이다 보니 문제가 생겼을 때 원인을 찾아내기가 힘들다.

 


 

thread는 user와 kernel로 나눠서 볼 수 있는데 이 둘 사이의 관계는 3가지로 나눌 수 있다.

 

1. Many to One

- 하나의 user thread가 kernel에 요청을 해서 mapping이 되면 다른 thread는 block이 된다. 

 

 

 

2. One to One

- 동시에 수행할 수 있는 방법이다. 동시성이 굉장히 높지만 kernel의 자원이 고갈된다는 단점이 있다.

 

 

 

3. Many to Many

- 여러 개의 thread들이 그때그때 mapping 하여 사용 가능한 애들끼리 연결한다. 이때 kernel에서는 일정한 thread를 정하여 생성해 놓는 방식이다.

 

반응형

댓글