中正大學,資工系,作業系統實驗室 陽春副教授 羅習五

Slides:



Advertisements
Similar presentations
我的 动 堂天 漫 制作人: 13312—22 青春 情感 悬疑推理 魔 法 系 列 动 漫系 列 动 漫 之.
Advertisements

商业主体的设立 商业主体的设立. 学习重点 1. 公司的设立方式 商个人的设立 个人独资企业 一. 设立依据 《中华人民共和国个人独资企 业法》1999年8月通过, 自2000年1月1日起施 行 二. 设立条件 1. 投资人为一个自然人; 2. 有合法的企业名称; 3. 有投资人申报的出资; 4.
先進觀念 • 輕鬆掌握 商周數位學院 《你必須知道的一件事》 建議最佳閱讀版本:powerpoint 2000.
第一章 有理数 一.本章学习目标 1.理解有理数的意义,能用数轴上的点表示有理数,能比较有理数的大小.
这是一个数字的 乐园 这里埋藏着丰富的 宝藏 请跟我一起走进数学的 殿堂.
生物科遺傳病報告.
歷史科報告 三年零八個月.
呂品蓉會計師實務教學系列二 會計基礎及調整.
Foundations of Computer Science
先進觀念 • 輕鬆掌握 商周數位學院 《3小時熟睡法》 建議最佳閱讀版本:powerpoint 2000.
國中適性輔導宣導 生涯導航 談國中學生適性輔導 石牌國中 輔導室葉嘉惠.
每週一書 好書報報 抱抱好書 林蕙蘭.
颈椎移位.
第10章 并发控制技术 10.1 并发控制概述 10.2 并发控制的正确性准则 10.3 加锁协议 10.4 死锁的检测、处理和预防
First Priority Consulting
香港普通話研習社科技創意小學 周順強老師.
忠孝國小自立午餐老師的叮嚀 教師指導手冊.
前言 1.课程安排: 第一章 操作系统引论(7学时) 第二章 进程管理(14学时) 第三章 处理机调度与死锁(10学时)
三川殿 powerpoint 是寺廟最正式的出入口,它平常以柵欄圍起,只有節慶祭典時才開放。.
第十章 利润分配决策 PowerPoint 财务 管理.
采编班的“三朵奇葩”? 精品团会主题.
介紹倚天屠龍記 倚天屠龍記作者:金庸 本作業作者:魏士棠、賴明勳 出版者:遠流出版社.
1.1.2 四 种 命 题.
第6章 死結(Deadlock).
我的学习成果展示 舒兰市莲花中心校 李明瑞.
油田一中高语组.
苏人版《思想品德》七年级上册 第12课 学习新天地 常州市勤业中学(213016) 蔡军.
透視全球: 推行可持續發展的外地經驗與國際合作
口才与思辨并重 专业与职业共扬 -----法学院 “口才训练营” 精品活动介绍.
并发控制 讲授者:李川.
An Introduction to Database System
2012级法学-金融实验班 王雪铭 尹晓彤 陈昕 何宣伯
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
湖北武当山.
先進觀念 • 輕鬆掌握 商周數位學院 《你必須知道的一件事》 建議最佳閱讀版本:powerpoint 2000.
當代思潮 期中報告 組別:第一組 報告主題:蠟筆小新 組員:林珊琪 陳盈君 黃郁孜
Chapter 6 同步 (Synchronization)
先進觀念 • 輕鬆掌握 商周數位學院 《看見價值》 建議最佳閱讀版本:powerpoint 2000.
華語教學PowerPoint 中秋節.
闭环控制系统的干扰与反馈.
Operating System Process Management - 4 Monday, August 11, 2008.
台灣產業結構變遷- 零售業 組長:黃建豪(PowerPoint製作) 組員:劉義文(PowerPoint製作) 張誌顯(前段主講人)
主題:屬靈品格的操練 信息﹕蒙福事奉的內在心態 讲员:刘传章牧师 5月11日 上午.
第8章作業系統.
Deadlocks P0 P1 Example System has 2 tape drives.
Applied Operating System Concepts
和春技術學院資訊管理系 九十三學年度第一學期 系統程式 第三章 死結(Deadlock)
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
Chapter 4 多執行緒 (Multi Thread)
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
作業系統 (Operating System)
第3章 認識處理元.
許英蘭 油畫展 時間: ~ 地點:住院大樓一樓藝術櫥窗
Operation System(OS).
作業系統 Operating System 第四單元 檔案系統
RTOS.
中国科学技术大学计算机系 陈香兰 Fall 2013 第三讲 线程 中国科学技术大学计算机系 陈香兰 Fall 2013.
靜宜大學專用 PowerPoint 檔案 數位教材
Chap2 Stack & Queue.
學生:吳星龍 班級:資管二乙 指導老師:劉書彥
CHAPTER 6 Concurrency:deadlock And Starvation
分組報告 職場萬花筒~    酸甜苦辣真滋味.
先進觀念 • 輕鬆掌握 商周數位學院 《規劃力-把事情做好的第一步》 建議最佳閱讀版本:powerpoint 2000.
§4 连续型随机变量.
Operating System Software School of SCU
Race Conditions and Semaphore
6.1.1 平方根.
POWERPOINT模板 适用于简约清新及相关类别演示 注:文本框可根据需求改变颜色、移动位置;文字可编辑.
第8章 并发控制 概述 封锁 封锁协议 活锁和死锁 并发调度的可串行性 两段锁协议 封锁的粒度 Oracle的并发控制 2019/11/20
台中縣桐林國小97學年度初級資訊種子學校申請計畫書 簡報
Presentation transcript:

中正大學,資工系,作業系統實驗室 陽春副教授 羅習五 shiwulo@gmail.com deadlock 中正大學,資工系,作業系統實驗室 陽春副教授 羅習五 shiwulo@gmail.com

前言: 版本:0.1 假如你想收到最新的作業系統資訊,請填寫底下表格,這份投影片每半年到一年會有一 次大更新,我會將更新資訊寄給您 https://goo.gl/GzqoXo 台灣的資訊教育較為特別,幾乎所有資工系的學生都要「考」研究所,因此無法直接使 用國外的教材 目前網路上看到大部分的教材都是pdf形式,無法修改,授課老師無法依照學生的需求, 增減資料 我希望能用幾年的時間,完成沒有版權問題,涵蓋恐龍本基本觀念,並以Linux為基礎的 作業系統簡介投影片 作業系統非常龐大,很多地方是我沒接觸過的、沒研究過的,因此投影片當中可能會有 不少錯誤

前言: 這份投影片對讀者(學生)的設定如下 由於計算機結構是研究所的內容,因此相關的部分會在投影片內交代清楚 (大學部只修過計算機組織) 略懂資料結構、演算法 「真的」會寫程式 約略看懂組合語言 了解Linux system programming,例如基本的fork、pipe、signal等等 由於計算機結構是研究所的內容,因此相關的部分會在投影片內交代清楚 (大學部只修過計算機組織) 恐龍本中涵蓋,但不重要的部分我放在投影片最後面的「補充的名詞解釋」 這份投影片依然以介紹概念為主,與恐龍本不同的是以Linux為例介紹概念

接下來的規劃 橋接恐龍書和Linux上,讓到業界的新鮮人可以透過這份投影片 快速了解整個Linux架構 更加模組化,教師可以選擇自己喜歡的部分,組成一個章節 每個章節都提供一個夠有代表性的實作 每個章節提供一系列的課後問題 提供更進階的部分

什麼是deadlock 一群task,彼此等待 考慮這個例子,系統中有二個task分別是A、B,他們個別需要 鎖定x和y A先鎖定x再鎖y,B先鎖定y再鎖定x。 如下表,1~4分別代表時間,在這樣的情況下A握有x等y,B握有y等x。 換句話說A等B,B等A。造成deadlock task A和task B不一定每次執行都會造成deadlock task A task B lock(x) lock(y)

deadlock的圖形表示 X X⇒A 表示X分配給A task A task B A⇒Y 表示X需要鎖定Y Y

deadlock的圖形表示 (resource allocation graph) X X⇒A 表示X分配給A 如果resource X、Y各自只有1個instance,畫出「分配需求圖」以後,如果有loop表示系統存在deadlock task A task B A⇒Y 表示X需要鎖定Y Y

相似的名詞:livelock 一群task彼此等待,但這群task不斷的改變自身的狀態,但卻無 法讓行程的有任何實質的進展 例如: 二個人在狹路上相遇,互讓,但這其中一個人讓出右邊時,另一個人剛 好讓左邊。 雖然二個人不斷的互讓,但還是無法「前進」

相似的名詞:starvation starvation(飢餓)問題:來自於某種資源分配方式,讓特定的 某些task幾乎拿不到任何的resource 例如:按照優先權分配resource,優先權最低的task有可能永遠 拿不到resource

發生deadlock必備的四條件 Mutual exclusion:資源無法共用 Hold and wait or resource holding:握有一些資源等待另一些 No preemption:OS無法隨意的將分配出去的資源再重新分配 Circular wait:resource allocation graph中至少有一個等待回 圈 These four conditions are known as the Coffman conditions from their first description in a 1971 article by Edward G. Coffman, Jr.

deadlock prevention mutual exclusion mutual exclusion是critical section的主要功能 mutual exclusion通常也是resource的本身特性,例如:印表機 不可能讓二個process在同一個時間列印 有時候可以改寫演算法,讓resource可以lock-free,例如:上 一個章節介紹的lock-free concurrent queue

deadlock prevention hold and wait 方法一:所有的process必須一開始的時候,就鎖住所有「可能」 需要的資源(因此只有hold沒有wait) 缺點是:會造成resource的使用率偏低,例如:打開powerpoint,因為 powerpoint有可能會印出投影片,所以就鎖住印表機!?因為「有可能」 就讓其他人在這段時間無法使用印表機 其次:鎖定的時間拉長,從「需求開始到資源使用結束」變成「程式一 開始到資源使用結束」 方法二:如果要新的資源時,必須釋放掉手上所有已經鎖定的 資源(因此只有wait沒有hold) 缺點:換句話說,就是每次都要重新「一次性鎖定所有『目前需要』的 資源」,釋放資源之時,資源可能被其他process鎖定,可能造成 starvation

deadlock prevention No preemption No preemption幾乎也是resource天生的性質,如果讓不能 preempt的resource變成preemptable代價通常很大 例如:印表機原則上是不能preempt,因為需要緊急印資料給 客戶,將印表機「關掉,重開」。算是讓印表機「preemptable」 的方法之一 有些時候可以用rollback解決,例如:上一章節介紹的 sequential lock 有時候可以用multi-version解決,例如:上一章節介紹的RCU 也可以是沒辦法「立即」lock某個resource,該task就釋放掉手 上的所有resource

deadlock prevention circular wait 依照特定順序鎖定資源,例如:先鎖定a再鎖定b 「授課老師認為」這是最可行的方法,因為這個方法和資源本 身的特性無關,主要是和「程式碼的撰寫方式有關」 缺點:有時候鎖定的順序和使用的順序相法,這會造成資源使 用率偏低 缺點:必須確認所有的programmer都牢記這個順序

deadlock avoidance 與deadlock prevention不同,deadlock avoidance是不要讓系 統進入「可能」造成deadlock的狀態 我們首先定義「safe state」,表示現在絕對不會進入deadlock 狀態 當系統「可能」發生deadlock就稱之為unsafe 注意:就算是unsafe也不一定會造成deadlock deadlock prevention需要事先知道「所有process可能需要的 resource」 deadlock prevention方法是:不讓系統進入circular wait的狀態

著名的deadlock avoidance方法 priority celling protocol(PCP) 可以防止系統進入deadlock狀態 高優先權的task等低優先權「頂多等一次」 是非常有用、有名的real-time OS常用的方法 需要搭配rate-monotonic(RM)排程演算法使用 RM是real-time system中最常見的排程演算法 Stack Resource Policy (SRP)  特性上與PCP非常類似 可以搭配earliest deadline first(EDF)排程演算法使用

本節未介紹的方法 Single instance of a resource type. Use a resource-allocation graph Multiple instances of a resource type. Use the banker’s algorithm 請參閱2017年,OS投影片

deadlock detection algorithms 如果所有的resource都是single instance,那麼檢查系統是否存 在迴圈 基本上是「週期性」使用banker’s algorithm檢查系統是否 deadlock

如果系統進入dealock狀態 假設系統支援roll back機制,讓某些task roll back,並釋放出 resource再重新執行 直接殺掉某些task(例如:佔用系統資源特別多的task)

討論 是否可以撰寫一個自動化的鎖定機制,當系統可能進入 deadlock狀態時,提出警告? 是否可以給某個resource一個獨一無二的id 每此鎖定的時候,只能由低id往高id鎖定呢?

如果能解決id問題 是否可以解決circular waiting問題? 應該可以,使用resource的address當id,每個task紀錄目前鎖 定的所有resource中,哪一個resource的address最大,接下來 只能鎖定address更大的resource(注意:kernel space中,不 會有二個resource擁有相同的address)

如果能解決id問題 是否可以解決circular waiting問題? 如果想要鎖定address較小的resource,kernel噴出訊息,告訴 programmer,必須改變鎖定順序(授課老師覺得這個方法較可 行) 如果想要鎖定address較小的resource,必須先放棄手上所有的 resource,再依照address從小鎖到大

如果能解決id問題 是否可以解決circular waiting問題? 通常我們鎖定resource時,表示已經對這個resource進行操作, 作業系統很難讓一個task可以「放棄鎖」,這違背了mutual exclusion 除非這個process本身是可以roll back(就是undo所有做過的事 情,回到從前)

本章節結束