




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《操作系統》試驗指導書成都理工大學工程技術學院計算機科學與技術系2023.9目 錄試驗一 生疏Windows2023/XP中的進程和線程試驗二 編程實現進程的把握
操作系統中的經典線程同步問題死鎖避開—銀行家算法的實現Windows頁面置換算法的模擬實現磁盤調度中的電梯調度算法實現Windows中的消息機制試驗一 生疏Windows2023/XP中的進程和線程一、試驗目的1Windows2023/XP2、通過任務治理器識別操作系統中的進程和線程的相關信息。3spy++.exeWindows二、試驗理論根底及教材對應關系1、試驗理論根底:操作系統中的進程和線程的概念;PCB的各項指標含意;22章。三、試驗內容與步驟1、啟動操作系統自帶的任務治理器:Ctrl+Alt+Del行”,并輸入“taskmgr.exe”。如以以下圖所示:、調整任務治理器的“查看”中的相關設置,顯示關于進程的以下各項信息,并完成下表〔填滿即可〕:表一:統計進程的各項主要信息序號進程名稱ID線程數量占用內存優先級CPU虛擬內存123456783Word”,在任務治理器中找到該軟件的登記,并將其完畢掉。再從任務管理器中分別找到以下程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,試著完畢它們,觀看到的反響是 ,緣由是 。4、在任務治理器中找到進程“explorer.exe”,將之完畢掉,并將桌面上你翻開的所有窗口最小化,看看你的計算機系統起來什么樣的變化 、得到的結論是 〔說出explorer.exe進程的作用〕。5、運行“spy++.exe”應用軟件,點擊按鈕“ ”,切換到進程顯示欄上,查看進程“explorer.exe”的各項信息,并填寫下表:表二:統計線程的各項信息進程:explorer.exe中的各個線程序號IDID根本優先級當前優先級CPU上下文開關123456678910111213146、留意某些線程前有“+”,如以下圖:的差異是 。
,說明二者之間四、試驗材料的提交與成績評定1、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗二 編程實現進程的把握一、試驗目的1、進一步把握進程的相關概念2Windows2023/XPAPI3、了解進程的地址空間的含義。二、試驗理論根底及教材對應關系1、試驗理論根底:操作系統中的進程和線程的概念;進程的各種把握;223章的內容。三、試驗內容與步驟1、啟動應用程序“ProcessInformation.exe”,應消滅下面的界面:2、依次轉變上圖中“下拉組合框”的選項,讀出界面中顯示的各項信息,并完成下填滿即可〕:〔winlogon.exe、lsass.exe、csrss.exe、smss.exe等應用程序〕表一:統計進程的一些信息序號進程名稱IDID優先級線程數Heaps模塊數量123456783IDID”兩欄,總結并畫出以下程序間的親緣關系:winlogon.exe、lsass.exe、csrss.exe、smss.exe。4ProcessInfoProcessInfo.cppCreateProcess〔〕的使用方法。按以下步驟建立一個工程工程,將記事本應用程序運行起來,即創立了一個的進程。步驟1、創立一個基于MFC的應用程序。步驟2、在應用程序類型中選取“基于對話框”的選項。步驟3、直接點擊完成,系統將為你創立一個工程工程。步驟4、然后在“資源視圖”中,翻開對話框“IDD_MY_DIALOG”,將消滅以下對話框:步驟5、翻開界面上的“工具箱”,放置一個“按鈕”,如以以下圖:6、雙擊上面的“Button1”按鈕,切換到代碼的編寫處:輸入以下語句:步驟7、編譯并運行此工程工程,看看運行的結果。四、試驗材料的提交與成績評定1、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗三Windows中的線程與線程同步現象一、試驗目的1Windows2、生疏線程不同步時的現象及環境因素。3、把握一種同步對象的使用。二、試驗理論根底及教材對應關系1、線程和線程不同步的生疏。2、線程間的同步和通信。32章中關于線程的各節。三、試驗內容與步驟1、定義全局變量inti=0;初始值置為0。2、創立兩個線程,一個對i執行加1操作,另一個對i執行減1操作。兩個線程執行一樣的次數。明顯,正常狀況下,i0。#include<stdio.h>#include<windows.h>#defineMaxCount9000000 //循環次數要很大,可屢次嘗試一些值DWORD stdcallfun1(LPVOIDp1){for(intj=0;j<MaxCount;j++){i++;}return0;}DWORD stdcall fun2(LPVOIDp1){for(intj=0;j<MaxCount;j++){i--;}return0;}3、觀看兩個線程執行后的狀況,可以覺察最終i0數,有時是很大的負數,這就是多個線程在操作同一個變量i時,未同步時帶來的嚴峻問題。還應當了解,在多個線程操作共享的變量時,才需要考慮同步問題。5、給這兩個線程加上同步代碼,再來觀看對i2可:CRITICAL_SECTIONcs;DWORDstdcallfun1(LPVOIDp1){for(intj=0;j<MaxCount;j++){::EnterCriticalSection(&cs);i++;::LeaveCriticalSection(&cs);}}DWORD stdcall fun2(LPVOIDp1){for(intj=0;j<MaxCount;j++){::EnterCriticalSection(&cs);i--;::LeaveCriticalSection(&cs);}}參與的同步代碼的兩個線程,無論如何執行,i的值總是0,結果是正確的。、主函數的寫法intmain{DWORDid1,id2;HANDLEhThread[2];::InitializeCriticalSection(&cs);hThread[0]=::CreateThread(0,0,fun1,0,0,&id1);hThread[1]=::CreateThread(0,0,fun2,0,0,&id2);::WaitForMultipleObjects(2,hThread,1,INFINITE);printf(“i=%d\n“,i);::DeleteCriticalSection(&cs);getchar;return0;}四、試驗材料的提交與成績評定1、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗四操作系統中的經典線程同步問題一、試驗目的1Windows2、把握死鎖產生的緣由。3、把握信號量、互斥量、大事、臨界區等同步對象的使用。二、試驗理論根底及教材對應關系1、進程和線程的關系。2、線程間的同步和通信。3、本試驗內容主要對應于教材第2章中關于線程的各節、第3章中關于死鎖的各節。三、試驗內容與步驟1、運行試驗程序“Reader_Writer.exe”,消滅如下界面:2、交替點擊“創立讀者線程”和“創立寫者線程”按鈕,消滅如下界面:3、觀看其次步的試驗現象,屢次試驗,可總結為:的“讀者”燈的狀態是 、其余的“寫者”燈的狀態是 。其余的“寫者”燈的狀態是 、其余的“讀者”燈的狀態是 。這說明“讀者”間的關系是 、“讀者”之間的關系是 、“讀者-寫者”之間的關系是 。〔填相容、互斥〕4、翻開工程文件“Reader_Writer”,查找以下函數的用法:AfxBeginThread;創立線程。ResumeThread;讓線程恢復運行。CreateMutex;創立互斥量。ReleaseMutex;刪除互斥量。CreateSemaphore;創立信號量。ReleaseSemaphore刪除信號量。WaitForSingleObject;等待同步對象。CloseHandle;關閉內核對象的句柄。5、運行“Dining.exe”應用程序,觀看線程間“死鎖”時的狀態。main4向屏幕輸出幾個字符后,就自己完畢掉。四、試驗材料的提交與成績評定1、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗五 死鎖避開—銀行家算法的實現一、試驗目的1、把握死鎖產生的緣由和必要條件。2、把握銀行家算法的實現二、試驗理論根底及教材對應關系1、處理機調度與死鎖。2、死鎖的產生與預防。3、銀行家算法。三、試驗內容與步驟1、創立C語言工程工程,依據教材上的有關說明,定義相應的數據構造。intAllocMatrix[5][4] //已經安排資源矩陣intRequestMatrix[5][4] //需求矩陣intAvailResource[4] //可用資源向量intTryProcess[5] //嘗試序列2、給各個數據構造設定適宜的初始值。依據教材課后習題22的內容給上述數據構造設定初始值。如:intAllocMatrix[5][4]={{0,0,3,2},{1,0,0,0},{1,3,5,4},{0,3,3,2},{0,0,1,4}
//已經安排資源矩陣};1、2C語言中的定義變量就可同時初始化的方式進展數值初設。3、依據銀行家算法的描述依次進展資源的摸干脆安排,直至成功或失敗,成功則只有全部的摸索都失敗了,才能說明當前狀態是擔憂全的。通常,這種摸干脆算法承受遞歸的方法是很適宜的,程序也是很簡潔的。代碼片段:if( AvailResource[0]>=RequestMatrix[k][0]&&AvailResource[1]>=RequestMatrix[k][1]&&AvailResource[2]>=RequestMatrix[k][2]for(inti=0;i<4;i++)AvailResource[i]-=AllocMatrix[k][i]; //恢復資源int SearchSecurity(intlevel)//遞歸函數{if(level==4){……}else{}
SearchSecurity(level+1);//有條件遞歸調用自己……}其余由大家自行完成。四、試驗材料的提交與成績評定、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門依據成績。試驗六 Windows內存治理一、試驗目的1、生疏程序的運行時動態鏈接。2Windows3WindowsAPI二、試驗理論根底及教材對應關系1、應用程序的動態鏈接。2、內存的分頁治理、虛擬內存的技術。34章。三、試驗內容與步驟1、運行“SystemInfo.exe”應用程序,消滅如下界面:從該界面上可以看到Windows2023/XP系統中的分頁大小〔Size〕是:4,096,4K1SYSTEM_INFOsinf;GetSystemInfo(&sinf);2、運行“VMSTATE.exe”應用程序,消滅如下界面:從界面上可以看到,本計算機中所安裝的物理內存的大小“TotalPhys”,可用物理內存的大小“AvailPhys”。翻開源文件,生疏或者信息函數的使用:MEMORYSTATUSms={sizeof(ms)};GlobalMemoryStatus(&ms);3、運行“VMAlloc.exe”應用程序,把握其用法和功能:翻開源文件,生疏以下操作虛擬存儲空間函數的使用:VirtualAlloc()、VirtualQuery()、VirtualFree()。4VMMap.exe”應用程序,了解程序的功能,讀懂其顯示的每一行信息的含義:從上面顯示的信息中,談談自己對虛擬儲存空間的生疏〔100〕。四、試驗材料的提交與成績評定1、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗七 分頁內存治理算法模擬一、試驗目的1、生疏根本分頁存儲治理。2、建立描述分頁內存治理中的頁名目表、頁表構造。3、實現進展虛擬內存到物理內存的映射算法。二、試驗理論根底及教材對應關系1、操作系統中內存治理。2、根本分頁內存、分段內存治理。3、頁名目表、頁表的作用,以及虛擬地址到物理地址的映射關系。三、試驗內容與步驟題目:分頁存儲治理的設計與實現。某系統承受了兩級頁表機制,可使頁表所占用內存盡量少,分頁地址變換機構如以以下圖所示:分頁地址變換機構頁名目表共1024項,每個頁表1024項,每頁的大小是4K個字節。地址轉換時,先由分段部件生成線性地址,再由上面所述的分頁部件,依據線性地址中的頁名目索引在頁名目表中找相應的項,該項值為所需頁表在內存的塊號,找到該頁表后,12位偏移直32位的物理地址。110個段,:1-8202300H處開頭由低3G+4M開頭的線性地址空間;9段〔緩沖區〕放在400000H開頭的內存,映射的線性地址同物理地址;顯存從B8000H開頭,映射到3G開頭的線性地址空間。1、請設計并填寫頁名目表和頁表〔需說明每張表的內存地址〕〔2〕、線性地址為:C0401010H、C0404010H、C0414010H,則物理地址是多少,所在段的段名是什么?〔需寫出計算的具體步驟〕試驗步驟:1、定義頁名目表、頁表的數據構造,以及必要的數據。#define_Size4096//頁面大小#defines 26//此題定義的總的頁面個數#defineFirstLinearAddr 線性地址3G+4M#defineSecondLinearAddr 0x400000 //線性地址0x400000#defineThirdLinearAddr 0xC0000000//3G#defineIDT0#defineTSS1#defineGDT2#definePDT3 //頁名目表的下標#definePT14 #definePT25 #definePT36 #definePT47 // 省略其它頁表#defineCODE20#defineSTACK21#defineDATA22#defineBUFFER23#defineDISPLAYMEM242、初始化頁名目表、頁表中的數據p=(unsignedint*)PysicalMemAddr[PDT]; //p指向頁名目表=(unsignedint)PysicalMemAddr[PT1];//1個頁表的地址填入頁名目表中p=(unsignedint*)PysicalMemAddr[PT1]; //p1個頁表p[(FirstLinearAddr+4096*IDT)>>12&0x3FF]=(unsignedint)PysicalMemAddr[IDT];//IDT頁的起始地址填入頁表p[(FirstLinearAddr+4096*TSS)>>12 & 0x3FF] = int)PysicalMemAddr[TSS];//將TSS頁的起始地址填入頁表p[(FirstLinearAddr+4096*GDT)>>12 & 0x3FF] = int)PysicalMemAddr[GDT];//將GDT頁的起始地址填入頁表p[(FirstLinearAddr+4096*PDT)>>12 & 0x3FF] = int)PysicalMemAddr[PDT];//將PDT頁的起始地址填入頁表p[(FirstLinearAddr+4096*PT1)>>12 & 0x3FF] = (unsignedint)PysicalMemAddr[PT1];//將PT1頁的起始地址填入頁表p[(FirstLinearAddr+4096*PT2)>>12 & 0x3FF] = int)PysicalMemAddr[PT2];//將PT2頁的起始地址填入頁表p[(FirstLinearAddr+4096*PT3)>>12 & 0x3FF] = int)PysicalMemAddr[PT3];//將PT3頁的起始地址填入頁表p[(FirstLinearAddr+4096*PT4)>>12 & 0x3FF] = int)PysicalMemAddr[PT4];//將PT4頁的起始地址填入頁表、虛擬地址到物理地址的變換linear=0xC0401010;p=(unsignedint*)PysicalMemAddr[PDT]; //p指向頁名目表pTable=(unsignedint*)p[linear>>22]; //pTable指向頁表pChar(char*)pTable[linear>>12&0x3FF];//pChar指向物理內存printf(“Linear:0x%Xisin%s\n“,linear,pChar);自行變換線性地址:C0404010H、C0414010H四、試驗材料的提交與成績評定1、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗八 頁面置換算法的模擬實現一、試驗目的1、生疏根本分頁存儲治理。2FIFO3LRU二、試驗理論根底及教材對應關系1、操作系統中內存治理。2、根本分頁內存、分段內存治理。3、常用頁面置換算法的實現。三、試驗內容與步驟1、定義相關數據#defineInitPysiBlocks4#defineMaxs16:unsignedintPysicalBlocks[InitPysiBlocks]={0};unsignedintSequence[30]={1,2,3,6,4,7,3,2,1,4,7,5,6,5,2,1};unsignedFIFO(unsigned*py,unsigned*pg)unsignedLRU(unsigned*py,unsigned*pg)3、查看運行結果是否與手工計算全都。四、試驗材料的提交與成績評定、本試驗的試驗報告一份〔電子版或紙質版一份,具體形式由任課教師確定,格式參考學院統一試驗報告〕2、試驗源程序一份,請說明題號〔電子版〕備注:做下一次試驗之時提交上一次試驗的材料,由各班學習委員以班為單位收集并上交任課教師。310分,由指導教師依據學生試驗表現和試驗材料進展評定,本門課程完畢后試驗平均成績〔/試驗次數〕依據10%的比例記入期末考試總成績。試驗九 磁盤調度中的電梯調度算法實現一、試驗目的1I/O2、理解磁盤的工作原理與各種調用算法。3SCAN〔電梯調度〕算法的實現。二、試驗理論根底及教材對應關系1IO治理。2、操作系統的磁盤調
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備拆除安全管理制度
- 設備檢測檢查管理制度
- 設備維護電池管理制度
- 設備設施控制管理制度
- 設計單位考勤管理制度
- 診室醫院感染管理制度
- 診所消防制度管理制度
- 診斷影像設備管理制度
- 調研法官助理管理制度
- 財務風險制度管理制度
- 蘇教版四年級科學下冊復習方法
- 南昌市產業投資集團有限公司人才招聘筆試真題2023
- 2024年湖南省初中學業水平模擬考試英語試題(定心卷)
- 2022年西藏中考地理真題
- 劇毒易制爆化學品防盜、防搶、防破壞及技術防范系統發生故障等狀態下的應急處置預案
- 壯族文化宣傳介飲食服飾建筑風俗習慣特點傳統節日課件
- 牛津譯林版英語八年級下冊期末復習各單元話題寫作范文背誦
- 降低患者便秘品管圈課件
- 2024CSCO胃腸間質瘤診療指南解讀
- 《國有企業管理人員處分條例》重點解讀
- CJT163-2015 導流型容積式水加熱器和半容積式水加熱器
評論
0/150
提交評論