4-1장. 스레드

기타/[운영체제]

2019. 4. 5. 21:53

[운영체제 4-1장. 스레드(Threads)]

 

 

 

[스레드(threads)]

: CPU 이용의 기본 단위.

: 스레드는 같은 프로세스에 속한 운영체제 자원들을 공유한다.

- 프로세스가 다수의 제어 스레드를 가지면, 프로세스는 동시에 하나 이상의 작업들을 수행할수 있다.

 

* 3장에선 단순히 프로세스가 CPU를 사용하려고 한다. 로만 배웠지만, 프로세스내의 스레드 개수에 따라 CPU를 이용하는(수행할수 있는 작업의 수) 정도가 달라진다.

= 스레드 : CPU를 이용하는 프로세스 내의 작업수행 역할

 

 

 

 

 

 

 

[단일 스레드와 다중 스레드]

- 단일 스레드 : 전통적. 한 프로세스 한 제어 스레드.

- 다중 스레드 : 동시에 하나이상의 작업 수행 가능

 

 

 

 

 

 

 

 

 

 

 

 

 

[동기]

- 현대의 대부분의 소프트웨어 응용들은 다중 스레드를 이용

  (응용 : 몇개의 실행 흐름을 가진 독립적인 프로세스로 구현)

 

<발전과정>

- 하나의 응용프로그램이 여러개의 비슷한 작업 수행 필요 상황 존재. (수많은 접근요청)

=> 이때 단일 스레드 프로세스면, 한번에 하나의 클라이언트만 서비스 가능, 너무 오래걸림

=> <해결책> : 서버에 서비스요청들어오면 그 요청 수행할 별도의 프로세스를 생성

=> 새로운 프로세스 생성은 너무나 비효율적(스레드 개념 없었을때 이방법 사용)

=> <해결책> : 한 프로세스 안에 여러개의 스레드를 만들어 나가는것이 더 효율적

 

 

# 다중 스레드 서버구조

1) 클라이 언트가 서버에 서비스요청을 한다.

2) 해당 프로세스내에 요청을 서비스할 새로운 스레드를 생성

   (fork이용)

3) 서버는 추가적인 클라이언트 요청을 듣는 작업을 재개 

 

 

 

 

 

 

 

 

[다중 스레드 프로그래밍의 이점]

1. 응답성(Responsiveness)

  : 스레드 생성만하고 바로 다시 사용자 요청 받을 준비를 함으로써 빠른 응답가능.

  (기존의 단일 스레드 응용은 전에 있던 연산이 완료될때까지 사용자에게 응답하지 못함)

2. 자원 공유(Resource Sharing)

  : 한 프로세스내의 스레드들이 위치한거라 자동적으로 그 프로세스의 자원들과 메모리를 공유.

  (기존의 새로운 프로세스 생성은 프로세스-프로세스간 통신방법 메세지를 이용해야되서 문제였음)

3. 경제성(Economy)

  : 스레드는 자신이 속한 프로세스의 자원들을 공유하기때문에, 스레드를 생성하고 문맥교환하는게 훨씬 경제적.

4. 규모 적응성(Scalability)

  : 다중프로세서구조에서 이득. 각각의 스레드가 다른 처리기에서 병렬로 수행될수있기때문.

 

'기타 > [운영체제]' 카테고리의 다른 글

4-3장. 다중 스레드 모델  (0) 2019.04.05
4-2장. 다중코어 프로그래밍  (0) 2019.04.05
3-3장. 프로세스에 대한 연산  (0) 2019.03.29
3-2장. 프로세스 스케줄링  (0) 2019.03.29
3-1장. 프로세스 개념  (0) 2019.03.27