版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、計算機操作系統(tǒng)啟發(fā)式教學(xué)研究計算機操作系統(tǒng)啟發(fā)式教學(xué)研究操作系統(tǒng)是計算機相關(guān)專業(yè)的一門核心專業(yè)課,而實時調(diào)度算法是操作系統(tǒng)課程中的一個重要內(nèi)容,在多數(shù)的操作系統(tǒng)教科書中主要介紹了兩種實時調(diào)度算法,即最早截止時間優(yōu)先算法EarliestDeadlineFirst,EDF和最低松弛度優(yōu)先算法LeastLaxityFirst,LLF。這兩個算法看上去并不難理解,然而問題往往并不像看起來那樣簡單。事實上,在操作系統(tǒng)的教學(xué)中有一個很大的困難,即操作系統(tǒng)的教學(xué)不易落到實處,即原理容易講,但要讓學(xué)生體驗這些原理卻并不容易。操作系統(tǒng)課程中涉及大量算法,如進程調(diào)度算法、死鎖防止算法、頁面置換算法等。外表上這些算
2、法看起來比擬容易,但要讓學(xué)生理解算法后面蘊含的深化道理,并從這些算法中發(fā)現(xiàn)一些問題就絕非易事了。對于這個困難,我們希望通過一些啟發(fā)式的教學(xué)設(shè)計,引導(dǎo)學(xué)生從程序員、從算法設(shè)計者的角度去分析和考慮算法中的一些問題,從而將抽象的原理轉(zhuǎn)化為詳細(xì)的問題和解決方案,加深對這些原理的理解。下面結(jié)合實時調(diào)度算法的例子來闡述對于啟發(fā)式教學(xué)設(shè)計的考慮。1實時調(diào)度算法的啟發(fā)式教學(xué)設(shè)計1.1調(diào)度算法問題定義很多操作系統(tǒng)教科書中都介紹了兩個重要的實時調(diào)度算法,一個是EDF,另一個是LLF。這兩個實時調(diào)度算法的調(diào)度準(zhǔn)那么都很簡單,課堂講授時本文由論文聯(lián)盟.Ll.搜集整理學(xué)生并不難理解。然而,這兩個不同的調(diào)度算法在應(yīng)用中的
3、效果如何,教科書中并沒有給出進一步的分析和討論。事實上,這是一個很好的啟發(fā)式教學(xué)的切入點,我們就從這里出發(fā)來設(shè)計問題。首先來看一看EDF算法和LLF算法的思想。EDF算法是根據(jù)任務(wù)的開場截止時間來確定任務(wù)的優(yōu)先級。截止時間愈早,其優(yōu)先級愈高。該算法要求在系統(tǒng)中保持一個實時任務(wù)就緒隊列,該隊列按各任務(wù)截止時間的早晚排序;當(dāng)然,具有最早截止時間的任務(wù)排在隊列的最前面。調(diào)度程序在選擇任務(wù)時,總是選擇就緒隊列中的第一個任務(wù),為之分配處理機,使之投入運行。截止時間可以是開場截止時間,也可以是完成截止時間。一般來說,完成截止時間等于開場截止時間加上任務(wù)處理時間。LLF算法是根據(jù)任務(wù)緊急或松弛的程度,來確定
4、任務(wù)的優(yōu)先級。任務(wù)的緊急程度越高,越優(yōu)先執(zhí)行。例如,一個任務(wù)在200s時必須完成,而它本身所需的運行時間就有100s,因此,該任務(wù)的緊急程度松弛程度為100s。又如,另一任務(wù)在400s時必須完成,它本身需要運行150s,那么其松弛程度為250s。調(diào)度程序總是選擇就緒隊列中松弛度最小的任務(wù)執(zhí)行。LLF算法主要采用搶占調(diào)度方式。1.2發(fā)現(xiàn)問題按照教科書的描繪和給出的例如,在LLF算法中,當(dāng)有新任務(wù)到達時,并不馬上比擬當(dāng)前所有任務(wù)的松弛度包括正在執(zhí)行的任務(wù),而是等到某個在等待的任務(wù)的松弛度降為零才進展切換,即選擇這個松弛度已經(jīng)降為零的任務(wù)運行。按照這個原那么,我們在啟發(fā)式教學(xué)設(shè)計中提出的第一個問題。
5、第一個問題:按照教科書給出的LLF算法調(diào)度原那么,是否會存在不可調(diào)度的情況?經(jīng)過分析,很容易找出問題,如圖1中給出的例如。通過上面的例如可知,在某些情況下,當(dāng)某個任務(wù)在執(zhí)行過程中,假設(shè)某個或某些正在等待的任務(wù)的松弛度減至0s,那么可能會導(dǎo)致任務(wù)無法成功調(diào)度,而實際上系統(tǒng)才能是允許成功調(diào)度的。1.3提出改良針對前面提出的問題,可以引導(dǎo)學(xué)生對LLF算法的調(diào)度準(zhǔn)那么進展改良。通常比擬容易想到的改良是,修正松弛度的計算和任務(wù)切換時機,即松弛度不需要隨時計算,而在如下兩種情況時進展計算:1當(dāng)前任務(wù)正在執(zhí)行時新任務(wù)到達,可能會引起搶占和任務(wù)切換,此時需要計算并比擬松弛度;2當(dāng)前任務(wù)完成時可能會引起新的任務(wù)
6、調(diào)度和切換,此時計算松弛度。進程在執(zhí)行時松弛度會不斷變化,但是不用進展跟蹤計算和比擬。修正后,可以對學(xué)生提出第二個問題。第二個問題:修正后的LLF算法,是否存在著不可調(diào)度的情況?答復(fù)仍然是存在問題,可以看一看圖2中給出的另一個例如。1.4證明猜測假設(shè)發(fā)現(xiàn)改良后的LLF算法還是存在問題,這時可以引導(dǎo)學(xué)生再作改良,并進展討論。事實上,無論如何改良LLF的調(diào)度和切換時機,都無法解決問題。那么我們可以引導(dǎo)學(xué)生逐步轉(zhuǎn)到EDF算法上來,即EDF算法也會存在類似問題嗎?因此我們提出的第三個問題如下。第三個問題:按照完成截至?xí)r間調(diào)度的EDF算法,是否存在不可調(diào)度的情況?通過啟發(fā)學(xué)生尋找反例會發(fā)現(xiàn)無法找到反例,
7、這時學(xué)生也許會想到,EDF是一個最優(yōu)的算法,即可以得出以下的猜測。猜測:給定一系列的任務(wù),只要這些任務(wù)是可調(diào)度的,即存在某種序列使得所有任務(wù)都在完成截至?xí)r間之前完成,那么使用EDF算法一定能成功調(diào)度這些任務(wù)。有了猜測,如何證明呢?這顯然要比設(shè)計反例困難得多。我們可以引導(dǎo)學(xué)生深化研究這個問題,這逐步進人了這個實驗的關(guān)鍵局部,即發(fā)現(xiàn)問題,以及問題背后的問題,給出猜測,并分析和證明自己的猜測。對此,我們也給出了這個猜測的一個證明。證明:1假設(shè)一系列任務(wù)是可調(diào)度的,并且安排出來的任務(wù)調(diào)度順序不等同于EDF算法所安排的序列。2那么,此安排順序中至少有兩個任務(wù)A、B,其中A的截止時間比B的早,但A安排在B
8、后面如圖3a所示。那么只需將B移至A后面一位即可如圖3b所示。3在之前的序列中A沒有超時,那么移走B,A更不會超時;而B的新位置的完成時刻等于原來序列時A的完成時刻;而A的截止時刻小于B的截止時刻,所以B肯定不會超時。4重復(fù)以上過程,可以得到一個符合EDF規(guī)那么的任務(wù)序列。所以EDF一定能找到成功序列。證明了按完成截止時間調(diào)度的EDF算法的最優(yōu)性之后,還可以啟發(fā)學(xué)生進一步考慮,假設(shè)是按開場截止時間調(diào)度的EDF算法,會有什么不同嗎?另外,EDF算法和LLF算法之間有什么聯(lián)絡(luò)嗎?通過進一步分析和比擬可以得到下面的結(jié)論。EDF算法和LLF算法的比擬結(jié)論:按開場截止時間調(diào)度的EDF算法并不能像按完成截
9、止時間調(diào)度的EDF算法那樣得到最優(yōu)的結(jié)果。事實上,按開場截止時間調(diào)度的EDF算法的調(diào)度結(jié)果和按LLF算法的調(diào)度結(jié)果是一樣的。也就是說,給定一個任務(wù)序列,按開場截止時間排序的結(jié)果和按松弛度排序的結(jié)果是一樣的。證明:因為開場截止時間和松弛度分別滿足如下關(guān)系。開場截止時間=完成截止時間-運行時間松弛度=完成截止時間-當(dāng)前時間-運行時間比擬式和式可得:松弛度=開場截止時間-當(dāng)前時間注意到對所有任務(wù)來說,其當(dāng)前時間都是一樣的,因此將任務(wù)按開場截止時間排序和按松弛度排序得到的結(jié)果是一樣的。這同時也就說明了,假設(shè)按松弛度優(yōu)先進展調(diào)度無法得到最優(yōu)的結(jié)果,那么按開場截止時間調(diào)度的EDF算法也無法得到最優(yōu)結(jié)果。1
10、.5新的問題通過上面的證明可知,假設(shè)給出的一系列任務(wù)是可調(diào)度的,那么使用按完成截止時間調(diào)度的EDF算法一定可以成功調(diào)度這些任務(wù),在這種意義下EDF是一個最優(yōu)的算法。但是我們還可以再啟發(fā)學(xué)生作進一步的考慮。假設(shè)給出的一系列任務(wù)是不可能全部調(diào)度成功的,那么EDF還是最優(yōu)的嗎?當(dāng)然,需要重新定義最優(yōu)的標(biāo)準(zhǔn)。這自然就得出下面這個新的問題。第四個問題:假設(shè)當(dāng)前存在n個任務(wù),用i表示1in,下同,每個任務(wù)包含三個參數(shù),一是任務(wù)的運行時間ti,第二個是任務(wù)的完成截止時間di,第三個是成功安排該任務(wù)可以獲得的收益ri。請問按EDF進展調(diào)度能獲得最大收益嗎?假設(shè)不能,請設(shè)計一個調(diào)度算法使得最終的調(diào)度能獲得最大收
11、益。對于這個問題可以引導(dǎo)學(xué)生進展討論。事實上,這個問題要困難得多,運用一些直觀、樸素的原那么很難得到理想的解決方案。對此,可引導(dǎo)學(xué)生進一步運用算法和最優(yōu)化方法中的一些技巧來分析該問題。下面是運用動態(tài)規(guī)劃來求解該問題的一個方案。第四個問題的動態(tài)規(guī)劃分析:1首先可以考慮的是,我們的目的是在n個任務(wù)中選取假設(shè)干個任務(wù)來獲得最大收益,假設(shè)選出了這些任務(wù)即這些被選中的任務(wù)是可以安排好的,那么可以按照EDF的規(guī)那么來安排執(zhí)行,即把被選出的任務(wù)按各自的完成截止時間排序,那么這些任務(wù)一定都可以在各自的完成截止時間之內(nèi)完成,這就是前面的猜測證明的結(jié)論。所以我們可以考慮將所有的n個任務(wù)按完成截止時間排序。假設(shè)按完
12、成截止時間排好序后的n個任務(wù)用1,2,n表示。2其次考慮,在n個任務(wù)中選取假設(shè)干個任務(wù)來獲得最大收益,與在n-1個任務(wù)中選取假設(shè)干個任務(wù)來獲得最大收益之間有什么關(guān)系?可以看出,按完成截止時間排序后的第n個任務(wù)n假設(shè)不在最終選定的假設(shè)干個任務(wù)之列,那么問題可以轉(zhuǎn)化為在n-1個任務(wù),即1,2,n-1中選取最優(yōu)的任務(wù)序列;假設(shè)任務(wù)n在最終選定的假設(shè)干個任務(wù)之列,那么問題可以轉(zhuǎn)化為在截止時間T-tn之前,從1,2,n-1。中選取最優(yōu)的任務(wù)序列。假設(shè)用fn,dn表示在截止時間dn前,從n個任務(wù)中選取滿足條件的最優(yōu)序列所獲得的最大收益,那么可以得到如下的遞歸表達式:3根據(jù)遞歸式可以很容易地寫出一個自底向上的動態(tài)規(guī)劃算法,其時間復(fù)雜度為nT。其實,遞歸式與0/1背包問題動態(tài)規(guī)劃求解的遞歸式極其相似,求解的時間復(fù)雜度也類似。所以提出的第四個問題是一個NP完全問題。2結(jié)語從前面的啟發(fā)式教學(xué)設(shè)計中可以看出,通過精心的教學(xué)設(shè)計,安排一些具有啟發(fā)性的問題,可以有效地引導(dǎo)學(xué)生深化
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 里程節(jié)約法課程設(shè)計
- 2025年度金融產(chǎn)品售后服務(wù)保障協(xié)議范本3篇
- 2025年度森林資源保護與利用二零二五版樹木租賃合同4篇
- 二零二五年度酒店智能門鎖采購合同含智能卡片識別及管理平臺3篇
- 二零二五年度留學(xué)國際旅行保險合同范本4篇
- 二零二五年生物制藥領(lǐng)域?qū)<移赣脜f(xié)議2篇
- 二零二五版教師勞動爭議處理及仲裁合同范本3篇
- 2025年度新型電子產(chǎn)品買賣協(xié)議書范本4篇
- 2025年選礦廠自動化升級承包合同模板3篇
- 2025年度馬鈴薯種植基地建設(shè)與土地流轉(zhuǎn)合作合同4篇
- 醫(yī)養(yǎng)康養(yǎng)園項目商業(yè)計劃書
- 《穿越迷宮》課件
- 《C語言從入門到精通》培訓(xùn)教程課件
- 2023年中國半導(dǎo)體行業(yè)薪酬及股權(quán)激勵白皮書
- 2024年Minitab全面培訓(xùn)教程
- 社區(qū)電動車棚新(擴)建及修建充電車棚施工方案(純方案-)
- 項目推進與成果交付情況總結(jié)與評估
- 鐵路項目征地拆遷工作體會課件
- 醫(yī)院死亡報告年終分析報告
- 建設(shè)用地報批服務(wù)投標(biāo)方案(技術(shù)方案)
- 工會工作人年度考核個人總結(jié)
評論
0/150
提交評論