Nachos Project Phase 1. Build a Thread System
*윤*
다운로드
장바구니
소개글
Nachos Project Phase 1. Build a Thread SystemSelfTest 및 결과 포함 레포트입니다.
목차
Nachos Project Phase 1. Build a Thread System1. Overview
1. Process Context Switch
2. Thread
3. Thread State (in nachos)
4. Scheduler
2 Task
1. KThread.join()
1. Attention
2. join()
3. function analysis
4. Implement
5. Self Test
2. Implement Condition Variables
1. Attention
2. join()
3. function analysis
4. Implement
5. Self Test
3. Implementation of Alarm Class
1. Attention
2. join()
3. function analysis
4. Implement
5. Self Test
4. Implement Send and Receive
1. Attention
2. join()
3. function analysis
4. Implement
5. Self Test
5. Priority Scheduler
1. Attention
2. join()
3. function analysis
4. Implement
5. Self Test
6. Hwaiian Child
1. Attention
2. join()
3. function analysis
4. Implement
5. Self Test
3. Appendix
1. Reference
2. Self Test Code
본문내용
1.1.1. 경량프로세스 (Light Weight Process LWP)라고 불리기도 하는 CPU 동작의 기본 단위이다. Thread ID, Program Counter, Register Set 그리고 Stack으로 이루어져 있으며 전통적인 Process (Heavy Weight Process)는 기본적으로 하나의 Control Thread를 가지고 있다.1.1.2. Multi Thread Programming의 이점
1.1.2.1. 응답성(Responsiveness) : 대화형 응용 프로그램을 Multiple thread화 하면 응용 프로그램의 일부분에 문제가 생기더라도 프로그램의 수행이 계속될 수 있다. 즉 사용자에 대한 응답성을 증가시킨다.
1.1.2.2. 자원의 공유 (Resource sharing) : Thread는 자동적으로 그들이 속한 process의 자원들과 Memory를 공유한다. Code 공유의 이점은 한 응용 프로그램이 같은 주소공간 내에 여러개의 다른 활동성 Thread를 가질 수 있다는 점이다.
1.1.2.3. 경제성(Economy) : Process 생성을 위해 Memory와 자원을 할당하는 것은 비용이 많이든다. 대안으로 Thread는 자신이 속한 Process들의 자원을 공유하기 때문에 Thread를 생성하고 문맥교환을 하는 것이 보다 경제적이다. Thread가 아니라 Process를 생성하고 유지하기 위한 Overhead의 차이를 경험적으로 측정하는 것은 어려울 수 있지만, 일반적으로 Thread를 사용하는 것보다, 새로운 Process를 생성하고 유지하는 것이 더 많은 시간을 소모한다.
1.1.2.4. 다중처리기 구조의 활용(Utilization of Multiprocessor architectures) : 다중 Thread의 이점은 다중 처리기 구조에서 더욱 증가할 수 있다. 다중 처리기 구조에서는 각각의 Thread가 다른 처리기에서 병렬로 수행될 수 있기 때문이다.
참고 자료
OS162 Operating Systems and System Programminghttp://inst.eecs.berkeley.edu/~cs162/sp07/
Operation System Concepts Sixth Edition
Silberschatz, Galvin, Gagne
Operation System Principles
Lubomir F.Bic, Alan C.Shaw
Understanding the Linux Kernel
http://www.oreilly.com/catalog/linuxkernel/chapter/ch10.html
Nachos for Java README