哲學家進餐問題是荷蘭學者Dijkstra 提出的經典問題之一,它是一個信號量機制問題的應用,在操作系統文化史上具有非常重要的地位。對該問題的剖析有助于學生深刻地理解計算機系統中的資源共享、進程同步、死鎖等問題,并能熟練地應用信號量來解決生活中的控制流程,即將生活中的控制流程用形式化的方式表達出來。 假設有5個哲學家,他們花費一生中的時光思考和吃飯。這些哲學家共用一個圓桌,每個哲學家都有一把椅子。在桌子中央是一碗通心面,在桌子上放著5只筷子。(如圖所示)當一個哲學家思考時,他與其他同事不交互。時而,哲學家會感到饑餓,并試圖拿起與他相近的兩只筷子(他與鄰近左、右之間的筷子)。一個哲學家一次只能拿起一只筷子。顯然,他不能從其他哲學家手里拿走筷子。當一個饑餓的哲學家同時有兩只筷子時,他就不能不用釋放他的筷子而自己吃了。當吃完后,他會放下兩只筷子,并再次開始思考。 規定奇數號哲學家先拿他左邊的筷子,然后再去拿右邊的筷子;而偶數號哲學家則相反。按此規定,將是1、 2號哲學家競爭1號筷子;3、4號哲學家競爭3號筷子。即五位哲學家都先競爭奇數號筷子,獲得后,再去競爭偶數號筷子,最后總會有一位哲學家能獲得兩只筷子而進餐。
上傳時間: 2014-01-23
上傳用戶:teddysha
* 功能:使用PWM6輸出PWM信號,通過濾波電實現DAC轉換。由KEY1控制PWM的占空比, * 每按一次按鍵將會改變一次PWM的占空比。 * 說明:使用示波器觀察測試點PWM和PWMDAC。
上傳時間: 2014-01-13
上傳用戶:qq1604324866
在參考書目一這本書的附錄A,在單機中使用,但是最後在WIN95的光碟中找不到IENPSTUB.DLL及MSLOCUSR.DLL二個檔案,不知何故,可否告訴我如何解決這個問題? 我使用的是Win95的平臺,故須安裝PWS,但是卻無法安裝它,畫面出現是要求IE 4.01以上的版本,我使用的是IE5為何還是無法安裝呢?
標簽:
上傳時間: 2015-11-13
上傳用戶:lijianyu172
不帶頭結點的鏈式堆棧類,1、 定義并實現不帶頭結點的鏈式堆棧類,除構造和析構函數外,成員函數還有入棧、出棧、取棧頂元素、判斷堆棧是否非空,頭文件為“nohead_LinStack.h”。
上傳時間: 2014-01-22
上傳用戶:alan-ee
平衡二叉樹操作的演示 一、 需求分析 (1) 利用平衡二叉樹實現動態查找表。實現查找,插入和刪除三種基本功能。 (2) 初始,平衡二叉樹為空樹,操作界面給出查找,插入和刪除三種操供選擇。每種操作均要提示輸入關鍵字。每次插入和刪除一個接點時,顯示更新的平衡二叉樹。 (3) 重點在于對刪除算法的實現。假設要刪除的關鍵字為X的結點,若X不在葉子結點上,則用左子樹中的最大值或者右子樹中的最小值取代X。如此反復,直到刪除動作傳遞到某個葉子結點,刪除葉子結點時,若要進行平衡變換,可采用插入的平衡變換反變換。
上傳時間: 2013-12-23
上傳用戶:黃華強
嬰兒出生信息登記系統 .按鍵1可以錄入一條嬰兒材料,其中嬰兒母親、嬰兒性別和護理人員代碼不能為空,其他數據如果需要為空請輸入 / 。 2.按鍵2可以查看嬰兒材料保存文件里面的所有嬰兒材料。 3.按鍵3可以通過輸入嬰兒父母姓名、嬰兒性別、嬰兒出生醫院或者嬰兒出生日期進行查找。 4.按鍵4可以顯示超低重嬰兒材料,超低重嬰兒標準是低于1kg。 5.按鍵5可以通過輸入嬰兒編號確定需要修改材料的嬰兒,然后可以通過輸入所需修改的項目,對嬰兒材料除嬰兒編號以外的數據進行修改。 6.按鍵6可以通過輸入嬰兒編號來確定要刪除的嬰兒材料。 7.按鍵7查看使用說明。 8.按鍵8退出嬰兒信息登記系統。
上傳時間: 2013-12-24
上傳用戶:BIBI
[輸入] 圖的頂點個數N,圖中頂點之間的關系及起點A和終點B [輸出] 若A到B無路徑,則輸出“There is no path” 否則輸出A到B路徑上個頂點 [存儲結構] 圖采用鄰接矩陣的方式存儲。 [算法的基本思想] 采用廣度優先搜索的方法,從頂點A開始,依次訪問與A鄰接的頂點VA1,VA2,...,VAK, 訪問遍之后,若沒有訪問B,則繼續訪問與VA1鄰接的頂點VA11,VA12,...,VA1M,再訪問與VA2鄰接頂點...,如此下去,直至找到B,最先到達B點的路徑,一定是邊數最少的路徑。實現時采用隊列記錄被訪問過的頂點。每次訪問與隊頭頂點相鄰接的頂點,然后將隊頭頂點從隊列中刪去。若隊空,則說明到不存在通路。在訪問頂點過程中,每次把當前頂點的序號作為與其鄰接的未訪問的頂點的前驅頂點記錄下來,以便輸出時回溯。 #include<stdio.h> int number //隊列類型 typedef struct{ int q[20]
標簽: 輸入
上傳時間: 2015-11-16
上傳用戶:ma1301115706
2.[問題描述] 編寫遞歸算法,在二叉樹中求位于先序序列中第K個位置的結點 [輸入] 按照先序序列的順序輸入該結點的內容。其輸入abd eh cf i g 。輸入要求的位置 [輸出] 若二叉樹不空,按先序序列輸出,求出所求位置的結點 [存儲結構] 采用二叉表存儲 [算法的基本思想] 采用遞歸方法建立和遍歷二叉樹。首先建立二叉樹的根結點,然后建立其左右子樹,直到空子樹為止,先序遍歷二叉樹時,先遍厲左子樹,后遍厲右子樹,最后訪問根結點并計算出二叉樹中葉子結點的數目和第K個位置的結點 #include<stdio.h> #include<malloc.h> struct node{ char info struct node*llink,*rlink } typedef struct node NODE
上傳時間: 2014-01-13
上傳用戶:zm7516678
一 . 需求分析: 1) 輸入形式和輸入值范圍: 輸入形式是要壓縮(或者要解壓)的文件路徑,輸入范圍是字符串,而且要是文件的路徑。 2) 輸出形式: 輸出相應的編碼壓縮文件和解碼原文件 3) 程序所能達到的功能: 利用哈夫曼對ASCII文件做不等長編碼,達到壓縮文件。利用哈夫曼樹的遍歷,達到解壓文件的目的。程序的功能也就是實現壓縮和解壓ASCII類型文件的目的。 4)測試數據:(包括正確的輸入數據及其輸出結果和含有錯誤輸入及其輸出結果) 測試輸入或者輸出文本框是不是有空的,是不是不是有效路徑。進行條件判斷,實現錯誤處理。 比如要壓縮:c:\a.txt 文件路徑就是:c:\a.txt。如果輸入框是空的,就判斷,然后用MessageBox處理信息。 如果文件路徑和文件的輸出路徑都寫正確的話,就會輸出相應的壓縮或者解壓文件,否則用函數MessageBox提示錯誤。然后進行更正。 二 . 概要設計: 1) 哈夫曼樹的特點 a) 是二叉樹的一種,而且是一種沒有度數是1的二叉樹 b) 一棵樹有n個葉子,就會用2n-1個節點 c) 一種“最優”二叉樹,由于樹的帶權路徑(WPL)最小 d) 由于它是由下到上順序構造的,使得分支節點和葉子節點從下到上,權值都是從小到大的順序排列的
上傳時間: 2013-12-03
上傳用戶:zsjzc
通過JAVA設計 GUI 界面的計算器程序,用戶可以通過鼠標依次輸入參加計算的數值,進行加、減、乘、除等混合運算,這些完成標準計算器的基礎操作。當選擇科學計算器后,可以實現sin 、 cos 、 tan 、 ln、x^y、x^2、x^3、pi、n!、mod和十六進制除這個以外還可以刪除輸入,清空結果,求1除X,X百分比,十進制是,八進制,二進制的相互轉換。
上傳時間: 2015-11-22
上傳用戶:阿四AIR