李佳靜 閆 琰 張國英
(中國礦業(yè)大學(xué)(北京)機(jī)電與信息工程學(xué)院 北京 100083)
操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)中的核心軟件,對(duì)計(jì)算機(jī)系統(tǒng)中的軟硬件資源進(jìn)行管理,合理組織計(jì)算機(jī)的工作流程。操作系統(tǒng)是計(jì)算機(jī)專業(yè)的核心專業(yè)課程,圍繞操作系統(tǒng)的主要功能包括處理機(jī)管理、內(nèi)存管理、文件管理,以及設(shè)備管理的實(shí)現(xiàn)原理展開。
進(jìn)程是計(jì)算機(jī)操作系統(tǒng)當(dāng)中最重要的概念??梢哉f,操作系統(tǒng)中的所有工作,都是圍繞著如何為進(jìn)程服務(wù)進(jìn)行的。進(jìn)程不同于學(xué)生在之前編程時(shí)所掌握的“程序”,是一個(gè)動(dòng)態(tài)的概念。并發(fā)系統(tǒng)的諸多進(jìn)程,由于對(duì)資源的競(jìng)爭(zhēng)和共享產(chǎn)生了不同的關(guān)系。如何理解進(jìn)程以及進(jìn)程之間的關(guān)系,一直是操作系統(tǒng)課程中的重點(diǎn)和難點(diǎn),也是后續(xù)課程包括并行計(jì)算等的基礎(chǔ)。
進(jìn)程的教學(xué),具有抽象、復(fù)雜、概念繁多等特點(diǎn),在教學(xué)中采用單一或有限的教學(xué)方法往往效果不佳,給學(xué)生的學(xué)習(xí)帶來了很大的困難,從而產(chǎn)生畏學(xué)情緒。在實(shí)際的教學(xué)中,根據(jù)以往的教學(xué)總結(jié),針對(duì)不同的知識(shí)點(diǎn)的特點(diǎn)設(shè)計(jì)了多種教學(xué)方法。在這里以進(jìn)程的互斥關(guān)系為例,說明這些教學(xué)方法的綜合運(yùn)用,從不同的方面改善了教學(xué)效果。
在進(jìn)程互斥關(guān)系的講解中,綜合運(yùn)用了類比法、案例法、啟發(fā)法、圖表法、反證法和對(duì)比法等教學(xué)方法。這些方法具有各自的特點(diǎn)和應(yīng)用場(chǎng)景,達(dá)到了不同的效果。
類比教學(xué)法利用學(xué)生熟悉的、生動(dòng)直觀的知識(shí)與新知識(shí)之間的相似性來進(jìn)行教學(xué),能降低教學(xué)難度、提升學(xué)生的學(xué)習(xí)興趣。由于進(jìn)程和進(jìn)程之間的關(guān)系比較抽象,因此可以采用類比法進(jìn)行講解。
進(jìn)程是計(jì)算機(jī)中獨(dú)立運(yùn)行的實(shí)體,而人是人類社會(huì)中的個(gè)體。因此在講解進(jìn)程概念時(shí),可以將“進(jìn)程”與人類社會(huì)中的個(gè)體“人”進(jìn)行類比,將“操作系統(tǒng)”與“人類社會(huì)”進(jìn)行類比??梢詮囊韵聨讉€(gè)方面進(jìn)行類比:
(1)任何一個(gè)進(jìn)程都是在計(jì)算機(jī)系統(tǒng)中存在和運(yùn)行的,就像人在社會(huì)中存在和生存一樣;操作系統(tǒng)是進(jìn)程執(zhí)行的全景,任何進(jìn)程都不能脫離操作系統(tǒng)和其它并發(fā)進(jìn)程的影響;
(2)人類社會(huì)中,生產(chǎn)資料等各種資源都是為人所使用;同樣操作系統(tǒng)中的資源管理都是圍繞著進(jìn)程進(jìn)行的,為進(jìn)程服務(wù)的;
(3)人類社會(huì)中的各種社會(huì)形態(tài),例如奴隸社會(huì)、封建社會(huì)是根據(jù)生產(chǎn)資料的分配形式?jīng)Q定的,同樣在操作系統(tǒng)在分配資源時(shí)也有不同的策略;
(4)在人類社會(huì)中,人和人之間存在著各種關(guān)系,同理在并發(fā)的計(jì)算機(jī)系統(tǒng)中的進(jìn)程之間也存在著各種關(guān)系。例如兩個(gè)人之間不認(rèn)識(shí),對(duì)應(yīng)的就是進(jìn)程之間互斥關(guān)系;兩個(gè)人之間雖然不認(rèn)識(shí),例如圓通的兩個(gè)省份的快遞員可能不認(rèn)識(shí),但是可以合作完成一件事情即將一件快遞從一個(gè)省份到另一個(gè)省份,對(duì)應(yīng)的就是進(jìn)程之間的合作關(guān)系;兩個(gè)人之間認(rèn)識(shí)可以互相認(rèn)識(shí)并且直接通訊,這就是進(jìn)程之間的通信關(guān)系。
通過將“進(jìn)程”與人類社會(huì)中的每個(gè)個(gè)體“人”進(jìn)行類比,將“操作系統(tǒng)”與“人類社會(huì)”進(jìn)行類比,使得學(xué)生對(duì)于抽象的“進(jìn)程”概念轉(zhuǎn)換成生動(dòng)活潑的人類社會(huì)的理解,降低了學(xué)習(xí)難度。
案例教學(xué)法圍繞學(xué)習(xí)目標(biāo)把實(shí)際中真實(shí)的情景加以典型化處理,形成供學(xué)生思考分析和決斷的案例。在進(jìn)程互斥當(dāng)中,以最直觀和具有代表性的聯(lián)網(wǎng)售票系統(tǒng)代碼作為一個(gè)貫穿始終的案例,將所有的知識(shí)點(diǎn)結(jié)合該案例進(jìn)行講解。如表1所示:
表1:聯(lián)網(wǎng)售票進(jìn)程偽碼
圍繞著聯(lián)網(wǎng)售票系統(tǒng)對(duì)一些關(guān)鍵的概念進(jìn)行講解,例如并發(fā)進(jìn)程,就是多個(gè)正在營業(yè)的售票網(wǎng)點(diǎn);臨界資源,就是售票的數(shù)據(jù)庫;臨界區(qū),就是聯(lián)網(wǎng)售票系統(tǒng)中對(duì)售票數(shù)據(jù)庫進(jìn)行操作訪問的代碼部分。
聯(lián)網(wǎng)售票系統(tǒng)的代碼簡(jiǎn)單,貼近大學(xué)生生活。在講解的時(shí)候,以學(xué)校東門和南門的兩個(gè)售票點(diǎn)的并發(fā)進(jìn)程為例進(jìn)行說明,富有生活氣息,學(xué)生表示非常容易接受。
啟發(fā)式教學(xué)是在教學(xué)工作中依據(jù)知識(shí)點(diǎn)的內(nèi)在聯(lián)系和學(xué)生的認(rèn)識(shí)規(guī)律,由淺入深,由近及遠(yuǎn),由表及里,由易到難的逐步提出問題,解決問題。在進(jìn)程互斥問題講解的過程中,以啟發(fā)式的方式向?qū)W生提問,引發(fā)學(xué)生的深入思考。例如向?qū)W生提出以下問題:
(1)東門的售票點(diǎn)今天是否營業(yè)對(duì)南門的售票點(diǎn)有影響嗎?
(2)東門的售票點(diǎn)售票需要等南門的售票點(diǎn)先售票完成嗎?
(3)東門的售票點(diǎn)是否知道南門售票點(diǎn)的存在?
學(xué)生基于常識(shí)會(huì)回答:
(1)東門的售票點(diǎn)是否營業(yè)對(duì)南門的售票點(diǎn)沒有影響;
(2)東門的售票點(diǎn)和南門售票點(diǎn)的售票沒有先后關(guān)系;
(3)東門的售票點(diǎn)不知道南門售票點(diǎn)的存在。
基于學(xué)生的這些回答,繼續(xù)啟發(fā)學(xué)生對(duì)進(jìn)程之間的互斥關(guān)系進(jìn)行總結(jié):
(1)進(jìn)程之間沒有相互依賴關(guān)系,一個(gè)進(jìn)程是否運(yùn)行對(duì)另外的進(jìn)程沒有影響;
(2)進(jìn)程之間沒有固定的順序關(guān)系,執(zhí)行順序是隨機(jī)的;
(3)進(jìn)程之間相互不感知。
啟發(fā)式的教學(xué)過程中由淺入深的設(shè)計(jì)各種問題,讓學(xué)生有一種撥云見日漸入佳境的感覺,并完成從特殊到一般的歸納,從而掌握了進(jìn)程互斥關(guān)系的實(shí)質(zhì)。
圖表教學(xué)法使教學(xué)內(nèi)容直觀化和形象化,具有新穎性,富有吸引力。為了聯(lián)網(wǎng)售票程序執(zhí)行過程進(jìn)行細(xì)致的講解,采用圖表法進(jìn)行演示。如表2所示,表中的列表示系統(tǒng)中的若干個(gè)并發(fā)進(jìn)程,行代表執(zhí)行中的若干時(shí)間點(diǎn),表中的每一單元表示該進(jìn)程在該時(shí)刻執(zhí)行的代碼。
表2:2個(gè)并發(fā)的聯(lián)網(wǎng)售票進(jìn)程執(zhí)行序列圖
在這個(gè)表中假設(shè)系統(tǒng)中同時(shí)有兩個(gè)聯(lián)網(wǎng)售票進(jìn)程 p1和p2,在T1時(shí)刻P1從數(shù)據(jù)庫中讀入,T2時(shí)刻P2從數(shù)據(jù)庫中讀入,T3時(shí)刻P2對(duì)數(shù)據(jù)庫進(jìn)行修改,T4時(shí)刻T4對(duì)數(shù)據(jù)庫進(jìn)行修改。在T4時(shí)刻,出現(xiàn)了“同一張票被賣了兩次”的錯(cuò)誤。
在對(duì)該圖表的解釋過程當(dāng)中,學(xué)生通常會(huì)產(chǎn)生“原來看起來這么簡(jiǎn)單的程序,在執(zhí)行的過程中如果不加以控制就會(huì)產(chǎn)生很嚴(yán)重的錯(cuò)誤”的想法,從而產(chǎn)生追問原因并尋求解決方案的愿望。圖表法能夠細(xì)致地展現(xiàn)進(jìn)程的并發(fā)過程,對(duì)學(xué)生理解程序的進(jìn)程互斥關(guān)系有非常大的幫助。
反證法通過判定與論題相矛盾的判斷的虛假來確立論題的真實(shí)性的論證方法。對(duì)于使用P,V原語和信號(hào)量來解決進(jìn)程互斥問題的講解中,為了說明P,V原語的正確位置,采用反證法進(jìn)行驗(yàn)證。當(dāng)P原語處于不當(dāng)?shù)奈恢脮r(shí)可能造成時(shí)間相關(guān)的錯(cuò)誤;而當(dāng)V原語處于不當(dāng)?shù)奈恢脮r(shí),可能引起資源的浪費(fèi)。反證法使得學(xué)生掌握了對(duì)于某種解決方案不知道是否正確的時(shí)候的一種驗(yàn)證分析方法。
對(duì)比教學(xué)法,將一組具有一定關(guān)聯(lián)性而又有差別的概念進(jìn)行細(xì)致的對(duì)比分析,從而幫助學(xué)生理解其中的聯(lián)系和不同。在進(jìn)程關(guān)系的教學(xué)中,進(jìn)程的關(guān)系包括互斥、同步和通信等關(guān)系。其中通信關(guān)系比較好理解,而互斥和同步關(guān)系的區(qū)別很容易給學(xué)生造成困擾。因此在講授過程中,從幾個(gè)方面將互斥和同步關(guān)系進(jìn)行對(duì)比:
(1)進(jìn)程之間是否互相感知?
(2)進(jìn)程之間在使用資源時(shí)是否有時(shí)序的限制?
(3)一個(gè)進(jìn)程的執(zhí)行結(jié)果是否影響另一個(gè)進(jìn)程?
對(duì)于任何兩個(gè)進(jìn)程,分別回答以上問題,然后對(duì)應(yīng)互斥和同步的定義,則可以區(qū)分進(jìn)程之間的關(guān)系。
在進(jìn)程的關(guān)系的教學(xué)中,綜合使用類比法、案例法、啟發(fā)法、圖表法、反證法和對(duì)比法等方法。類比法可以使用具體的貼近生活的知識(shí)來幫助對(duì)進(jìn)程概念和進(jìn)程間關(guān)系的理解;案例法可以將臨界區(qū)和臨界資源等概念聯(lián)系到實(shí)際的例子當(dāng)中;啟發(fā)法可以幫助學(xué)生主動(dòng)思考,發(fā)現(xiàn)進(jìn)程間關(guān)系的本質(zhì);圖表法可以將程序執(zhí)行的過程進(jìn)行細(xì)致的展現(xiàn);反證法用于理解當(dāng)錯(cuò)誤的使用P,V原語和信號(hào)量時(shí)帶來的后果;對(duì)比法用于掌握不同進(jìn)程關(guān)系的關(guān)聯(lián)和差異。這些教學(xué)方法的綜合使用,從多個(gè)方面提高了學(xué)生對(duì)知識(shí)的掌握和理解,改善了教學(xué)效果。在今后的操作系統(tǒng)課程教學(xué)過程當(dāng)中,還將繼續(xù)嘗試角色扮演法、溯源法等多種其他教學(xué)方法,以滿足更多教學(xué)內(nèi)容的需求。