검색어 입력폼

Nachos, 소스분석과, 스레드 루틴 분석, 개선하기 위한 설계방법

저작시기 2008.01 |등록일 2012.05.19 파일확장자압축파일 (zip) | 13페이지 | 가격 3,500원

소개글

컴퓨터공학 전공하시는분들이 배우는 운영체제 과목의 과제, 프로젝트로 사용되는
nachos에 관련된 자료입니다.
저희반 프로젝트 30점 만점에 평균점수 12점 정도일때 29점 받은 레포트이구요 (1점은 여기 올린 파일이 아닌 세마포 관련된 파일에서 깎였어요.. 그래서 세마포,기타 함수 관련된 부분의 레포트는 완벽하지 않은것같아 첨부파일에 들어가있지 않습니다. 참고해주세요)

class별 소스분석
thread 루틴 정리
그리고 교수님께서 정해준 몇가지 추가기능에 대한 설계

에 대한 내용이 있습니다.
설계의 경우는 실제 코딩을 요구하지는 않으셔서 진행하진 않았지만 제가 올린 자료를 보시면 어떻게 코딩해야할지 방향이 잡힐거에요.

실제 이러한 방향으로 프로젝트를 진행하실지는 모르지만
소스 분석은 클래스별, 함수별로 구분하여 정리하였고
특히 thread 루틴 분석은 매우 공들여 작업해
한눈에 딱 들어오는 그림으로 이해가 가능하게끔 제작하였으니

아무리 봐도 나초스가 뭔지 이해가 안간다고 생각하시는분은
이 자료를 통해 나초스에 대한 기본 개념을 얻은후에 과제나 프로젝트를 진행하실수 있을듯 합니다.

압축파일 내에 hwp파일 12페이지, 파워포인트파일 23페이지가 있습니다.

목차

1. Nachos 코드 분석
1.1. Thread Class
1.2. Scheduler Class
1.3. Alarm Class
1.4. Timer Class

(다음 목차 아래부분은 파워포인트 파일에 있습니다.)
2. Threads 생성에서 소멸까지의 경로 분석

3. Alarm, Timer, Interrupt의 관계 분석

4. Alram::WaitUntil() 설계 방향

5. Thread::Join() 설계 방향

6. Thread Scheduling 설계 방향 - Preemptive Priority Scheduling

본문내용

Interrupt::SetLevel()

Fork함수 이외에도 여러 함수에서 이 함수를 호출하며
나초스의 시간의 흐름을 처리하는데 있어 매우 중요한 역할을 하는 함수이다.

SetLevel()함수는 interrupt클래스에 선언되어 있으며
IntStatus을 인자로 받는다. 인자로 받아온 변수의 이름은 now
이며 내부변수로 old가 선언된다. (old는 level이란 IntStatus 타입의
전역변수의 값을 복사받는다. level은 인터럽트의 객체가 처음
만들어질때는 IntOff로 초기화 되고 ChangeLevel함수로 값이 변경될수 있다.)

그리고 이 old와 now가 서로 값이 교환된후 old값이 리턴되어진다.

이러한 방식으로 현재의 인터럽트의 상태가 IntOff 일때 IntOn을 인자로
넣어 이 함수를 호출하면 현재 인터럽트의 상태는 IntOn이
되고 리턴값으론 IntOff를 가지게 된다.
반대로 IntOn이 현재 상태일때 IntOff를 인자로 호출하면
현재 인터럽트의 상태는 IntOff가 되고 IntOn이 리턴된다.
만약 현재의 인터럽트 상태와 인자로 넘어온 인터럽트 상태가 같다면
아무런 효과도 없게 된다.

만약 현재의 인터럽트 상태가 IntOff일때 IntOn을 인자로 호출한경우
OneTick() 함수가 호출된다.

참고 자료

없음

압축파일 내 파일목록

class 구조 분석.hwp
Thread의_루틴_분석.pptx
다운로드 맨위로