高巖
摘? 要:本文主要針對計算機操作系統課程中的同步問題教學進行探究。在實際開展教育教學過程當中,可結合教學要求,實現對編程操作代碼的適當增加,幫助學生將抽象的知識實現對具體知識的轉變,提升學生的理解能力。也可通過設計生產者與消費者關系同步教學代碼的方式實現對教育教學質量的改善,這為計算機操作系統課程后續教學工作的順利開展打下堅實基礎。同時也可進一步改善整體教育教學質量。
關鍵詞:操作系統;同步問題;教學
在計算機科學技術當中,操作系統原理作為核心課程存在。通過對多年教學現狀進行分析后可以發現,學生在學習這門課程時普遍存在抽象以及難懂的現狀,較為龐大是操作系統的明顯特征,因此,在學習操作系統原理時,我們可從系統代碼角度進行。現在所講述的操作系統原理與編程操作代碼學習之間相互分離,所以說深層次實踐的需求得不到滿足。長時間在此種狀態下開展教育教學工作,會導致學生學習興趣不斷喪失。
一、教學過程中存在的問題
1.教學內容側重理論,實踐環節薄弱
操作系統課程要有好的教學效果,就要引導學生自己動手設計、實現一個具體操作系統實例。要做到這一點并不容易,這不僅要求學生在學習該課程之前就要掌握匯編語言、C語言、計算機硬件、操作系統結構等多種知識,而且還需要學生抽出大量的時間和精力放在該實驗上。這樣的要求學生不易做到。因此現有的教學過程往往重點偏向操作系統原理的理論教學,對學生的實踐環節不是很注重。
2.教學目標與社會需求脫節
促使學生在掌握計算機操作系統的基礎之上實現對計算機硬件基本原理的有效控制。是計算機操作系統課程同步教學所面對的主要問題。其中還會涉及到多種設計方法以及技術等。將這一教學目標作為主要依據,對學生自主研發操作系統軟件能力的提升有重要作用。收到計算機自身行業特點的制約,只有少數公司實現對前沿技術的全部掌握,同時還會涉及到版權保護等問題。所以學生在自主開發操作系統軟件中投入大量精力,并不具備現實意義。通過對市場需求進行分析后可以發現,掌握操作系統并且熟練修改以及編譯器內核的人才才缺口相當大。
二、進程同步的基本概念
現階段教師所面臨的主要問題就是如何在有限的時間內實現對課程學習的完成。在講授原理的同時,需要將每一個知識點利用可編程操作代碼進行講述,尤其是親自上機操作,實現對結果的觀察,這種可操作性是幫助學生轉變知識的有效方法,甚至可以激勵學生提出全新的思路。但是這種教學方法也存在一定的弊端,教師的工作量會不斷提升,尤其是操作系統教材不能將可對應的代碼提供給學生。
合作進程的同步通過信號量及P、V操作實現,“生產者與消費者關系”是廣義同步問題的一個抽象模型。但信號量與P、V操作是低級的同步機構,用它們很難表示復雜的并發性問題,它們在并發程序中的出現,使得程序正確性證明更加困難。而且要求用戶自己使用同步原語設計同步關系,這本身就不合理,一方面加重了用戶的編程負擔,另一方面用戶對同步原語有意或無意的不正確使用都可能破壞并發系統的正確運行。管程的提出解決了這個問題,管程提供對共享資源的統一管理,能夠同步進程。現在支持同步設計的程序設計語言都支持管程。在進行進程同步教學時,可以利用這種高級語言對抽象模型“生產者與消費者關系”寫出進程同步的代碼,并上機實踐,使學生把進程同步的抽象知識變為具體可理解的知識。在選擇編程語言時,本文作者選擇了JAVA。
JAVA是由Sun公司開發而形成的新一代編程語言,它可以在各式各樣不同機器、不同操作平臺的網絡環境中開發軟件。它本身是一種獨立編程語言,更是Internet的世界語,極大地提高了Web的交互性。繼HTML(超文本標記語言)和WWW(全球信息網)之后,JAVA可稱的上是Internet上第三個重要的技術發明。JAVA語言的特點:簡單性、面向對象技術、分布性、安全性、體系結構中立、可移植性、解釋執行、高性能、多線程、動態性。對于進程同步問題,線程是輕型進程,本文作者利用JAVA語言設計了一個線程同步例子,該例子構建一個管程實現生產者與消費者的同步。
1.進程同步
所謂進程同步就是并發進程在一些關鍵點上可能需要相互等待與互通消息,這樣的相互制約關系稱為進程同步。同步意味著兩個或多個進程之間根據它們一致同意的協議進行相互作用。
2.進程同步的基本類型
在操作系統中,有各種各樣進程同步,按特點不同一般可將同步問題分為兩類:
(1)各進程合作完成某工作的邏輯順序;
(2)對系統資源的共享的合作進程的同步。本文主要講解第一類進程同步問題的解決方法。
三、信號燈的基本概念
信號燈的概念是由荷蘭人Dijkstra于1968年提出的,這個時期正是操作系統形成的活躍時期。他把互斥的關鍵概念抽象到信號燈這個概念中。信號燈是一個被保護的變量,只有P操作、V操作和一種稱為信號燈初始化操作才能訪問和改變它的值。信號燈是一個確定的二元組(s,q),s是一個具有非負初值的整型變量,q是一個初始狀態為空的排隊站。創建信號燈時,應準確說明信號燈s的意義和初值(這個初值絕不能為負值)。每個信號燈都有一個隊列,其初始狀態為空。
四、用信號燈解決進程同步的方法
前趨圖是一種有向無環圖,可以很好地描述各進程在關鍵點上的同步關系。每個進程在前趨圖中都跟其它進程有相互聯系,有其直接前趨、直接后繼。P3的直接前趨是P1和P2,P3進程必須在P1和P2進程執行完畢才能開始執行,否則轉等待;P3的直接后繼是P4,也就是說P4進程的直接前趨是P3進程,P4進程必須在P3進程執行完畢才能開始執行,否則轉等待。
結語
我們可通過必要的手段,實現對管理線程共享資源緩沖區的構建,其中所涉及到的數據交換,主要來源于生產者與消費者,最終實現線程同步的目標。該例子完全可以滿足上機運行的需求,同時實現對正確操作結果的獲取。在轉換抽象教學內容的同時,學生們的學習興趣得到真正意義上的提升。抽象的教學內容也逐步實現向可操作代碼的轉變,最終完善教學整體質量與水平。
參考文獻
[1]王九如,韓麗花,王曉潔,etal.基于改造E—R圖的計算機操作系統進程同步教學研究[J].計算機教育,2015,No.248(20):64-68.
[2]張霞,谷淑化,張求明.《操作系統》課程中進程同步問題的教學方法研究——用信號燈機制解決合作進程的執行順序類進程同步問題[J].電腦知識與技術,2015(9).