課程設計-銀行家算法的設計與實現(xiàn)_第1頁
課程設計-銀行家算法的設計與實現(xiàn)_第2頁
課程設計-銀行家算法的設計與實現(xiàn)_第3頁
課程設計-銀行家算法的設計與實現(xiàn)_第4頁
課程設計-銀行家算法的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、內蒙古工業(yè)大學操作系統(tǒng)課程設計學校代碼: 10128學 號: 200810205004課程設計題 目:銀行家算法的設計與實現(xiàn) 學生姓名:朱見濤 學 院:信息工程學院系 別:計算機系 專 業(yè):軟件工程 班 級:軟08-1指導教師:秦俊平 講師馬志強 講師20011年1月18日 18內蒙古工業(yè)大學課程設計任務書(二)學院(系):信息學院計算機系 課程名稱:操作系統(tǒng)課程設計 指導教師(簽名): 專業(yè)班級: 軟件工程 081 學生姓名: 朱見濤 學號: 200810205004 一、課程設計題目銀行家算法的設計與實現(xiàn)二、課程設計的目的通過銀行家算法設計與實現(xiàn),可以加深學生對死鎖的理解,掌握死鎖的預防、

2、避免、檢測和解除的基本原理,重點掌握死鎖的避免方法銀行家算法。使學生初步具有研究、設計、編制和調試操作系統(tǒng)模塊的能力。 三、課程設計的主要內容和要求(包括原始數(shù)據(jù)、技術參數(shù)、設計要求、工作量要求等) 技術參數(shù): windows xp系統(tǒng),vc+6.0開發(fā)工具。設計要求: 1 設計銀行家算法的核心數(shù)據(jù)結構、安全性檢查算法;2 畫出銀行家算法流程圖;3 編程實現(xiàn)算法功能;4 編寫課程設計說明書。 工作量要求:完成以上設計要求中的所有算法功能。四、工作進度安排 周一:布置、講解題目,收集資料;周二:系統(tǒng)分析,算法設計;周三:編制、調試程序;周四:測試系統(tǒng),形成設計結論,編寫課設報告;周五:系統(tǒng)及材料

3、驗收,課設答辯。五、主要參考文獻1 張堯學編計算機操作系統(tǒng)教程(第三版)習題解答與實驗指導北京:清華大學出版社,20062 湯子瀛主編計算機操作系統(tǒng)(第三版)西安:西安電子科技大學出版社,2001 3 張坤等編操作系統(tǒng)實驗教程北京:清華大學出版社,2008審核批準意見系(教研室)主任(簽字) 目 錄第一章設計內容111 設計目的112 設計要求113 程序設計思想1第二章 數(shù)據(jù)結構、算法和算法流程圖221 數(shù)據(jù)結構222 程序功能圖223 程序流程圖3第三章 程序運行結果及分析631 程序運行結果632 程序分析7第四章 心得體會8參考文獻9附錄 程序清單10第一章 設計內容11 設計目的通過

4、銀行家算法設計與實現(xiàn),可以加深學生對死鎖的理解,掌握死鎖的預防、避免、檢測和解除的基本原理,重點掌握死鎖的避免方法銀行家算法。使學生初步具有研究、設計、編制和調試操作系統(tǒng)模塊的能力。12 設計要求1.問題描述銀行家算法是一種最有代表性的避免死鎖的算法。在避免死鎖方法中允許進程動態(tài)的申請資源,但系統(tǒng)在進行資源分配之前,應先計算此次分配資源的安全性,若分配不會導致系統(tǒng)進入不安全狀態(tài),則分配,否則等待。要解釋銀行家算法,必須先解釋操作系統(tǒng)安全狀態(tài)和不安全狀態(tài)。安全序列是指一個進程序列p1,pn是安全的,如果對于每一個進程pi(1in),它以后尚需要的資源量不超過系統(tǒng)當前剩余資源量與所有進程pj (j

5、 i )當前占有資源量之和。安全狀態(tài):如果存在一個由系統(tǒng)中所有進程構成的安全序列p1,pn,則系統(tǒng)處于安全狀態(tài)。安全狀態(tài)一定是沒有死鎖發(fā)生。不安全狀態(tài):不存在一個安全序列。不安全狀態(tài)不一定導致死鎖。我們可以把操作系統(tǒng)看作是銀行家,操作系統(tǒng)管理的資源相當于銀行家管理的資金,進程向操作系統(tǒng)請求分配資源相當與用戶向銀行家貸款。操作系統(tǒng)按照銀行家指定的規(guī)則為進程分配資源,當進程首次申請資源時,要測試該進程對資源的最大需求量,如果系統(tǒng)現(xiàn)存的資源可以滿足他的最大需求量則按當前的申請量分配資源,否則就推遲分配。當進程在執(zhí)行中繼續(xù)申請資源時,先測試該進程已占用的資源數(shù)與本次申請的資源數(shù)之和是否超過了該進程對資

6、源的最大需求量。若超過則拒絕分配資源,若沒有超過則再測試系統(tǒng)現(xiàn)存的資源能否滿足該進程尚需的最大資源量,若能滿足則按當前的申請量分配資源,否則也要推遲分配。2.基本要求1)分析設計內容,給出解決方案(要說明設計實現(xiàn)的原理,采用的數(shù)據(jù)結構)。2)畫出程序的基本結構框圖和流程圖。3)對程序的每一部分要有詳細的設計分析說明。4)源代碼格式要規(guī)范。5)設計合適的測試用例,隊得到的運行結果要有分析。6)設計中遇到的問題,設計的心得體會。7)按期提交完整的程序代碼,可執(zhí)行程序和課程設計報告。1.3 程序設計思想1.設計思想輸入當前進程資源的使用情況以及整個系統(tǒng)的資源使用情況,并進行初始化安全性檢查;如果是不

7、安全狀態(tài),重新初始化系統(tǒng);否則,從等待隊列中提取一個等待進程,使用銀行家算法進行檢測,輸出當前系統(tǒng)的狀態(tài)和安全序列;如果是安全狀態(tài),系統(tǒng)繼續(xù)從等待隊列中提取等待進程進行檢查;如果是不安全狀態(tài),進程回到等待隊列,系統(tǒng)從等待隊列中提取等待進程進行檢查。系統(tǒng)中申請資源的進程全部進入等待隊列等候處理。第二章 數(shù)據(jù)結構、算法和算法流程圖21 數(shù)據(jù)結構銀行家算法中用到的主要數(shù)據(jù)結構可用資源向量 int availablei /j為資源的種類最大需求矩陣 int maxij /i為進城的數(shù)量分配矩陣 int allocationij 需求矩陣 int needij=maxij-allocationij申請各

8、類資源數(shù)量 int requestij /i申請j資源的數(shù)量工作向量 int worki int finishi安全序列 int pi22 程序功能圖銀行家算法系統(tǒng)顯示分配資源狀態(tài)資源分配安全性檢查初始化資源銀行家算法實現(xiàn)資源分配顯示安全序列圖2.1文件系統(tǒng)提供的文件操作有建立文件(mkfile)、復制文件(copy)、顯示文件所有內容(type)、刪除文件(delfile)??梢酝ㄟ^鍵盤輸入命令來模擬文件的操作。23 程序流程圖(1)主程序流程圖:圖2.1第三章 程序運行結果及分析31 程序運行結果(1)初始化界面圖3.1(2)檢測系統(tǒng)資源分配是否安全(若安全,輸入安全序列)圖3.2圖3.3

9、32 程序分析本程序依靠鍵盤輸入初始化系統(tǒng)資源數(shù)量及種類,有銀行家算法檢驗系統(tǒng)資源是否安全,輸出安全序列。提出請求requesti,同意分配,則進行安全性算法safe(),否則輸出提示:請求被拒絕。直到所有進程finish=true,安全且輸出安全序列,安全算法safe()結束。第四章 心得體會通過本次的課程設計,使我能夠正確運用操作系統(tǒng)課程中所學的基本理論和知識。操作系統(tǒng)的基本特征是并發(fā)與共享。系統(tǒng)允許多個進程并發(fā)執(zhí)行,并且共享系統(tǒng)的軟、硬件資源。為了最大限度的利用計算機系統(tǒng)的資源,操作系統(tǒng)應采用動態(tài)分配的策略,但是這樣就容易因資源不足,分配不當而引起“死鎖”。而我本次課程設計就是得用銀行家

10、算法來避免“死鎖”。銀行家算法是一個分配資源的過程,是分配的序列不會產生死鎖。此算法的中心思想是:按該法分配資源時,每次分配后總存在著一個進程,如果讓它單獨運行下去,必然可以獲得它所需要的全部資源,也就是說,它能結束,而它結束后可以歸還這類資源以滿足其他申請者的需要。本次程序就是按照上面的思路展開的。但是因為時間上的倉促,本課程設計存在以下不足:一、不能實現(xiàn)并發(fā)操作,即當總資源同時滿足幾個進程所需要的資源數(shù)時,這些進程不能同時進行,只能一一按進程順序執(zhí)行。二、掃描進程順序單一,只能按進程到來的順序來掃描,從而產生的安全序列只能是在這個順序的基礎上產生的,而其實安全序列是有多個的。三、對進程數(shù)和

11、資源數(shù)進行的數(shù)量進行了限制,都只能最多有十個。四、運行程序后,界面較差,進程數(shù),所需要資源數(shù),已分配資源數(shù),能用資源數(shù),不能一目了然。設計一個軟件,先要做好需求分析,這一點很重要,如果沒有分析好需求,到軟件設計的最后,發(fā)現(xiàn)所做的功能不符合要求,那么一切都得重做。還有比較重要的是,畫好程流程圖。在編程和調試的過程中,經常會出現(xiàn)意想不到的問題,并非每個問題都可以從相關資料中找到解決方法,有些問題是無法預料到的,這就需要通過自己理性的分析得出問題的解決方案。在設計過程中,查詢了不少相關資料,不斷的發(fā)現(xiàn)問題、提出問題、解決問題??偟膩碚f通過這次的設計的學習使我學到了很多在平時的學習中學不到的很多東西,

12、通過這次課程設計,使我學到了很多的實用性知識。除了更深的了解這個算法,而且對c語言進行了復習,而且其過程中有很多的知識點都不記得了,所以在此感謝在此過程中幫助過我的老師和同學。參考文獻1 張堯學編計算機操作系統(tǒng)教程(第三版)習題解答與實驗指導北京:清華大學出版社,20062 湯子瀛主編計算機操作系統(tǒng)(第三版)西安:西安電子科技大學出版社,2001 3 csdn論壇4 張麗芬等編操作系統(tǒng)實驗教程北京:清華大學出版社,2006附錄 程序清單#include using namespace std;#define maxprocess 10 /*最大進程數(shù)*/#define maxresource

13、10 /*最大資源數(shù)*/int availablemaxresource; /*可用資源數(shù)組*/int maxmaxprocessmaxresource; /*最大需求矩陣*/int allocationmaxprocessmaxresource; /*分配矩陣*/int needmaxprocessmaxresource; /*需求矩陣*/int requestmaxprocessmaxresource; /*進程申請資源數(shù)*/bool finishmaxprocess; /*系統(tǒng)是否有足夠的資源分配*/int pmaxprocess; /*記錄序列*/int m,n; /*m個進程,n個資

14、源*/void init();bool safe();void bank();int main() init(); safe(); bank();void init() /*初始化算法*/ int i,j; printf(請輸入進程的數(shù)目:); scanf(%d,&m); printf(請輸入資源的種類:); scanf(%d,&n); printf(請輸入每個進程最多所需的各資源數(shù),按照%dx%d矩陣輸入n,m,n); for(i=0;im;i+) for(j=0;jn;j+) scanf(%d,&maxij); printf(請輸入每個進程已分配的各資源數(shù),也按照%dx%d矩陣輸入n,m,

15、n); for(i=0;im;i+) for(j=0;jn;j+) scanf(%d,&allocationij); needij=maxij-allocationij; if(needij0) printf(您輸入的第%d個進程所擁有的第%d個資源數(shù)錯誤,請重新輸入:n,i+1,j+1); j-; continue; printf(請輸入各個資源現(xiàn)有的數(shù)目:n); for(i=0;in;i+) scanf(%d,&availablei); void bank() /*銀行家算法*/ int i,cusneed; char again; while(1) printf(請輸入要申請資源的進程號

16、(注:第1個進程號為0,依次類推)n); scanf(%d,&cusneed); printf(請輸入進程所請求的各資源的數(shù)量n); for(i=0;in;i+) scanf(%d,&requestcusneedi); for(i=0;ineedcusneedi) printf(您輸入的請求數(shù)超過進程的需求量!請重新輸入!n); continue; if(requestcusneediavailablei) printf(您輸入的請求數(shù)超過系統(tǒng)有的資源數(shù)!請重新輸入!n); continue; for(i=0;in;i+) availablei-=requestcusneedi; alloca

17、tioncusneedi+=requestcusneedi; needcusneedi-=requestcusneedi; if(safe() printf(同意分配請求!n); else printf(您的請求被拒絕!n); for(i=0;in;i+) availablei+=requestcusneedi; allocationcusneedi-=requestcusneedi; needcusneedi+=requestcusneedi; for(i=0;im;i+) finishi=false; printf(您還想再次請求分配嗎?是請按y/y,否請按其它鍵n); scanf(%d,

18、&again); if(again=y|again=y) continue; break; bool safe() /*安全性算法*/ int i,j,k,l=0; int workmaxresource; /*工作數(shù)組*/ for(i=0;in;i+) worki=availablei; for(i=0;im;i+) finishi=false; for(i=0;im;i+) if(finishi=true) continue; else for(j=0;jworkj) break; if(j=n) finishi=true; for(k=0;kn;k+) workk+=allocation

19、ik; pl+=i; i=-1; else continue; if(l=m) printf(系統(tǒng)是安全的n); printf(安全序列:n); for(i=0;i); printf(n); return true; printf(系統(tǒng)是不安全的n); return false; g an employment tribunal claiemployment tribunals sort out disagreements between employers and employees.you may need to make a claim to an employment tribunal

20、 if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.for more information about dismissal and unfair dismissal, seedismissal.you can make a claim to an employment tribunal, even if you hav

21、entappealedagainst the disciplinary action your employer has taken against you. however, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.remember that in most cases you must make an application to an employment tribunal within three

22、 months of the date when the event you are complaining about happened. if your application is received after this time limit, the tribunal will not usually accept i.if you are worried about how the time limits apply to you, take advice from one of the organisations listed underfurther help.employmen

23、t tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.most people find making a claim to an employment tribunal challenging. if you are thinking about making a claim to an employment tribunal, you should ge

24、t help straight away from one of the organisations listed underfurther help.if you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. this is known as adamages-based agreement. in england a

25、nd wales, your solicitor cant charge you more than 35% of your compensation if you win the case.if you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. it might be best to get advice from an experienced adviser, for examp

26、le, at a citizens advice bureau. to find your nearest cab, including those that give advice by e-mail, click onnearest cab.for more information about making a claim to an employment tribunal, seeemployment tribunals.the (lack of) air up there watch mcayman islands-based webb, the head of fifas anti-

27、racism taskforce, is in london for the football associations 150th anniversary celebrations and will attend citys premier league match at chelsea on sunday.i am going to be at the match tomorrow and i have asked to meet yaya toure, he told bbc sport.for me its about how he felt and i would like to s

28、peak to him first to find out what his experience was.uefa hasopened disciplinary proceedings against cskafor the racist behaviour of their fans duringcitys 2-1 win.michel platini, president of european footballs governing body, has also ordered an immediate investigation into the referees actions.c

29、ska said they were surprised and disappointed by toures complaint. in a statement the russian side added: we found no racist insults from fans of cska.age has reached the end of the beginning of a word. may be guilty in his seems to passing a lot of different life became the appearance of the same d

30、ay; may be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. always feel oneself should go to do something, or write something. twenty years of life trajectory deeply shallow, suddenly feel something, do it.一字開頭的年齡

31、已經到了尾聲?;蛟S是愧疚于自己似乎把轉瞬即逝的很多個不同的日子過成了同一天的樣子;或許是追溯過去,對自己那些近乎偏執(zhí)的怪異信念的醒悟,這些天以來,思緒一直很凌亂,在腦海中不斷糾纏??傆X得自己自己似乎應該去做點什么,或者寫點什么。二十年的人生軌跡深深淺淺,突然就感覺到有些事情,非做不可了。the end of our life, and can meet many things really do?而窮盡我們的一生,又能遇到多少事情是真正地非做不可?during my childhood, think lucky money and new clothes are necessary for n

32、ew year, but as the advance of the age, will be more and more found that those things are optional; junior high school, thought to have a crush on just means that the real growth, but over the past three years later, his writing of alumni in peace, suddenly found that isnt really grow up, it seems i

33、s not so important; then in high school, think dont want to give vent to out your inner voice can be in the high school children of the feelings in a period, but was eventually infarction when graduation party in the throat, later again stood on the pitch he has sweat profusely, looked at his thrown

34、 a basketball hoops, suddenly found himself has already cant remember his appearance.童年時,覺得壓歲錢和新衣服是過年必備,但是隨著年齡的推進,會越來越發(fā)現(xiàn),那些東西根本就可有可無;初中時,以為要有一場暗戀才意味著真正的成長,但三年過去后,自己心平氣和的寫同學錄的時候,突然就發(fā)現(xiàn)是不是真正的成長了,好像并沒有那么重要了;然后到了高中,覺得非要吐露出自己的心聲才能為高中生涯里的懵懂情愫劃上一個句點,但畢業(yè)晚會的時候最終還是被梗塞在了咽喉,后來再次站在他曾經揮汗如雨的球場,看著他投過籃球的球框時,突然間發(fā)現(xiàn)自己已經

35、想不起他的容顏。originally, this world, can produce a chemical reaction to an event, in addition to resolutely, have to do, and time.原來,這個世界上,對某個事件能產生化學反應的,除了非做不可的堅決,還有,時間。a persons time, your ideas are always special to clear. want, want, line is clear, as if nothing could shake his. also once seemed to be

36、 determined to do something, but more often is he backed out at last. dislike his cowardice, finally found that there are a lot of love, there are a lot of miss, like shadow really have been doomed. those who do, just green years oneself give oneself an arm injection, or is a self-righteous spiritua

37、l.一個人的時候,自己的想法總是特別地清晰。想要的,不想要的,界限明確,好像沒有什么可以撼動自己。也曾經好像已經下定了決心去做某件事,但更多的時候是最后又打起了退堂鼓。嫌惡過自己的怯懦,最終卻發(fā)現(xiàn)有很多緣分,有很多錯過,好像冥冥之中真的已經注定。那些曾經所謂的非做不可,只是青蔥年華里自己給自己注射的一支強心劑,或者說,是自以為是的精神寄托罷了。at the moment, the sky is dark, the air is fresh factor after just rained. suddenly thought of blue plaid shirt; those were bro

38、ken into various shapes of stationery; from the corner at the beginning of deep friendship; have declared the end of the encounter that havent start planning. those years, those days of do, finally, like youth, will end in our life.此刻,天空是陰暗的,空氣里有著剛下過雨之后的清新因子。突然想到那件藍格子襯衫;那些被折成各種各樣形狀的信紙;那段從街角深巷伊始的友誼;還

39、有那場還沒有開始就宣告了終結的邂逅計劃那些年那些天的非做不可,終于和青春一樣,都將在我們的人生中謝幕。baumgartner the disappointing news: mission aborted. r plays an important role in this mission. starting at the ground, conditions have to be very calm - winds less than 2 mph, with no precipitation or humidity and limited cloud cover. the balloon,

40、with capsule attached, will move through the lower level of the atmosphere (the troposphere) where our day-to-day weather lives. it will climb higher than the tip of mount everest (5.5 miles/8.85 kilometers), drifting even higher than the cruising altitude of commercial airliners (5.6 miles/9.17 kilometers) and into the stratosphere. as he crosses the boundary layer (called the tropopause),e can expect a lot of turbulence.the supersonic descent could happen as early as sunda.the weathethe balloon will slowly drift to the edge of space at 120,000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論