[운영체제] 스레드(Thread)

2017. 3. 5. 20:059급 공무원/컴퓨터 일반

* 스레드(Thread)

 · 프로세스의 실행부분 담당(실행의 기본단위)

 · 자원할당과 무관!

 · cpu 스케줄링단위로만 쓰는 경량 프로세스

 · cpu공유하지만 한번에 한 스레드만 수행가능

 · 문맥교환이 없어 프로세스에 비해 부담이 적다


* 다중 스레드(Multi Thread)

 · 공유하는 것 : 코드, 데이터, 파일들

 · 갠소하는 것 : 레지스터(자체 변수), 스택(함수호출시 사용!)


** 

프로세스 수와 스레드 수의 관계

· 단일 프로세스-단일 스레드 > 한번에 하나의 서비스만 가능

· 멀티 프로세스-단일 스레드 > 동시에 여러 서비스 가능, but 프로세스 생성, 삭제에 부담

· 단일 프로세스-다중 스레드 > 동시에 여러 서비스 가능, MpSs(위) 보다 빠른 응답 가능

· 단일 프로세스-스레드 풀 > 스레드 생성 부담 없음. 가장 빠른 서비스 가능, 서비스 내용이 적으면 메모리 공간이 낭비됨


*** 스레드 풀 - 스레드를 제한된 개수만큼 정해 놓고 작업 큐에 들어오는 작업들을 수행 (스레드를 미리 생성해 둔다)


**

 커널 수준 스레드는

 시스템 콜이 필수 이므로

 사용자 수준 스레드보다

 느리고 구현도 어렵다.

반응형