일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네트워크
- JavaScript
- 컴퓨터구조
- MySQL
- Algorithm
- Galera Cluster
- Kafka
- 파이썬
- design pattern
- 자료구조
- 자바
- Java
- spring webflux
- c언어
- Heap
- C
- mongoDB
- 알고리즘
- 운영체제
- Proxy
- Spring
- JPA
- 디자인 패턴
- MSA
- redis
- OS
- 백준
- Data Structure
- IT
- react
Archives
- Today
- Total
시냅스
TIL : OS Thread 본문
Thread
- cpu 점유의 기본 단위
- 구성 : tid, PC, 레지스터 집합, 스택
- cpu 점유는 pid 내부의 tid가 한다.
- 스레드 간에는 코드, 데이터 파일을 공유한다.
Multithreading
- 장점
- 응답성 : 봉쇄되거나 긴 작업이 수행돼도 쓰레드를 생성해 명령 수행
- 자원 공유 : code와 data, file을 공유해 사용 가능
- 경제성 : 프로세스를 여러개 만드는 것보다 경제적, context switching에 있어서도 마찬가지이다.
- 확장성 : 멀티 프로세스 아키텍쳐에서 병렬처리 가능
멀티코어, 멀티프로세싱 안에서의 멀티쓰레딩
- 병행성 양상
- 쓰레드가 여러개인 상황을 가정
- 싱글코어 : 시간에 따라 인터리빙(사이사이 끼어 넣는다 e.g. 시분할)
- 멀티코어 : 병렬적 수행
멀티코어에서 도전과제
- iidentify task(태스크 인식) : 어떤 부분이 개별로 나눌 수 있는 영역을 찾는 작업 필요
- balance(균형) : 동일한 밸류로 동일한 작업을 해야한다.
- data splitting(데이터 분리) : 응용이 독립된 테스크로 나눠지는 것처럼 데이터 또한 독립되어야 한다.
- data dependency (데이터 종속성) : 데이터는 둘 이상의 테스크 사이에 종속성이 없는지 검토되어야 한다.
- teting and debugging : 여러 쓰레드를 동시에 제어하기 어렵다.
병렬 실행 유형
- 데이터 병렬 실행 : 동일한 데이터의 부분집합을 다수의 계산 코어에 분배한 뒤 각 코어에서 동일한 연산을 실행하는 데 초점을 맞춘다.
- 테스크 병렬 실행 : 데이터가 아니라 태스크를 다수의 코어에 분배한다.
'운영체제' 카테고리의 다른 글
CPU 스케줄링 CPU Scheduling (0) | 2022.04.21 |
---|---|
멀티 쓰레딩 Thread and Concurrency (0) | 2022.04.12 |
TIL : OS IPC 시스템의 사례 (0) | 2021.11.16 |
TIL : OS 프로세스 간 통신 (0) | 2021.11.14 |
TIL : OS processes (0) | 2021.11.12 |
Comments