Operating System Lab Introduction

Download Report

Transcript Operating System Lab Introduction

Operating System Lab
Project 1
Autumn 2011
Overview

Goal: 더 다양한 기능을 하는 thread system을 구현




Alarm clock (5 points)
Priority scheduling (20 points)
Multilevel feedback queue scheduler (MLFQS) (10 points)
참고 자료


“Project1.docx, Project1_MLFQS.doc” in e-class: Project 1의
요구사항 및 MLFQS 설명에 대한 한글 번역 문서
Section 2, A.2, A.3, B in Pintos project homepage: 위의 문서를
포함한 project 1 전체 내용 및 thread system (A.2),
synchronization (A.3), MLFQS (B) 설명
Alarm clock

Goal: devices/timer.c의 timer_sleep()을 수정



기능: current thread를 n tick동안 정지시킨다.
현재 구현: n tick이 지날 때 까지 thread_yield()를 계속 호출,
while문을 반복하는 형태이므로 해당 시간까지 다른 thread
를 처리하지 않고 기다리는 효과를 가진다. (busy waiting)
새로운 구현에서는 현재 schedule되어 있는 다른 thread들
이 바로 실행이 되야 한다.
Priority scheduling

Goal: priority scheduling을 구현



기능: 각 thread가 서로 다른 priority를 가지는 경우 이를 반
영하여 thread들을 scheduling한다.
실행되는 thread가 대기 중인 나머지 모든 thread들보다
priority가 항상 크거나 같도록 설계한다.
Priority inversion, priority donation의 개념을 이해하고
(design report에 반드시 포함), priority donation이 올바로 동
작하도록 구현해야 한다.
Multilevel feedback queue scheduler

Goal: multilevel feedback queue scheduler (MLFQS) 구현



각 thread들의 최근 CPU 사용빈도 등을 고려하여 priority가
자동으로 갱신되는 MLFQS를 구현한다.
매 4 tick마다 priority가 자동으로 갱신되야 하면 자세한 계
산공식은 “Project1_MLFQS.doc”를 참조한다.
실행옵션에 “-mlfqs”를 추가함으로써 MLFQS를 이용한
scheduling이 가능하게 된다. thread.c 내에서는 thread_mlfqs
라는 boolean 변수를 통해 어떤 방식인지를 판단할 수 있다.
Design report should include

How to achieve each requirement



Analysis of the current thread system



현재 구현상태 및 앞으로의 구현 방향
자세한 data structure 및 algorithm 제시
Structure, functions (thread_init(), …), how to switch threads
thread.h, thread.c, 및 Pintos homepage의 section A.2 참고
Analysis of synchronization


Semaphore, lock의 의미 및 pintos에서의 구현
synch.h, synch.c, 및 Pintos homepage의 section A.3 참고
Announcement (1)
Team name
팀원1
팀원2
Team name
funkybrothers
민재슬
이다열
GLaDOS
팀원1
팀원2
team
romi
홍새롬
임희은
team1
alkaba
차영록
손영빈
김준성
정일채
team2
강형석
엄해광
asdf
team6
박종수
곽우석
thgud1624
team10
이재환
남현섭
zxcv
failist
이재원
박영도
lol
박제현
김해준
teamname
김종민
이재연
정성원
최준환
abc
qwerty
Announcement (2)

Design presentation for project 1



Demo



Time: 15:30 ~ 17:20, 9/22 (시간 확인)
Team:
Time: 15:30 ~ 17:20, 9/30
Place: SunLab
보고서 및 코드 제출 (e-class 이용)


Design report: ~ 23:59, 9/23
Final report & source codes: ~ 23:59, 9/30