4-6장. 스레드와 관련된 문제들

기타/[운영체제]

2019. 4. 6. 23:27

[운영체제 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