李暢
摘要:本文講述了操作系統教學過程中,如何做到概念的抽象類比教學,算法的理論具體結合教學以及如何設計實驗內容達到教材和實踐結合的教學,通過這些方法的運用,在保證操作系統理論知識教學基礎上,調動課堂氛圍,提高學生動手實踐能力。
關鍵詞:操作系統;進程;調度;FAT32
中圖分類號:G642? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2019)03-0172-02
Abstract: This paper describes how to achieve Abstract Analogy Teaching of concepts in the process of operating system teaching, how to combine the theory of algorithm with teaching, and how to design experimental content to achieve the teaching method of combining textbooks with practice. Through the application of these methods, on the basis of ensuring the teaching of operating system theory knowledge, the course is mobilized. The atmosphere of the hall improves students' practical ability.
Key words: operating system; process; scheduling; FAT32
1 引言
計算機作為一門當代學科——計算機科學正在快速地發展,而操作系統在計算機科學的發展過程中發揮了極其重要的作用。沒有它,就沒有計算機科學的普及和發展。【1】操作系統課程作為計算機專業學生的專業必修課,理解操作系統的基本原理,對學生后續軟件設計和開發具有引導啟示作用。雖然操作系統如此重要,但是在教學過程中,操作系統原理課程對學生來說意味著難懂,枯燥。如何讓學生認識到操作系統的重要性以及能夠更好地理解和學習操作系統是老師教學中要不斷思考和調整的方向。經過多年教學積累,探索出抽象類比相對應,理論具體相結合,教材實踐相補充的教學模式。
2 抽象類比相對應
類比是把不同的兩個對象進行比較,根據兩個對象在一系列屬性上的相似,而且已知其中一個對象還具有其他的屬性,由此推出另一個對象也具有相似的其他屬性的結論。操作系統的概念比較抽象,教學過程中用淺顯易見的事物對抽象的概念進行對比,幫助學生深入的理解。這里列出兩個具體概念的類別。
2.1 操作系統概念
把操作系統類比成政府職能部門。操作系統很重要的功能是管理功能,管理計算機的軟件和硬件資源。這一點與政府管理職能部門的作用非常一致。就管理職能部分來說,操作系統不能像應用軟件那樣產生開發后的產品和成果。操作系統控制系統資源的分配,以更好地組織計算機的流程。顯然,政府職能部門不能夠直接產生經濟效益,但是,通過職能部門的管理,產生經濟效益的效率大大提高了。
2.2 進程的概念
進程最難理解的是它的動態性以及資源占有情況。用做蛋糕的過程來類比進程。為了做蛋糕,首先操作者要找到一份菜譜,菜譜上列明所需材料及制作過程。菜譜對應了計算機中的程序,程序是一個順序書寫的代碼集合,告訴計算機要做什么。制作蛋糕的過程中,操作者首先需要準備材料,這些材料對應了程序運行中的輸入數據。在制作過程中,除了材料,還需要烤箱等工具。在程序運行過程中,除了輸入數據還需要內存、寄存器等系統資源。做蛋糕是由操作者來按照菜譜完成整個工作的。程序的運行是由CPU控制完成整個工作的。所以,做蛋糕除了需要原料還需要工具和人員,這是一個完整的做蛋糕的過程,這個過程結束了,這次蛋糕就做完了。進程也是如此,當需要運行一個程序的時候,系統為了運行該程序,建立一個進程。CPU按照程序的說明,進行輸入數據的處理,處理過程中需要用到很多其他資源,最后輸出運行結果。一旦輸出結果,該進程就完成了,并且釋放了所占有的系統資源。
3 理論具體相結合
操作系統的理論雖然難懂,但是實實在在地支持著現代操作系統的設計和實現。在講授具體理論的時候,能夠結合當前操作系統,做到理論聯系實際,更容易調動學生學習興趣。這里討論一下操作系統調度算法和文件管理系統如何結合實際的操作系統。
3.1 進程調度算法
目前主流教材中,介紹操作系統調度算法通常介紹先來先服務、短作業優先、優先級法、輪轉法等。Linux系統中將優先級調度、輪轉法調度、先進先出調度綜合起來形成了獨特的負反饋調度算法。在Linux中,每個進程用task-struct 結構來描述,進程調度的依據是task-struct結構中的policy、priority、counter和rt-priority。Policy的值用于反映針對不同類型的進程而采用的調度策略。當Policy取值為SCHED-RR和SCHED-FIFO時用于實時進程,按照輪轉調度策略和先進先出調度策略處理;當Policy取值為SCHED-OTHER表示普通進程,按照輪轉調度策略處理。這三種調度策略均基于優先級。PCB中設置Priority,其值為普通進程的調度優先級。普通進程的可用時間片的初始值即為該值,該值通過系統調用是可以改變的。PCB 中設置rt-p riority,其值是實時進程專用的調度優先級,實時進程的可用時間片的初始值即為該值,該優先級也可以由系統調用來修改。PCB 中設置counter,用于進程可用時間片時值的計數。每次調度程序都對就緒隊列中所有的進程依次比較,選擇counter值最大的也就是優先級最高的進程執行。當就緒隊列中沒有處于就緒狀態的進程時,內核統一對所有進程counter重新賦值:
處于阻塞狀態的進程counter不會改變,所以相對變大,于是,優先級更高,獲得調度的機會也更大。這就是Linux的負反饋綜合調度算法。
3.2 文件管理系統
文件在磁盤上的物理結構主要有順序文件組織形式、鏈接文件組織形式和索引文件組織形式。在講述這一部分的時候集合Window的FAT32來講述。順序文件組織形式的優勢是讀取速度快,不足時增加和刪除處理復雜,鏈接文件的優勢是增加和刪除操作簡單,但是查找速度慢。Windows的FAT32結合了這兩種方式的優點,形成了高效的文件組織形式。在進行windows操作系統安裝的時候,需要選擇格式化磁盤格式,其中有FAT32選項,學生們大部分在安裝操作系統的時候并不是很清楚FAT32是什么,在講授文件組織形式時,提到FAT32,學生們的興趣被調動起來。FAT32是分區格式的一種。這種格式采用32位的文件分配表,是一種顯式鏈接文件組織形式。通俗講,就是把鏈接結構中的鏈接指針單獨提取出來形成一個文件。在Window系統中,磁盤分配的基本單位是簇,FAT中的每一項存放了一個指針,指向一個文件的下一簇的地址。在每個文件的FCB中,只需要存放首簇的地址,其余的地址從文件分配表中得到。
4 教材實踐相補充
在操作系統課程教學中有8個課時的實踐教學,實驗采用的是Linux系統。實驗內容設置為進程主題,包括進程的創建,進程間的通信,以及進程動態資源申請的銀行家算法實現。在進程創建部分,學生通過程序的多次運行,體驗進程運行順序的隨機性和進程的動態性;在進程通信部分,學生可以感受進程間的同步現象;在銀行家算法部分,更清楚了解操作系統資源分配的算法。看到學過的理論和自己的實驗能夠得到一致的結果,毫無疑問可以大大增加學生學習的興趣。
5 結束語
上面列舉的幾種方法都是在上課過程中不斷調整改進總結得來。隨著新技術的發展,我們要不斷調整教學思路和方法,結合新技術來講解操作系統課程,使得這門“古老”的課程不斷融合吸收“新鮮”的知識。
參考文獻:
[1]范策,許憲成,黃紅桃,等. 計算機操作系統教程——核心與設計原理[M]. 北京:清華大學出版社.
[2]仇陽.Linux內核進程調度算法發展[J]. 北京電子世界,2017(4).
【通聯編輯:王力】