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

正文內容

實現(xiàn)生產者消費者問題操作系統(tǒng)課程設計報告(編輯修改稿)

2025-04-21 13:02 本頁面
 

【文章內容簡介】 要長大!data = %s!\n, i, thing[data])。 //等待存放空間 P(g_semBuffer)。 //有地方,先鎖住緩沖區(qū)g_buf P(g_mutex)。 //記錄消費的物品 ptr = 。 //再移動緩沖區(qū)指針 = (+1)%BUFFER_NUM。 //讓其他消費者或生產者使用 g_buf V(g_mutex)。 printf(小草%03d:長大了!buf[%d] = %s\n, i, ptr, thing[data])。 [ptr] = data。 Sleep(rate/2*rand()%10+1800)。 //放好了完畢,釋放一個產品 printf(小草%03d: buf[%d]=%s 小白兔快來!\n,i, ptr,thing[[ptr]])。 V(g_semProduct)。 } return 0。 } int main(int argc, char *argv[]) { //線程技術,前面為消費者線程,后面為生產者線程 HANDLE hThread[CONSUMER_NUM+PRODUCER_NUM]。 //線程計數(shù) //srand(time())。 DWORD tid。 int i=0。 //初始化信號量 g_mutex=CreateSemaphore(NULL,BUFFER_NUM,BUFFER_NUM,mutexOfConsumerAndProducer)。 g_semBuffer=CreateSemaphore(NULL,BUFFER_NUM,BUFFER_NUM,BufferSemaphone)。 g_semProduct= CreateSemaphore(NULL, 0, BUFFER_NUM, ProductSemaphone)。 if (!g_semBuffer||!g_semProduct||!g_mutex) { printf(Create Semaphone Error!\n)。 return 1。 } Int totalThreads = CONSUMER_NUM+PRODUCER_NUM。 // 開啟消費者線程 printf(先請小白兔就位!\n)。 for (i=0。 iCONSUMER_NUM。 i++) { hThread[i] = CreateThread(NULL, 0, Consumer, amp。i, 0, amp。tid)。 if ( hThread[i] ) WaitForSingleObject(hThread[i], 10)。 } printf(請小草就位!\n)。 for (。itotalThreads。 i++) { hThread[i] = CreateThread(NULL, 0, Producer, amp。i, 0, amp。tid)。 if ( hThread[i] ) WaitForSingleObject(hThread[i], 10)。 } //生產者和消費者的執(zhí)行 WaitForMultipleObjects(totalThreads, hThread, TRUE, INFINITE)。 return 0。 }第二部分:實現(xiàn)銀行家算法一、題目:實現(xiàn)銀行家算法課程設計目的: l 了解多道程序系統(tǒng)中,多個進程并發(fā)執(zhí)行的資源分配。 l 掌握死鎖的產生的原因、產生死鎖的必要條件和處理死鎖的基本方法。 l 掌握預防死鎖的方法,系統(tǒng)安全狀態(tài)的基本概念。 l 掌握銀行家算法,了解資源在進程并發(fā)執(zhí)行中的資源分配策略。 l 理解死鎖避免在當前計算機系統(tǒng)不常使用的原因二:設計內容管理員可以把一定數(shù)量的作業(yè)供多個用戶周轉使用,為保證作業(yè)的安全管理員規(guī)定: 1)、當一個用戶對作業(yè)的最大需求量不超過管理員現(xiàn)有的資金就要接納該用戶; 2)、用戶可以分期貸款,但垡的總數(shù)不能超過最大需求量;3)、當管理員現(xiàn)有的作業(yè)不能滿足用戶的沿需數(shù)時,對用戶的請求可推遲支付,但總能使用戶在有限的時間里得到請求; 4)、當用戶得到所需的全部作業(yè)后,一定能在有限的時間里歸還所有的作業(yè)。假設共有3類資源A B C,分別為10,5,7個 三、開發(fā)環(huán)境此程序的設計在Windows XP操作系統(tǒng)下,基于Microsoft Visual C++。用C++語言實現(xiàn)編程。四、分析設計預備知識1)、死鎖概念:在多道程序系統(tǒng)中,雖可借助于多個進程的并發(fā)執(zhí)行,來改善系統(tǒng)的資源利用率,提高系統(tǒng)的吞吐量,但可能發(fā)生一種危險━━死鎖。所謂死鎖(Deadlock),是指多個進程在運行中因爭奪資源而造成的一種僵局(Deadly_Embrace),當進程處于這種僵持狀態(tài)時,若無外力作用,它們都將無法再向前推進。一組進程中,每個進程都無限等待被該組進程中另一進程所占有的資源,因而永遠無法得到的資源,這種現(xiàn)象稱為進程死鎖,這一組進程就稱為死鎖進程。2)、關于死鎖的一些結論: 216。參與死鎖的進程最少是兩個(兩個以上進程才會出現(xiàn)死鎖) 216。參與死鎖的進程至少有兩個已經占有資源 216。參與死鎖的所有進程都在等待資源 216。參與死鎖的進程是當前系統(tǒng)中所有進程的子集 注:如果死鎖發(fā)生,會浪費大量系統(tǒng)資源,甚至導致系統(tǒng)崩潰。 3)、資源分類: 永久性資源:可以被多個進程多次使用(可再用資源) l 可搶占資源 l 不可搶占資源 臨時性資源:只可使用一次的資源;如信號量,中斷信號,同步信號等(可消耗性資源) “申請分配使用釋放”模式 4)、產生死鎖的四個必要條件:①互斥使用(資源獨占):指進程對所分配到的資源進進行排它性使用,即在一段時間內某資源只有一個進程使用。如果此時還有其他進程請求資源,則請求者只能等待,直至占有該資源的進程用畢釋放②不可強占(不可剝奪):資源申請者不能強行的從資源占有者手中奪取資源,資源只能由占有者自愿釋放 。指進程已經保持了至少一個資源,但又提出了新的資源請求,而該資源又被其他進程占有,此時請求進程阻塞,但又對自己獲得的其他資源保持不放③請求和保持(部分分配,占有申請):一個進程在申請新的資源的同時保持對原有資源的占有(只有這樣才是動態(tài)申請,動態(tài)分配) 。指進程已獲得的資源,在未使用完以前,不能被剝奪,只能在使用完時由自己釋放。④循環(huán)等待:只發(fā)生死鎖時,必然存在一個進程資源的環(huán)形鏈,即進程集合{P1 , P2 , … , Pn}, 其中P1等待P2占有的資源,P2等待P3占有的資源,…,Pn等待P1占有的資源,形成一個進程等待環(huán)路 5)、死鎖的解決方案 產生死鎖的例子 申請不同類型資源產生死鎖 P1: … 申請打印機 申請掃描儀 使用 釋放打印機 釋放掃描儀 … P2: … 申請掃描儀 申請打印機 使用 釋放打印機 釋放掃描儀 … 申請同類資源產生死鎖(如內存) 設有資源R,R有m個分配單位,由n個進程P1,P2,…,Pn(n m)共享。假設每個進程對R的申請和釋放符合下列原則: * 一次只能申請一個單位 * 滿足總申請后才能使用 * 使用完后一次性釋放 m=2,n=3 資源分配不當導致死鎖產生6)、死鎖預防: 定義:在系統(tǒng)設計時確定資源分配算法,保證不發(fā)生死鎖。①破壞“不可剝奪”條件:在允許進程動態(tài)申請資源前提下規(guī)定,一個進程在申請新的資源不能立即得到滿足而變?yōu)榈却隣顟B(tài)之前,必須釋放已占有的全部資源,若需要再重新申請 ②破壞“請求和保持”條件:要求每個進程在運行前必須一次性申請它所要求的所有資源,且僅當該進程所要資源均可滿足時才給予一次性分配 ③破壞“循環(huán)等待”條件:采用資源有序分配法:把系統(tǒng)中所有資源編號,進程在申請資源時必須嚴格按資源編號的遞增次序進行,否則操作系統(tǒng)不予分配。安全狀態(tài)與不安全狀態(tài) 處理死鎖的基本方法:為保證系統(tǒng)中諸進程的正常運行,應事先采取必要的措施,來預防發(fā)生死鎖。在系統(tǒng)中已經出現(xiàn)死鎖后,則應及時檢測到死鎖的發(fā)生,并采取適當措施來解除死鎖。目前,處理死鎖的方法可以歸結為以下四種:①預防死鎖。這是一種較簡單和直觀的事先預防的方法。該方法是通過設置某些限制條件,去破壞產生死鎖的四個必要條件中的一個或是幾個條件,來預防發(fā)生死鎖。預防死鎖是一種較易實現(xiàn)的方法,已被廣泛使用。但由于所施加的限制條件往往太嚴格,可能會導致系統(tǒng)資源利用率和系統(tǒng)吞吐量降低。②避免死鎖。該方法同樣是屬于事先預防的策略,但它并不須事先采取限制措施去破壞產生死鎖的四個必要條件,而是在資源的動態(tài)分配過程中,用某中方法去防止系統(tǒng)進入不安全狀態(tài),從而避免發(fā)生死鎖。這種方法只需要先加以較弱的限制條件,便可獲得較高的資源利用率和系統(tǒng)吞吐量,但在實現(xiàn)上有一定的難度。目前在較完善的系統(tǒng)中,常用此方法避免發(fā)生死鎖。③檢測死鎖。這種方法并不須實現(xiàn)采取任何
點擊復制文檔內容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1