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

正文內(nèi)容

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

2025-08-01 21:29上一頁面

下一頁面
  

【正文】 承的是內(nèi)核對(duì)象的句柄,內(nèi)核對(duì)象本身是不具備繼承性。繼承式共享需要將結(jié)構(gòu)的成員CreateProcess內(nèi)部的處理是:復(fù)制父進(jìn)程句柄表中的記錄到子進(jìn)程的句柄表中,并使用相同的句柄值;為內(nèi)核對(duì)象的使用計(jì)數(shù)器加同名共享同名共享,不需要共享進(jìn)程之間存在父子關(guān)系。Process1someName1的引用計(jì)數(shù)器加的句柄。來復(fù)制內(nèi)核對(duì)象句柄。二、線程的一般概念進(jìn)程只是線程的容器,從來不執(zhí)行任何東西;線程總是在某個(gè)進(jìn)程中被創(chuàng)建;線程在進(jìn)程的地址空間中執(zhí)行代碼;線程們共享進(jìn)程中的所有內(nèi)核對(duì)象。調(diào)用CreateThread后,OSOS調(diào)用Windows(被撤銷線程得不到通知,不能釋放資源,盡量避免這種方式。l的代碼l來檢查然后將main函數(shù)中注釋掉的Sleep語句讓其可用,即將其前面的注釋號(hào)刪掉,再多次運(yùn)行,認(rèn)真觀察結(jié)果。實(shí)驗(yàn)二 Windows線程同步機(jī)制【開發(fā)語言及實(shí)現(xiàn)平臺(tái)或?qū)嶒?yàn)環(huán)境】C++/CMicrosoft Visual Studio 【實(shí)驗(yàn)?zāi)康摹?1) 了解Windows線程同步機(jī)制;(2) 了解互斥體,并通過查閱資料理解互斥體對(duì)象的使用方法; (3) 了解事件,并通過查閱資料理解事件對(duì)象的使用方法;(4) 了解關(guān)鍵區(qū),并通過查閱資料理解關(guān)鍵區(qū)對(duì)象的使用方法;(5) 了解信號(hào)量,并通過查閱資料理解信號(hào)量對(duì)象的使用方法;(6) 利用Windows線程同步機(jī)制,模擬生產(chǎn)者消費(fèi)者問題。個(gè)指令周期),但其缺點(diǎn)是不能跨進(jìn)程同步,同時(shí)不能指定阻塞時(shí)的等待時(shí)間,只能無限等待。系統(tǒng)上約為互斥體對(duì)象在同一時(shí)刻只能被一個(gè)線程占用,當(dāng)互斥體對(duì)象被一個(gè)線程占用時(shí),若有另一線程想占用它,則必須等到前一線程釋放后才能成功。如果是自動(dòng)重置事件,那么它的狀態(tài)在單個(gè)等待線程釋放后會(huì)自動(dòng)變?yōu)闊o信號(hào)的。1m0 然后,在線程訪問共享資源之前調(diào)用:WaitForSingleObject。實(shí)現(xiàn)同步;然后將兩個(gè)子函數(shù)中注釋掉的Sleep語句讓其可用,再多次運(yùn)行,認(rèn)真觀察結(jié)果,不會(huì)出現(xiàn)銷售出0號(hào)票的情況。分析:修改之前,在指定暫停時(shí)間sleep(20)內(nèi),producer和consumer只能執(zhí)行一次;將兩個(gè)子函數(shù)中注釋掉的while語句讓其可用后,producer和consumer在指定暫停時(shí)間sleep(20)內(nèi),隨機(jī)循環(huán)獲得共享對(duì)象的所有權(quán),進(jìn)行生產(chǎn)或消費(fèi),從而出現(xiàn)多種結(jié)果。 管道的類型有兩種:匿名管道和命名管道。管道是系統(tǒng)對(duì)象,因此管道的句柄在不需要時(shí)必須使用CloseHandle函數(shù)關(guān)閉??蛻暨M(jìn)程連接到管道。 GetNamedPipeHandleState:獲取一個(gè)命名管道的狀態(tài)信息。(2)命名管道:Server和Client各自運(yùn)行,再在Server中創(chuàng)建命名管道,然后在Client中連接管道,最后雙方即可通過管道通信。一旦使用這個(gè)函數(shù)之后,目標(biāo)線程就會(huì)立即結(jié)束,但如果此時(shí)的目標(biāo)線程正在操作互斥資源、內(nèi)核調(diào)用、或者是操作共享DLL的全局變量,可能會(huì)出現(xiàn)互斥資源無法釋放、內(nèi)核異常等現(xiàn)象。 // 把兩個(gè)整數(shù)(a,b)格式化為字符串 WriteFile ( hPipe, szBuf, strlen(szBuf), amp。 CloseHandle ( hPipe ) 。 } // 為每個(gè)管道實(shí)例創(chuàng)建一個(gè)事件對(duì)象,用于實(shí)現(xiàn)重疊IO PipeInst[i].hEvent = CreateEvent ( NULL, false, false, false ) 。 i++ ) { SetEvent ( PipeInst[i].hEvent ) 。 OVERLAPPED OverLapStruct = { 0, 0, 0, 0, } 。 // 從管道中讀取客戶端的請(qǐng)求信息 if ( !ReadFile ( , szBuf, MAX_BUFFER_SIZE, amp。 pMyDlgnSecond = b 。 pMyDlgSetDlgItemInt ( IDC_RESULT, pMyDlgnResValue, true ) 。(2)如果Requesti≤Available則繼續(xù)以下檢查,否則顯示系統(tǒng)無足夠資源,Pi阻塞等待。開始時(shí)先做Finish[i]∶=false。216。如果成功還需要輸出變化前后的各種數(shù)據(jù),并且輸出安全序列。void main(){ int i,j。,39。 //退出標(biāo)記 char ch。 //判斷當(dāng)前狀態(tài)是否安全 bSafe=safety(iAllocation,iNeed,iAvailable,cName)。 if (bSafe) //安全,則輸出變化后的數(shù)據(jù) output(iMax,iAllocation,iNeed,iAvailable,cName)。 default: cout輸入有誤,請(qǐng)重新輸入:\n。jM。jM。 } }//安全性算法,進(jìn)行安全性檢查;安全返回true,并且輸出安全序列,不安全返回false,并輸出不安全的提示;bool safety(int iAllocation[N][M],int iNeed[N][M],int iAvailable[M],char cName[N]){ int i,j,flag,x=0。iN。amp。 Name[x++]=cName[i]。xN。 int i,j,Request[M],check[M]。 break。jM。j++) { if((iAvailable[j]Request[j])0) { cout\n不能滿足進(jìn)程?。?!\n。 return true。在進(jìn)程運(yùn)行過程中,若其所要訪問的頁面不在內(nèi)存而需把它們調(diào)入內(nèi)存,但內(nèi)存已無空閑空間時(shí),為了保證該進(jìn)程能正常運(yùn)行,系統(tǒng)必須從內(nèi)存中調(diào)出一頁程序或數(shù)據(jù),送磁盤的對(duì)換區(qū)中。但由于人目前還無法預(yù)知一個(gè)進(jìn)程在內(nèi)存的若干個(gè)頁面中,哪一個(gè)頁面是未來最長(zhǎng)時(shí)間內(nèi)不再被訪問的,因而該算法是無法實(shí)現(xiàn)的,便可以利用此算法來評(píng)價(jià)其它算法。 LRU置換算法的硬件支持   LRU置換算法雖然是一種比較好的算法,但要求系統(tǒng)有較多的支持硬件。每當(dāng)進(jìn)程訪問某頁面時(shí),便將頁面的頁面號(hào)從棧中移出,將它壓入棧頂。 /*內(nèi)存單元數(shù)*/ int c[M][N]。 b[i].time=Ni1。 int tag=0。iM。iM。i++) if (i!=val) b[i].time++。iN。 for(j=0。jN。i++) printf(%3d,queue[i])。39。 printf(\nAre you continuing!\ty?)。 else printf(|%2d ,c[i][j])。j++) printf(|%2d ,a[j])。 c[0][i]=a[i]。(6)主程序 void main() { int a[N]={1,0,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4}。 } else { queue[++K]=fold。 return 1。iM。iM。 /*記錄調(diào)入隊(duì)列*/ int K。【實(shí)驗(yàn)步驟】 參考實(shí)驗(yàn)步驟如下:(1)現(xiàn)定義數(shù)據(jù)結(jié)構(gòu)和全局變量。此時(shí),定時(shí)信號(hào)將每隔一定時(shí)間(例如100ms)將寄存器右移一位。該算法總是淘汰最先進(jìn)入內(nèi)存的頁面,即選擇在內(nèi)存中駐留時(shí)間最久的頁面予以淘汰。通常,把選擇換出頁面的算法稱為頁面置換算法(Page_Replacement Algorithms)。(3)掌握虛擬存儲(chǔ)請(qǐng)求頁式存儲(chǔ)管理中幾種基本頁面置換算法的基本思想和實(shí)現(xiàn)過程,并比較它們的效率。 } } for(j=0。 } for(j=0。 else f=false。 char x。 cout\n。iN。amp。 while(true) { flag=0。 int Work[M]。 cout\t。 cout\t。 cout\n\t Max \tAllocation\t Need \t Availableendl。 case 39。\n。 //存放安全與否的標(biāo)志 //計(jì)算iNeed[N][M]的值 for(i=0。,39。 //系統(tǒng)中N個(gè)進(jìn)程中的每一個(gè)進(jìn)程對(duì)M類資源的最大需求 int iMax[N][M]={{7,5,3},{3,2,2},{9,0,2},{2,2,2},{4,3,3}}。(4)編寫主函數(shù)來循環(huán)調(diào)用銀行家算法。 (4)如果所有進(jìn)程的Finish[i]=true都滿足, 則表示系統(tǒng)處于安全狀態(tài);否則,系統(tǒng)處于不安全狀態(tài)。(2)從進(jìn)程集合中找到一個(gè)能滿足下述條件的進(jìn)程: ① Finish[i]=false。 Allocation[i,j]∶=Allocation[i,j]+Requesti[j]。 } return 0 。 memset ( szBuf, 0, sizeof(szBuf) ) 。 break 。 // 命名管道的連接函數(shù),等待客戶端的連接(只針對(duì)NT) ConnectNamedPipe ( , amp。 CloseHandle ( PipeInst[i].hPipe ) 。PipeInst[i], THREAD_PRIORITY _NORMAL ) 。 for ( UINT i = 0。 // 把數(shù)據(jù)寫入管道 memset ( szBuf, 0, sizeof(szBuf) ) 。客戶端主要代碼://提交按鈕單擊事件void CMyDlg::OnSubmit() { // 打開管道 HANDLE hPipe = CreateFile(\\\\.\\Pipe\\NamedPipe, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL) 。(實(shí)驗(yàn)三選做題目,如果實(shí)現(xiàn)了本題目需要交此代碼):在客戶端輸入數(shù)據(jù)a和b,然后發(fā)送到服務(wù)器并計(jì)算a+b,然后把計(jì)算結(jié)果發(fā)送到客戶端。 PeekNamedPipe:從一個(gè)匿名或命名管道中拷貝數(shù)據(jù)到一個(gè)緩沖區(qū)。 匿名管道用以下函數(shù)創(chuàng)建:BOOL CreatePipe( PHANDLE hReadPipe, // 用于讀操作的句柄 PHANDLE hWritePipe, // 用于寫操作的句柄 LPSECURITY_ATTRIBUTES lpPipeAttributes, // 描述安全信息的一個(gè)結(jié)構(gòu) DWORD nSize // 管道大小 )。管道可以以比特流形式傳送任意數(shù)量的數(shù)據(jù)。命名管道更高級(jí),它由一個(gè)名字來標(biāo)識(shí),以使客戶端和服務(wù)端應(yīng)用程序可以通過它進(jìn)行彼此通信。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1