Nachos Project Assignment 2

Slides:



Advertisements
Similar presentations
1 I/O 设备访问方式和类型. 2 Overview n The two main jobs of a computer: l I/O (Input/Output) l processing n The control of devices connneted to the computer is.
Advertisements

遊程規劃實務 中華民國遊程規劃設計協會.
毛峰教授 北京师范大学教授,博士生导师 国家社科基金项目专家 北京华文教育顾问
自 我 介 紹 班級:運促一乙 姓名:林以權 學號:D
Foundations of Computer Science
Computer graphic final project report
有效學習計劃簡介 (學前).
現代華文小說選讀 授課老師:楊翠
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
学习雷锋好榜样 ——高一年12班主题班会.
主机DB2数据库应用与编程 任课老师:王湖南 四川大学计算机(软件)学院.
Chapter 13 輸入/輸出系統 (I/O Systems)
第八章 分析與設計階段 – 物件導向設計(OOD)
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Project 2 JMVC code tracing
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
2018/9/19.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
台灣大學計算機及資訊網路中心 教學研究組 張傑生
多线程编程基本概念 2008.
Applied Operating System Concepts
Basis基本操作、使用者 管理與權限設定
第8章作業系統.
Chapter 5 Verilog硬體描述語言
第 14 章 預存程序.
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
EndNote X6 Advance your Research and Publish Instantly
Chapter 3 行程觀念 (Process Concept)
在NS-2上模擬多個FTP連線,觀察頻寬的變化
ProQuest Administrator Module (PAM) 使用說明
Chapter 4 多執行緒 (Multi Thread)
Computational Photography final project- Histogram Equalization
Introduction to Multimedia Coding
遊戲設計 Animation.
PSC Pro-Service System
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
李元金 计算机与信息工程学院 第 4 讲 进程管理(2) 李元金 计算机与信息工程学院 1/
2017 工作报告 POWERPOINT ANNUAL REPORT POWERPOINT
作業系統實習課(三) -建造新的System Call-
第3章 認識處理元.
Microsoft SQL Server 2008 報表服務_設計
Web Server 王宏瑾.
成品检查报告 Inspection Report
EndNote X6 進階 Advance your Research and Publish Instantly
Operation System(OS).
软件工程 第四章 软件设计 软件过程设计技术与工具.
RTOS.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
SAP Query 建立User Group (SQ03) 建立Infoset (SQ02)
第7章 進階的同步 觀念與實務.
Amortized Analysis Michael Tsai 2013/11/14.
第9章 存储过程的创建和使用 9.1 存储过程简介 9.2 创建存储过程 9.3 修改存储过程 9.4 删除存储过程 9.5 执行存储过程.
Create and Use the Authorization Objects in ABAP
怎樣把同一評估 給與在不同班級的學生 How to administer the Same assessment to students from Different classes and groups.
Arguments to the main Function and Final Project
Race Conditions and Semaphore
程式語言簡介 2019/7/17 明乘中學編製.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Nachos Project Assignment 2
熟悉VC++开发环境.
Develop and Build Drives by Visual C++ IDE
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

Nachos Project Assignment 2 CPU schedualing TA: Hung-Leng Chen

Assignment 1.Implement system call “Sleep” 2.Implement Shortest-Job-First scheduling

System Call: Sleep 1.請研究 userprog/exception.cc, userprog/syscall.h, test/start.s 這三個檔案以了解system call是如何實作的。 2.請實作Sleep(int x)這個system call,把呼叫這個system call的thread block住,並且在x次的timer interrupts以後才又回到READY的狀態。

System Call: Sleep (cont.) The user program is responsible for (defined in code/test/start.s) Storing the system codes in Register 2 Storing the arguments in Register 4 ,5, 6, and 7. ExceptionHandler in code/userprog/exception.cc Fetch system call number in Register 2. Add new exception handler’s switch case in switch …case section Declare a new system call in code/userprog/syscall.h Define a new system call ID Declare the interface for Nachos system calls, which will be called by the user program.

System Call: Sleep (cont.) The low level operation to support the new declared system call in code/test/start.s. .globl PrintInt .ent PrintInt PrintInt: addiu $2,$0,SC_PrintInt //*put system call number in register 2 syscall //* all parameter of this system call will be stored in //* register4, 5, 6, and 7 by MIPS machine automatically. j $31 .end PrintInt

System Call: Sleep (Hint) 1.修改exception.cc, syscall.h, start.s 2.修改thread/alarm.cc, thread/alarm.h, 增加WaitUntil(int x)來處理Sleep(int x)這個system call 增加一個class來管理這些因為呼叫Sleep(x)而處於BLOCK狀態的threads

System Call: Sleep (Hint) Alarm.cc: 每一次的CPU timer interrupts都會呼叫CallBack(),將目前執行的thread yield. Your jobs: 記錄timer interrupts次數才知道sleep的thread是否該被叫醒 Create a thread list管理sleep中的thread WaitUntil(int x)將呼叫sleep system code的thread block, 放進sleep thread list中 記得要產生一個interrupt 記得要記錄這個thread要sleep x timer interrupts 呼叫thread->sleep(false)讓thread sleep。(在thread/thread.cc裡) WakeUp將thread叫醒 When? 每次timer interrupts時都要檢查整個sleep thread list,看看有誰該wake up. 偷吃步: 可以sort這個list, 只要檢查到有thread不用wake up,後面的list就不用再檢查了

SJF Scheduling Nachos 內定的 scheduling algorithm 是 Round-Robin, 我們接下來將加入 non-preemptive SJF scheduling 用n+1 = tn + (1- )n 來預估下一個CPU burst n : 第n個預估的CPU burst長度 tn : 第n個實際的CPU burst長度  : 取0.5, 0 = 0 (一次timer interrupt代表CPU burst加1 公式請參考課本156頁)

SJF Scheduling (Hint) 由於是non-preemptive,所以當timer interrupts時不用將thread yield. 什麼時候有可能換thread執行? 需要記錄每個thread實際CPU burst長度(timer interrupts數目),與預測將來CPU burst長度 在哪裡可以得到這個資訊? 何時該進行預測? 可以寫成兩個版本,不強迫一定要用參數決定RR還是SJF. (寫出來的話會加分)

SJF Scheduling (Hint) Begin Running Per timer interrupt: Invoke Sleep(x) Per timer interrupt: 1.Record actual CPU burst 2.叫醒應該起床的threads 1.Set next predicted CPU burst 2.Insert this thread to Sleeping thread lists 3.Invoke thread->Sleep

Deadline 5/23 24:00 am Please tar your code and e-mail to kidd@arbor.ee.ntu.edu.tw entitled as your_student_ID_p2.tar.gz make clean (submit source code only) tar zcvf r92921100_p2.tar.gz nachos-4.0

Grading Policy Results of your project 70% Project 2 report 30% 請自行設計一組(或多組)test case來證明你的project是對的,針對RR scheduling和SJF scheduling都要能work。 同時放到nachos下面去run的thread,個數至少3個。 請將test result output印在報告中。 如何compile test program請參考project 1 reference solution. 助教的test case和result放在web上供大家參考