国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

操作系統(tǒng)教學(xué)方法的若干思考

2011-12-31 00:00:00陸億
計(jì)算機(jī)教育 2011年9期


  摘要:針對操作系統(tǒng)課程存在涉及面廣、實(shí)踐性強(qiáng),很多概念和算法相當(dāng)抽象,初學(xué)者不易理解的教學(xué)實(shí)際,在分析情景教學(xué)法、比喻教學(xué)法和理論聯(lián)系實(shí)際等教學(xué)方法的基礎(chǔ)上,本文提出在操作系統(tǒng)教學(xué)中使用多種教學(xué)法的觀點(diǎn),結(jié)合授課實(shí)際,在操作系統(tǒng)課程教學(xué)中取得了生動形象的效果。
  關(guān)鍵詞:操作系統(tǒng);情景教學(xué);比喻教學(xué);理論聯(lián)系實(shí)際
  
  操作系統(tǒng)是計(jì)算機(jī)系統(tǒng)的基本組成部分。同樣,操作系統(tǒng)課程也是計(jì)算機(jī)教學(xué)的基本組成部分,是計(jì)算機(jī)專業(yè)的重要專業(yè)基礎(chǔ)課。操作系統(tǒng)作為計(jì)算機(jī)硬件和計(jì)算機(jī)用戶之間的中介,對下直接與硬件打交道,對上提供方便的用戶接口。操作系統(tǒng)課程涉及了計(jì)算機(jī)體系結(jié)構(gòu)/硬件、軟件設(shè)計(jì)以及程序設(shè)計(jì)語言、數(shù)據(jù)結(jié)構(gòu)和網(wǎng)絡(luò)等領(lǐng)域,具有實(shí)踐性強(qiáng)、涉及面廣和錯綜復(fù)雜等特點(diǎn)。其理論中的許多概念、算法相當(dāng)抽象,導(dǎo)致初學(xué)者不易理解,從而難以掌握。
  1多種教學(xué)方法在教學(xué)中的應(yīng)用
  1.1情景教學(xué)法
  情景教學(xué)就是設(shè)計(jì)出一些真實(shí)性或準(zhǔn)真實(shí)性的情形和景象[1],為教學(xué)提供充足的實(shí)例,并活化所教授的知識。情景的生動與形象有助于學(xué)生把知識融于生動的情景之中,提高學(xué)習(xí)興趣。
  教師可以在操作系統(tǒng)教學(xué)中精心安排的情景為線索,結(jié)合操作系統(tǒng)的功能,并在講解中對所涉及的算法和數(shù)據(jù)結(jié)構(gòu)進(jìn)行有針對性地介紹,把操作系統(tǒng)的工作流程串聯(lián)起來,使學(xué)生對操作系統(tǒng)有一個形象、系統(tǒng)的了解,從而進(jìn)一步加深學(xué)生對操作系統(tǒng)知識的學(xué)習(xí)和掌握。
  操作系統(tǒng)的工作之一就是控制程序的執(zhí)行,即負(fù)責(zé)啟動每個程序以及結(jié)束程序。
  初學(xué)程序者,接觸到的第一個程序往往是簡單的hello程序。其源代碼如下:
  #include
  intmain()
  {
  printf("helloworld\");
  return0;
  }
  對此,我們可以設(shè)計(jì)一個情景教學(xué)單元[2],通過跟蹤hello程序的生命周期來學(xué)習(xí)操作系統(tǒng)的工作流程,hello的生命周期從它被程序員創(chuàng)建開始,包括運(yùn)行、輸出簡單的消息,然后終止。
  我們知道,源程序編輯好后,經(jīng)過預(yù)處理、編譯、匯編、鏈接等處理得到可執(zhí)行文件hello,并被存放到外存上。為了在Linux運(yùn)行該可執(zhí)行文件,我們輸入它的文件名。
  當(dāng)用戶登錄進(jìn)入Linux系統(tǒng)時,同時啟動一個shell進(jìn)程。shell管理用戶與操作系統(tǒng)之間的交互,即:等待用戶輸入,向操作系統(tǒng)解釋用戶的輸入,并輸出操作系統(tǒng)的處理結(jié)果。
  在命令提示符后輸入命令后,shell讀入這個命令行并對其進(jìn)行解析,將它分解為詞。接著,shell檢查第一個詞是內(nèi)置命令還是磁盤上的可執(zhí)行程序。若是內(nèi)置命令,shell就在自己內(nèi)部執(zhí)行它。否則,shell將在路徑變量所指的目錄中查找這個程序。當(dāng)用戶在鍵盤上鍵入hello并按回車后,shell在指定的目錄找到了hello的可執(zhí)行代碼,shell用fork創(chuàng)建一子進(jìn)程來執(zhí)行它。之后,shell會執(zhí)行waitpid系統(tǒng)調(diào)用進(jìn)入睡眠(或等待)狀態(tài)直至該子進(jìn)程結(jié)束。
  用fork創(chuàng)建的子進(jìn)程是由父進(jìn)程即shell進(jìn)程的地址空間的復(fù)制組成。兩個進(jìn)程都繼續(xù)執(zhí)行位于系統(tǒng)調(diào)用fork之后的指令,不同的是:對于新(子)進(jìn)程,系統(tǒng)調(diào)用fork的返回值為0;而對于父進(jìn)程,返回值為非零。調(diào)用fork后,子進(jìn)程使用系統(tǒng)調(diào)用execlp。execlp將hello二進(jìn)制代碼裝進(jìn)內(nèi)存,消除了原來包含系統(tǒng)調(diào)用的程序的內(nèi)存映射,并從hello二進(jìn)制代碼的起始處開始運(yùn)行。
  當(dāng)hello子進(jìn)程結(jié)束后,喚醒shell父進(jìn)程,shell會根據(jù)需要報(bào)告程序的退出狀態(tài)。此時,屏幕上又會出現(xiàn)命令提示符,整個過程重頭開始。
  通過情景教學(xué),可以引出以下結(jié)論:進(jìn)程是操作系統(tǒng)對運(yùn)行程序的一種抽象,在一個系統(tǒng)上可以同時運(yùn)行多個進(jìn)程,而每個進(jìn)程都好像在獨(dú)占地使用硬件,我們稱之為并發(fā)運(yùn)行,從微觀看一個進(jìn)程的指令和另一個進(jìn)程的指令是交錯執(zhí)行的。操作系統(tǒng)實(shí)現(xiàn)這種交錯執(zhí)行的機(jī)制稱為上下文切換。操作系統(tǒng)保存進(jìn)程運(yùn)行所需的所有狀態(tài)信息,這種狀態(tài)就是上下文,比如PC和寄存器文件的當(dāng)前值以及主存的內(nèi)容。在任何一個時刻,單處理機(jī)系統(tǒng)都只有一個進(jìn)程正在運(yùn)行。當(dāng)操作系統(tǒng)把處理機(jī)控制權(quán)從當(dāng)前進(jìn)程轉(zhuǎn)移到某個新進(jìn)程時,就會進(jìn)行上下文切換,即保存當(dāng)前進(jìn)程的上下文、設(shè)置新進(jìn)程的上下文,然后將控制權(quán)轉(zhuǎn)移到新進(jìn)程,新進(jìn)程開始執(zhí)行。
  該情景形象地描述了操作系統(tǒng)的主要流程,讓學(xué)生對操作系統(tǒng)的功能有一個全面而系統(tǒng)的了解,增強(qiáng)了他們的學(xué)習(xí)積極性,因而有效地提高了教學(xué)效果。
  1.2比喻教學(xué)法
  比喻教學(xué)法[3]是一種打比方的方法,它將兩個本質(zhì)上有異曲同工之處的事物相聯(lián)系。通常選擇一個學(xué)生熟悉的事物,將其引申至未知或抽象的事物,達(dá)到讓學(xué)生更好地認(rèn)識新事物的目的。恰當(dāng)?shù)谋扔饔袝r勝過千言萬語,它可以化難為易,讓人豁然開朗。
  比喻教學(xué)法是一種有效的授課方法,可以使學(xué)生加深對概念的理解,激發(fā)學(xué)生的學(xué)習(xí)興趣,學(xué)習(xí)效果也會明顯改善,教學(xué)質(zhì)量將會有很大提高。
  在進(jìn)程管理一章中,整型信號量機(jī)制中的wait操作,當(dāng)信號量S≤0時,就會不斷地測試,該機(jī)制并未遵循“讓權(quán)等待”的準(zhǔn)則,而使該進(jìn)程處于“忙等”的狀態(tài)。因此引進(jìn)了記錄型信號量機(jī)制:
  type semaphore=record
  value:integer;
  L:list of process;
  End
  其中,s.value表示資源信號量,代表資源數(shù)目;S.L表示等待信號量鏈表,鏈接等待進(jìn)程。其相應(yīng)的wait(s)和signal(s)可描述為:
  Procedure wait(s)
  var S:Semaphore;
   begin
  s.value:=s.value-1;
  if s.value<0 then block(S.L);
  end;
  Procedure signal(s)
   var s:semaphore;
  begin
  s.value:=s.value+1;
  if s.value≤0 then wakeu

长汀县| 石嘴山市| 南召县| 银川市| 广饶县| 白朗县| 翁源县| 崇礼县| 巴南区| 濮阳市| 格尔木市| 南陵县| 湘乡市| 蕉岭县| 株洲县| 兴业县| 屏南县| 朝阳市| 闻喜县| 图木舒克市| 大冶市| 枞阳县| 稷山县| 张掖市| 隆子县| 诏安县| 永宁县| 靖宇县| 弥渡县| 潍坊市| 温宿县| 锡林浩特市| 莫力| 厦门市| 思南县| 格尔木市| 铜陵市| 金湖县| 桃园市| 庆阳市| 凤庆县|