참고링크 [Bottom] [Top]
Thread Scheduling with pthreads under Linux and FreeBSD http://www.net.t-labs.tu-berlin.de/~gregor/tools/pthread-scheduling.html
Operating Systems Course Notes : Threads http://www.cs.uic.edu/~i385/CourseNotes/4_Threads.html
Operating Systems Course Notes : CPU Scheduling http://www.cs.uic.edu/~i385/CourseNotes/5_CPU_Scheduling.html
참고도서 [Bottom] [Top]
- C++ Network Programming Volume 1 : ACE 와 패턴을 사용한 객체지향 네트워크 프로그래밍
- Douglas C. Schmidt, Stephen D. Huston 공저, 권태인 역, 인포북
ISBN: 898054507x
Thread 모델 [Bottom] [Top]
쓰레드 모델간의 핵심적인 차이점은 특히 CPU 점유 시간과 같은 시스템 자원들을 쓰레드들이 서로 경재하는 "경쟁 범위(Contention Scope)" 에 있다. 경쟁 범위는 다음과 같이 2가지로 나누어 진다.
- 프로세스 경쟁 범위 (Process Contention Scope, PCS)
- 같은 프로세스 내의 쓰레드들이 할당된 CPU 점유 시간으로 인해 서로간에 (다른 프로세스 상의 쓰레드와 상관없이) 경쟁하는 범위를 말한다. N:1 또는 N:M 쓰레드 스케줄링 모델이 이에 해당된다.
- 시스템 경쟁 범위 (System Contention Scope, SCS)
- 어느 프로세스인지 상관없이 시스템 범위에 걸쳐서 실행중인 다른 쓰레드들과 서로 경쟁하는 범위를 말한다. 1:1 쓰레드 스케줄링 모델이 이에 해당된다.
Thread 스케줄링 모델 [Bottom] [Top]
- N:1 사용자 쓰레드 모델 (Many-To-One Model)
- 초기 쓰레드 구현 모델로서 사용자 라이브러리에 의하여 처리되었다.
- HP-UX 10.20, SunOS 4.x
- 1:1 커널 쓰레드 모델 (One-To-One Model)
- 최근의 운영체제 커널들은 쓰레드를 직접 지원하고 있다.
- Windows 95 이상, Linux
- N:M 혼합 쓰레드 모델 (Many-To-Many Model)
- 사용자 쓰레드와 커널 쓰레드의 혼합 사용을 지원한다. 쓰레드 생성 시 선택 가능하다.
- IRIX, HP-UX, Tru64 UNIX (use the two-tier model), Solaris 9, FreeBSD
