期中考檢討 助教:鄧執中 實驗室:720A.

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

南山中學 102學年度 性別平等教育週性別教育 性騷擾防治.
MATLAB 程式設計 時間量測 清大資工系 多媒體資訊檢索實驗室.
讓你的程式具有多工(Multitasking) 及多重處理(Multiprocessing)的能力
Foundations of Computer Science
OSDI.
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
Chapter 6 時序.
第10章 多处理器和实时调度 主要内容: 多处理器调度 实时调度 操作系统调度例 分类与粒度 设计问题 进程调度 实时进程的要求与特点
Chapter 6 同步 (Synchronization)
Operating System Process Management - 4 Monday, August 11, 2008.
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
Hadoop 單機設定與啟動 step 1. 設定登入免密碼 step 2. 安裝java step 3. 下載安裝Hadoop
Chapter 5 遞迴 資料結構導論 - C語言實作.
Chapter 5 迴圈.
行程管理簡介 日期 : 2018/9/21.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
C H A P T E R 11 体系结构对操作系统的支持.
Applied Operating System Concepts
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
基于硬件辅助的内核漏洞挖掘框架 闫广禄.
Wireless and Mobile Multimedia Networks
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Chapter 3 行程觀念 (Process Concept)
在NS-2上模擬多個FTP連線,觀察頻寬的變化
创建型设计模式.
ICT RTOS Research Group 胡伟平,王剑
Chapter 2 – Chapter 4 Chang Chi-Chung
桌面環境簡介及IDE開發工具 Outline (一)什麼是Linux? (二)桌面環境系統簡介 (三)IDE開發工具.
SQL Stored Procedure SQL 預存程序.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab10 1.
What’s wrong? public int listen() { lock.acquire();
Linux CPU的排程 邱姸婕.
邹佳恒 第十八届全国科学计算与信息化会议 • 威海,
第3章 認識處理元.
Topic Introduction—RMI
義守大學電機工程學系 陳慶瀚 第4章 VHDL Sequential語法 義守大學電機工程學系 陳慶瀚
Linux作業系統 電腦教室Linux使用說明.
資料結構 優點 缺點 1 陣列 (Array) 沒有額外變量 (例head, next,...) 運作/操作較簡單 更新資料時,若要保持順序,需要移動較大量資料 靜態結構Static (宣告時已決定了陣列元素多少,不能在程式執行期間增減元素) 2 隊列Queue (FIFO) 容易更新 加入enqueue:
Linux内核源代码导读 中国科学技术大学计算机系 陈香兰(0551- )
Operation System(OS).
網頁程式概論 建國科技大學資管系 饒瑞佶 2015/9 V1 2016/4 V2 2016/9 V3.
RTOS.
讓Emulator可以 使用Android Market
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
使用VHDL設計 七段顯示器 通訊工程系 一年甲班 姓名 : 蘇建宇 學號 : B
Chap2 Stack & Queue.
第7章 進階的同步 觀念與實務.
Process Description And Control
Video 影像 (VideoPlayer 影像播放器、Camcorder 錄影機) 靜宜大學資管系 楊子青
取得與安裝TIDE 從TIBBO網站取得TIDE
1.3操作系统提供的服务和用户接口 操作系统提供的用户接口 程序接口与系统调用 操作接口与系统程序
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab11 1.
Commando War ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Cloud Operating System - Unit 03: 雲端平台建構實驗
Race Conditions and Semaphore
作業系統實習課(二) -Scheduler-Related System Calls-
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Nachos Project Assignment 2
Chapter 4 Multi-Threads (多執行緒).
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
Presentation transcript:

期中考檢討 助教:鄧執中 實驗室:720A

1.(15%) 說明Linux有哪些Scheduling Policy以及不同的Policy的用途。 4-82. SCHED_FIFO:為 real-time scheduling policy,提供 First-in, first- out 的排程演算法。當一個 Process 在 FIFO 模式下,在 Kernel 的排程器 設為可運行時,將會立即先佔並插隊執行,比同樣系統優先權的其他一般 Process 還優先,除非還有系統優先權更高的 Process 正在佔用時間,否 則 FIFO Process 通常會優先佔用。FIFO Process若是使用sched_yield() 或是遭暫停而讓出CPU時間,將會被重新排在當時同優先權的最後,等待 其他同優先權的 Process 完畢後,再度被運行。所以SCHED_FIFO ,永遠 會有最大的機會被先執行。 SCHED_RR:為 real-time scheduling policy。被設定為 SCHED_RR 的 Process,基本上排程行為和 SCHED_FIFO 一樣,不同的是 Process 將被 Kernel 分配一個 timeslice 去限制時間,時間一但用盡,將會被暫停以讓 出 CPU。 SCHED_NORMAL:為普通的 Process 的預設排程,非 real-time scheduling policy。

2.(24%) 說明下圖8條狀態轉移路徑的過程。

(12%) 一個Process有下列的執行過程,說明各步驟分別是在User Space或Kernel Space。 Creation and Termination (Kernel Space) 兩個動作皆是以調用system code來完成 3-19: When a program executes a system call or triggers an exception, it enters kernel-space Executing user code (User Space) Invoking a system call (kernel-space) Handling an interrupt (kernel-space) 1-13: In kernel-space, in interrupt context, not associated with a process, handling an interrupt

4.(8%) 說明Linux Process的Sleeping與Waking Up的過程。 Whatever the case, the kernel behavior is the same 1.The task marks itself as sleeping: 標記自身為sleeping 2.Puts itself on a wait queue: 將自己放進wait queue 3.Removes itself from the red-black tree of runnable: 將自己從runnable 的 red- black tree 中移除 4.Calls schedule() to select a new process to execute: 呼叫schedule()去選擇一 個新的process來執行 Waking back up is the inverse: 1.The task is set as runnable: 設置自己為runnable 2.Removed from the wait queue: 將自己從wait queue移除 3.Added back to the red-black tree: 將自己加回red-black tree

5.(8%) 什麼是Kernel Preemption?什麼情況會發生? 搶佔式核心是指一台電腦可以同時執行多個程序,並讓這些程序已搶佔的方式輪流 使用CPU。Linux系統以preempt_count來表示當前程序是否可被搶佔。 程序的thread_info引入了preempt_count 2. preempt_count為鎖的個數,當鎖的個數為0時代表可以被搶占。 何時發生: 1.一個程序在執行時若有一個更高優先權的程序出現,而原程序是處於允許搶佔的 狀態時,則原程序將會進入sleep狀態並讓更高優先權的程序使用CPU。 2.系統呼叫schedule()時也會發生Preemption(處理程序順序或是有程序sleep) 3.當中斷處理程序正在執行,返回kernel space之前

6.(10 pts) 說明下列 System Calls的用途。 A. sched_getscheduler(): 4-86: sched_getscheduler() system calls set and get a given process‘s scheduling policy and real-time priority B. waitpid(): 會讓程序暫停並等待子程序結束以及接收狀態值。 C. sched_setaffinity(): 4-88:The user, via sched_setaffinity(), can provide a different bitmask of any combination of one or more bits D. sched_yield(): 4-89:Linux provides the sched_yield() system call for a process to explicitly yield the processor to other waiting processes E. nice():Nice值是Linux作業系統中表示靜態優先級的數值。每個行程都有自己的 靜態優先級,優先級高的行程得以優先執行。Nice值的範圍是-20~+19, 擁有Nice值越大的行程的實際優先級越小(即Nice值為+19的行程優先級 最小,為-20的行程優先級最大),預設的Nice值是0。

7.(10 pts) 解釋下列名詞。 A. Copy-on-Write: 寫入時複製(Copy-on-write)是一個被使用在程式設計領域的最佳化策略。其基礎的觀 念是,如果有多個呼叫者(callers)同時要求相同資源,他們會共同取得相同的指標指向 相同的資源,直到某個呼叫者(caller)嘗試修改資源時,系統才會真正複製一個副本 (private copy)給該呼叫者。 B. Kernel Thread: kthread在背景執行扮演服務的角色,等待events發生。在等待的過程中,kthread會進 入sleep狀態,當事件發生的時候,kthread會被喚醒執行一些time-consuming的工作。 C. Scheduler Class: LINUX的排程器是以模組的方式運作,這些模組擁有不同的演算法處理不同型態的process, 模組的集合稱為Scheduler Class D. Perfect Multitasking: 假設現在有X個precess,一次搶占CPU的時間為5毫秒。Perfect Multitasking指的是處理器 能同時運行這些process X*5毫秒,並平均分配運行功率。

E. Wait Queue: Wait queue就是用來讓process sleep的 kernel API。 Process 被放到 wait queue 時的狀態為 TASK_INTERRUPTIBLE 或是 TASK_UNINTERRUPTIBLE。這個時候因為我們的 process 在睡覺了(被放到 wait queue),所以 scheduler 就會再由 ready queue 裡挑一個 process 來執行。

8. (5%) 下面程式的運作結果為何?理由為何? 8. (5%) 下面程式的運作結果為何?理由為何? Before the fork After the fork

9.(8%) Linux作業系統用什麼Structure表示一 Process?此外,如何找到此Structure。 在Linux Kernel 原始程式碼的檔案 include/linux/sched.h 中 define,Process 的 狀態結構被定義在 struct task_struct 之中。