BRONZE
BRONZE 등급의 판매자 자료

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

한글 2005에 작성된 문서로, 소스코드를 포함해서 총 78페이짿 입니다. 소스코드를 *.c / *.h화 하여 주석이 달린 파일은 제 박스 내의 Report 폴더에 있습니다.
78 페이짿
압축파일
최초등록일 2008.07.27 최종젿작일 2007.07
78P 미보기
운영체제 나초스(Nachos), 스레드왿 동기화(synchronization)
  • 미보기

    소개

    한글 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
  • 자료후기

      Ai 리뷰
      짿식판매자가 등록한 자료는 내용이 풍부하고 깊이 있는 분석이 돋보입니다. 과제에 바로 활용할 수 있는 내용이 많아 매우 만족합니다. 감사드립니다.
    • 자주묻는질의 답변을 확인해 주세요

      해피캠퍼스 FAQ 더뵖기

      꼭 알아주세요

      • 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
        자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
        저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객비바카지노 Viva의 저작권침해 신고비바카지노 Viva를 이용해 주시기 바랍니다.
      • 해피캠퍼스는 구매자왿 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.
        파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
        파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료왿 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학껓, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

    함께 구매한 자료도 확인해 보세요!

    문서 초안을 생성해주는 EasyAI
    안녕하세요. 해피캠퍼스의 방대한 자료 중에서 선별하여 당신만의 초안을 만들어주는 EasyAI 입니다.
    저는 아래왿 같이 작업을 도왿드립니다.
    - 주제만 입력하면 목차부터 본내용까지 자동 생성해 드립니다.
    - 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
    - 스토어에서 무료 캐시를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
    이런 주제들을 입력해 보세요.
    - 유아에게 적합한 문학작품의 기준과 특성
    - 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
    - 작별인사 독후감
    해캠 AI 챗봇과 대화하기
    챗봇으로 간편하게 상담해보세요.
    2025년 07월 05일 토요일
    AI 챗봇
    안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
    5:46 오전