nachos소스분석
- 최초 등록일
- 2009.05.17
- 최종 저작일
- 2009.05
- 19페이지/ 한컴오피스
- 가격 1,500원
소개글
nachos소스분석
목차
1. Thread의 생성(create)에서 소멸(delete)까지의 함수 호출 경로(상태 변화 포함)
⓵기능 설명 (Thread Class)
2) 상태 변화 Diagram
2. Tread Scheduling
⓵ 기능 설명 ( Schedule Class)
3. Lock, Semaphore, Condition Variable - Synchronization
4. Thread Context Switch
5. Timer
6. Alarm
본문내용
1. Thread의 생성(create)에서 소멸(delete)까지의 함수 호출 경로(상태 변화 포함)
⓵기능 설명 (Thread Class)
쓰레드를 관리하는 루틴이다. 쓰레드를 생석혹은 소멸시키며, 쓰레드가 레디큐에 들어가서 cpu에 할당을 받거나 또는 대기하게 하고, context switch를 수행한다. 그리고 프로세스 들간의 cpu제어권을 담당한다.
중략..
3. Lock, Semaphore, Condition Variable - Synchronization
⓵ 기능
semaphore class
기본적으로 절대적으로 쓰이는 함수다. p()와 v()함수가 연계적으로 움직이는데, 동시에 여러 스레드가 자원을 관리하는 것을 막아주는 역할을 한다
Lock Class
"lock"를 정의한다. lock의 상태는 BUSY, FREE로 이루어 진다.
세마포어를 이용하는 것으로 세마포어의 1로 해준 특수한 경우이다.
Condition Class
스레드 자체가 아닌 스레드를 담고있는 세마포어와 lock을 이용하여 스레드를 동기화시킨다.
1) synch.h (synch.h / synch.cc-Thread를 동기화 하기 위한 데이터 구조 동기화의 종류의 3가지는 여기에서 정의되어 진다. 세마포어, lock 그리고 상태 변수)
※ Semaphore class
class Semaphore {
public:
Semaphore(char* debugName, int initialValue); //생성자
~Semaphore(); //소멸자
char* getName() { return name;} // 세마포어 이름 얻기
void P(); // 세마포어의 사용 권한 획득을 위한 함수. 권한 갯수를 하나 줄임
void V(); // 획득된 권한으로 스레드를 실행 시킬 수 있도록 하는 함수. 실행 후 권한갯수가 하나 증가
void SelfTest(); // 세마포어 테스트 함수
private:
char* name; // 디버깅용 이름
int value; // 세마포어의 값(세마포어 사용가능 갯수). 항상 0보다 크거나 같다.
List<Thread *> *queue; // 대기중인 스레드가 들어갈 세마포어의 큐 };
참고 자료
없음