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

正文內(nèi)容

操作系統(tǒng)進(jìn)程管理演示系統(tǒng)開發(fā)畢業(yè)論文(編輯修改稿)

2024-07-25 09:52 本頁面
 

【文章內(nèi)容簡介】 板,擴(kuò)展DLL應(yīng)用程序的模板,OLE/ACTIVEX應(yīng)用程序的模板,等等。為了支持對應(yīng)用程序概念的封裝,MFC內(nèi)部必須作大量的工作。例如,為了實(shí)現(xiàn)消息映射機(jī)制,MFC編程框架必須要保證首先得到消息,然后按既定的方法進(jìn)行處理。又如,為了實(shí)現(xiàn)對DLL編程的支持和多線程編程的支持,MFC內(nèi)部使用了特別的處理方法,使用模塊狀態(tài)、線程狀態(tài)等來管理一些重要信息。雖然,這些內(nèi)部處理對程序員來說是透明的,但是,懂得和理解MFC內(nèi)部機(jī)制有助于寫出功能靈活而強(qiáng)大的程序??傊?,MFC封裝了Win32 API,OLE API,ODBC API等底層函數(shù)的功能,并提供更高一層的接口,簡化了Windows編程。同時(shí),MFC支持對底層API的直接調(diào)用。MFC提供了一個(gè)Windows應(yīng)用程序開發(fā)模式,對程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,預(yù)定義或?qū)崿F(xiàn)了許多事件和消息處理,等等??蚣芑蛘哂善浔旧硖幚硎录?,不依賴程序員的代碼;或者調(diào)用程序員的代碼來處理應(yīng)用程序特定的事件。MFC是C++類庫,程序員就是通過使用、繼承和擴(kuò)展適當(dāng)?shù)念悂韺?shí)現(xiàn)特定的目的。例如,繼承時(shí),應(yīng)用程序特定的事件由程序員的派生類來處理,不感興趣的由基類處理。實(shí)現(xiàn)這種功能的基礎(chǔ)是C++對繼承的支持,對虛擬函數(shù)的支持,以及MFC實(shí)現(xiàn)的消息映射機(jī)制[13]。 MFC界面效果這是系統(tǒng)界面設(shè)計(jì)的截圖: MFC界面界面上有2個(gè)靜態(tài)文本,2個(gè)編輯框和7個(gè)按紐組成:1. 啟動(dòng)生產(chǎn)者按紐的代碼:void CPCDlg::OnPstar() { UpdateData(true)。 thism_continue=true。 thisSetTimer(100,1000,NULL)。 if( thism_np0amp。amp。thism_np11) { (false)。 CString str。 for( unsigned i=0。 ithism_np。i++) { (P%d,i)。 thism_PT[i] =new CProducerThread(this,str)。 thism_PT[i]CreateThread(CREATE_SUSPENDED)。 VERIFY(thism_PT[i]SetThreadPriority(THREAD_PRIORITY_IDLE))。 thism_PT[i]ResumeThread()。 } } else MessageBox(生產(chǎn)者數(shù)目必須在110之間,出錯(cuò)了)。}2. 啟動(dòng)消費(fèi)者按紐的代碼:void CPCDlg::OnStartc() { UpdateData(true)。 thism_continue=true。 if( thism_nc0amp。amp。thism_nc11) { (false)。 CString str。 for( unsigned i=0。 ithism_nc。i++) { (C%d,i)。 thism_CT[i] =new CConsumerThread(this,str)。 thism_CT[i]CreateThread(CREATE_SUSPENDED)。 VERIFY(thism_CT[i]SetThreadPriority(THREAD_PRIORITY_IDLE))。 thism_CT[i]ResumeThread()。 } } else MessageBox(消費(fèi)者數(shù)目必須在110之間,出錯(cuò)了)。 }3. 初始狀態(tài)按紐的代碼:void CPCDlg::OnRefresh() { // TODO: Add your control notification handler code here m_continue=false。 for( int i=0。iSIZE_OF_BUFFER。i++) { m_hFullSemaphore[i]=CreateSemaphore(NULL,0,1,NULL)。 m_hEmptySemaphore[i]=CreateSemaphore(NULL,1,1,NULL)。 m_Array[i]=0。 m_CArray[i]=0。 m_PArray[i]=0。 m_CStr[i]=。 m_PStr[i]=。 } Invalidate()。 (true)。 (true)。}4. 退出按紐的代碼:void CPCDlg::OnExit() { EndDialog(0)。} 系統(tǒng)功能的實(shí)現(xiàn)程序中共有6 個(gè)線程, 兩個(gè)生產(chǎn)者線程, 兩個(gè)消費(fèi)者線程,另外兩個(gè)線程則根據(jù)相同概率改變身份來模擬生產(chǎn)者或者消費(fèi)者, 以便構(gòu)建任意多個(gè)生產(chǎn)者 消費(fèi)者的可視化環(huán)境。為方便觀察生產(chǎn)和消費(fèi)進(jìn)展情況, 設(shè)置了兩個(gè)時(shí)間控制變量控制生產(chǎn)者和消費(fèi)者的生產(chǎn)和消費(fèi)周期( 即: 線程的run 方法) , 它們是用兩個(gè)文本輸入框分別實(shí)現(xiàn)數(shù)據(jù)輸入的。生產(chǎn)者和消費(fèi)者問題需要的界面效果是, 生產(chǎn)者在消費(fèi)者前面不停地生產(chǎn), 而消費(fèi)者則在生產(chǎn)者后面不停的消費(fèi), 呈現(xiàn)追趕的態(tài)勢。但是不能約定推進(jìn)順序和速度。因此, 用了11個(gè)正方形方框代表11個(gè)緩沖區(qū) 。生產(chǎn)者放一個(gè)產(chǎn)品, 就在生產(chǎn)者當(dāng)前指針位置的方框用紅色填充, 指針順時(shí)針前進(jìn)一格, 指向下一個(gè)可以放產(chǎn)品的緩沖區(qū)。 如果當(dāng)前沒有空緩沖區(qū)位置可以放貨, 就進(jìn)入等待狀態(tài), 等待消費(fèi)者消費(fèi)并讓出監(jiān)控器。以后當(dāng)消費(fèi)者消費(fèi)后喚醒它。消費(fèi)者則在生產(chǎn)者后面, 消費(fèi)掉消費(fèi)者指針當(dāng)前位置緩沖區(qū)內(nèi)的產(chǎn)品, 方框重新改變?yōu)榘咨?然后消費(fèi)者指針也順時(shí)針前進(jìn)一格, 指向下一個(gè)存放了產(chǎn)品的緩沖區(qū)。 如果當(dāng)前沒有產(chǎn)品可以消費(fèi), 則等待生產(chǎn)者放產(chǎn)品并讓出監(jiān)控器, 當(dāng)生產(chǎn)者放了貨物后喚醒它[14]。 4 系統(tǒng)演示 系統(tǒng)演示的準(zhǔn)備 為了驗(yàn)證上述生產(chǎn)者消費(fèi)者問題實(shí)現(xiàn)方案的正確性,系統(tǒng)將演示模擬效果。由于系統(tǒng)緩沖區(qū)的大小已經(jīng)設(shè)定,所以我們將演示下面兩種情況的模擬效果。1. 單生產(chǎn)者單消費(fèi)者問題模型。2. 多生產(chǎn)者多消費(fèi)者問題模型。 系統(tǒng)演示的效果 單生產(chǎn)者單消費(fèi)者模擬效果首先設(shè)定緩沖區(qū)全紅,既緩沖區(qū)為滿的情況。此類問題較簡單,對于生產(chǎn)者進(jìn)程,他的活動(dòng)過程如下:首先判斷該單緩沖區(qū)是否為空,如果不是,則生產(chǎn)者進(jìn)程自我阻塞。反之,生產(chǎn)者就可以把生產(chǎn)出來的數(shù)據(jù)放入該緩沖區(qū)塊中,然后判斷當(dāng)前阻塞隊(duì)列中是否有消費(fèi)者進(jìn)程阻塞,如果有則將其喚醒。消費(fèi)者進(jìn)程的活動(dòng)為:先判斷該單緩沖區(qū)中是否有數(shù)據(jù)(即是否滿) ,如果沒有,那么它就自我阻塞。反之,消費(fèi)者從該緩沖區(qū)塊中取出數(shù)據(jù)消費(fèi),然后再判斷阻塞隊(duì)列中是否有生產(chǎn)者進(jìn)程需要被喚醒。 當(dāng)消費(fèi)者C0消費(fèi)掉第一個(gè)緩沖區(qū)后,生產(chǎn)者P0產(chǎn)品進(jìn)入第一個(gè)緩沖區(qū), 生產(chǎn)者產(chǎn)品進(jìn)入緩沖區(qū) 多生產(chǎn)者多消費(fèi)者模擬效果上面分析了較簡單的單緩沖區(qū)的情形,但是在實(shí)際的問題中,更一般的情況是在生產(chǎn)者和消費(fèi)者之間存在多個(gè)緩沖區(qū),生產(chǎn)者可以將生產(chǎn)出來的數(shù)據(jù)放入緩沖區(qū)的不同緩沖區(qū)塊中,只要該緩沖區(qū)塊空閑。消費(fèi)者也可以從緩沖區(qū)中已存有數(shù)據(jù)的緩沖區(qū)塊中取數(shù)消費(fèi)。但要注意,不論是生產(chǎn)者之間,消費(fèi)者之間,還是生產(chǎn)者與消費(fèi)者之間,他們對于臨界資源──緩沖區(qū)的訪問必須是互斥的,也就是說,在1個(gè)生產(chǎn)者或消費(fèi)者線程訪問完該緩沖區(qū)之前,是決不允許其它的生產(chǎn)者或消費(fèi)者線程訪問的。這就是基于多緩沖區(qū)的生產(chǎn)者與消費(fèi)者問題。再多生產(chǎn)者多消費(fèi)者模擬演示時(shí)設(shè)置生產(chǎn)者數(shù)目為3,而消費(fèi)者數(shù)目為4,這樣更有利于觀察系統(tǒng)模擬的準(zhǔn)確性。圖 3個(gè)生產(chǎn)者生產(chǎn)情況 4個(gè)消費(fèi)者消費(fèi)的4個(gè)緩沖池內(nèi)的產(chǎn)品 系統(tǒng)演示結(jié)論單生產(chǎn)者單消費(fèi)者模擬:從結(jié)果可以看出,生產(chǎn)者和消費(fèi)者線程是在并發(fā)的執(zhí)行。在單緩沖區(qū)中沒有數(shù)據(jù)的情況下,如果有消費(fèi)者到達(dá),這時(shí)該消費(fèi)者阻塞。只有當(dāng)生產(chǎn)者將數(shù)據(jù)放入單緩沖區(qū)后,才可以喚醒1個(gè)消費(fèi)者取數(shù)消費(fèi)。如果已經(jīng)有生產(chǎn)者將數(shù)據(jù)放入了單緩沖區(qū)中,這時(shí)其它的生產(chǎn)者只能阻塞,直到有消費(fèi)者將數(shù)據(jù)提走后才允許某一個(gè)生產(chǎn)者放數(shù)[17]。多生產(chǎn)者多消費(fèi)者模擬:當(dāng)循環(huán)緩沖區(qū)隊(duì)列空時(shí),消費(fèi)者線程阻塞。 當(dāng)循環(huán)緩沖區(qū)滿時(shí),生產(chǎn)者線程阻塞。當(dāng)有1個(gè)生產(chǎn)者線程往循環(huán)緩沖區(qū)中放了數(shù)據(jù)后,它會(huì)查看阻塞隊(duì)列中是否有消費(fèi)者線程需要被喚醒。同樣,當(dāng)有1個(gè)消費(fèi)者線程從循環(huán)緩沖區(qū)中取走1個(gè)數(shù)據(jù)后,它會(huì)喚醒阻塞著的生產(chǎn)者線程。系統(tǒng)準(zhǔn)確的模擬了在多緩沖區(qū)下的單生產(chǎn)者單消費(fèi)者及多生產(chǎn)者多消費(fèi)者問題的模擬情況,停止按紐的功能讓模擬系統(tǒng)實(shí)時(shí)的反映生產(chǎn)者消費(fèi)者模擬的情況,實(shí)現(xiàn)了教學(xué)演示的要求。5 總結(jié)本文從P,V操作實(shí)現(xiàn)進(jìn)程同步與互斥出發(fā),研究了操作系統(tǒng)中經(jīng)典的同步問題生產(chǎn)者消費(fèi)者問題,提出了解決此問題的模型及解決方案,并設(shè)計(jì)了基于microsoft visual c++而開發(fā),在WINDOWS 98/2000/XP上運(yùn)行的操作系統(tǒng)進(jìn)程管理演示系統(tǒng)(生產(chǎn)者消費(fèi)者)。通過可視化設(shè)計(jì),使我們很快地就理解并掌握了操作系統(tǒng)中生產(chǎn)者消費(fèi)者進(jìn)程調(diào)度的原理及算法,并通過設(shè)計(jì)驗(yàn)證了進(jìn)程調(diào)度;同時(shí),在設(shè)計(jì)中,我的程序設(shè)計(jì)能力大大提高了,鞏固了數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)算法等知識。在計(jì)算機(jī)專業(yè)教學(xué)中,可視化設(shè)計(jì)將會(huì)用得越來越多,效果將會(huì)越來越明顯,將是計(jì)算機(jī)教學(xué)發(fā)展的主要方向之一。 參考文獻(xiàn) [1] 楊貴和. 操作系統(tǒng)課中進(jìn)程調(diào)度的可視化設(shè)計(jì)[J]. 中國科教創(chuàng)新導(dǎo)刊, 2007,07[2] 謝印寶,田愛奎,謝印智. 關(guān)于操作系統(tǒng)生產(chǎn)者消費(fèi)者問題[J]. 淄博學(xué)院學(xué)報(bào)(自然科學(xué)與工程版),2001,03[3] 宋新麗,何永強(qiáng). 用信號量機(jī)制與PV 操作解決進(jìn)程同步互斥問題的方法[J]. 河南紡織高等??茖W(xué)校學(xué)報(bào),2005[4] 張賢達(dá). 現(xiàn)代信號處理(第二版)[M].北京:清華大學(xué)出版社,2002.[5] 胡小龍,等. Windows 操作系統(tǒng)進(jìn)程通信機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2002 ,19 (12)[6] [J].計(jì)算機(jī)工程,2003 ,29 (1)[7] ++ Builder 5 程序設(shè)計(jì)高級教程[M].中國青年出版社,2001.[8] 帖 軍,—消費(fèi)者模型分析[J].武漢科技學(xué)院學(xué)報(bào)2007,04[9] 帖軍. 同步互斥機(jī)制中的讀者寫者模型[J].中南民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2005 24(3)[10] (第2版)[M].電子工業(yè)出版社,2006[11] 胡明慶,高巍,[M].2007[12] 曹聰,[M].2003,09[13] [美] David Chappell. 華中科技大學(xué)出版社[M].[14] [M].清華大學(xué)出版社,2004,09 [15] Lamport L: On Interprocess Communications: I. Basic Formalism. Distributed Computing, 1: 7785 (1986)[16] ,V操作實(shí)現(xiàn)進(jìn)程同步與互斥[J]. 滁州師專學(xué)報(bào),致謝本次畢業(yè)設(shè)計(jì)以及論文是在汪杭軍老師的精心指導(dǎo)和大力支持下,順利完成的,汪老師認(rèn)真負(fù)責(zé)的工作態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和大膽創(chuàng)新的進(jìn)去精神,對我產(chǎn)生了重要影響。汪老師給了我很大的幫助,使我得到了很大的提高,這對于我以后的工作和學(xué)習(xí)有非常大的幫助,非常感謝他的耐心指導(dǎo)。 另外我還要感謝在大學(xué)期間所有傳授我知識的老師,是你們悉心指導(dǎo)使我有了良好的專業(yè)課知識,這也是論文得以完成的基礎(chǔ)。感謝所有幫助過我的老師和同學(xué),謝謝你們!最后感謝我的母校浙江林學(xué)院四年來對我的大力栽培。外文翻譯:Electric circuit exchange networkand vb transfer database The result of the connection setup with circuit switching is the reservation of bandwidth all the way from the sender to the receiver. All packets follow this path. Among other properties, having all packets follow the same path means that they cannot arrive out of order. With packet switching there is no path , so different packets can follow different paths, depending on network conditions at the time they are sent. They may arrive out of order.Packet switching is more fault tolerant than circuit switching. In fact, that is why it was invented. If a switch goes do
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1