[운영체제 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 |