평가점수A

[운영체제] 나초스(Nachos) 소스코드 분석

등록일 2005.04.05 워드파일MS 워드 (doc) | 6페이지 | 가격 500원
다운로드
장바구니관심자료
상세신규 배너

소개글

c++ 버전 nacho의 소스코드 분석입니다.

컴파일 실행환경

1. Overview
2. Source Code Analysis
2.1 Thread directory
2.2 Userprog directory
3. Discussion

본문내용

이번 project는 앞으로 project를 수행하기 위해 Nacho 및 gcc, util의 설치를 통한 환경 구축과 더불어, nachos의 source code 분석을 통한 nachos 구성의 이해이다.
Valencia 서버에 nachos 환경을 구축하였으며, code/thread와 code/userprog directory 아래에서 nachos를 실행시킨 후 각각 경우의 execution routine을 분석하였다.
2.1 Thread directory

threads directory의 main.cc 파일로부터 소스 분석을 시도하였다.
우선 main.cc 파일은 argument를 받고 있었으며, argument로 받는 옵션들은 각각 다음을 뜻하였다.
-d 옵션을 주었을 경우, debug string을 argument로 입력을 주었음을 의미하였다.
-u 옵션은 usage를 출력하며, 간단한 usage 문장을 출력하도록 되어있었다.
-z 옵션은 copyright 옵션으로, copyright 정보를 출력하였다.
-rs 옵션은 random seed를 지정하여, time slice가 random으로 발생하도록 하였다.
입력 받은 argument가 없거나, argument parsing이 끝나면, Debug class의 object를 생성한다. 그 후, 해당 debug option이 enable 상태인지 확인하여, disabled 상태이면, error 메시지를 출력한다. 이 class는 debug.h/cpp에 구현되어 있다.

그 후, 입력 받은 argument로 KernelType class의 object를 생성하는데, main.h에 보면, Threads가 define되어 있는 경우, KernelType은 ThreadedKernel을 aliasing하고 있음을 알 수 있다. 따라서, 이는 ThreadedKernel의 object를 생성한 것임을 알 수 있다.
ThreadedKernel의 constructor는 main의 argument를 그대로 parameter로 전달 받으며, 입력 받은 argument에 –rs 옵션을 주었었는지를 확인한다. 만약 –rs 옵션을 준 경우, 다음 parameter를 pseudo-random의 seed 값으로 받아, initialization을 해주는 것을 볼 수 있다. 그리고, time slice를 random으로 지정하는 randomSlice flag를 TRUE로 바꿔주며, -rs 옵션을 주지 않은 경우, randomSlice flag는 FALSE로 지정된다.
  • 구매평가(1)
  • 구매문의(0)
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      4. 지식포인트 보유 시 지식포인트가 차감되며
         미보유 시 아이디당 1일 3회만 제공됩니다.
      우수 콘텐츠 서비스 품질인증 획득
      최근 본 자료더보기
      상세우측 배너
      상세우측 배너
      [운영체제] 나초스(Nachos) 소스코드 분석