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

正文內(nèi)容

天津科技大學(xué)操作系統(tǒng)實(shí)驗(yàn)(留存版)

  

【正文】 osoft Visual Studio 【實(shí)驗(yàn)?zāi)康摹?1) 了解Windows線程同步機(jī)制;(2) 了解互斥體,并通過(guò)查閱資料理解互斥體對(duì)象的使用方法; (3) 了解事件,并通過(guò)查閱資料理解事件對(duì)象的使用方法;(4) 了解關(guān)鍵區(qū),并通過(guò)查閱資料理解關(guān)鍵區(qū)對(duì)象的使用方法;(5) 了解信號(hào)量,并通過(guò)查閱資料理解信號(hào)量對(duì)象的使用方法;(6) 利用Windows線程同步機(jī)制,模擬生產(chǎn)者消費(fèi)者問(wèn)題。來(lái)檢查lWindowsOS二、線程的一般概念進(jìn)程只是線程的容器,從來(lái)不執(zhí)行任何東西;線程總是在某個(gè)進(jìn)程中被創(chuàng)建;線程在進(jìn)程的地址空間中執(zhí)行代碼;線程們共享進(jìn)程中的所有內(nèi)核對(duì)象。的句柄。someName1同名共享同名共享,不需要共享進(jìn)程之間存在父子關(guān)系。CreateProcess特別要注意的是繼承的是內(nèi)核對(duì)象的句柄,內(nèi)核對(duì)象本身是不具備繼承性。CreateSomeObject【實(shí)驗(yàn)要求】(1) 逐程序進(jìn)行簡(jiǎn)要分析、運(yùn)行各程序并仔細(xì)閱讀注釋?zhuān)?2) 查閱MSDN或其他資料,掌握相關(guān)系統(tǒng)調(diào)用使用方法和參數(shù)含義;(3) 完成實(shí)驗(yàn)報(bào)告。進(jìn)程中使用內(nèi)核對(duì)象的內(nèi)部機(jī)制假設(shè)函數(shù)(為函數(shù)中是否包含的句柄表添加一條方法的時(shí)候,需要提供一個(gè)參數(shù)讓DWORD cbStack,將線程的退出碼設(shè)置為線程函數(shù)的返回值;系統(tǒng)將遞減該線程內(nèi)核對(duì)象的的使用計(jì)數(shù)器【如果此時(shí)還有其他引用】)lSTILL_ACTIVE)【實(shí)驗(yàn)步驟】(1) ,認(rèn)真觀察結(jié)果。下提供了多種內(nèi)核對(duì)象實(shí)現(xiàn)線程、進(jìn)程間的同步和互斥,常用的有: 關(guān)鍵區(qū)(臨界區(qū)Critical Section)關(guān)鍵區(qū)不是內(nèi)核對(duì)象,在用戶態(tài)實(shí)現(xiàn)了同一進(jìn)程中線程的互斥。Mutex對(duì)象的狀態(tài)在它不被任何線程擁有時(shí)才有信號(hào),而當(dāng)它被擁有時(shí)則無(wú)信號(hào)。信號(hào)量(Semaphore)信號(hào)量是一個(gè)資源計(jì)數(shù)器,當(dāng)某線程獲取某信號(hào)量時(shí),信號(hào)量計(jì)數(shù)首先減等與實(shí)現(xiàn)線程之間的互斥,需要兩個(gè)【相關(guān)知識(shí)】Windows應(yīng)用程序間數(shù)據(jù)通訊的基本方式有四種。命名管道還可以將數(shù)據(jù)集合到稱(chēng)為消息的數(shù)據(jù)塊中。 SetNamedPipeHandleState:設(shè)置管道的類(lèi)型及其它狀態(tài)信息,比如說(shuō)是比特流還是消息流管道。 if ( hPipe == INVALID_HANDLE_VALUE ) { thisMessageBox ( 打開(kāi)管道失敗,服務(wù)器尚未啟動(dòng),或者客戶端數(shù)量過(guò)多 ) 。 i nMaxConn。 } thisSetWindowText ( 命名管道實(shí)例之服務(wù)器 ) 。 } int a, b 。}實(shí)驗(yàn)四 銀行家算法模擬【開(kāi)發(fā)語(yǔ)言及實(shí)現(xiàn)平臺(tái)或?qū)嶒?yàn)環(huán)境】C++/CMicrosoft Visual Studio 【實(shí)驗(yàn)?zāi)康摹浚?)進(jìn)一步理解利用銀行家算法避免死鎖的問(wèn)題;(2)在了解和掌握銀行家算法。 ② Need[i,j]≤Work[j]; 若找到, 執(zhí)行步驟(3), 否則,執(zhí)行步驟(4)。【實(shí)驗(yàn)思考】(1)在編程中遇到了哪些問(wèn)題?你是如何解決的?(2)在安全性算法中,為什么不用變量Available,而又定義一個(gè)臨時(shí)變量work?結(jié)束 否是申請(qǐng)失敗。d39。 cinch。 cout\tA B C\tA B C\tA B C\t A B Cendl。 cout 。 for(i=0。i++) { if(Finish[i]==false) { i=i。 while(f) { cout請(qǐng)輸入進(jìn)程名:。jM。(4)了解頁(yè)面大小和內(nèi)存實(shí)際容量對(duì)命中率的影響。該算法實(shí)現(xiàn)簡(jiǎn)單只需把一個(gè)進(jìn)程已調(diào)入內(nèi)存的頁(yè)面,按先后次序鏈接成一個(gè)隊(duì)列,并設(shè)置一個(gè)指針,稱(chēng)為替換指針,使它總是指向最老的頁(yè)面。include include define M 4 define N 17 define Myprintf printf(|++++++++++++++++|\n) /*表格控制*/ typedef struct page { int num。i++) for(j=0。 }(5)LRU算法void Lru(int fold,Page *b) { int i。 int i,j。 printf(|\n)。 if(getche()==39。iK+1。 Myprintf。iM。 for(i=0。i++) { b[i].num=1。 R7 R6 R5 R4 R3 R2 R1 R0 1 0 1 0 1 0 0 1 0 2 1 0 1 0 1 1 0 0 3 0 0 0 0 0 1 0 0 4 0 1 1 0 1 0 1 1 5 1 1 0 1 0 1 1 0 6 0 0 1 0 1 0 1 1 7 0 0 0 0 0 1 1 1 8 0 1 1 0 1 1 0 1 2)棧 可利用一個(gè)特殊的棧來(lái)保存當(dāng)前使用的各個(gè)頁(yè)面的頁(yè)面號(hào)。采用最佳置換算法,通??杀WC獲得最低的缺頁(yè)率。 } safety(iAllocation,iNeed,iAvailable,cName)。 for(j=0。}//安全返回true,不安全返回falsebool banker(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]){ int iMax[N][M]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}。 flag++。 for(i=0。 for(j=0。 break。 //輸出初始值 output(iMax,iAllocation,iNeed,iAvailable,cName)。b39。 每次提出申請(qǐng)之后輸出申請(qǐng)成功與否的結(jié)果。 ② Finish: 它表示系統(tǒng)是否有足夠的資源分配給進(jìn)程,使之運(yùn)行完成。 pMyDlgSetDlgItemInt ( IDC_SECOND, b, true ) 。dwByte, true ) ) break 。 i nMaxConn。 // 把返回信息格式化為整數(shù) thisUpdateData ( false ) 。若現(xiàn)在需要停止服務(wù),就必須結(jié)束所有的線程,TernimateThread可以作為一個(gè)結(jié)束線程的方法,但基本不用這個(gè)函數(shù)。DisconnectNamedPipe:服務(wù)端用來(lái)斷開(kāi)與客戶端的連接。使用WriteFile函數(shù)向管道寫(xiě)入數(shù)據(jù),之后這些數(shù)據(jù)可以被另外的進(jìn)程用ReadFile函數(shù)讀取。比較修改程序前后運(yùn)行結(jié)果發(fā)生的變化,并分析其原因。Event/CriticalSection/Mutex/Semaphore或者打開(kāi)一個(gè)信號(hào)對(duì)象:HANDLE OpenSemaphoreQ。表示還有如果是手工重置事件,那么它總是保持有信號(hào)狀態(tài),直到用ResetEvent函數(shù)重置成無(wú)信號(hào)的事件。)互斥體實(shí)現(xiàn)了和關(guān)鍵區(qū)類(lèi)似的互斥功能,但區(qū)別在于:互斥體是內(nèi)核對(duì)象,可以實(shí)現(xiàn)跨進(jìn)程互斥,但需要在用戶態(tài)和核心態(tài)之間切換,速度比關(guān)鍵區(qū)慢得多(X86(3) :將主進(jìn)程的sleep可用,運(yùn)行結(jié)果為:將兩個(gè)子函數(shù)中注釋掉的Sleep語(yǔ)句讓其可用,再多次運(yùn)行:多次運(yùn)行修改后的程序結(jié)果為:分析原因:子函數(shù)添加sleep語(yǔ)句后會(huì)在之前結(jié)果上多出銷(xiāo)售0號(hào)票的情況,這是因?yàn)槌绦蛑兄灰碧?hào)大于0便繼續(xù)執(zhí)行線程。GetExitcodeThread線程內(nèi)的所有用戶對(duì)象被釋放?!緦?duì)象正常析構(gòu);的進(jìn)程一定要有對(duì)這兩個(gè)進(jìn)程的訪問(wèn)權(quán),即句柄表中擁有這兩個(gè)進(jìn)程內(nèi)核對(duì)象的句柄記錄。ObjectCreateObject(…”someName”),此時(shí)內(nèi)核的動(dòng)作是:在全局中查詢發(fā)現(xiàn)已經(jīng)存在方法可以隨時(shí)修改內(nèi)核對(duì)象句柄的一些屬性,目前公開(kāi)的句柄屬性有兩種,一種是該句柄是否能被繼承,另一種是該句柄是否能被關(guān)閉。在創(chuàng)建子進(jìn)程(內(nèi)核對(duì)象的共享有三種方式:繼承式共享(父子進(jìn)程間)只有當(dāng)進(jìn)程是父子關(guān)系的時(shí)候,才能使用此種方式的共享。創(chuàng)建內(nèi)核對(duì)象及操作系統(tǒng)內(nèi)部機(jī)制利用【相關(guān)知識(shí)】一、內(nèi)核對(duì)象(一) 內(nèi)核對(duì)象的概念內(nèi)核對(duì)象是內(nèi)核分配的一個(gè)內(nèi)存塊,這種內(nèi)存塊是一個(gè)數(shù)據(jù)結(jié)構(gòu),表示內(nèi)核對(duì)象的各種特征。FSECURITY_ATTRIBUTESTRUEpszNameOjbectOS……改為傳遞給然后將main函數(shù)中注釋掉的Sleep語(yǔ)句讓其可用,即將其前面的注釋號(hào)刪掉,再多次運(yùn)行,認(rèn)真觀察結(jié)果。由于使用時(shí)不需要從用戶態(tài)切換到核心態(tài),所以速度很快(Mutex對(duì)象很適合用來(lái)協(xié)調(diào)多個(gè)線程對(duì)共享資源的互斥訪問(wèn)。10Semaphore最簡(jiǎn)單的是利用剪切板;另一種是DDE(Dynamic Data Exchange動(dòng)態(tài)數(shù)據(jù)交換),它利用一種公共的協(xié)議實(shí)現(xiàn)兩個(gè)或多個(gè)應(yīng)用程序之間的通訊;再者是通過(guò)內(nèi)存映射文件,內(nèi)存映射可以將一個(gè)進(jìn)程的一段虛擬地址映射為一個(gè)文件,然后其它的進(jìn)程可以共享該段虛擬地址;最后就是通過(guò)管道與郵路實(shí)現(xiàn)進(jìn)程間數(shù)據(jù)通信。命名管道甚至具有通過(guò)網(wǎng)絡(luò)連接多進(jìn)程的能力。 TransactNamedPipe:從一個(gè)消息管道讀消息或向其寫(xiě)入消息。 return 。 i++ ) { PipeInst[i].hPipe = CreateNamedPipe ( lpPipeName, PIPE_ACCESS_DUPLEX|FILE_ FLAG_OVERLAPPED, PIPE_TYPE_BYTE|PIPE_READMODE_BYTE|PIPE_WAIT, nMaxConn, 0, 0, 1000, NULL ) 。 thisMessageBox ( 停止啟動(dòng)成功 ) 。 sscanf ( szBuf, %d %d, amp。(3)理解和掌握安全序列、安全性算法【實(shí)驗(yàn)內(nèi)容】(1)編寫(xiě)安全性算法;(2)編寫(xiě)銀行家算法,并編制銀行家算法通用程序,將調(diào)試結(jié)果顯示在計(jì)算機(jī)屏幕上,再檢測(cè)和筆算的一致性。(3)當(dāng)進(jìn)程Pi獲得資源后,可順利執(zhí)行,直至完成,并釋放出分配給它的資源,故應(yīng)執(zhí)行:216。以上分配作廢,恢復(fù)原來(lái)的分配狀態(tài):Available[j] = Available[j] + Requesti[j]Allocation[i][j]= Allocation[i][j]-Requesti[j]Need[i][j] = Need[i][j]+Requesti[j]NYNYRequesti[j] Need[i][j]出錯(cuò)返回:return(error)Requesti[j] Available[j]出錯(cuò)返回:(進(jìn)程阻塞)return(error)Availab
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1