專利名稱:一種用于操作系統(tǒng)實驗教學的智能教具的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是一種應(yīng)用于操作系統(tǒng)進程相關(guān)內(nèi)容演示、實驗的教具。具體來說,是 一種將操作系統(tǒng)中進程有關(guān)概念具象化,直觀呈現(xiàn)操作系統(tǒng)中進程執(zhí)行過程中的進程調(diào) 度、進程同步、死鎖等狀態(tài)的教具。作為一種形象化教具,本發(fā)明直觀地呈現(xiàn)多進程在 算法的指導下協(xié)調(diào)執(zhí)行的場景。
背景技術(shù):
操作系統(tǒng)是計算機配備的最基本、最重要的系統(tǒng)軟件。它不僅是硬件與所有其 他軟件之間的接口,而且任何數(shù)字電子計算機都必須在其硬件平臺上加載相應(yīng)的操作系 統(tǒng)之后,才能構(gòu)成一個可以協(xié)調(diào)運轉(zhuǎn)的計算機系統(tǒng)。只有在操作系統(tǒng)的指揮控制下,各 種計算機資源才能被分配給用戶使用。也只有在操作系統(tǒng)的支撐下,其他系統(tǒng)軟件如各 類編譯系統(tǒng)、程序庫和運行支持環(huán)境才得以取得運行條件。沒有操作系統(tǒng),任何應(yīng)用軟 件都無法運行。由于操作系統(tǒng)在計算機系統(tǒng)所處的位置決定了操作系統(tǒng)課程的重要性,操作系 統(tǒng)課程是計算機類專業(yè)、通信類專業(yè)、自動化類專業(yè)的專業(yè)主干課程。學好操作系統(tǒng)不 僅能較全面地掌握計算機軟硬件知識,而且為以后學習數(shù)據(jù)庫系統(tǒng)、計算機網(wǎng)絡(luò)、分布 式系統(tǒng)等課程打下良好的基礎(chǔ)。當前的操作系統(tǒng)課堂教學以及操作系統(tǒng)上機實驗普遍存在一些問題,導致學生 無法深入理解操作系統(tǒng)內(nèi)部運行機制,無法達到既定的教學目標。這些問題包括(1) 操作系統(tǒng)中概念、內(nèi)部機制過于抽象化、專業(yè)化,難以通過類比的方法,獲得感性的、 直觀的理解。(2)在操作系統(tǒng)教學中,為了對操作系統(tǒng)有更加深入的、直觀的理解,該課 程一般都會安排與相應(yīng)章節(jié)內(nèi)容相關(guān)的上機實驗。然而這些實驗多是通過系統(tǒng)調(diào)用的方 式獲取進程信息、資源信息,通過輸出的數(shù)據(jù)分析操作系統(tǒng)執(zhí)行狀態(tài)。這就導致了操作 系統(tǒng)實驗缺乏直觀性、趣味性。(3)由于在課上學習的過程中對操作系統(tǒng)相關(guān)知識的學 習、理解過程中本身存在問題,導致實驗難以開展,又因?qū)嶒瀱握{(diào)枯燥,很多時候?qū)W生 實驗課都在應(yīng)付了事。為了解決操作系統(tǒng)教學中存在的這些問題,該發(fā)明提出一種應(yīng)用于操作系統(tǒng)進 程相關(guān)內(nèi)容演示、實驗的教具。首先,該教具是一種演示教具,它對操作系統(tǒng)中進程相 關(guān)的概念提供了一組形象化模型表示,可在預(yù)先寫好的程序的控制下在課上演示操作系 統(tǒng)進程執(zhí)行過程。另外,作為一種智能教具,它允許用戶自行編寫程序來控制模型教具 中各部件的運轉(zhuǎn)情況,達到直觀的觀察、驗證操作系統(tǒng)在不同的算法指導的情況之下的 運行的情況。操作系統(tǒng)相關(guān)知識操作系統(tǒng)從用戶交互性的角度主要可以分為三種類型批處理系統(tǒng)、分時操作 系統(tǒng)、實時操作系統(tǒng)。批處理系統(tǒng)分為單批處理系統(tǒng)、多批處理系統(tǒng)。與單批處理系統(tǒng) 相比,多批處理系統(tǒng)內(nèi)存同時駐留多個要執(zhí)行的程序,當正在執(zhí)行的程序進行I/O操作時,系統(tǒng)會通過調(diào)度策略選擇下一個程序交付給此時處于空閑的處理機。在多批處理操 作系統(tǒng)中,程序執(zhí)行的順序是嚴格按照它們被載入內(nèi)存的先后順序依次執(zhí)行的,在執(zhí)行 的過程中不受用戶干預(yù)。與多批處理操作系統(tǒng)相同,分時系統(tǒng)中內(nèi)存中也同時駐留多個 待執(zhí)行程序,但是多個程序不再是依次執(zhí)行而是在邏輯上同時執(zhí)行。分時系統(tǒng)有更好的 交互性,這主要表現(xiàn)在分時系統(tǒng)同時可以對多個終端用戶服務(wù),對每個用戶的輸入都能 做出及時的響應(yīng),使每個用戶在感覺上是獨占一臺機器的。在分時操作系統(tǒng)中處理機的運行時間被分割成很短的時間段,每個時間段稱為 一個時間片。通過一個調(diào)度策略,在某一時刻將一個時間片分給某一個程序,即這個程 序在這個時間片上得到處理。當時間片用盡,這個程序的執(zhí)行結(jié)果暫時保存起來,然后 系統(tǒng)依照某一調(diào)度策略去選擇下一個程序執(zhí)行。這樣雖然某一時刻只有一個程序被處 理,但在一個較長的時間段上每個程序都得到了處理。處理機處理的速度很快,劃分的 時間片很小,所以給用戶的感覺是多個程序在同時被處理。這樣一組邏輯上同時執(zhí)行的 程序被認為是并發(fā)的。與并行不同,并發(fā)不能做到在某一個時刻同時執(zhí)行多個程序,而 是通過處理機運行時間的劃分給用戶帶來感覺上幾個程序同時執(zhí)行。在分時操作系統(tǒng)中,由于每個程序都以走走停停的方式輪流執(zhí)行,為了更好描 述某個一個時刻某一個程序執(zhí)行狀態(tài)而引入進程的概念。進程是程序在某一個數(shù)據(jù)集上 一次執(zhí)行過程,也是操作系統(tǒng)進行資源分配和保護的基本單位。一個進程從創(chuàng)建到消亡 的整個生命周期,可用一組狀態(tài)加以刻畫。按照程序執(zhí)行過程中的狀態(tài)可以定義三種不 同的進程狀態(tài)運行態(tài)、就緒態(tài)、等待態(tài)。運行態(tài)的進程占有處理機,并且正在執(zhí)行; 就緒態(tài)的進程已經(jīng)具備運行條件但是由于并不占有處理機,暫時不能運行;等待態(tài)的進 程因為等待某種條件的發(fā)生,例如等待輸入輸出接口空閑,而暫時不能運行。在分時操作系統(tǒng)中,某一時刻最多有一個進程處于運行態(tài),多個進程處于就緒 態(tài)和等待態(tài)。在一定條件下進程的狀態(tài)發(fā)生相互轉(zhuǎn)化,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化的條件 是當前處于運行態(tài)的進程時間片用盡;從就緒態(tài)到運行態(tài)的轉(zhuǎn)化條件是某一個處于就緒 態(tài)的進程在某一選擇策略條件下被系統(tǒng)選中執(zhí)行;從運行態(tài)到等待態(tài)的轉(zhuǎn)換條件是進程 在執(zhí)行過程中,由于發(fā)現(xiàn)某個執(zhí)行條件不滿足而主動放棄處理機進入等待狀態(tài);在事件 滿足的條件時,進程會從等待態(tài)轉(zhuǎn)化到就緒態(tài)。處于就緒狀態(tài)的幾個進程以先進先出的原則構(gòu)成的一個邏輯上的集合,稱為就 緒隊列。處于等待狀態(tài)的幾個進程以先進先出的原則構(gòu)成的一個邏輯上的集合,稱為等 待隊列。操作系統(tǒng)調(diào)度問題的關(guān)鍵知識點,是在操作系統(tǒng)中同時存在多個進程的情況 下,按一定策略為處于就緒態(tài)的進程分配處理機,以避免因進程相互爭奪處理機而導致 的處理機利用率下降以及某些進程長期得不到執(zhí)行等問題。在分時操作系統(tǒng)中,進程執(zhí)行過程中會訪問共享的資源。這些資源包括硬件資 源和軟件資源統(tǒng)稱為臨界資源。部分臨界資源的訪問是互斥的,即在某個進程提出申請 資源之后,不允許其它進程訪問。進程同步描述的是一組同時執(zhí)行的進程,在都要訪問共享的臨界資源而相互制 約的條件下,進行互相合作、互相等待,使得各進程按一定的速度執(zhí)行的場景。
幾個進程互斥訪問的臨界資源時,由于資源分配策略不合理,導致在極端的情 況下,幾個進程都在占有某資源的同時等待其它進程占有的資源,這可能導致幾個進程 一直處在等待態(tài),等待其他進程釋放資源,這一現(xiàn)象稱為死鎖。死鎖問題的關(guān)鍵知識 點,是如何發(fā)現(xiàn)死鎖并避免死鎖。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種演示操作系統(tǒng)中進程調(diào)度、進程同步、死鎖等知識點 的教具。該教具的主要部件及結(jié)構(gòu)如下(1)動作執(zhí)行部件轉(zhuǎn)盤、伸縮臂,提供動力的部件直流電機、步進電機,以及連 接在動作執(zhí)行部件和提供動力的部件之間的動力傳動部件包括齒輪、連接管、支撐平臺 等;(2)用來控制系統(tǒng)運轉(zhuǎn)的核心控制部件單片機以及其外圍電路其中包括直流電機 驅(qū)動、步進電機驅(qū)動、數(shù)碼管驅(qū)動、多路選通芯片;(3)為完整描述操作系統(tǒng)必要的部件,其中包括用于表示操作系統(tǒng)進程的小物 塊,用來描述進程狀態(tài)的方臺,用來表示操作系統(tǒng)資源的數(shù)碼管;(4)用于表示操作系統(tǒng)執(zhí)行狀況的部件發(fā)光二極管;(5)用于檢測表示進程的小物塊位置以及伸縮臂凹槽位置的部件光電傳感器;(6)黑盒處于教具結(jié)構(gòu)中最底部,為整個系統(tǒng)部件的支撐。黑盒是一個中空、頂部為正方形的盒子,黑盒內(nèi)部用來裝載單片機、驅(qū)動芯 片、電機搭建的電路,黑盒處于模型最底部,黑盒的頂部為方臺、光電傳感器支撐面;轉(zhuǎn)盤處于黑盒的正上方,是一個厚度L< 4mm的圓形轉(zhuǎn)盤,轉(zhuǎn)盤的圓心與黑盒 的中心重合,直徑小于黑盒頂部正方形的邊長,并在豎直方向上與黑盒頂部保持一定距 離d.轉(zhuǎn)盤通過齒輪與直流電機連接,在直流電機旋轉(zhuǎn)時轉(zhuǎn)盤在齒輪的推動下一同旋轉(zhuǎn), 黑盒頂部中心處、轉(zhuǎn)盤的圓心各有一個半徑為R的小孔,一個半徑為r<R的連接管,從 轉(zhuǎn)盤中心黑盒頂部穿過與內(nèi)部步進電機粘合在一起;支撐平臺為一多邊形平板處于轉(zhuǎn)盤的上方,與連接管的一端粘合。步進電機旋 轉(zhuǎn)時,會帶動連接管、支撐平臺會與步進電機一起旋轉(zhuǎn),支撐平臺為伸縮臂以及另一個 步進電機的支撐面;伸縮臂從頂部看是為長方形,其一段有一個凹槽,凹槽開口方向豎直向下,另 一端末尾有一段齒痕粘合在臂上。伸縮臂處于支撐平臺的上方,并固定于支撐平臺上。 伸縮臂在一端的齒痕和固定于另一步進電機的齒輪的作用下,在另一步進電機旋轉(zhuǎn)時沿 徑向推拉伸縮臂。伸縮臂也可在支撐平臺的帶動下與支撐平臺一同旋轉(zhuǎn),伸縮臂有凹槽 的一側(cè)可以包住處于轉(zhuǎn)盤上的小物快,并在沿徑向運動的過程中,推拉小物塊沿徑向運 動相應(yīng)位移,而當伸縮臂隨支撐平臺旋轉(zhuǎn)時,即伸縮臂沿轉(zhuǎn)盤切線方向運動時,并不會 觸碰小物塊;用于描述進程就緒態(tài)和等待態(tài)的多個方臺與轉(zhuǎn)盤豎直方向上同高分布在轉(zhuǎn)盤周 圍。方臺的邊緣與轉(zhuǎn)盤外邊緣相切、徑向距離n< 2mm。這些方臺邏輯上可分為兩組, 一組構(gòu)成了一個就緒隊列,另一組構(gòu)成等待隊列。當表示進程的小物塊處于構(gòu)成就緒隊列的方臺上時,此時表示進程的小物塊進入了就緒狀態(tài),當表示進程的小物塊處于構(gòu)成 等待隊列的方臺上時,表示進程的小物塊進入了等待狀態(tài);一組光電傳感器用來檢測旋轉(zhuǎn)過程中表示進程的小物塊的位置和伸縮臂凹槽的 位置。光電傳感器安置在每個方臺的其中一側(cè)與方臺緊鄰的位置,豎直方向高度略高于 方臺的高度,用來檢測小物塊當前移動到哪一個方臺對應(yīng)的位置,除此之外空閑的一個 光電傳感器用來全局記錄表示進程的小物塊隨轉(zhuǎn)盤一同旋轉(zhuǎn)轉(zhuǎn)過的圈數(shù);單片機為整個系統(tǒng)的核心控制部件,它通過驅(qū)動芯片與步進電機,直流電機, 數(shù)碼管,發(fā)光二極管連接,輸出信號控制步進電機的正向旋轉(zhuǎn)反向或旋轉(zhuǎn)以及旋轉(zhuǎn)的角 度,控制直流電機旋轉(zhuǎn)還是停止,控制數(shù)碼管亮滅以及顯示數(shù)字,控制發(fā)光二極管亮 滅,另一方面,它通過多路選擇芯片輪詢一組光電傳感器的電位改變,獲得小物塊隨轉(zhuǎn) 盤旋轉(zhuǎn)過程中的位置以及小物塊隨轉(zhuǎn)盤轉(zhuǎn)過的圈數(shù),此外,單片機還要記錄就緒隊列、 等待隊列的狀態(tài),記錄處于邏輯上對首的位置的方臺的編號,處于隊尾位置的方臺的編 號;記錄小物塊在隨轉(zhuǎn)盤旋轉(zhuǎn)的圈數(shù)以判斷表示進程的小物塊時間片是否用盡;記錄表 示資源的數(shù)碼管的狀態(tài),即該資源類型訪問是否為互斥的、資源個數(shù)、資源是否處于被 訪問狀態(tài)。演示方法該教具通過表示進程的小物塊在轉(zhuǎn)盤上旋轉(zhuǎn),停止在表示就緒隊列的方臺上和 停止在表示等待隊列的方臺上,這樣一組狀態(tài)來表示進程執(zhí)行過程中進程的運行態(tài)、就 緒態(tài)、等待態(tài)。進程每次狀態(tài)的轉(zhuǎn)化,即從某個方臺移動到轉(zhuǎn)盤、從轉(zhuǎn)盤移動到某個方 臺,是在伸縮臂的旋轉(zhuǎn)、伸縮,轉(zhuǎn)盤的旋轉(zhuǎn)的協(xié)調(diào)配合下完成的。表示進程的小物塊從一個方臺移動到另一個方臺,或者移動上轉(zhuǎn)盤可以分解成 為一些基本動作序列。1.將小物塊從某一個方臺上移動到轉(zhuǎn)盤單片機向驅(qū)動芯片發(fā)出指令旋轉(zhuǎn),步進電機在驅(qū)動的控制下旋轉(zhuǎn),并通過連接 管帶動支撐平臺、伸縮臂一起旋轉(zhuǎn)。此時單片機從與該方臺旁緊鄰的光電傳感器讀入電 信號,伸縮臂移動到該方臺位置時,光電傳感器因被遮住而產(chǎn)生電信號變化。該電信號 的改變被單片機檢測到,單片機向驅(qū)動芯片發(fā)出指令停止旋轉(zhuǎn),步進電機在驅(qū)動芯片控 制下,繼續(xù)轉(zhuǎn)若干周后停止,支撐平臺、伸縮臂也在步進電機的帶動下繼續(xù)旋轉(zhuǎn)一個單 位角度后停止。單片機向驅(qū)動芯片發(fā)出指令旋轉(zhuǎn),另一步進電機在驅(qū)動芯片的控制之下 旋轉(zhuǎn)若干個角度后停止并帶動伸縮臂向外伸長一定長度后停止。單片機控制再次控制步 進電機反向旋轉(zhuǎn),在步進電機的帶動下,支撐平臺、伸縮臂反向旋轉(zhuǎn)一定相應(yīng)角度后停 止,此時表示進程的小物塊正好處于伸縮臂的下方。單片機向驅(qū)動芯片發(fā)出指令反向旋 轉(zhuǎn),另一步進電機在驅(qū)動芯片的控制下反向旋轉(zhuǎn),伸縮臂在步進電機的控制下向內(nèi)收縮 一定長度回到原來位置,并帶動表示進程的小物塊移動到表示處理機的轉(zhuǎn)盤上。2.將小物塊從轉(zhuǎn)盤移動到某一個方臺上單片機向驅(qū)動芯片發(fā)出指令旋轉(zhuǎn),直流電機在驅(qū)動芯片的控制之下旋轉(zhuǎn)并帶動 轉(zhuǎn)盤旋轉(zhuǎn)。此時單片機從與該方臺旁緊鄰的光電傳感器讀入電信號,小物塊移動到該 方臺位置時,光電傳感器因被遮住而產(chǎn)生電信號變化。該電信號的改變被單片機檢測到 后,單片機向驅(qū)動芯片發(fā)出指令停止旋轉(zhuǎn),直流電機在驅(qū)動芯片的控制下停止旋轉(zhuǎn)。此時表示進程的小物塊靜止于與方臺相對的位置。單片機控制步進電機旋轉(zhuǎn),支撐平臺、 伸縮臂在步進電機的帶動下旋轉(zhuǎn)到小物塊的位置,此時小物塊處于伸縮臂下方凹槽內(nèi)。 單片機向控制另一步進電機旋轉(zhuǎn)并帶動伸縮臂向外伸長一定角度后停止,此時小物塊隨 伸縮臂沿徑向向外移動相應(yīng)距離,靜止于方臺上。單片機控制步進電機旋轉(zhuǎn)若干角度后 停止,支撐平臺、伸縮臂也隨之旋轉(zhuǎn)相應(yīng)角度后停止,此時伸縮臂從小物塊上面移開。 單片機向驅(qū)動芯片發(fā)出指令反向旋轉(zhuǎn),另一步進電機在驅(qū)動芯片的控制下反向旋轉(zhuǎn)一定 的長度后停止,伸縮臂在步進電機的帶動下沿徑向向內(nèi)移動響應(yīng)位移后回到初始位置。由此,進程的狀態(tài)的轉(zhuǎn)化在該模型中可以描述為1.進程從就緒態(tài)到運行態(tài)的轉(zhuǎn)化將小物塊從某一個表示就緒態(tài)的方臺移動到 表示處理機的轉(zhuǎn)盤上。2.進程從運行態(tài)到就緒態(tài)的轉(zhuǎn)化 個表示就緒態(tài)的方臺。3.進程從運行態(tài)到等待態(tài)的轉(zhuǎn)化 個表示等待態(tài)的方臺。4.進程從等待態(tài)到運行態(tài)的轉(zhuǎn)化
將小物塊從表示處理機的轉(zhuǎn)盤上移動到某一 將小物塊從表示處理機的轉(zhuǎn)盤上移動到某一 將小物塊從某一個表示等待態(tài)的方臺移動到
表示處理機的轉(zhuǎn)盤,再從表示處理機的轉(zhuǎn)盤移動到某一個表示就緒態(tài)的方臺。由于操作系統(tǒng)的多個進程的執(zhí)行過程是多種多樣的,因而無法規(guī)定系統(tǒng)以某一 種具體形式來描述操作系統(tǒng)多個進程同步執(zhí)行的情況,以及在極端情況下多進程發(fā)生死 鎖的情況。但是對于多個同步執(zhí)行的進程中單獨的一個進程來看,狀態(tài)轉(zhuǎn)化只有以上敘 述的四種情況,在每次狀態(tài)轉(zhuǎn)化時執(zhí)行上述相應(yīng)動作。只是在系統(tǒng)資源狀態(tài)不同,以 及算法不同的情況下,多個進程狀態(tài)轉(zhuǎn)化的順序會有不同,進程執(zhí)行的先后順序也會不 同。這也反映了操作系統(tǒng)進程在執(zhí)行過程中的復(fù)雜性,某一個進程從一個狀態(tài)轉(zhuǎn)為另一 個狀態(tài)帶有一定不確定性。該發(fā)明提出一種應(yīng)用于操作系統(tǒng)教學的智能教具,該智能教具的設(shè)計中將嵌入 式系統(tǒng)的優(yōu)點與傳統(tǒng)教學教具創(chuàng)造性地結(jié)合起來。因此模型也兼具可由用戶自行編程和 直觀呈現(xiàn)的兩大優(yōu)點。與傳統(tǒng)的教具相比,該模型教具具有傳統(tǒng)教具的所有優(yōu)點(1)有利于學生通 過多種渠道獲取對操作系統(tǒng)進程有關(guān)概念、執(zhí)行機制的理解。(2)通過類比的方式使操 作系統(tǒng)進程有關(guān)概念、執(zhí)行機制形象化、具體化,進而幫助學生獲得直觀的,感性的理 解。(3)在直觀的、形象的學習方式的幫助下,學生會有更加深刻的理解和思考。(4) 在教學中利用教具的趣味性、新鮮感,有利于調(diào)動學生學習的積極性主動性,從而有助 于提到學生的動手能力,引發(fā)對編程的興趣。另外,操作系統(tǒng)進程在執(zhí)行過程是在算法指導下協(xié)調(diào)進行的,所以操作系統(tǒng)進 程執(zhí)行的場景是多種多樣的,這就要求該模型教具可以演示多種進程執(zhí)行的場景。該教 具采用嵌入式的系統(tǒng)結(jié)構(gòu),學生、教師都可以自行設(shè)計實驗,給學生創(chuàng)造了一些動手實 踐機會。系統(tǒng)還具有材料簡單、易于獲取,成本低;結(jié)構(gòu)清晰、直觀,實驗生動形象; 設(shè)計精巧、輕便,易于攜帶、使用;可獨立于計算機執(zhí)行等優(yōu)點,適合在教學中推廣。
附圖1為本教具俯視圖附圖2為本教具主視圖;附圖3為本教具電路原理圖;附圖4為本教具演示下進程由就緒態(tài)到運行態(tài)狀態(tài)轉(zhuǎn)化流程圖;附圖5為伸縮臂在步進電機帶動下每次轉(zhuǎn)過的單位角度a ;附圖6為本教具伸縮臂位置校準流程圖;附圖7為本教具演示下進程由運行態(tài)到就緒態(tài)狀態(tài)轉(zhuǎn)化流程圖;附圖8為本教具演示下進程由運行態(tài)到等待態(tài)狀態(tài)轉(zhuǎn)化流程圖;附圖9為本教具演示下進程由等待態(tài)到就緒態(tài)狀態(tài)轉(zhuǎn)化流程圖;附圖10為本教具演示下兩進程同步執(zhí)行流程圖的第一部分;附圖11為本教具演示下兩進程同步執(zhí)行流程圖的第二部分;附圖12為本教具演示下兩進程同步執(zhí)行流程圖的第三部分;附圖13為本教具演示下兩進程執(zhí)行引發(fā)死鎖過程流程圖。附圖1、2、3中1轉(zhuǎn)盤、2支撐平臺、3伸縮臂、4小齒輪、5大齒輪、6數(shù)碼 管、7數(shù)碼管、8發(fā)光二極管、9發(fā)光二極管、10步進電機、11步進電機、12步進電機、 13連接管、14黑盒、15橡皮塊、16齒痕、17齒輪、18光電傳感器、19光電傳感器、20 光電傳感器、21光電傳感器、22光電傳感器、23光電傳感器、24光電傳感器、25方臺、 26方臺、27方臺、28方臺、29方臺、30方臺、31單片機、32驅(qū)動芯片、33驅(qū)動芯片、 34驅(qū)動芯片、35驅(qū)動芯片、36驅(qū)動芯片、37多路選通芯片、38橡皮塊
具體實施例方式實施例1 操作系統(tǒng)實驗教學的智能教具轉(zhuǎn)盤1是一個可旋轉(zhuǎn)的圓盤,用來承載并帶動橡皮塊15旋轉(zhuǎn)。轉(zhuǎn)盤表示操作系 統(tǒng)中的處理機。支撐平臺2用來承載步進電機10、伸縮臂3,可水平旋轉(zhuǎn)。伸縮臂3可延徑向伸縮,用來推動橡皮塊15延徑向移動。小齒輪4可旋轉(zhuǎn)帶動大齒輪5旋轉(zhuǎn)。大齒輪5旋轉(zhuǎn),用來帶動轉(zhuǎn)盤1旋轉(zhuǎn)。數(shù)碼管6、數(shù)碼管7分別用來表示系統(tǒng)的某一類資源的個數(shù)。發(fā)光二極管8用來標識電源是否接通。在電源接通時,發(fā)光二極管8發(fā)光。發(fā)光二極管9用來標識系統(tǒng)是否有死鎖情況發(fā)生。發(fā)生死鎖時,發(fā)光二極管9 發(fā)光。步進電機10帶動齒輪17旋轉(zhuǎn)。步進電機11帶動連接管13旋轉(zhuǎn)。步進電機12帶動小齒輪4旋轉(zhuǎn)。連接管13連接步進電機11與支撐平臺2并帶動支撐平臺2旋轉(zhuǎn)。黑盒14是步進電機11、直流電機12、光電傳感器18、光電傳感器19、光電傳 感器20、光電傳感器21、光電傳感器22、光電傳感器23、光電傳感器24、方臺25、方 臺26、方臺27、方臺28、方臺29、方臺30的支撐物。橡皮塊15、橡皮塊38用來表示操作系統(tǒng)中的進程。在轉(zhuǎn)盤1旋轉(zhuǎn)時,會在轉(zhuǎn)盤1和橡皮塊15、橡皮塊38之間靜摩擦力的作用下隨轉(zhuǎn)盤旋轉(zhuǎn)。在伸縮臂3的推動下,橡 皮塊15、橡皮塊38可以沿徑向移動。齒痕16與齒輪17咬合,帶動伸縮臂3伸縮。齒輪17可以在步進電機10的帶動下正向、反向旋轉(zhuǎn),帶動齒痕沿徑向向里或向 夕卜運動。光電傳感器18用來記錄記錄橡皮塊15旋轉(zhuǎn)地圈數(shù)、校準伸縮臂3的位置。在 被橡皮塊15遮住時,會產(chǎn)生電位的變化傳遞給單片機31。光電傳感器19、光電傳感器20、光電傳感器21、光電傳感器22、光電傳感器 23、光電傳感器24用來檢測隨轉(zhuǎn)盤1旋轉(zhuǎn)過程中橡皮塊15的位置以及伸縮臂3凹槽一端 的位置。在被橡皮塊15遮住時,會產(chǎn)生電位的變化傳遞給單片機31。方臺25、方臺26、方臺27可以用來承載橡皮塊15,與轉(zhuǎn)盤等高并與轉(zhuǎn)盤的邊緣 相切,徑向距離R < 3mm.它們一起組成了操作系統(tǒng)中的一個等待隊列。方臺28、方臺29、方臺30可以用來承載橡皮塊15,與轉(zhuǎn)盤等高并與轉(zhuǎn)盤的邊緣 相切,徑向距離R < 3mm.它們一起組成了操作系統(tǒng)中的一個就緒隊列。單片機31控制整個系統(tǒng)的執(zhí)行。它從光電傳感器18、光電傳感器19、光電傳 感器20、光電傳感器21、光電傳感器22、光電傳感器23、光電傳感器24獲取輸入,輸 出信號控制數(shù)碼管6、數(shù)碼管7顯示的資源個數(shù);控制直流電機12,步進電機10、步進 電機11的旋轉(zhuǎn)與停止;控制發(fā)光二極管8、發(fā)光二極管9的亮滅。驅(qū)動芯片34、驅(qū)動芯片35、驅(qū)動芯片36用來驅(qū)動直流電機10以及步進電機 11、步進電機12的旋轉(zhuǎn)與停止。驅(qū)動芯片32、驅(qū)動芯片33用來用來控制數(shù)碼管6、數(shù)碼管7數(shù)字的顯示。多路選通芯片37對光電傳感器18、光電傳感器19、光電傳感器20、光電傳感器
21、光電傳感器22、光電傳感器23、光電傳感器24編碼,在某一時刻只有一個光電傳感 器被選通。部件連接光電傳感器18、光電傳感器19、光電傳感器20、光電傳感器21、光電傳感器
22、光電傳感器23、光電傳感器24,發(fā)光二極管8、發(fā)光二極管9,方臺25、方臺26、 方臺27、方臺28、方臺29、方臺30,數(shù)碼管6、數(shù)碼管7粘合在黑盒14上。直流電機12與黑盒14粘合,直流電機12與小齒輪4粘合,小齒輪4與大齒輪 5咬合,大齒輪5與轉(zhuǎn)盤1粘合。步進電機11與黑盒14粘合,步進電機11與連接管13粘合,連接管13與支撐 平臺2粘合。支撐平臺2與步進電機10粘合,步進電機10與齒輪17粘合,齒輪17與齒痕16 咬合,齒痕16與伸縮臂3粘合。光電傳感器18、光電傳感器19、光電傳感器20、光電傳感器21、光電傳感器 22、光電傳感器23、光電傳感器24與多路選通芯片37導線連接,多路選通芯片37與單 片機31導線連接。數(shù)碼管6、數(shù)碼管7與驅(qū)動芯片33、驅(qū)動芯片32導線連接,驅(qū)動芯片33、驅(qū)動 芯片32與單片機31導線連接。步進電機11、步進電機12與驅(qū)動芯片35、驅(qū)動芯片36導線連接,驅(qū)動芯片35、驅(qū)動芯片36與單片機31導線連接。直流電機10與驅(qū)動芯片 34導線連接,驅(qū)動芯片34與單片機31導線連接。實施例2 本發(fā)明所述教具用于演示處于就緒態(tài)的進程隊列的實施方式如下;本發(fā)明所述教具對于就緒隊列和等待隊列實施方式如下方臺28、方臺29、方臺30組成就緒隊列。此時系統(tǒng)最多只能有三個進程同時 處于就緒態(tài)。方臺25、方臺26、方臺27組成等待隊列,此時系統(tǒng)最多只能有三個進程同時處 于等待態(tài)。本發(fā)明所述教具對于資源的描述數(shù)碼管6表示第一類資源,數(shù)碼管顯示數(shù)字表示該類資源的數(shù)目。數(shù)目最多為 9個,最少為0個。數(shù)碼管7表示第二類資源,數(shù)碼管顯示數(shù)字表示該類資源的數(shù)目。數(shù)目最多為 9個,最少為0個。本發(fā)明所述教具對于時間片描述實施方式如下;表示進程的橡皮塊15由就緒態(tài)轉(zhuǎn)為運行態(tài)之后,在隨轉(zhuǎn)盤1旋轉(zhuǎn)過程中第一次 被光電傳感器18檢測開始到下一次被光電傳感器18檢測到為止經(jīng)歷的時間定義為系統(tǒng)分 配給進程執(zhí)行的一個時間片。在無特別說明的情況下,系統(tǒng)中提到的資源均為臨界資源。既可以是互斥的臨 界資源,也可以是可同時訪問的臨界資源,因具體實驗而定。如無特別說明的情況下, 下文提到的轉(zhuǎn)盤1、支撐平臺2旋轉(zhuǎn)方向與附圖1中箭頭所示方向一致。系統(tǒng)中對于進程狀態(tài)的描述代表進程的橡皮塊15處于代表處理機的轉(zhuǎn)盤1上,并在靜摩擦力的作用下與轉(zhuǎn) 盤1同步旋轉(zhuǎn)時,此時進程處于運行態(tài)。代表進程的橡皮塊15靜止于由方臺28、29、30組成的就緒隊列上時,進程處于
就緒態(tài)。代表進程的橡皮塊15靜止于由方臺25、26、27組成的等待隊列上時,進程處于
等待態(tài)。伸縮臂位置校準伸縮臂的校準發(fā)生在單片機31上電之后,整個實驗開始之前;以及在實驗執(zhí)行 的過程中,伸縮臂3進行的動作包括將代表進程的橡皮塊15推入或取出就緒隊列或者等 待隊列之后。伸縮臂的校準保證每次伸縮臂在推、拉進程的橡皮塊15之前,起始于同一位置。單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控制下旋 轉(zhuǎn),步進電機11旋轉(zhuǎn)帶動支撐平臺2旋轉(zhuǎn),支撐平臺2帶動伸縮臂3旋轉(zhuǎn)。同時單片機 31不斷的從多路選通芯片37讀入信號并分析判斷光電傳感器18的電位是否為低電位。當旋轉(zhuǎn)中的伸縮臂3遮住光電傳感器18時,光電傳感器18變?yōu)榈碗娢?,單片機 31通過多路選通芯片37獲得信號,向驅(qū)動芯片35發(fā)出指令停止,步進電機11在驅(qū)動芯 片35的控制下旋轉(zhuǎn)兩個單位角度a后停止。支撐平臺2在步進電機11的帶動下,旋轉(zhuǎn)兩個單位角度后停止。伸縮臂3在支撐平臺2帶動下,也旋轉(zhuǎn)兩個單位角度a后停止。 伸縮臂3轉(zhuǎn)過的單位角度a,可參見附圖5.對于上述校準過程,如附圖6所示具體步驟如下步驟1.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控 制下旋轉(zhuǎn),步進電機11旋轉(zhuǎn)帶動支撐平臺2旋轉(zhuǎn),支撐平臺2帶動伸縮臂3旋轉(zhuǎn)。步驟2.單片機31通過多路選通芯片37選通光電傳感器18,并不斷讀入信號。 當旋轉(zhuǎn)中的伸縮臂3遮住光電傳感器18時,光電傳感器18變?yōu)榈碗娢?。步驟3.單片機31判斷從光電傳感器18讀入信號是否為低電平。步驟4.單片機31通過多路選通芯片37獲得信號,向驅(qū)動芯片35發(fā)出指令停 止,步進電機11在驅(qū)動芯片35的控制下旋轉(zhuǎn)兩個單位角度a后停止。支撐平臺2在步 進電機11的帶動下,旋轉(zhuǎn)兩個單位角度后停止。伸縮臂3在支撐平臺2帶動下,也旋轉(zhuǎn) 兩個單位角度a后停止。本發(fā)明所述教具用于演示進程狀態(tài)轉(zhuǎn)化的實施方式如下演示進程由就緒態(tài)到運行態(tài)的轉(zhuǎn)化在處理機處于空閑狀態(tài)的狀態(tài)時,系統(tǒng)會通過某一個調(diào)度策略選擇一個處于就 緒態(tài)的進程執(zhí)行,此時被選中的進程要進行從就緒態(tài)到運行態(tài)的轉(zhuǎn)化。單片機31定位代表進程的橡皮塊15在由方臺28、29、30組成的就緒隊列中的 位置。在系統(tǒng)只有一個進程的情況下,代表進程的橡皮塊15會靜止于隊首即方臺30.單 片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控制下旋轉(zhuǎn),步進電 機11旋轉(zhuǎn)帶動支撐平臺2旋轉(zhuǎn),支撐平臺2帶動伸縮臂3旋轉(zhuǎn)。同時單片機31不斷的 從多路選通芯片37讀入信號并分析判斷光電傳感器24的電位是否為低電位。 當旋轉(zhuǎn)中的伸縮臂3遮住光電傳感器24時,光電傳感器24變?yōu)榈碗娢?,單片機 31通過多路選通芯片37獲得信號。向驅(qū)動芯片35發(fā)出指令,步進電機11在驅(qū)動芯片 35的控制下旋轉(zhuǎn)兩個單位角度之后停止,伸縮臂3也旋轉(zhuǎn)兩個單位角度后停止。單片機 31向驅(qū)動芯片36發(fā)出指令,步進電機10在驅(qū)動芯片36的控制下移動十個單位角度后停 止,此時伸縮臂3在齒輪17、齒痕16的作用下向外延伸一定長度后停止。單片機31向 驅(qū)動芯片35發(fā)出指令反向旋轉(zhuǎn)兩個角度,步進電機11在驅(qū)動芯片35的控制下反向旋轉(zhuǎn) 兩個單位角度之后停止,伸縮臂3也旋轉(zhuǎn)兩個單位角度后靜止。此時表示進程的橡皮塊15正處于伸縮臂3的凹槽中、方臺30上。單片機31向驅(qū)動芯片36發(fā)出指令,步進電機10在驅(qū)動芯片36的控制下反向旋 轉(zhuǎn)十個角度之后停止,此時伸縮臂3在齒輪17、齒痕16的作用下向內(nèi)收縮一定長度后停 止。此時伸縮臂3的動作結(jié)束,進行上述伸縮臂校準過程,回到指定位置。單片機31向驅(qū)動芯片34發(fā)出指令旋轉(zhuǎn),直流電機12在驅(qū)動芯片34的控制下旋 轉(zhuǎn),在直流電機12的帶動下轉(zhuǎn)盤1旋轉(zhuǎn)。在靜摩擦力的作用下,橡皮塊15與轉(zhuǎn)盤1 一 起旋轉(zhuǎn)。旋轉(zhuǎn)過程中,橡皮塊15首次經(jīng)過光電傳感器18時,單片機31檢測通過多路選 通芯片37,光電傳感器18檢測到橡皮塊15,此時系統(tǒng)會將進程標記為運行態(tài),完成進程 從就緒態(tài)到運行態(tài)的轉(zhuǎn)化。上述狀態(tài)轉(zhuǎn)換過程,如附圖4所示具體步驟如下
步驟1.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的 控制下旋轉(zhuǎn),步進電機11旋轉(zhuǎn)帶動支撐平臺2旋轉(zhuǎn),支撐平臺2帶動伸縮臂3旋轉(zhuǎn)。同 時單片機31不斷的從多路選通芯片37讀入信號并分析判斷光電傳感器24的電位是否為 低電位。當旋轉(zhuǎn)中的伸縮臂3遮住光電傳感器24時,光電傳感器24變?yōu)榈碗娢?,單?機31通過多路選通芯片37獲得信號。向驅(qū)動芯片35發(fā)出指令停止,步進電機11在驅(qū) 動芯片35的控制下旋轉(zhuǎn)兩個單位角度之后停止,伸縮臂3也旋轉(zhuǎn)兩個單位角度后停止。 此時伸縮臂位置處于方臺30附近的位置,與方臺30和轉(zhuǎn)盤1圓心的連線成一定角度,角 度為2a。步驟2.單片機31向驅(qū)動芯片36發(fā)出指令,步進電機10在驅(qū)動芯片36的控制下 反向旋轉(zhuǎn)十個角度之后停止,此時伸縮臂3在齒輪17、齒痕16的作用下向內(nèi)收縮一定長
度后停止。步驟3.單片機31向驅(qū)動芯片35發(fā)出指令反向旋轉(zhuǎn)兩個角度,步進電機11在驅(qū) 動芯片35的控制下反向旋轉(zhuǎn)兩個單位角度之后停止,伸縮臂3也旋轉(zhuǎn)兩個單位角度后靜 止。此時表示進程的橡皮塊15正處于伸縮臂3的凹槽中、方臺30上。步驟4.單片機31向驅(qū)動芯片34發(fā)出指令,步進電機10在驅(qū)動芯片36的控制下 移動十個角步距之后停止,此時伸縮臂3在齒輪17、齒痕16的作用下向內(nèi)收縮一定長度 后停止。此時收縮的長度與步驟2中伸出的長度相等。步驟5.伸縮臂3執(zhí)行上述校準過程,回到初始位置。步驟6.單片機31向驅(qū)動芯片34發(fā)出指令旋轉(zhuǎn),直流電機12在驅(qū)動芯片34的控 制下旋轉(zhuǎn),在直流電機12的帶動下轉(zhuǎn)盤1旋轉(zhuǎn)。在靜摩擦力的作用下,橡皮塊15與轉(zhuǎn) 盤1 一起旋轉(zhuǎn)。此時單片機31不斷地通過多路選通芯片37讀入光電傳感器18的電位。 當橡皮塊15經(jīng)過光電傳感器18時,單片機31檢測到光電傳感器18判斷橡皮塊15已經(jīng) 到達光電傳感器18所在位置。系統(tǒng)將進程標記為運行態(tài),進程從這一刻起開始占有處理 機并執(zhí)行。演示進程由運行態(tài)到就緒態(tài)的轉(zhuǎn)化處于運行態(tài)的進程由于時間片用盡要暫時放棄處理機而進入就緒狀態(tài)。當用于表示進程的橡皮塊15處于運行態(tài)與轉(zhuǎn)盤1 一起旋轉(zhuǎn)到光電傳感器18時, 此時光電傳感器18由于橡皮塊15的遮擋產(chǎn)生由高到底的電位變化并通過多路選通芯片37 被單片機31檢測到。系統(tǒng)判斷此時表示進程的橡皮塊15時間片用盡,要從運行態(tài)轉(zhuǎn)為 就緒態(tài),并插入由方臺28、方臺29、方臺30組成的就緒隊列隊尾的位置。在系統(tǒng)只有 唯一一個進程時,隊列為空,此時表示進程的橡皮塊15要被移動到方臺30上。如附圖7所示此時進程由運行態(tài)到就緒態(tài)的轉(zhuǎn)化步驟如下步驟1.在橡皮塊15隨轉(zhuǎn)盤1旋轉(zhuǎn)過程中,單片機31不斷從光電傳感器24讀入 電信號。當橡皮塊15經(jīng)過光電傳感器24的位置時,單片機31通過多路選通芯片37檢測 到光電傳感器24電信號由高電位轉(zhuǎn)為低電位。單片機31向驅(qū)動芯片34發(fā)出指令停止, 直流電機12在驅(qū)動芯片34的控制下經(jīng)過一個很小的單位時間t后停止轉(zhuǎn)動。此時橡皮塊 15靜止于與方臺30正對的位置。步驟2.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控 制下旋轉(zhuǎn)并帶動支撐平臺2、伸縮臂3—起轉(zhuǎn)動。
此時單片機31不斷通過多路選通芯片37從光電傳感器24讀入電信號,當檢測 到電位由高電位變?yōu)榈碗娢粫r,單片機31向驅(qū)動芯片35發(fā)出指令停止,步進電機11在 驅(qū)動芯片35的控制下繼續(xù)旋轉(zhuǎn)兩個角步距停止,支撐平臺2、伸縮臂3也轉(zhuǎn)過兩個單位角 度a后停止。此時伸縮臂3靜止于橡皮塊15的正上方。步驟3.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn),步進電機10在驅(qū)動芯片36的控 制下旋轉(zhuǎn)并帶動齒輪17旋轉(zhuǎn)。伸縮臂在齒輪17、齒痕16的相互作用下向外伸張。代 表進程的橡皮塊15在伸縮臂凹槽推力的作用下和伸縮臂一起延徑向向外運動。在單片機 31和驅(qū)動芯片36的控制下步進電機10移動十個角步距后停止,此時表示進程的橡皮塊 15被推到方臺30上。步驟4.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的 控制下轉(zhuǎn)旋轉(zhuǎn)兩個角步距后停止,支撐平臺2、伸縮臂3也轉(zhuǎn)過兩個單位角度a后停止。 此時伸縮臂3的凹槽從橡皮塊15上移開。步驟5.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn),步進電機10在驅(qū)動芯片36的 控制下按4步驟中旋轉(zhuǎn)地相反方向旋轉(zhuǎn)十個角步距后靜止。伸縮臂3在齒輪17,齒痕16 的控制下向內(nèi)收縮一定長度后回到原位。步驟6.伸縮臂3執(zhí)行上述校準過程,回到初始位置。系統(tǒng)標記進程為就緒態(tài), 并處于就緒隊列中方臺30的位置。演示進程由運行態(tài)到等待態(tài)的轉(zhuǎn)化處于運行態(tài)的進程由于某些執(zhí)行條件不能滿足而主動放棄處理機而進入等待狀 態(tài)。當用于表示進程的橡皮塊15處于運行態(tài)與轉(zhuǎn)盤1 一起旋轉(zhuǎn)到光電傳感器18時, 此時光電傳感器18由于橡皮塊15的遮擋產(chǎn)生由高到底的電位變化并通過多路選通芯片37 被單片機31檢測到。系統(tǒng)判斷此時表示進程的橡皮塊15在執(zhí)行過程中是否因等待某些 條件而不能繼續(xù)執(zhí)行,要從運行態(tài)轉(zhuǎn)為等待態(tài),并插入由方臺25、方臺26、方臺27組成 的等待隊列隊尾的位置。在系統(tǒng)只有唯一一個進程時,隊列為空,此時表示進程的橡皮 塊15要被移動到方臺27上。如附圖8所示此時進程由運行態(tài)到等待態(tài)的轉(zhuǎn)化步驟如下步驟1.在橡皮塊15隨轉(zhuǎn)盤1旋轉(zhuǎn)過程中,單片機31不斷從光電傳感器21讀入 電信號。當橡皮塊15經(jīng)過光電傳感器21的位置時,單片機31通過多路選通芯片37檢測 到光電傳感器21電信號由高電位轉(zhuǎn)為低電位。單片機31向驅(qū)動芯片34發(fā)出指令停止, 直流電機12在驅(qū)動芯片34的控制下經(jīng)過一個很小的單位時間t后停止轉(zhuǎn)動。此時橡皮塊 15靜止于與方臺27正對的位置。步驟2.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控 制下旋轉(zhuǎn)并帶動支撐平臺2、伸縮臂3—起轉(zhuǎn)動。此時單片機31不斷通過多路選通芯片37從光電傳感器21讀入電信號,當檢測 到電位由高電位變?yōu)榈碗娢粫r,單片機31向驅(qū)動芯片35發(fā)出指令停止,步進電機11在 驅(qū)動芯片35的控制下繼續(xù)旋轉(zhuǎn)兩個角步距停止,支撐平臺2、伸縮臂3也轉(zhuǎn)過兩個單位角 度a后停止。此時伸縮臂3靜止于橡皮塊15的正上方。步驟3.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn),步進電機10在驅(qū)動芯片36的控制下旋轉(zhuǎn)并帶動齒輪17旋轉(zhuǎn)。伸縮臂在齒輪17、齒痕16的相互作用下向外伸張。代 表進程的橡皮塊15在伸縮臂凹槽推力的作用下和伸縮臂一起延徑向向外運動。在單片機 31和驅(qū)動芯片36的控制下步進電機10移動十個角步距后停止,此時表示進程的橡皮塊 15被推到方臺27上。步驟4.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的 控制下轉(zhuǎn)旋轉(zhuǎn)兩個角步距后停止,支撐平臺2、伸縮臂3也轉(zhuǎn)過兩個單位角度a后停止。 此時伸縮臂3從橡皮塊15上移開。步驟5.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn),步進電機10在驅(qū)動芯片36的 控制下按4步驟中旋轉(zhuǎn)地相反方向旋轉(zhuǎn)十個角步距后靜止。伸縮臂3在齒輪17,齒痕16 的控制下向內(nèi)收縮一定長度后回到原位。步驟6.伸縮臂3執(zhí)行上述校準過程,回到初始位置。系統(tǒng)標記進程為等待態(tài), 并處于等待隊列中方臺27的位置。演示進程由等待態(tài)到就緒態(tài)的轉(zhuǎn)化進程執(zhí)行過程中要可能會訪問臨界資源,在臨界資源不可用的情況下,進程要 發(fā)生從運行態(tài)到等待態(tài)的轉(zhuǎn)化。在資源可用時,系統(tǒng)會通知處于等待態(tài)的進程臨界資源 狀態(tài)發(fā)生了改變并檢查此刻哪些進程執(zhí)行條件得到滿足,可以從等待態(tài)轉(zhuǎn)化為就緒態(tài)。某一個進程放棄處理機并轉(zhuǎn)入相應(yīng)狀態(tài)之后,系統(tǒng)會檢測臨界資源表示數(shù)碼管 6、數(shù)碼管7狀態(tài)是否發(fā)生改變。在資源發(fā)生改變的情況下,系統(tǒng)會檢測處于由方臺25、 方臺26、方臺27組成的等待隊列中的進程哪一個,或者那幾個進程,條件滿足可以從等 待態(tài)轉(zhuǎn)為就緒態(tài)。在系統(tǒng)只有唯一一個進程且處于等待態(tài)且位于用于表示進程的橡皮塊 15處于等待隊列中方臺27上時,系統(tǒng)判斷該進程的執(zhí)行條件得到滿足,發(fā)生等待態(tài)到就 緒態(tài)的轉(zhuǎn)化。由于此時的就緒隊列為空,表示進程的橡皮塊15要從處于等待隊列對首的 方臺27移動到處于就緒隊列對首的方臺30.如附圖9所示此時進程由等待態(tài)到就緒態(tài)的轉(zhuǎn)化步驟如下步驟1.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控 制下旋轉(zhuǎn)并帶動支撐平臺2、伸縮臂3—起旋轉(zhuǎn)。此時單片機31不斷通過多路選通芯片37檢測光電傳感器21電位的變化。當伸 縮臂3旋轉(zhuǎn)到光電傳感器21的位置時,單片機31通過多路選通芯片37檢測到光電傳感 器21電信號由高電位轉(zhuǎn)為低電位。單片機31向驅(qū)動芯片35發(fā)出指令停止,步進電機11 在驅(qū)動芯片35的控制旋轉(zhuǎn)兩個角步距后停止,支撐平臺2、伸縮臂3移動兩個單位角度a
后停止。步驟2.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn)十個角步距,步進電機10在驅(qū)動 芯片36的控制下旋轉(zhuǎn)十個角步距后停止。在齒輪17、齒痕16的作用下,伸縮臂3向外
延伸一定長度后停止。單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn)兩個角步距,旋轉(zhuǎn)方向與步驟1中步進電 機11的旋轉(zhuǎn)方向相反。步進電機11在驅(qū)動芯片35的控制下反向旋轉(zhuǎn)并帶動支撐平臺 2、伸縮臂3—起旋轉(zhuǎn)。旋轉(zhuǎn)兩個角步距后,步進電機11停止轉(zhuǎn)動。支撐平臺2、伸縮 臂3在步進電機11帶動下旋轉(zhuǎn)兩個單位角度后停止。此時表示進程的橡皮塊15正處于 伸縮臂3的凹槽內(nèi)。
步驟3.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn)十個角步距,方向與步驟2中步進 電機10旋轉(zhuǎn)的方向相反。步進電機10在驅(qū)動芯片36的控制下旋轉(zhuǎn)十個角步距后停止。 在齒輪17、齒痕16的作用下,伸縮臂3向內(nèi)收縮一定長度后停止。在伸縮臂3的拉力控 制下,表示進程的橡皮塊15也沿徑向向內(nèi)移動同樣長度后靜止。此時橡皮塊15從方臺 27上取下,并移動到轉(zhuǎn)盤1上。步驟4.單片機31向驅(qū)動芯片34發(fā)出指令旋轉(zhuǎn),在驅(qū)動芯片34的控制下直流電 機10帶動轉(zhuǎn)盤1、橡皮塊15 —起旋轉(zhuǎn)。此時單片機31不斷通過多路選通芯片37檢測光電傳感器24電位的變化。當伸 縮臂3旋轉(zhuǎn)到光電傳感器24的位置時,單片機31通過多路選通芯片37檢測到光電傳感 器24電信號由高電位轉(zhuǎn)為低電位。單片機31向驅(qū)動芯片34發(fā)出指令停止,在驅(qū)動芯片 34的控制下直流電機10、轉(zhuǎn)盤1移動一個單位距離t停止。橡皮塊15移動相應(yīng)距離停止 在與方臺30相對的位置。步驟5.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn),步進電機11在驅(qū)動芯片35的控 制下旋轉(zhuǎn)并帶動支撐平臺2、伸縮臂3—起旋轉(zhuǎn)。此時單片機31不斷通過多路選通芯片37檢測光電傳感器24電位的變化。當伸 縮臂3旋轉(zhuǎn)到光電傳感器24的位置時,單片機31通過多路選通芯片37檢測到光電傳感 器24電信號由高電位轉(zhuǎn)為低電位。單片機31向驅(qū)動芯片35發(fā)出指令停止,步進電機11 在驅(qū)動芯片35的控制旋轉(zhuǎn)兩個角步距后停止,支撐平臺2、伸縮臂3移動兩個單位角度a 后停止。此時橡皮塊15處于伸縮臂3的凹槽中。步驟6.單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn)十個角步距,步進電機10在驅(qū)動 芯片36的控制下旋轉(zhuǎn)十個角步距后停止。在齒輪17、齒痕16的作用下,伸縮臂3向外 延伸一定長度后停止。在伸縮臂3的推動控制下,表示進程的橡皮塊15也沿徑向向外移 動同樣長度后靜止與方臺30.步驟7.單片機31向驅(qū)動芯片35發(fā)出指令旋轉(zhuǎn)兩個角步距,旋轉(zhuǎn)方向與步驟6中 步進電機11的旋轉(zhuǎn)方向相同。步進電機11在驅(qū)動芯片35的控制下反向旋轉(zhuǎn)并帶動支撐 平臺2、伸縮臂3—起旋轉(zhuǎn)。旋轉(zhuǎn)兩個角步距后,步進電機11停止轉(zhuǎn)動。支撐平臺2、 伸縮臂3在步進電機11帶動下旋轉(zhuǎn)兩個單位角度后停止。此時伸縮臂3從表示進程的橡 皮塊15上移開。單片機31向驅(qū)動芯片36發(fā)出指令旋轉(zhuǎn)十個角步距,方向與步驟6中步進電機10 旋轉(zhuǎn)的方向相反。步進電機10在驅(qū)動芯片36的控制下旋轉(zhuǎn)十個角步距后停止。在齒輪 17、齒痕16的作用下,伸縮臂3向內(nèi)收縮一定長度后停止。步驟8.伸縮臂3執(zhí)行上述校準過程,回到初始位置。系統(tǒng)標記進程為就緒態(tài), 并處于就緒隊列中方臺30的位置。本發(fā)明所述教具用于演示進程同步問題的實施方式如下對于某一進程同步問題進程A、進程B在執(zhí)行過程中都要對某一類資源組成 的集合R進行訪問。在其中一個進程對R訪問的過程中,不允許另一個進程對R訪問。進程A每次對資源R的操作都要用三個時間片的時間。第一個時間片用于獲取 對R的訪問,如果此時資源R標記無法訪問或者資源R組成的集合中資源的個數(shù)已經(jīng)達 到上限,進程A會進入等待態(tài)直到以上條件得到滿足。否則,進程A將資源R標記為不可用。在第二個時間片,進程A使資源R的個數(shù)增加一個。在第三個時間片,進程A 將資源R標記為可用。進程B每次對資源R的訪問要用三個時間片的時間。第一個時間片用于獲取對 R的訪問,如果此時資源R標記為不可用或者資源R中資源的個數(shù)為0時,進程B會進 入等待態(tài)直到以上條件得到滿足。否則,進程B將資源R標記為不可用。在第二個時間 片,進程B使資源R的個數(shù)減少一個。在第三個時間片,進程B將資源R標記為可用。資源R中資源個數(shù)初值為1.進程A、進程B按如下的順序執(zhí)行進程A在第 一個時間片不訪問臨界資源,在接下的三個時間片內(nèi),進程A訪問資源R并增加一個資 源。進程B共執(zhí)行六個時間片,在前三個時間片和后三個時間片分別對資源R進行兩次 操作。每次操作都將會減少一個資源。進程A先于進程B創(chuàng)建,即在就緒隊列中進程 A在進程B的前面,會先于進程B執(zhí)行。上述進程同步問題可由該教具中各組成部件等價表示為橡皮塊15表示進程A 靜止于就緒隊列對首的位置方臺30上,橡皮塊38表示進程B靜止于就緒隊方臺29上.數(shù) 碼管6表示資源R,資源R個數(shù)的上限為9,下限為0.數(shù)碼管6顯示的數(shù)字為當前資源R 的個數(shù),初值為1。在某一進程對資源提出訪問時,若訪問成功,用于表示該資源的數(shù)碼 管6閃爍一段時間,否則用于表示該資源的數(shù)碼管6變熄滅一段時間,再恢復(fù)顯示之前顯 示數(shù)字。如附圖10、附圖11、附圖12所示進程A、進程B同步執(zhí)行的步驟如下步驟1.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺30取下并移動到光電傳感器18所在的位置。步驟2.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A沒 有訪問表示資源的數(shù)碼管6,沒有引起表示資源的數(shù)碼管6狀態(tài)的改變。接下來系統(tǒng)檢測 進程A沒有等待訪問表示資源的數(shù)碼管6。進程A因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此 時尋找到表示就緒隊列的方臺中,處于隊尾位置的方臺28。此時執(zhí)行上述,從運行態(tài)到 就緒態(tài)的轉(zhuǎn)化將表示進程A的橡皮塊15移入方臺28.步驟3.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺29取下并移動到光電傳感器18所在的位置。步驟4.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B訪 問表示資源的數(shù)碼管6,并標記表示資源的數(shù)碼管6的狀態(tài)為不可用。此時單片機31通 過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間 后停止閃爍。此時進程B因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時尋找到表示就緒隊列的 方臺中,處于隊尾位置的方臺30。此時執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進 程B的橡皮塊38移入方臺30.步驟5.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺28取下并移動到光電傳感器18所在的位置。步驟6.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A有訪問表示資源的數(shù)碼管6,但是此時表示資源的數(shù)碼管6已經(jīng)被標記不可用。此時單片 機31通過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令熄滅,數(shù)碼管6在驅(qū)動芯片33的控制下熄滅 一段時間后恢復(fù)顯示。進程A因等待訪問表示資源的數(shù)碼管6而轉(zhuǎn)為等待態(tài)。系統(tǒng)此時 尋找到表示等待隊列的方臺中,處于隊尾位置的方臺27。此時執(zhí)行上述,從運行態(tài)到等 待態(tài)的轉(zhuǎn)化將表示進程A的橡皮塊15移入方臺27.步驟7.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺30取下并移動到光電傳感器18所在的位置。步驟8.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B有 訪問表示資源的數(shù)碼管6,并要將資源數(shù)減少一個。單片機31通過驅(qū)動芯片33向數(shù)碼 管6發(fā)出指令顯示0,數(shù)碼管6在驅(qū)動芯片33的控制下從當前的資源數(shù)1變?yōu)闉?。進 程B因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時尋找到表示就緒隊列的方臺中,處于隊尾位 置的方臺29。此時執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進程B的橡皮塊38移 入方臺29.步驟9.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺29取下并移動到光電傳感器18所在的位置。步驟10.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B有 訪問表示資源的數(shù)碼管6,并要將資源標記為可用。單片機31通過驅(qū)動芯片33向數(shù)碼管 6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間后停止閃爍。進程B因 時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時尋找到表示就緒隊列的方臺中,處于隊尾位置的方 臺28。此時執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進程B的橡皮塊38移入方臺 28.步驟11.由于步驟10中,進程A等待的資源標記為可用,等待態(tài)的進程A等待 條件已經(jīng)得到滿足。系統(tǒng)尋找到用于表示進程A的橡皮塊15所在的方臺27,進一步尋 找到當前就緒隊列中處于隊尾的位置的方臺30,執(zhí)行上述從等待態(tài)到就緒態(tài)的轉(zhuǎn)換從 方臺27取下并移動到方臺30.步驟12.進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn)換從方 臺28取下并移動到光電傳感器18所在的位置。步驟13.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B有 訪問表示資源的數(shù)碼管6,而表示資源的數(shù)碼管6顯示資源數(shù)為0,進程B因沒有可用資 源進入等待。此時單片機31通過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令熄滅,數(shù)碼管6在驅(qū) 動芯片33的控制下熄滅一段時間后恢復(fù)顯示。此時進程B因沒有可用資源而進入等待隊 列。系統(tǒng)尋找到表示等待隊列的方臺中,處于隊尾位置的方臺26。此時執(zhí)行上述,從運 行態(tài)到等待態(tài)的轉(zhuǎn)化將表示進程B的橡皮塊38移入方臺26.步驟14.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺30取下并移動到光電傳感器18所在的位置。步驟15.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A有 訪問表示資源的數(shù)碼管6,并標記表示資源的數(shù)碼管6狀態(tài)為不可用。單片機31通過驅(qū) 動芯片33向數(shù)碼管6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間后停 止閃爍。此時進程A因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)尋找到表示就緒隊列的方臺中, 處于隊尾位置的方臺29。此時執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進程A的橡 皮塊15移入方臺29.步驟16.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺29取下并移動到光電傳感器18所在的位置。步驟17.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A有 訪問表示資源的數(shù)碼管6,并要將資源數(shù)增加一個。單片機31通過驅(qū)動芯片33向數(shù)碼 管6發(fā)出指令顯示1,數(shù)碼管6在驅(qū)動芯片33的控制下從當前的資源數(shù)0變?yōu)闉?。進 程A因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)檢測到表示就緒隊列的方臺中,隊尾的位置方臺 28。執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進程A的橡皮塊15移入方臺28.步驟18.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺28取下并移動到光電傳感器18所在的位置。步驟19.由于步驟18中,進程A增加了一個可用資源。等待態(tài)的進程B等待條 件得到滿足。系統(tǒng)尋找到用于表示進程B的橡皮塊15所在的方臺26,進一步尋找到當 前就緒隊列中處于隊尾隊尾的方臺30,執(zhí)行上述從等待態(tài)到就緒態(tài)的轉(zhuǎn)換從方臺26取 下并移動到方臺30.步驟20.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A有 訪問表示資源的數(shù)碼管6,并要將資源標記為可用。單片機31通過驅(qū)動芯片33向數(shù)碼管 6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間后停止閃爍。表示進程 A的橡皮塊15執(zhí)行任務(wù)全部結(jié)束,從轉(zhuǎn)盤1上手動取下。步驟21.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺30取下并移動到光電傳感器18所在的位置。步驟22.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B有 訪問表示資源的數(shù)碼管6,并標記表示資源的數(shù)碼管6狀態(tài)為不可用。單片機31通過驅(qū) 動芯片33向數(shù)碼管6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間后停 止閃爍。進程B因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時尋找到表示就緒隊列的方臺中, 處于隊尾位置的方臺29。執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進程B的橡皮塊 38移入方臺29.步驟23.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺29取下并移動到光電傳感器18所在的位置。步驟24.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B有 訪問表示資源的數(shù)碼管6,并要將資源數(shù)減少一個。單片機31通過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令顯示0,數(shù)碼管6在驅(qū)動芯片33的控制下從當前的資源數(shù)1變?yōu)闉?。進 程B因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時尋找到表示就緒隊列的方臺中,處于隊尾位 置的方臺28。此時執(zhí)行上述,從運行態(tài)到就緒態(tài)的轉(zhuǎn)化將表示進程B的橡皮塊38移 入方臺28.步驟25.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺29取下并移動到光電傳感器18所在的位置。步驟26.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B有 訪問表示資源的數(shù)碼管6,并將資源標記為可用。單片機31通過驅(qū)動芯片33向數(shù)碼管6 發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間后停止閃爍。此時表示進 程B的橡皮塊38執(zhí)行任務(wù)全部結(jié)束,從轉(zhuǎn)盤1上手動取下。本發(fā)明所述教具用于演示死鎖問題的實施方式如下對于某一死鎖問題進程A、進程B在執(zhí)行過程中都要對資源M、資源N進行 訪問。資源M、資源N為兩個要求互斥訪問的臨界資源。即其中某一個資源被某一個 進程訪問過程中不允許其它進程訪問。進程A對資源M、資源N的操作為在第一個時間片,進程A獲取對M的訪 問,如果此時資源M標記無法訪問,進程A會進入等待態(tài)直到資源M標記為可用。在 第二個時間片,進程A獲取對N的訪問,如果此時資源N標記無法訪問,進程A會進入 等待態(tài)直到資源N標記為可用。在第三個時間片,進程A將資源N標記為可用。在第 四個時間片,進程A將資源M標記為可用。進程B對資源M、資源N的操作為在第一個時間片,進程A獲取對N的訪 問,如果此時資源N標記無法訪問,進程A會進入等待態(tài)直到資源N標記為可用。在第 二個時間片,進程A獲取對M的訪問,如果此時資源M標記無法訪問,進程A會進入等 待態(tài)直到資源M標記為可用。在第三個時間片,進程A將資源M標記為可用。在第四 個時間片,進程A將資源N標記為可用。上述死鎖問題可由該教具中各組成部件等價表示為橡皮塊15表示進程A靜止 于就緒隊列對首的位置方臺30上,橡皮塊38表示進程B靜止于就緒隊方臺29上.數(shù)碼 管6用于表示資源M,顯示數(shù)字1.數(shù)碼管7表示資源N,顯示數(shù)字1.在某一進程對資源 M提出訪問時,用于表示該資源的數(shù)碼管6閃爍一段時間。若訪問成功,用于表示該資 源的數(shù)碼管6顯示數(shù)字由1變?yōu)?。當進程放棄資源M的訪問時,用于表示該資源的數(shù) 碼管6顯示數(shù)字由0變?yōu)?。在某一進程對資源N提出訪問時,用于表示該資源的數(shù)碼 管7閃爍一段時間。若訪問成功,用于表示該資源的數(shù)碼管7顯示數(shù)字由1變?yōu)?。當 進程放棄資源M的訪問時,用于表示該資源的數(shù)碼管7顯示數(shù)字由0變?yōu)?。如附圖13所示進程A、進程B執(zhí)行的步驟如下步驟1.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺30取下并移動到光電傳感器18所在的位置。步驟2.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A訪 問表示資源M的數(shù)碼管6,并將數(shù)碼管6狀態(tài)的標記為不可用。單片機31通過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下閃爍一段時間后停止閃 爍。然后單片機31通過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令顯示0,數(shù)碼管6在驅(qū)動芯片 33的控制下從當前的數(shù)字1變?yōu)閿?shù)字0。進程A因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時 尋找到表示就緒隊列的方臺中,處于隊尾位置的方臺28.此時執(zhí)行上述,從運行態(tài)到就緒 態(tài)的轉(zhuǎn)化將表示進程A的橡皮塊15移入方臺28.步驟3.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺29取下并移動到光電傳感器18所在的位置。步驟4.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋轉(zhuǎn) 一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A訪問 表示資源N的數(shù)碼管7,并將數(shù)碼管7狀態(tài)的標記為不可用。單片機31通過驅(qū)動芯片32 向數(shù)碼管7發(fā)出指令閃爍,數(shù)碼管7在驅(qū)動芯片32的控制下閃爍一段時間后停止閃爍。 然后單片機31通過驅(qū)動芯片32向數(shù)碼管7發(fā)出指令顯示0,數(shù)碼管7在驅(qū)動芯片32的控 制下從當前的顯示數(shù)字1變?yōu)閿?shù)字0。進程B因時間片用盡而轉(zhuǎn)為就緒態(tài)。系統(tǒng)此時尋 找到表示就緒隊列的方臺中,處于隊尾位置的方臺30.此時執(zhí)行上述,從運行態(tài)到就緒態(tài) 的轉(zhuǎn)化將表示進程B的橡皮塊38移入方臺30.步驟5.用于表示進程A的橡皮塊15被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺28取下并移動到光電傳感器18所在的位置。步驟6.表示進程A的橡皮塊15從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋 轉(zhuǎn)一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程A訪 問表示資源N的數(shù)碼管7,由于資源N的數(shù)碼管7已經(jīng)標記為不可用,進程A訪問失敗。 單片機31通過驅(qū)動芯片32向數(shù)碼管7發(fā)出指令閃爍,數(shù)碼管7在驅(qū)動芯片32的控制下 閃爍一段時間后停止閃爍。進程A因等待訪問資源N而轉(zhuǎn)為等待態(tài)。系統(tǒng)此時尋找到 表示就等待列的方臺中,處于隊尾位置的方臺27.此時執(zhí)行上述,從運行態(tài)到等待態(tài)的轉(zhuǎn) 化將表示進程A的橡皮塊15移入方臺27.步驟7.用于表示進程B的橡皮塊38被選中,執(zhí)行上述從就緒態(tài)到運行態(tài)的轉(zhuǎn) 換從方臺30取下并移動到光電傳感器18所在的位置。步驟8.表示進程B的橡皮塊38從光電傳感器18所在的位置開始在轉(zhuǎn)盤1上旋轉(zhuǎn) 一周,即執(zhí)行一個時間片之后回到光電傳感器18所在的位置。此時系統(tǒng)檢測進程B訪問 表示資源M的數(shù)碼管6,由于資源M的數(shù)碼管6已經(jīng)標記為不可用,進程B訪問失敗。 單片機31通過驅(qū)動芯片33向數(shù)碼管6發(fā)出指令閃爍,數(shù)碼管6在驅(qū)動芯片33的控制下 閃爍一段時間后停止閃爍。進程B因等待訪問資源M而轉(zhuǎn)為等待態(tài)。系統(tǒng)此時尋找到 表示就等待列的方臺中,處于隊尾位置的方臺26.此時執(zhí)行上述,從運行態(tài)到等待態(tài)的轉(zhuǎn) 化將表示進程B的橡皮塊38移入方臺26.步驟9.此時進程M已經(jīng)申請到對表示資源M的數(shù)碼管6的訪問,因等待訪問表 示資源N的數(shù)碼管7處于等待態(tài)。進程N已經(jīng)申請到對表示資源N的數(shù)碼管7的訪問, 因等待訪問表示資源M的數(shù)碼管6處于等待態(tài)。此時系統(tǒng)判斷死鎖發(fā)生,在單片機31的 控制下,標識死鎖的發(fā)光二極管9由滅轉(zhuǎn)為發(fā)光。
權(quán)利要求
1. 一種用于操作系統(tǒng)實驗教學的智能教具,其特征是該教具的主要部件及結(jié)構(gòu)如下(1)動作執(zhí)行部件轉(zhuǎn)盤、伸縮臂,提供動力的部件直流電機、步進電機,以及連接在 動作執(zhí)行部件和提供動力的部件之間的動力傳動部件包括齒輪、連接管、支撐平臺等;(2)用來控制系統(tǒng)運轉(zhuǎn)的核心控制部件單片機以及其外圍電路其中包括直流電機驅(qū) 動、步進電機驅(qū)動、數(shù)碼管驅(qū)動、多路選通芯片;(3)為完整描述操作系統(tǒng)必要的部件,其中包括用于表示操作系統(tǒng)進程的小物塊,用 來描述進程狀態(tài)的方臺,用來表示操作系統(tǒng)資源的數(shù)碼管;(4)用于表示操作系統(tǒng)執(zhí)行狀況的部件發(fā)光二極管;(5)用于檢測表示進程的小物塊位置以及伸縮臂凹槽位置的部件光電傳感器;(6)黑盒處于教具結(jié)構(gòu)中最底部,為整個系統(tǒng)部件的支撐。黑盒是一個中空、頂部為正方形的盒子,黑盒內(nèi)部用來裝載單片機、驅(qū)動芯片、電 機搭建的電路,黑盒處于模型最底部,黑盒的頂部為方臺、光電傳感器支撐面;轉(zhuǎn)盤處于黑盒的正上方,是一個厚度L < 4mm的圓形轉(zhuǎn)盤,轉(zhuǎn)盤的圓心與黑盒的 中心重合,直徑小于黑盒頂部正方形的邊長,并在豎直方向上與黑盒頂部保持一定距離 d.轉(zhuǎn)盤通過齒輪與直流電機連接,在直流電機旋轉(zhuǎn)時轉(zhuǎn)盤在齒輪的推動下一同旋轉(zhuǎn),黑 盒頂部中心處、轉(zhuǎn)盤的圓心各有一個半徑為R的小孔,一個半徑為r<R的連接管,從轉(zhuǎn) 盤中心黑盒頂部穿過與內(nèi)部步進電機粘合在一起;支撐平臺為一多邊形平板處于轉(zhuǎn)盤的上方,與連接管的一端粘合。步進電機旋轉(zhuǎn) 時,會帶動連接管、支撐平臺會與步進電機一起旋轉(zhuǎn),支撐平臺為伸縮臂以及另一個步 進電機的支撐面;伸縮臂從頂部看是為長方形,其一段有一個凹槽,凹槽開口方向豎直向下,另一端 末尾有一段齒痕粘合在臂上。伸縮臂處于支撐平臺的上方,并固定于支撐平臺上。伸縮 臂在一端的齒痕和固定于另一步進電機的齒輪的作用下,在另一步進電機旋轉(zhuǎn)時沿徑向 推拉伸縮臂。伸縮臂也可在支撐平臺的帶動下與支撐平臺一同旋轉(zhuǎn),伸縮臂有凹槽的一 側(cè)可以包住處于轉(zhuǎn)盤上的小物快,并在沿徑向運動的過程中,推拉小物塊沿徑向運動相 應(yīng)位移,而當伸縮臂隨支撐平臺旋轉(zhuǎn)時,即伸縮臂沿轉(zhuǎn)盤切線方向運動時,并不會觸碰 小物塊;用于描述進程就緒態(tài)和等待態(tài)的多個方臺與轉(zhuǎn)盤豎直方向上同高分布在轉(zhuǎn)盤周圍。 方臺的邊緣與轉(zhuǎn)盤外邊緣相切、徑向距離η < 2mm。這些方臺邏輯上可分為兩組,一組 構(gòu)成了一個就緒隊列,另一組構(gòu)成等待隊列。當表示進程的小物塊處于構(gòu)成就緒隊列的 方臺上時,此時表示進程的小物塊進入了就緒狀態(tài),當表示進程的小物塊處于構(gòu)成等待 隊列的方臺上時,表示進程的小物塊進入了等待狀態(tài);一組光電傳感器用來檢測旋轉(zhuǎn)過程中表示進程的小物塊的位置和伸縮臂凹槽的位 置。光電傳感器安置在每個方臺的其中一側(cè)與方臺緊鄰的位置,豎直方向高度略高于方 臺的高度,用來檢測小物塊當前移動到哪一個方臺對應(yīng)的位置,除此之外空閑的一個光 電傳感器用來全局記錄表示進程的小物塊隨轉(zhuǎn)盤一同旋轉(zhuǎn)轉(zhuǎn)過的圈數(shù);單片機為整個系統(tǒng)的核心控制部件,它通過驅(qū)動芯片與步進電機,直流電機,數(shù)碼 管,發(fā)光二極管連接,輸出信號控制步進電機的正向旋轉(zhuǎn)反向或旋轉(zhuǎn)以及旋轉(zhuǎn)的角度,控制直流電機旋轉(zhuǎn)還是停止,控制數(shù)碼管亮滅以及顯示數(shù)字,控制發(fā)光二極管亮滅,另 一方面,它通過多路選擇芯片輪詢一組光電傳感器的電位改變,獲得小物塊隨轉(zhuǎn)盤旋轉(zhuǎn) 過程中的位置以及小物塊隨轉(zhuǎn)盤轉(zhuǎn)過的圈數(shù),此外,單片機還要記錄就緒隊列、等待隊 列的狀態(tài),記錄處于邏輯上對首的位置的方臺的編號,處于隊尾位置的方臺的編號;記 錄小物塊在隨轉(zhuǎn)盤旋轉(zhuǎn)的圈數(shù)以判斷表示進程的小物塊時間片是否用盡;記錄表示資源 的數(shù)碼管的狀態(tài),即該資源類型訪問是否為互斥的、資源個數(shù)、資源是否處于被訪問狀 態(tài)。
全文摘要
本發(fā)明屬于教具,特別涉及演示操作系統(tǒng)中進程調(diào)度、進程同步、死鎖等知識點的操作系統(tǒng)教學的智能教具。其結(jié)構(gòu)主要包括轉(zhuǎn)盤、伸縮臂、方臺、數(shù)碼管、發(fā)光二極管和光電傳感器。作為一種智能教具,將嵌入式系統(tǒng)的優(yōu)點與傳統(tǒng)形象化教具創(chuàng)造性地結(jié)合起來,因此模型也兼具可由用戶自行編程和直觀呈現(xiàn)的兩大優(yōu)點。該教具結(jié)構(gòu)簡單清晰,演示直觀,成本低適合在教學中推廣。
文檔編號G09B19/00GK102013191SQ20101027327
公開日2011年4月13日 申請日期2010年9月2日 優(yōu)先權(quán)日2010年9月2日
發(fā)明者關(guān)怡然, 劉先毅, 李家魁, 楊貴福, 王建一, 陳文瀚, 馬志強 申請人:東北師范大學