운영체제
TIL : OS Thread
ted k
2021. 11. 19. 10:15
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 : 여러 쓰레드를 동시에 제어하기 어렵다.
병렬 실행 유형
- 데이터 병렬 실행 : 동일한 데이터의 부분집합을 다수의 계산 코어에 분배한 뒤 각 코어에서 동일한 연산을 실행하는 데 초점을 맞춘다.
- 테스크 병렬 실행 : 데이터가 아니라 태스크를 다수의 코어에 분배한다.
