freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

銀行家算法實驗報告-全文預(yù)覽

2025-09-04 23:53 上一頁面

下一頁面
  

【正文】 課程設(shè)計的內(nèi)容是銀行家算法,我用的編程工具是VC++,語言使用的是C語言,目的是模擬實現(xiàn)處理機避免死鎖;其次,通過模擬實現(xiàn)算法,我更進一步地學習了C語言,這使我的編程能力得到了提高。1. 主函數(shù)void main()函數(shù)流程圖 2. int check_distribution(int* p,int k)流程圖 check_safe()流程圖 ()流程圖五、程序調(diào)試函數(shù)的書寫分模塊進行,每完成一個模塊進行調(diào)試、測試直到該函數(shù)運行無誤。 iN。 iN。amp。amp。 i++)循環(huán){Work[k][i]=Available[i]。 iM。//分配矩陣——系統(tǒng)給每個進程已分配的各類資源數(shù) (5)需求矩陣 int Need[N][M]。 //進程名(2)可利用資源向量 int Available[M]。Finish[i]=true。②布爾向量Finish。 Need=NeedRequest。(1)如果Requesti<or =Need,則轉(zhuǎn)向步驟(2);否則,認為出錯,因為它所需要的資源數(shù)已超過它所宣布的最大值。因此,避免死鎖的實質(zhì)在于,如何使系統(tǒng)不進入不安全狀態(tài),銀行家算法就是用來判斷某種情況會不會進入不安全狀態(tài)。所謂安全狀態(tài)是指系統(tǒng)能按某種順序如p1,p2,……,pn(稱p1,p2,……,pn為安全序列),就這樣來為每個進程分配資源,直至最大需求。(4)在上面判斷合法的前提下進行試分配,利用銀行家算法求出安全序列。通過這樣一個過程,可以有效避免系統(tǒng)進入死鎖狀態(tài)。而最具代表性的避免死鎖的算法,便是Dijkstra的銀行家算法。所謂死鎖(Deadlock),是指多個進程在運行過程中因爭奪資源而造成的一種僵局(DeadlyEmbrace),當進程處于這種狀態(tài)時,若無外力作用,他們都無法在向前推進。檢查狀態(tài)是否安全的方法是看他是否有足夠的資源滿足一個距最大需求最近的客戶。如果忽然所有的客戶都申請,希望得到最大貸款額,而銀行家無法滿足其中任何一個的要求,則發(fā)生死鎖。這里將客戶比作進程,貸款比作設(shè)備,銀行家比作系統(tǒng)。若申請資源的進程申請的資源數(shù)目不合法,則不需要進行試分配,直接使其進入阻塞狀態(tài),處理其他申請資源的進程。操作系統(tǒng)課程設(shè)計報告題目:銀行家算法院(系):計算機學院專業(yè):計算機科學與技術(shù)班級:學生:學號:指導教師:2012年 01月                                            摘要銀行家算法是一個用來預(yù)防系統(tǒng)進入死鎖狀態(tài)的算法,用它可以判斷系統(tǒng)的安全性,如果系統(tǒng)當前處于安全狀態(tài),則可以為申請資源的進程分配資源,如果不是安全狀態(tài),則不能為申請資源的進程分配資源。如果找不到安全序列,則說明為該進程分配資源后系統(tǒng)會進入不安全狀態(tài),所以不能為該進程分配資源,使該進程進入阻塞狀態(tài)。它的模型基于一個小城鎮(zhèn)的銀行家,他向一群客戶分別承諾了一定的貸款額度,每個客戶都有一個貸款額度,銀行家知道不可能所有客戶同時都需要最大貸款額,所以他只保留一定單位的資金來為客戶服務(wù),而不是滿足所有客戶貸款需求的最大單位。一個狀態(tài)被稱為是安全的,其條件是存在一個狀態(tài)序列能夠使所有的客戶均得到其所需的貸款。若是,則不滿足該請求;否則便滿足。在多道程序系統(tǒng)中,多個進程的并發(fā)執(zhí)行來改善系統(tǒng)的資源利用率,提高系統(tǒng)的吞吐量,但可能發(fā)生一種危險——死鎖。在該方法中把系統(tǒng)狀態(tài)分為安全狀態(tài)和不安全狀態(tài),便可避免死鎖的發(fā)生。銀行家算法中,要對當前申請資源的進程申請資源的數(shù)目進行判斷,如果可以試分配,則試求出一個安全序列,如果可以求出,則說明給這個進程分配資源后系統(tǒng)不會進入不安全狀態(tài),將該進程申請的資源分配給他,若求不出安全序列,則說明將資源分配給該進程后系統(tǒng)會進入不安全狀態(tài),所以就使該進程進入阻塞狀態(tài),等待以后可以分配資源時再執(zhí)行該進程,然后系統(tǒng)繼續(xù)服務(wù)其它進程。(3)若有進程申請資源,首先要對它申請的資源數(shù)進行判斷。若此次分配不會使系統(tǒng)進入不安全狀態(tài),便將資源分配給該進程否則進程等待。雖然并非所有的不安全狀態(tài)都會產(chǎn)生死鎖狀態(tài),但當系統(tǒng)進入不安全狀態(tài)后,便可能進而進入死鎖狀態(tài);反之,只要系統(tǒng)處于安全狀態(tài),系統(tǒng)便可避免進入死鎖狀態(tài)。若安全,則分配;若不安全,則拒絕申請,恢復到原來的狀態(tài),拒絕申請。 Allocation=Allocation+Request。它表示系統(tǒng)可提供進程繼續(xù)運行所需要的各類資源數(shù)目,執(zhí)行安全算法開始時,Work=Allocation。(3)當進程P獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:Work=Work+Allocation。四、詳細設(shè)計(1)進程名向量 char processnema[N]。 //最大需求矩陣——每個進程對各資源的最大需求數(shù)分配矩陣 (4)已分配矩陣 int Allocation[N][M]。//存放安全序列號(9)標志向量 int Finish[N] //求安全序列時記錄每個進程是否可以順利執(zhí)行 void main() //系統(tǒng)主函數(shù)int check_distribution() //安全性檢查函數(shù)int check_safe() //銀行家算法函數(shù)void print() //輸出函數(shù)
點擊復制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1