摘要:以計算機操作系統之可變分區存儲器管理為例,介紹了理論教學實例化的教學模式,闡述了理論教學轉化為具體實例再給出可操作的實踐要求的教學過程。
關鍵詞:理論教學;實例化;操作系統;算法;存儲器分配管理
《操作系統原理》課程是計算機專業的一門必修課程,是一門圍繞操作系統的基本原理和概念,詳細介紹對整個計算機系統軟硬件資源進行管理的過程中操作系統各個管理功能采用的理論、方法、控制算法等內容的課程。整個課程概念抽象,理論性強,控制方法多樣,對于普通高校計算機專業學生來講,在理解和掌握上存在一定的困難。如何將抽象的概念具體化,將理論、方法和技術形象化?理論與實際相結合是我們在教學中不斷探討和研究的課題。實例化教學模式的應用在理論教學中收到了較好的效果。下面以操作系統之可變分區存儲器管理為例,介紹教學中采用的實例化教學模式。
存儲器分配管理算法
可變分區的存儲器分配管理算法一般有三種:
最佳適應法最佳適應法要求空閑分區按從小到大遞增的順序排列。在進行內存分配時,從空閑分區表頭開始順序查找,直到找到第一個能滿足作業大小要求的空閑分區(大于或等于作業申請的空閑分區大小)為止。如果該空閑分區與所需分區大小一樣,則從空閑分區表中取消該項;如果該空閑分區大于所需分區大小,則從該分區中劃出一塊內存空間分配給請求作業,剩余的空閑分區仍留在空閑分區表中;否則分配失敗。
最先適應法最先適應法要求空閑分區按地址遞增的順序排列。在進行內存分配時,從空閑分區表首開始順序查找,直到找到第一個能滿足作業大小要求的空閑分區(大于或等于作業申請的空閑分區大小)為止。如果該空閑分區與所需分區大小一樣,則從空閑分區表中取消該項;如果該空閑分區大于所需分區大小,則從該分區中劃出一塊內存空間分配給請求作業,剩余的空閑分區仍留在空閑分區表中;否則分配失敗。
最壞適應法最壞適應法要求空閑分區按從大到小遞減的次序排列。在進行內存分配時,先檢查空閑分區表中的第一個空閑分區,若第一個空閑分區小于作業所需要的分區大小,則分配失敗;如果該空閑分區與所需分區大小一樣,則從空閑分區表中取消該項;如果該空閑分區大于所需分區大小,則從該分區中劃出一塊內存空間分配給請求作業,剩余的空閑分區仍留在空閑分區表中。
存儲器管理實例化
在教學中采用先提出問題再解決問題的方式,使存儲器管理實例化。
例:某系統的空閑分區表如表1所示。現有請求作業序列:80K、18K、196K,若分別使用最佳適應法、最先適應法和最壞適應法,要求給出空閑分區的分配。

提示學生:在進行分配之前要注意不同算法對空閑分區排列順序的要求;空閑分區分配后注意剩余空閑分區的大小和起始地址的變化。
若采用最佳適應法,80K作業分配5號分區,18K作業從1號分區中劃分出18K內存空間,196K作業從4號分區中劃分出196K內存空間,分配后空閑分區表如表2所示。采用最佳適應法能夠滿足該作業序列的請求。

采用最先適應法,80K作業從4號分區中劃分出80K內存空間,18K作業從1號分區中劃分出18K內存空間,分配80K和18K的作業后,空閑分區表如表3所示。此時已經沒有能夠滿足196K作業大小的空閑分區,所以采用最先適應法不能滿足196K作業的請求。

若采用最壞適應法,80K作業從4號分區中劃分出80K內存空間,18K作業從4號分區中劃分出18K內存空間,分配80K和18K的作業后,空閑分區表如表4所示。此時已經沒有能夠滿足196K作業大小的空閑分區了。所以,采用最壞適應法不能滿足196K作業的請求。

實踐環節具體化
實踐環節要求學生模擬實現操作系統對存儲器管理之可變分區管理技術。利用存儲器分配算法編程,判斷系統現有的空閑分區能否滿足某一作業序列的請求。要求運行程序時輸入的數據包括:空閑分區表、作業請求序列;程序運行結果是:如果能夠滿足作業序列的請求,則輸出分配后的空閑分區表,否則輸出拒絕分配的提示即可。
在實踐中,學生可將上述實例的解決過程作為存儲器管理之可變分區管理的模板,利用所學的程序設計語言編程實現對存儲器管理之可變分區管理的模擬。
《操作系統原理》課程是在學生學習了一門高級程序設計語言和數據結構等先行課程的基礎上開設的一門計算機理論課程,此時,學生已掌握了解決問題的常用算法和程序設計方法之間的關系。這樣使操作系統這一功能轉化為學生習慣的先提出具體問題再解決的方式,從而與所學的程序設計方法聯系起來,將枯燥抽象的計算機理論轉化為解決具體問題,并使系統軟件設計轉化為學生習慣的編程問題,理論教學實例化的教學模式在教學實踐中的運用收到了較好的教學效果。
參考文獻:
[1]孟慶昌.操作系統[M].北京:電子工業出版社,2004.
[2]屠祁,屠立德.操作系統基礎(第三版)[M].北京:清華大學出版社,2004.
[3]曾平,曾林.操作系統習題與解析(第2版)[M].北京:清華大學出版社,2004.
作者簡介:
王珍玲(1963—),女,天津工程師范學院信息技術工程學院副教授,研究方向為操作系統、數據庫、算法。