[운영체제 4-6장. 스레드와 관련된 문제들(Threading Issues)]
: 다중 스레드 프로그램을 설계할때 고려해야 할 몇가지 문제들.
[fork()와 exec() 시스템 호출]
- 한 프로그램의 스레드가 fork() 호출시.
: 새로운 프로세스는 모든 스레드를 복제? 한개의 스레드만 복제?
=> 두가지 버전 fork()를 다 지원하는 방식.
- 위 두가지 방식중 어느방식을 선택할지는 응용 프로그램에 달려있다.
1) fork() 실행하자마자 exec() 호춠시, 시스템 호출을 호출한 스레드만 복사.
2) 위경우가 아닐시, 새 프로새스는 모든 스레드를 복제.
[신호 처리(Signal Handling)]
- 신호는 프로세스에게 어던 사건이 일어났음을 알려주기 위해 사용된다.(UNIX기준)
- 모든 신호는 둘중 하나의 처리기에 의해 처리 : 1) 디폴트 2) 사용자 정의
[스레드 취소(Thread Cancellation)]
: 스레드가 끝나기 전에 강제 종료시키는 작업. ex) 결과 찾을시 다른 스레드 취소.
- 목표 스레드(target thread) : 취소되어야할 스레드
<목표 스레드 취소 방식>
1) 비동기식 취소 : 한 스레드가 즉시 목표 스레드를 강제 종료
2) 지연 취소 : 목표 스레드가 주기적으로 자신이 강제 종료되어야할지 점검.
[스레드 로컬 저장소(Thread-Local Storage)] = TLS
: 각 스레드가 가지는 자신만 접근가능한 데이터.
+) 지역변수(Local varibles)와 유사하지만 혼동 주의.
: 지역변수는 하나의 함수가 호출되는 동안에만 접근할수 있지만, TLS는 함수 호출 전후에도 접근가능(언제든가능)
'기타 > [운영체제]' 카테고리의 다른 글
4-5장. 암묵적 스레딩 (0) | 2019.04.06 |
---|---|
4-4장. 스레드 라이브러리 (0) | 2019.04.06 |
4-3장. 다중 스레드 모델 (0) | 2019.04.05 |
4-2장. 다중코어 프로그래밍 (0) | 2019.04.05 |
4-1장. 스레드 (0) | 2019.04.05 |