葉承瓊+袁書萍
[摘要]《操作系統(tǒng)原理》的課程屬于當前階段我國高校之中本科階段的重要課程之一,主要被應(yīng)用在大型計算機專業(yè)的相關(guān)軟件結(jié)構(gòu)研究之中。在開展教學(xué)工作的過程中,需要進一步強化結(jié)構(gòu)性思維方式,并非是側(cè)重局部性能及算法。充分結(jié)合實際操作的情況,形成對應(yīng)的操作系統(tǒng)原理課程,并應(yīng)當更加看重思維過程的充分培養(yǎng)。通過借助系統(tǒng)操作剖析的方式與學(xué)生之家相互影響,促使學(xué)生可以更好地了解操作系統(tǒng)原理。
[關(guān)鍵詞]操作系統(tǒng)原理;教學(xué)過程;結(jié)構(gòu)思維
作為計算機類課程之中的核心與關(guān)鍵,《操作系統(tǒng)原理》的作用巨大,在培養(yǎng)學(xué)生實踐性以及實用性效果上作用明顯。學(xué)生多認為這門課程相對比較容易掌握,主要是對算法內(nèi)容的學(xué)習(xí),例如虛席進程調(diào)度算法、死鎖避免算法等內(nèi)容。這種思維方式的形成集中體現(xiàn)出計算機教學(xué)之中廣泛表現(xiàn)出來的問題,也就是課程彼此相互孤立,課程之中各章節(jié)方面也存在獨立性問題。學(xué)生無法通過學(xué)習(xí)形成系統(tǒng)結(jié)構(gòu)思維。實操階段缺少系統(tǒng)性思維能力將會造成學(xué)生無法通過該學(xué)習(xí),形成大型軟件方面的系統(tǒng)構(gòu)建能力。課程體系實際操作過程中,需要被安排在一定的程序設(shè)計以及數(shù)據(jù)設(shè)計結(jié)構(gòu)之中,屬于當前針對計算機專業(yè)方面的重要基礎(chǔ)課程。計算機專業(yè)系統(tǒng)結(jié)構(gòu)思維能力的培養(yǎng)開始受到國內(nèi)教育領(lǐng)域的重視,一些具備條件的學(xué)生都已經(jīng)建立了課程系統(tǒng),本研究基于此基礎(chǔ),從多角度探究操作系統(tǒng)課程方面的相關(guān)問題,希望能夠?qū)ξ磥砑夹g(shù)與教育發(fā)展起到促進作用。
一、結(jié)構(gòu)的含義
系統(tǒng)主要是指操作系統(tǒng),也就是一個大型的系統(tǒng)結(jié)構(gòu),其中通過各項功能單元彼此之間形成關(guān)聯(lián),相互依賴,并最終產(chǎn)生特定功能。結(jié)構(gòu),主要是指系統(tǒng)之中所有要素彼此之間從時間、空間等方面形成的一種排列與組合。相對于結(jié)構(gòu),系統(tǒng)之中內(nèi)外延屬于系統(tǒng)對外形成的功能,包括操作系統(tǒng)的服務(wù)提供者方面的內(nèi)容。針對大型軟件類型來看,結(jié)構(gòu)的優(yōu)質(zhì)與否直接決定了軟件是否具有良好屬性,因此十分關(guān)鍵。
二、操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)結(jié)構(gòu)屬于實現(xiàn)操作系統(tǒng)相關(guān)原理理論知識教學(xué)之中的關(guān)鍵,并貫穿于課程的始終。如需要有效識別課程,則應(yīng)當針對結(jié)構(gòu)內(nèi)容進行學(xué)習(xí),以此更好的優(yōu)化學(xué)生認知能力與效率。
(一)操作系統(tǒng)整體結(jié)構(gòu)分析
操作系統(tǒng)結(jié)構(gòu)問題的分析,需要硬件、操作系統(tǒng)以及應(yīng)用程序等幾個方面出發(fā)。基于靜態(tài)角度分析,計算機系統(tǒng)主要是不同物理設(shè)備以及傳輸速度各異的硬件與資源管理功能模塊等共同構(gòu)成的一種組合。所有這些都是計算機系統(tǒng)方面的基本要素。抽象以及分層則能夠?qū)λ幸刂g進行重新整合。基于此結(jié)構(gòu)之中,需要建立以內(nèi)核作為重要基準,并向下開展,利用硬件驅(qū)動程序完成對具體硬件等類型差異的一種有效屏蔽。促使內(nèi)核可以充分獨立于日益發(fā)展的設(shè)備更新環(huán)境之中。向上方面,需要能夠面向系統(tǒng)提供可以統(tǒng)一調(diào)用的接口,作為運行與用戶態(tài)的各類型程序則應(yīng)當能夠訪問內(nèi)核功能門戶,以便可以讓上層應(yīng)用程序充分獨立與內(nèi)核并實施優(yōu)化。
(二)內(nèi)核結(jié)構(gòu)分析
具體到內(nèi)核本身,其發(fā)展歷程中也經(jīng)歷了多種結(jié)構(gòu)的演變,從早期的整體式單內(nèi)核結(jié)構(gòu)到后來的層次式單內(nèi)核結(jié)構(gòu)再到微內(nèi)核結(jié)構(gòu)。Unix和Linux都是單內(nèi)核結(jié)構(gòu),而Windows XP和Mach屬于微內(nèi)核結(jié)構(gòu)。鑒于操作系統(tǒng)軟件的復(fù)雜性,內(nèi)核的結(jié)構(gòu)對操作系統(tǒng)軟件的正確性、效率、可擴展性、可移植性等具有重要作用,是“結(jié)構(gòu)決定功能”的典型范例。
整體結(jié)構(gòu)的概念產(chǎn)生于20世紀,但是當時對此類問題的研究相對較少,內(nèi)核主要被分類在功能模塊的范圍之中,模塊彼此之間則能夠通過不加控的方式實施調(diào)用。此項結(jié)構(gòu)的主要優(yōu)勢包括結(jié)構(gòu)更加緊密,組合形式也比較便利,系統(tǒng)效率也能夠獲得明顯提升。但是,此類系統(tǒng)結(jié)構(gòu)也具有明顯的缺陷,包括調(diào)用關(guān)系相對更加復(fù)雜,在結(jié)構(gòu)性方面表現(xiàn)出一些問題,可移植能力不強等。層次式類型結(jié)構(gòu)之中會對功能模塊按照實際功能情況完成調(diào)用,并按照次序進行排列,形成多個層次,不同層次之間表現(xiàn)為單向調(diào)用方式。此類結(jié)構(gòu)的基本優(yōu)勢是接口較少,操作簡單。其中下層功能模塊的正確性主要受到上層功能模塊的影響。但是,從更加嚴格的角度出發(fā),則無法進行精準確定。實施嚴格意義上的分層也將會進一步降低系統(tǒng)效率。除此之外,因為一層之中擁有大量的功能,針對不同層次實施較大水平的增減則將會造成對相鄰功能的影響。為此,無法在一定系統(tǒng)基礎(chǔ)之中通過增減功能的方式完成操作。微內(nèi)核認為只有最核心部分的操作系統(tǒng)功能需要運行于內(nèi)核態(tài)。
(三)進程結(jié)構(gòu)分析
進程結(jié)構(gòu)方面主要包括幾點內(nèi)容,第一,內(nèi)核功能組織以及進程映像邏輯結(jié)構(gòu)。在實際教學(xué)階段,研究者認為一些學(xué)生通過對操作系統(tǒng)視為一種相對獨立的特殊程序加以學(xué)習(xí)。實際上,操作系統(tǒng)本身具有一定的特殊性,包括系統(tǒng)運行在內(nèi)核態(tài)下。但是,這個過程中更為重要的問題時,操作系統(tǒng)程序與普通程序之間相一致的是,需要能夠獲取處理器之后才能夠完成相關(guān)執(zhí)行操作。為了可以更好的掌握操作系統(tǒng)程序以及普通程序?qū)W習(xí),需要充分理解操作系統(tǒng)內(nèi)核功能之中的組織模型以及進程影響結(jié)構(gòu)情況。
在分析操作系統(tǒng)程度的過程中,用戶程序一般情況下會被應(yīng)用在用戶模式方面,系統(tǒng)功能能否設(shè)定為獨立進程,則需要根據(jù)實際需求情況進行確定。一種早期的組織方式是,操作系統(tǒng)的功能運行在任何進程之外,擁有自己獨立的地址空間和運行棧。第二種組織方式是讓大部分內(nèi)核功能在用戶進程內(nèi)執(zhí)行,將os看成是一組用戶進程經(jīng)常會調(diào)用的常用功能的集合。為此,每個進程映像不僅包括用戶程序執(zhí)行所需的環(huán)境,還需要包含為執(zhí)行操作系統(tǒng)內(nèi)核程序執(zhí)行所需的代碼、數(shù)據(jù)和堆棧。這一執(zhí)行模型很好地詮釋了進程和程序的關(guān)系并非是1對1的。在同一個進程內(nèi),可以執(zhí)行用戶程序和操作系統(tǒng)程序,而在不同進程中執(zhí)行的操作系統(tǒng)程序是相同的(通過共享地址空間共享)。最后一種方式是將大部分操作系統(tǒng)功能也組織成進程,與用戶進程一樣可被獨立調(diào)度。這種方式的好處在于一些非關(guān)鍵的操作系統(tǒng)功能可以按照某個優(yōu)先級和其它進程交錯運行,同時,在多處理器環(huán)境下,也便于操作系統(tǒng)服務(wù)在不同的處理器中運行,從而提高性能。endprint
三、教學(xué)環(huán)節(jié)培養(yǎng)學(xué)生的系統(tǒng)結(jié)構(gòu)思維方式
當前階段,高校開展《操作系統(tǒng)原理》課程的過程中經(jīng)常會出現(xiàn)學(xué)生的錯誤認知情況。將《操作系統(tǒng)原理》視為是學(xué)習(xí)算法的課程。因此,需要在未來的教學(xué)工作中強化結(jié)構(gòu)概念。操作系統(tǒng)之中的教學(xué)人員應(yīng)當充分了解構(gòu)建系統(tǒng)結(jié)構(gòu)意識所具有的重要性,不斷強化結(jié)構(gòu)概念并在這個過程中積極培養(yǎng)結(jié)構(gòu)思維,從而實現(xiàn)大型計算機整體概念。通常情況下,在開展教學(xué)階段,常規(guī)教學(xué)方法都采取的是自上至下的原則,也就是對系統(tǒng)的整體性結(jié)構(gòu)進行分析,并介紹局部功能內(nèi)容,以此提升對局部內(nèi)容的理性認知,提高局部性能算法。
但是本方法的應(yīng)用需要在初次介紹整體結(jié)構(gòu)的過程中,學(xué)生能夠形成一定的感性認知,但是這種效果并不明顯。為此,對結(jié)構(gòu)形成的感受也不深刻。本研究中結(jié)合實際情況,探究具體方法,以便能夠從多角度出發(fā),解決實際問題。第一,通過自上至下的結(jié)構(gòu)分解方式,可以幫助學(xué)生形成操作系統(tǒng)結(jié)構(gòu)的認知。第二,結(jié)合具體功能講解,針對系統(tǒng)功能結(jié)構(gòu)進一步強化,促使學(xué)生能夠更加關(guān)注對各要素之間的關(guān)聯(lián)性。第三,針對相對更加重要的結(jié)構(gòu)概念內(nèi)容,則需要加強不同教學(xué)模塊支架的交互與融合。如對層次化存儲結(jié)構(gòu)在前后章節(jié)之中的強化,也包括了進程七態(tài)模型等的掛起態(tài)、多核cPu進程等相關(guān)內(nèi)容。進程的系統(tǒng)上下文概念同樣也能夠通過進程映像結(jié)構(gòu)等完成強化。最終,課程之中對主要層次進行講解之后,可以通過自下而上的形式,對系統(tǒng)整體結(jié)構(gòu)情況進行分析,實施重構(gòu)。
文件系統(tǒng)本身應(yīng)當是構(gòu)建于I/O條件基礎(chǔ)上的一種針對上層軟件實施的優(yōu)化設(shè)計與操作。虛擬內(nèi)存屬于針對包括主存以及外存方式的訪問文件形式。進一步而言,進程則應(yīng)當是在有效處理資源以及存儲資源等方面的一種抽象描述,這個過程就充分形成了操作系統(tǒng)方面的抽象概念。充分依據(jù)這個結(jié)構(gòu)關(guān)系的重構(gòu)則能夠在完成對軟件系統(tǒng)操作的核心講解之后更進一步對相關(guān)內(nèi)容進行展開。學(xué)生就能夠?qū)W(xué)習(xí)過程中的操作系統(tǒng)產(chǎn)生整體認知,完成量質(zhì)變的轉(zhuǎn)換。
結(jié)束語
綜上所述,本研究從“結(jié)構(gòu)”的角度出發(fā),探究《操作系統(tǒng)原理》相關(guān)課程的核心與關(guān)鍵。教學(xué)環(huán)節(jié)之中應(yīng)當更加看重對系統(tǒng)所有元素之間的組合與關(guān)聯(lián)性,因此,指引學(xué)生了解與掌握系統(tǒng)構(gòu)造之中的一般規(guī)律性,并深入探究系統(tǒng)操作過程中各種存在的結(jié)構(gòu)概念。通過這種方式,實現(xiàn)自上至下的認知與學(xué)習(xí),深化學(xué)生對系統(tǒng)結(jié)構(gòu)思維的形成。endprint