高永強,李振坤
(內蒙古大學計算機學院,內蒙古自治區(qū)呼和浩特 010010)
操作系統是計算機類專業(yè)的核心課程,在課程體系中占有重要地位。由于課程內容涉及計算機軟件、硬件等方面知識,理論性強、內容抽象,僅采用課堂講授理論知識的方式,難以使學生深入理解課程內容,容易造成教學效果不佳,學生學習效果不理想的狀況[1]。
為此,國內外學者在教學過程中加入實踐環(huán)節(jié),使學生能夠更加直觀地了解所學知識的應用場景,以提升學生的實踐動手能力,進而促使學生深入掌握操作系統的課程內容[2-4]。
然而,現階段實踐教學課程設計仍然較為陳舊、缺乏創(chuàng)新,無法達到教學相長的教學效果。因此,本文設計一款核心實驗演示平臺,支持可視化展示多種調度算法的詳細運行過程,并能演示銀行家算法及判斷系統安全狀態(tài)。
操作系統是計算機類專業(yè)本科階段的核心課程,主要內容包括操作系統的基本原理和實現技術,課程特點具體如下:
(1)內容多、難度大。課程涉及的基礎概念多,內容涉及面廣[5],涵蓋進程與線程管理、處理機調度、同步互斥、操作系統的接口、內存管理、I/O 管理、文件系統等方面。學生需要學習多門先導課程,課程難度大。
(2)內容抽象。課程知識涉及的理論、概念較多,例如微內核、同步互斥等,學生通常難以深入理解所學知識,導致學習效果較差。
(3)實踐性強。課程中的知識點通常與實踐相互關聯,但現階段所學的課程內容在一定程度上與實際需求相互脫離,導致學生無法利用所學知識解決實際問題,實踐動手能力較差。
傳統教學方法缺乏除課堂教學及驗證性實驗外的教學嘗試,教師僅通過幻燈片進行知識講解,缺乏相關知識點尤其是核心算法的動態(tài)演示,學生只能在紙上進行手動演算,效果較差。
為此,國內許多學者對操作系統課程的教學研究工作進行探索。例如,朱小軍等[6]和譚舜泉等[7]提出將開源教學操作系統xv6 引入課程實踐教學。李濤等[8]提出利用時序圖比較順序拷貝文件與并發(fā)拷貝文件的區(qū)別。張銳敏等[9]以培養(yǎng)學生能力為目標,對課程進行混合式教學改革。文艷軍等[10]提出一種基于內核調試和抽象精化思想的實驗。雖然,上述研究均在實踐教學中引入新的方法及輔助軟件,但在降低學生學習課程核心算法的難度方面,效果仍然較差。
針對上述問題,本文設計一款操作系統核心實驗演示平臺,創(chuàng)新性地將操作系統的核心算法進行可視化展示,使學生能夠直觀了解所學算法的整個運行過程,在一定程度上降低了學生的學習難度,使學生更容易掌握算法的內在思想。
平臺在Windows 環(huán)境下,采用Java JDK、Swing、Eclipse進行開發(fā),主要包含進程參數設置、調度算法參數設置、調度算法演示及銀行家算法4 個部分。其中,進程參數設置模塊功能為添加或刪除進程,設置進程的到達時間等參數;調度算法參數設置模塊功能為設置作業(yè)調度與進程調度分別使用的算法,設置內存最大作業(yè)數、時間片大小等參數;調度算法演示模塊為整個軟件的核心模塊,該模塊功能包括控制運行過程、運行信息展示及進程信息展示[11-12];銀行家算法模塊的功能包括數據輸入、安全性檢測、資源請求及執(zhí)行結果展示。具體功能結構圖如圖1所示。
Fig.1 Platform function structure圖1 平臺功能結構
通過該模塊對序號、到達時間、服務時間及優(yōu)先級進行初始化設置。其中,進程序號由平臺自動生成,其它參數則需要用戶手動輸入。此外,用戶可手動刪除多余進程。具體參數設置如圖2所示。
Fig.2 Process parameter setting圖2 進程參數設置
通過該模塊初始化調度算法的設置。調度算法主要分為作業(yè)調度與進程調度。
2.3.1 作業(yè)調度算法
作業(yè)調度又稱為高級調度,相較于進程調度的頻率更低,主要將位于外存后備隊列中的某些作業(yè)調入內存。
平臺現階段共支持5 種作業(yè)調度算法,分別為先來先服務(FCFS)、短作業(yè)優(yōu)先(SJF)、靜態(tài)優(yōu)先級(HPF)、動態(tài)優(yōu)先級算法(DPF)及高響應比優(yōu)先算法(HRN)。其中,FCFS 按照作業(yè)到達的先后次序進入內存隊列,由于該算法僅考慮作業(yè)到達的次序,忽視作業(yè)要求服務時間的長短,會導致系統平均周轉時間較長;SJF 按照要求服務時間更短的作業(yè)優(yōu)先進入內存的原則進行內存分配,優(yōu)點為短作業(yè)能夠更早完成,但會導致服務時間較長的進程長時間得不到調度,從而產生“饑餓”現象;HPF 算法在初始狀態(tài)為每個作業(yè)預先設置優(yōu)先級,且優(yōu)先級將不會發(fā)生變化,平臺將優(yōu)先調度優(yōu)先級更高的作業(yè);DPF 算法同樣在初始狀態(tài)為每個作業(yè)預先設置優(yōu)先級,但優(yōu)先級會隨著進入就緒序列的時間增加而上升,從而有效避免HPF 中優(yōu)先級較低的作業(yè)發(fā)生“饑餓”現象,兼顧了作業(yè)的等待時間與運行時間,既能保證短作業(yè)優(yōu)先運行,又能控制長作業(yè)的等待時間,有效提高系統調度性能。此外,用戶需要手動設置內存最大作業(yè)數,以確定內存中的最大進程隊列數量。
2.3.2 進程調度算法
進程調度又稱為低級調度,調度頻率較高,主要用于選取位于內存就緒隊列中的某些進程,并為其分配處理機。
平臺現階段支持6 種進程調度算法,分別為先來先服務(FCFS)、短進程優(yōu)先(SPF)、靜態(tài)優(yōu)先級(HPF)、動態(tài)優(yōu)先級算法(DPF)、高響應比優(yōu)先算法(HRN)及時間片輪轉調度算法(RR)。其中,前3 種算法與作業(yè)調度算法相似;DPF 算法在初始狀態(tài)為每個進程預先設置優(yōu)先級,若進程處于就緒隊列中,優(yōu)先級會隨等待時間增加而提升,該算法兼顧進程的優(yōu)先級與等待時間,既避免靜態(tài)優(yōu)先級中優(yōu)先級較低的作業(yè)發(fā)生“饑餓”現象,又能防止進程長時間占用處理機;HRN 算法則兼顧進程長短及等待時間,避免進程長時間得不到調度的情況;RR 調度算法屬于搶占式調度算法,該算法通過設置時間片,既考慮進程的先后順序,又避免進程長時間占用處理機。在平臺中,用戶可手動設置時間片大小。
上述5 種算法中,FCFS 和RR 無需用戶設置是否為搶占模式,SPF、DPF 及HRN 可設置為搶占模式。此外,若僅演示進程調度的過程,用戶只需將內存最大作業(yè)數設置為大于所有進程數量[13-14]。調度算法設置如圖3所示。
Fig.3 Scheduling algorithm settings圖3 調度算法設置
該模塊展示調度算法的運行過程,界面中所有數據都會實時更新,以秒為計時單位,調度算法演示如圖4 所示。其中,界面主要分為以下6個模塊:
(1)界面左上部分為初始進程隊列展示,用戶可通過表格查看所有進程的初始參數。
(2)界面中部上側為用戶設置的調度算法及預設參數。
(3)界面右上部分為運行控制單元,用戶通過選擇不同的運行模式控制該單元調度算法的運行。運行模式包括單步運行和連續(xù)運行,單步運行的單位為秒。此外,在連續(xù)運行過程中用戶可隨時暫停與重置系統。
(4)界面左下部分為外存及內存隊列,分別展示當前時刻外存和內存中的進程。
(5)界面中部下側為進程狀態(tài)展示,具體包括每個進程的運行進度、等待時間、剩余時間、周轉時間及響應比等數據[15]。
(6)界面右下部分顯示當前運行時刻及運行狀態(tài)的具體信息描述。
模塊主要參數設置、數據輸入及操作執(zhí)行3 部分構成。其中,參數設置部分用戶自主設置資源種類、每種資源的數量及進程數量;數據輸入部分用戶進行Max、Allocation、Need 矩陣數據初始化;操作執(zhí)行部分則進行系統的安全性檢測或通過輸入相關數據進行資源請求[16]。界面右側的文本框中會反饋執(zhí)行結果的具體信息描述。平臺演示銀行家算法如圖5所示。
Fig.5 Banker algorithm圖5 平臺演示銀行家算法
為了評估核心實驗演示平臺的有效性,將平臺應用于內蒙古大學計算機學院的本科操作系統課程。
通過比較學生在兩個學年中的考試和實驗表現以評估平臺的有效性[17]。其中,第一學年使用傳統教學方法進行教學;在第二學年使用平臺在課堂上演示進程調度及銀行家算法,并讓學生自行使用平臺學習相關課程知識。實驗數據來源于內蒙古大學計算機學院兩個班級共106 名學生[18-19],考試成績見圖6(彩圖掃OSID 可見,下同)。
Fig.6 Distribution of examination scores圖6 考試成績分布
由圖6 可見,使用核心實驗演示平臺后得分在60 分以下及60-70 分區(qū)間的人數有所降低,而70-80 分和80-90分區(qū)間的人數明顯上升,90-100 分區(qū)間的人數未發(fā)生變化。學生平均得分由71.3 分提高到了80.2 分,證實平臺教學能夠在一定程度上提升學生對核心算法的掌握能力。70 分及以下的學生數量顯著降低,證明平臺教學對低分段學生的提升更大。接下來,比較兩個班學生在兩個學年中的實驗完成情況,如圖7所示。
Fig.7 Experiment completion圖7 實驗完成情況
由圖7 可見,“未完成任務”“基本完成任務”“完成任務”這3 種完成情況的人數都有所降低,而“完成額外任務”的人數顯著增加[20],學生的實驗完成情況具有顯著改善,證明現階段學生對算法的理解提升較大。此外,為了進一步完善平臺的功能,向第二學年的學生收集了對平臺的改進意見,如圖8所示。
Fig.8 Improvement suggestions圖8 改進意見
由圖8 可見,被提及最多的是希望平臺能夠實現更多種類的算法,存在17%的學生提出應該美化平臺界面,25%的學生認為增加算法的回溯功能十分必要。
本文展示核心實驗演示平臺的詳細信息,該平臺以可視化和交互式方式展示作業(yè)調度、進程調度和銀行家算法的實驗過程,使學生能夠直觀、深入了解所學算法的相關概念。
實驗結果證明,平臺能夠有效提高操作系統課程的教學效果,適合作業(yè)調度、進程調度及銀行家算法的輔助教學。比較兩學年中學生的考試分數及核心實驗的完成情況,結果顯示學生在考試中算法部分的平均得分由71.3 分提高到80.2 分,得分為0-70 分的學生人數降低50%,完成實驗及額外實驗的學生人數顯著提升。
此外,為進一步完善平臺功能,計劃根據學生反饋美化平臺頁面、增加算法回溯功能、開發(fā)移動端版本、涵蓋同步互斥、頁面置換等內容。