운영체제 나초스(Nachos), 스레드와 동기화(synchronization)

저작시기 2007.07 |등록일 2008.07.27 파일확장자압축파일 (zip) | 78페이지 | 가격 4,000원
다운로드
장바구니관심자료
상세신규 배너

소개글

한글 2005에 작성된 문서로, 소스코드를 포함해서 총 78페이지 입니다.
소스코드를 *.c / *.h화 하여 주석이 달린 파일은 제 박스 내의 Report 폴더에 있습니다.

목차

Ⅰ. 과제 개요 및 팀 구성원 각자 작업분담 내용
[1] 과제 개요
[2] 팀 구성원 작업 분담

Ⅱ. 기존 루틴 분석
[1] Thread Class
[2] Alarm Class
[3] Semaphore Class
[4] Thread 생성에서 소멸까지의 경로
◆ void SWITCH(thread *oldthread, thread *newthread); 분석
◆ void StackAllocate(VoidFunctionPtr func, void *arg); 분석
◆ thread 종료 시 stack, object를 free시키는 문제
◆ 왜 Sleep()은 interrupt disable를 가정했을까?
[5] Semaphore와 condition variable의 차이점
[6] alarm, timer, interrupt의 관계

Ⅲ. 문제 해결을 위한 전체적 설계 내용

Ⅳ. 구현 루틴 설명
◆ Algorithms 선택 시의 정당성
[1] Preemptive Priority scheduling 구현
[2] Scheduler implementation
◆ Thread::Thread 분석


Ⅴ. 테스트 프로그램의 구성 및 테스트의 주안점
◆ Thread::Join() Test Routine
◆ Scheduling Test Routine

Ⅵ. 테스트 및 결과
[1] Nachos 구현 후 모든 파일
[2] Thread::Join() 구현
◆ C의 wait()와 유사한 기능
[3] Synchronization Test Routine
[4] Scheduling Test Routine
[5] Synchronization 동기화 실험 - "OurHome"
[6] "OurHome" -rs Option

Ⅷ. 소스코드
[1]-1 Kernel.h
[1]-2 Kernel.cc
[2]-1 Thread.h
[2]-2 Thread.cc
[3]-1 Scheduler.h
[3]-2 Scheduler.cc
[4]-1 alarm.h
[4]-2 alarm.cc
[5] debug.h
[6] ourhome.cc

본문내용

◆ void SWITCH(thread *oldthread, thread *newthread); 분석
SWITCH()함수는 switch.s 파일에 Assembly Code 형태로 구현되어있다. 각 CPU 별로 다양한 code가 존재하는데 이중에서 MIPS CPU 기반의 Assembly Code를 보면 Stack Pointer를 비롯한 모든 데이터를 메모리에 저장 후, 이전에 저장되어 있던 데이터를 레지스터로 가져온 뒤 가져온 데이터에 포함되어있는 주소로 jump한다.
즉, Context Switching 이 일어나게 된다.
...

[4] Thread 생성에서 소멸까지의 경로
① thread(char* threadName) 생성자로부터 thread가 생성된다. thread의 이름을 받아서 내부에 저장하며 상태값(statue)을 JUST_CREATED로 설정한다. 해당 Machine의 Register 값을 전부 초기화 한다.

② Fork() 함수를 통하여 Stack을 초기화하고 func포인터와 arg변수를 저장한다. Interrupt를 Disable 시킨 후 실행 대기상태(Ready Queue에 넣는다)로 만든다.(즉 Atomic 하게 실행된다) 이후 interrupt를 다시 원래 값으로 되돌린다. 이 과정에서 StackAllocate() 함수가 사용되게 되는데 이 함수의 기능에 대해서는 다음 항목에 기술하기로 한다.
...

[5] Semaphore와 condition variable의 차이점
먼저, 상태변수를 위해서 Nachos에서 제공하는 연산(Operation)에는 다음 3가지가 존재한다.
1. Wait() : Lock을 풀고 신호가 들어올 때까지 CPU사용을 포기한다.
2. Signal() : 기다림 상태(Waiting on the Condition)에 있는 thread를 깨운다.
3. Broadcase() : Waiting 상태에 있는 모든 thread를 깨운다.

참고 자료

Operating System Principle 3rd edition
  • 구매평가(0)
  • 구매문의(0)
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      4. 지식포인트 보유 시 지식포인트가 차감되며
         미보유 시 아이디당 1일 3회만 제공됩니다.

      찾던 자료가 아닌가요?아래 자료들 중 찾던 자료가 있는지 확인해보세요

      • 한글파일 [공학]리눅스 환경에서 나초(Nachos)설치과정 및 Threads & main()분석 24페이지
        1. 나초 시스템 소개 나초(Nachos)는 Not Another ... 운영체제 실습을 위해 만든 Operating System 이다. 나초 ... , 가상메모리, 입출력장치 등을 시뮬레이션 할 수 있다. 나초 머신은 3
      • 파일확장자 [운영체제] 나초(Nachos) 쓰레드(thread) scheduling 0페이지
        Thread scheduling을 구현하는 것이다. Nachos ... ..FILE:report.doc Thread Scheduling 1 ... . Overview 이번 프로젝트의 목적은 Nachos platform에서
      • 한글파일 nachos 36페이지
        Nachos Project Assignment #2 - Tread ... & Synchronization 1.과제 개요 및 팀 구성원 각자의 작업 ... 분담 내용 1) 과제 개요 ①Thread 관련 루틴 분석 - thread
      • 한글파일 Thread 클래스 구현 40페이지
        . package nachos.threads; import nachos ... { R E P O R T Assignment 2: Thread 과 목 ... : 운영체제 1. 과제 개요 1) Thread 관련루틴분석 2
      • 한글파일 [운영체제]나쵸(nachos) 프로젝트 63페이지
        기존에 구현된 내용이 없습니다. 그러므로 기본적인 나초 실행에서는 ... synchronization, scheduling 루틴 분석 ① Thread class 분석 ... ( PriorityScheduler.java) package nachos.threads
      • 워드파일 [운영체제]나초(NACHOS) 분석 38페이지
        System’s Term Project > ● 나초4.0소스 상의 ... (); } // 나초를 정지시키는 메소드로 전역 데이터 구조체를 해제함 ... ; delete stats; Exit(0); } // 나초 커널을 실행하는
      • 파일확장자 Nachos Java phase1 발표자료 57페이지
        Nachos Project Phase 1. Build a thread ... Thread System „ „ Nachos has an ... system 2007. Dust What is Nachos? † The
      더보기
      상세하단 배너
      우수 콘텐츠 서비스 품질인증 획득
      최근 본 자료더보기
      상세우측 배너
      추천도서yes24
      다음
      운영체제 나초스(Nachos), 스레드와 동기화(synchronization)
      페이지
      만족도 조사

      페이지 사용에 불편하신 점이 있으십니까?

      의견 보내기