Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 운영체제
- 구현
- 다이나믹 프로그래밍
- level0
- 수학
- programmers
- BOJ
- 힙
- 코딩테스트
- MYSQL
- N과M
- python
- 그리디
- level3
- 가상메모리
- 다익스트라
- level1
- 딕셔너리
- 가상메모리 관리
- 재귀
- 프로그래머스
- DP
- 브루트포스
- 스택
- BFS
- dfs
- 파이썬
- level2
- 백준
- dict
Archives
- Today
- Total
동캄의 코딩도장
운영체제 [스레드] 본문
스레드(Thread)란?
프로세스는 자원을 할당받고 자원을 제어한다.
프로세스에서 제어부분만을 분리한것이 스레드(Thread)이다.
Thread는 Ligth Weight Process라고 불린다.
하나의 프로세스에 여러개의 스레드 존재가능 (할당받은 자원을 여러개의 스레드가 공유하여 제어{사용})
즉, 같은 프로세스의 스레드는 동일한 주소 공간을 공유한다.
스레드 구성요소
Thread Id
register set
stack
전통적 프로세스= 단일 스레드 프로세스
스레드 장점
- 사용자 응답성--> 일부가 지연되어도, 다른 스레드는 작업가능
- 자원 공유--> 효율성 증가 (context switching을 하지 않아도 됨)
- 경제성
- 멀티 프로세서 활용--> 성능 향상
멀티스레드 사용
ex) 게임, 한글작업
스레드 구현
사용자 수준 스레드
- 사용자 영역의 스레드 라이브러리로 구현 됨
- 커널은 스레드의 존재를 모름
장점 --> 커널의 관리를 받지않음
유연한 관리가능, 이식성이 높음
단점 --> 커널은 프로세스 단위로 자원 할당
(single-threaded kernel의 경우) 하나의 스레드가 block 상태가 되면, 모든 스레드가 대기
커널 수준 스레드
- OS(kernel)이 직접관리
장점 --> 커널이 각 스레드를 개별적으로 관리--> 프로세스 내 스레드들이 병행 수행이 가능하다.
단점 --> 커널 영역에서 스레드의 생성, 관리 수행--> context switching등 부하(Overhead)가 큼
멀티 스레딩 모델
다대일(n:1)
일대일(1:1)
다대다(n:m) <-- best
'CS > 운영체제' 카테고리의 다른 글
운영체제 [동기화 -HW solution] (0) | 2022.01.18 |
---|---|
운영체제 [동기화 - SW solution] (0) | 2022.01.17 |
운영체제 [프로세스 스케줄링 기법] (0) | 2022.01.17 |
운영체제 [프로세스 스케줄링] (0) | 2022.01.17 |
운영체제 [프로세스] (0) | 2022.01.15 |