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

正文內(nèi)容

操作系統(tǒng)進(jìn)程管理演示系統(tǒng)開(kāi)發(fā)(生產(chǎn)者-消費(fèi)者)畢業(yè)論文-wenkub

2022-09-07 12:14:30 本頁(yè)面
 

【正文】 sumerThread::Run() { // TODO: Add your specialized code here and/or call the base class CPCDlg *pDlg。 ReleaseSemaphore(pDlgm_hFullSemaphore[temp],1,NULL)。 pDlgInvalidateRect(CRect(17+temp*40,17,20+(temp+1)*40,200))。 Sleep(t*750+500)。 pDlgInvalidateRect(CRect(17+temp*40,17,20+(temp+1)*40,200))。 int t=0。另外三個(gè)輔助函數(shù)被生產(chǎn)者和消費(fèi)者函數(shù)調(diào)用,是上述生產(chǎn)和消費(fèi)函數(shù)中對(duì)緩沖區(qū)訪問(wèn)功能的一些包裝。用戶程序中只需要調(diào)用該 DLL 的函數(shù)就可以實(shí)現(xiàn)所需功能 ,而且由于這些函數(shù)是在 DLL 中 ,它們?cè)趦?nèi)存中只有一個(gè)副本 ,這對(duì)當(dāng)生產(chǎn)者和消費(fèi)者群體數(shù)目較大時(shí)對(duì)內(nèi)存空間的節(jié)省也是很可觀的。把滿緩沖區(qū)中數(shù)據(jù)拷貝到用戶數(shù)據(jù)區(qū) 。V(MuxPro2ducer)釋放對(duì)空白緩沖資源獨(dú)占使用 ; V(Full)產(chǎn)生一個(gè)滿緩沖區(qū) 。 采用 P、 V 原語(yǔ)解決生產(chǎn)者 / 消費(fèi)者問(wèn)題的算法如下 : (1)信號(hào)量和互斥量的設(shè)置 :設(shè)代表緩沖池中空白緩沖區(qū)和滿緩沖區(qū)的信號(hào)量分別為Empty 和 Full ,Empty 和 Full 的初值分別為 n (緩沖池中緩沖區(qū)數(shù) ) 和 0 。 2. 學(xué)生可以輸入生產(chǎn)者,消費(fèi)者的數(shù)量 來(lái)進(jìn)行不同情形的 的演示。 Visual C++ C++編譯器,而且是一個(gè)基于 Windows操作系統(tǒng)的可視化集成開(kāi)發(fā)環(huán)境( integrated development environment,IDE)。 運(yùn)行環(huán)境 操作系統(tǒng): WINDOWS 98/2020/XP。因此 ConsumerI 和 ConsumerJ 之間不存在針對(duì)緩沖區(qū)的互斥關(guān)系。因此 ProducerI 和 ConsumerJ 之間不存在 針對(duì)緩沖區(qū)的互斥關(guān)系。 4. 多緩沖區(qū)的多生產(chǎn)者 多消費(fèi)者問(wèn)題模型限制條件:整個(gè)系統(tǒng)有 K 個(gè)緩沖區(qū),活動(dòng)進(jìn)程有 n 個(gè)生產(chǎn)者 Producer 和 m 個(gè)消費(fèi)者 Consumer。( 2)只有在 Consumer 從緩沖區(qū)取出物品后, Producer 才能夠繼續(xù)向緩沖區(qū)中放入新生產(chǎn)的物品;因此存在 Producer 對(duì)于Consumer 的同步依賴(lài)。 ( 3)對(duì)于任意的 i( 1≤ i≤ m), j( 1≤ j≤ m), i≠ j, ConsumerI 從緩沖區(qū)中取出物品的同時(shí), ConsumerJ 是不能從緩沖區(qū)中取出物品的。 互斥關(guān)系: ( 1)對(duì)于任意的 i( 1≤ i≤ n), j( 1≤ j≤ m), ProducerI 放入物品的同時(shí), ConsumerJ浙江林學(xué)院天目學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 5 是不能從緩沖區(qū)中取出物品的;反之亦然。因此存在 Producer 和 Consumer 之間的互斥關(guān)系。 模型分析 1. 單緩沖區(qū)的單生產(chǎn)者 單消費(fèi)者問(wèn)題模型限制條件:整個(gè)系統(tǒng)僅有唯一的一個(gè)緩沖區(qū),活動(dòng)進(jìn)程僅有一個(gè)生產(chǎn)者 Producer 和一個(gè)消費(fèi)者 Consumer。這里既要求同步 , 也需要恰當(dāng)?shù)鼗コ狻R虼宋覀兛梢栽诟鬟M(jìn)程的臨界區(qū)的兩端分別加入對(duì)于同一個(gè)初值為的 1信號(hào)量的 P, V操作 , 就可以實(shí)現(xiàn)當(dāng)一個(gè)進(jìn)程進(jìn)人臨界區(qū)后 , 其它進(jìn)程不能夠再進(jìn)入臨界區(qū) , 直到先前進(jìn)人臨界區(qū)的進(jìn)程退出臨界區(qū)后 ,通過(guò) V操作喚醒其它某個(gè)等待進(jìn)程后 , 才會(huì)有進(jìn)程再次訪問(wèn)臨界資源 , 從而實(shí)現(xiàn)多個(gè)進(jìn)程對(duì)于臨界資源的互斥訪問(wèn)。對(duì)于多個(gè)使用同一資源的進(jìn)程 , 它 們對(duì)于資源的競(jìng)爭(zhēng)導(dǎo)致它們?cè)趫?zhí) 行時(shí)的異步性特征。在實(shí)現(xiàn)時(shí) , 我們 可以在各進(jìn)程中完成特定功能的程序段兩端加上 P操作和 V操作 , 它們分別使用不同的信號(hào)量 , 用以在各進(jìn)程間傳遞信息。 進(jìn)程同步的實(shí)現(xiàn) 進(jìn)程同步 是指為了共同完成某項(xiàng)任務(wù) , 具有伙伴關(guān)系的進(jìn)程在執(zhí)行時(shí)間次序上必須遵循確定的規(guī)律 。 浙江林學(xué)院天目學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 3 P(S)的具體執(zhí)行過(guò)程如下 : ① S=S1; ②若 S≥ 0, 則進(jìn)程繼續(xù)執(zhí)行 ; ③若 S0, 則進(jìn)程被阻塞 , 并且該進(jìn)程的 PCB被插到信號(hào)量 S所對(duì)應(yīng) PCB的等待隊(duì)列的末尾。 P,V 操作的簡(jiǎn)介 P,V操作的介紹 在操作系統(tǒng)中 P, V操 作是一種原語(yǔ)操作 , 是不可分割的操作 , 它要么執(zhí)行完畢 , 要么就不執(zhí)行 , 也就是說(shuō) P, V操作一旦執(zhí)行就不允許被中斷 , 直到執(zhí)行完成為止。這類(lèi)題型變化多、實(shí)例多 ,又與實(shí)際生活中的問(wèn)題有著緊密聯(lián)系 [3]。本文 通過(guò)具體實(shí)例 , 給出了利用、操作解決進(jìn)程同步與互斥問(wèn)題的簡(jiǎn)單方法。但是以往人們只能從原理上加以理解 , 沒(méi)有直觀的認(rèn)識(shí) , 因而無(wú)法實(shí)際使用它。操作系統(tǒng)教學(xué)中有 最經(jīng)典的四個(gè)同步、互斥問(wèn)題為 : 生產(chǎn)者 —— 消費(fèi)者問(wèn)題、哲學(xué)家進(jìn)餐問(wèn)題、理發(fā)師在空閑中的睡眠問(wèn)題、讀者 —— 作者問(wèn)題 , 深入地分析和理解這些問(wèn)題 , 對(duì)全面掌握同步、互斥問(wèn)題大有益處 ,對(duì)學(xué)校操作系統(tǒng)這門(mén)課也有很重要的意義。 OS是在計(jì)算機(jī)原理與數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上的一門(mén)提高性課程,是了解和掌握計(jì)算機(jī)應(yīng)用 系統(tǒng) 的基礎(chǔ) 。本文 通過(guò) 分析 操作系統(tǒng)進(jìn)程同步與互斥的問(wèn)題 , 然后利用 P, V操作實(shí)現(xiàn)進(jìn)程同步與互斥,并利用該算法設(shè)計(jì)了生產(chǎn)者 消費(fèi)者模擬演示系統(tǒng) 。 通過(guò) 該 演示系統(tǒng) 展現(xiàn)進(jìn)程的管理 (生產(chǎn)者 消費(fèi)者) 可 以用于 操作系統(tǒng)的教學(xué) 中 。 其任務(wù)是了解操作系統(tǒng)的基本概念,理解計(jì)算機(jī)系統(tǒng)的資源(軟件資源和硬件資源)如何組織 , OS 如何有效地管理這些系統(tǒng)資源,用戶如何通過(guò) OS與計(jì)算機(jī)系統(tǒng)打交道 。 開(kāi)發(fā)系統(tǒng)的背景 有關(guān) 操作系統(tǒng) 的教材大多注重理論 ,而絕大多數(shù)學(xué)習(xí)者一生都不可能參于操作系統(tǒng)的研究工作 ,他們需要的是對(duì)理論 的理解和對(duì)實(shí)用系統(tǒng)的靈活應(yīng)用。在現(xiàn)代操作系統(tǒng) UNIX、 Windows 多進(jìn)程環(huán)境下 ,我 們將利用 C語(yǔ)言實(shí)現(xiàn)多個(gè)生產(chǎn)者 消費(fèi)者可視化同步運(yùn)行。 在 操作系統(tǒng) 教學(xué)過(guò)程中,因?yàn)椴糠纸炭茣?shū)中對(duì)生產(chǎn)者和消費(fèi)者問(wèn)題的解釋不夠全面,學(xué)生在理解應(yīng)用過(guò)程中 經(jīng)常出現(xiàn)一些問(wèn)題。 “進(jìn)程調(diào)度”涉及到操作系統(tǒng)的內(nèi)核操作,原理性較強(qiáng),也較為抽象,如只是依靠書(shū)本的文字和圖形,學(xué)生理解起來(lái)會(huì)很吃力。 P, V操作主要通過(guò)對(duì)信號(hào)量的操作來(lái)實(shí)現(xiàn)對(duì)資源的控制 , 從而控制進(jìn)程的執(zhí)行 。 V 操作相當(dāng)于釋放資源 , 進(jìn)程在使用所申請(qǐng) 的資源后 , 應(yīng)調(diào)用 V操作釋放所占用的資源。 多個(gè)進(jìn)程為了共同完成任務(wù) , 須要按照一定的次序去執(zhí)行 , 各個(gè)進(jìn)程在執(zhí)行時(shí)在時(shí)間上具有明顯的先后次序 , 即進(jìn)程必須按照一定的順序去執(zhí)行。通常 , 能夠最先執(zhí)行的進(jìn)程中 , P操作中所使用的信號(hào)量的初值大于 , 而其它進(jìn)程中 , 第一個(gè) P操作所對(duì)應(yīng)的信號(hào)量的初值為零。競(jìng)爭(zhēng)到資源的進(jìn)程可以立即投入運(yùn)行 , 而沒(méi)有競(jìng)爭(zhēng)到資源的進(jìn)程只能阻塞自己以等待資源。 浙江林學(xué)院天目學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 4 生產(chǎn)者 消費(fèi)者問(wèn)題的描述 問(wèn)題的描述 設(shè)有若干個(gè)生產(chǎn)者進(jìn)程 P1, P2, P3,? Pl。同步存在于 p、 c 兩類(lèi)進(jìn)程之間 : 當(dāng)緩沖池已放滿了產(chǎn)品 (供過(guò)于求 ) , 生產(chǎn)者進(jìn)程必須等待 。 進(jìn)程關(guān)系分析 : 同步關(guān)系: 只有在 Producer 向緩沖區(qū)放入物品后, Consumer 才能夠從緩沖區(qū)中取出物品消費(fèi);因此存在 Consumer 對(duì)于 Producer 的同步依賴(lài)。 2. 單緩沖區(qū)的多生產(chǎn)者 多消費(fèi)者問(wèn)題模型限制條件:整個(gè)系統(tǒng)僅有唯一的一個(gè)緩沖區(qū),活動(dòng)進(jìn)程有 n 個(gè)生產(chǎn)者 Producer 和 m 個(gè)消費(fèi)者 Consumer。因此存在 ProducerI 和 ConsumerJ之間的互斥關(guān)系。因此存在 ConsumerI 和 ConsumerJ 之間的互斥關(guān)系。 互斥關(guān)系: ( 1)對(duì)于任意的 i( 1≤ i≤ K), j( 1≤ j≤ K), i≠ j, Producer 向空閑緩沖區(qū) Buffer[Ki]放入物品的同時(shí), Consumer 可以從滿緩沖區(qū) Buffer[Kj]中取出物品;反之亦然。 進(jìn)程關(guān)系分析 同步關(guān)系: ( 1)對(duì)于任意的 i( 1≤ i ≤ n), j( 1≤ j≤ m),只有在 ProducerI 向緩沖區(qū)放入物品后, ConsumerJ 才能夠從緩沖區(qū)中取出物品消費(fèi);因此存在 ConsumerJ 對(duì)于 ProducerI 的同步依賴(lài)。 ( 2)對(duì)于任意的 i( 1≤ i≤ n), j( 1≤ j≤ n), i≠ j, s( 1≤ s≤ K), t( 1≤ t≤ K), s≠ t, ProducerI 向空閑緩沖區(qū) Buffer[Ks]放入物品的同時(shí),ProducerJ 是可以向另一空閑緩沖區(qū) Buffer[Kt]放入物品的。 ( 4)對(duì)于任意的 i( 1≤ i≤ n), j( 1≤ j≤ n), i≠ j, s( 1≤ s≤ m), t( 1≤ t ≤ m), s≠ t,盡管 ProducerI 和 ProducerJ 之間、 ConsumerS 和 ConsumerT 之間、 ProducerI 和 ConsumerS 之間不存在針對(duì)緩沖區(qū)的互斥關(guān)系 ,但由于 ProducerI、 ProducerJ、 ConsumerS 和ConsumerT 都需要在操作緩沖區(qū)的同時(shí)對(duì)緩沖區(qū)隊(duì)列進(jìn)行維護(hù),緩沖區(qū)隊(duì)列成為所有進(jìn)程間的新的臨界資源,因此 ProducerI 和 ProducerJ 之間、 ConsumerS 和 ConsumerT 之間、ProducerI 和 ConsumerS 之間出現(xiàn)了針對(duì)緩沖區(qū)隊(duì)列的互斥關(guān)系。 編程工具 編程工具 : microsoft visual c++。 Visual C++件組成,包括編輯器、調(diào)試器以及程序向?qū)?AppWizard、類(lèi)向?qū)?Class Wizard等開(kāi)發(fā)工具。 系統(tǒng)功能模塊劃分 系統(tǒng)已經(jīng)設(shè)定一個(gè)大小固定的緩沖池 (緩沖池大小 11) ,緩沖池可以實(shí)時(shí)的顯示生產(chǎn)者生產(chǎn)情況和消費(fèi)者的消費(fèi)情況,同時(shí) 用戶可以設(shè)定生產(chǎn)者的數(shù)目來(lái)進(jìn)行生產(chǎn) (生產(chǎn)者數(shù)目110);設(shè)定消費(fèi)者的數(shù)目來(lái)進(jìn)行消費(fèi)(消費(fèi)者數(shù)目 110) ,由此系統(tǒng)可以模擬上面所描述的四種 生產(chǎn)者 消費(fèi)者模型 ,同時(shí)用戶可以實(shí)時(shí)的停止生產(chǎn)者及消費(fèi)者的動(dòng)作,做到分步展示的效果, 有效率的 起到教學(xué) 的作用。設(shè)兩個(gè)互斥 量MuxProducer 和 MuxCustomer ,它們的初值都為 1。 消費(fèi)者算法 :做好接收準(zhǔn)備 。 V (MuxCustomer) 釋放對(duì)滿緩沖資源獨(dú)占使用 ; V(Empty)產(chǎn)生一個(gè)空白緩沖區(qū)進(jìn)行數(shù)據(jù)處理。 入 口 sem=sem1 sem=sem1 S=0 喚醒等待隊(duì)列中的一個(gè)進(jìn)程式 返回或轉(zhuǎn)進(jìn)程調(diào)度 返回 否 是 浙江林學(xué)院天目學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 10 3 系統(tǒng)實(shí)現(xiàn) 程序結(jié)構(gòu) 程序分為一個(gè)主函數(shù)、分別用于模擬消費(fèi)和生產(chǎn)者的兩個(gè)函數(shù)以及三個(gè)輔助性的函數(shù)。 生產(chǎn)者 模擬函數(shù)代碼 int CProducerThread::Run() { CPCDlg *pDlg。 while(pDlgm_continue){ DWORD temp=WaitForMultipleObjects(SIZE_OF_BUFFER,pDlgm_hEmptySemaphore,FALSE,INFINITE)。 srand( (unsigned)time( NULL ) )。 pDlgm_Array[temp]=1。 srand( (unsigned)time( NULL ) )。 Sleep(t*100)。 pDlg=(CPCDlg*)thism_Parent。 while(pDlgm_continue){ DWORD temp=WaitForMultipleObjects(SIZE_OF_BUFFER,pDlgm_hFullSemaphore,FALSE,INFINITE)。 srand( (unsigned)time( NULL ) )。 pDlgm_Array[temp]=0。 srand( (unsigned)time( NULL ) )。 Sleep(t*100)。因?yàn)榭傮w上, MFC框架定義了應(yīng)用程序的輪廓,并提供了用戶接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過(guò)預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓。這些類(lèi)或者封裝了 Win32 應(yīng)用程序編程接口,或者封裝了應(yīng)用程序的概念,或者封裝了 OLE 特性,或者封裝了 ODBC 和DAO 數(shù)據(jù)訪問(wèn)的功能,等等,分述如下。 MFC 把許多類(lèi)似的處理封裝起來(lái),替程序員完成這些工作。 MFC 的 OLE 類(lèi)封裝了 OLE API 大量的復(fù)雜工作,這些類(lèi)提供了實(shí)現(xiàn) OLE的更高級(jí)接口。 CObject 是 MFC 的根類(lèi),絕大多數(shù) MFC 類(lèi)是其派生的,包括 CCmdTarget。 MFC 中,任何可以處理消息的類(lèi)都從
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1