操作系統(tǒng)實驗報告1_第1頁
操作系統(tǒng)實驗報告1_第2頁
操作系統(tǒng)實驗報告1_第3頁
操作系統(tǒng)實驗報告1_第4頁
操作系統(tǒng)實驗報告1_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、常州大學操作系統(tǒng)課程實驗報告姓 名 專業(yè)班級信息與計算科學學 號 13434104指導老師 張英麗實驗時間 2015年10月23日 2015年12月15日實驗一 Windows XP系統(tǒng)管理 一實驗目的1) 了解和學習 Windows系統(tǒng)管理工具及其使用;2)熟悉 Windows系統(tǒng)工具的內(nèi)容和應用;3)熟悉Windows操作系統(tǒng)的應用環(huán)境。二實驗環(huán)境需要準備一臺運行 Windows XP操作系統(tǒng)的計算機。三背景知識Windows XP的“管理工具”中集成了許多系統(tǒng)管理工具,利用這些工具,管理員可以 方便地實現(xiàn)各種系統(tǒng)維護和管理功能。這些工具都集中在“控制面板”的“管理工具”選項 下,用戶和管

2、理員可以很容易地對它們操作和使用。在默認情況下,只有一些常用工具一一如服務、計算機管理、事件查看器、 數(shù)據(jù)源(ODBC)、性能和組件服務等一一隨 Windows XP 系統(tǒng)的安裝而安裝。四實驗內(nèi)容與步驟為了幫助用戶管理和監(jiān)視系統(tǒng),Windows XP提供了多種系統(tǒng)管理工具,其中最主要的有計算機管理、事件查看器和性能監(jiān)視等。步驟1:登錄進入 Windows XP。步驟2:在“開始”菜單中單擊“設置”-“控制面板”命令,雙擊“管理工具”圖標。在本地計算機“管理工具”組中,有哪些系統(tǒng)管理工具,基本功能是什么:1)本地安全策略:查看和修改本地安全策略,如用戶權限和審核策略2) Internet 信息服

3、務: 管理 IIS , Internet 和Intranet 站點的 WEB服務器3)服務:啟動和停止服務4)計算機管理:管理磁盤以及使用其他系統(tǒng)工具來管理本地或遠程的計算機5)事件查看器:顯示來自于 Windows和其他程序的監(jiān)視與排錯消息6)數(shù)據(jù)源ODBC添加、刪除、以及配置 ODBC數(shù)據(jù)源和驅動程序7)性能:顯示系統(tǒng)性能圖表以及配置數(shù)據(jù)日志和警報8)組件服務:配置和管理 COM+應用程序1 .計算機管理使用“計算機管理”可通過一個合并的桌面工具來管理本地或遠程計算機,它將幾個 Windows XP管理實用程序合并到一個控制臺目錄樹中,使管理員可以輕松地訪問特定計算 機的管理屬性和工具。步

4、驟3:在“管理工具”窗口中,雙擊“計算機管理”圖標?!坝嬎銠C管理”使用的窗口與“ Windows資源管理器”相似。在用于導航和工具選擇的 控制臺目錄樹中有“系統(tǒng)工具”、 “存儲”及“服務和應用程序”等節(jié)點,窗口右側“名稱” 窗格中顯示了工具的名稱、類型或可用的子工具等。它們是:表1-3實驗記錄名稱回描述事件查看器擴展管理單元顯小事件日志共學文件夾顯示共享文件夾,目前回話及打開文件本地用戶和組擴展管理單元管理本地用戶和組性能日志和警報擴展管理單元配置數(shù)據(jù)性能日志和警報設備管理器設備管理器2)存儲,填入表1-4中。表1-4 實驗記錄名稱描述可移動存儲擴展管理單元編錄可移動媒體并管理自動庫磁盤碎片整

5、理程序擴展名管理單元對本地卷上的文件和文件夾進行碎片整理磁盤管理管理單元邏輯磁盤管理器3)服務和應用程序,填入表 1-5中。表1-5實驗記錄名稱性能描述Microsoft SQL Server服務啟動,控制并設置 Windows 服務WM控件擴展管理單元配置和控制 WindowsManagementInstrumentation (WMI 服務索引服務擴展管理單元提供快速和靈活的文件內(nèi)容 和屬性搜索Internet信息服務2 .事件查看器事件查看器不但可以記錄各種應用程序錯誤、損壞的文件、丟失的數(shù)據(jù)以及其他問題,而且還可以把系統(tǒng)和網(wǎng)絡的問題作為事件記錄下來。管理員通過查看在事件查看器中顯示的系

6、統(tǒng)信息,可以迅速診斷和糾正可能發(fā)生的錯誤和問題。步驟4:在“管理工具”窗口中,雙擊“事件查看器”圖標。在Windows XP事件查看器中,管理員可以查看到三種類型的本地事件日志,請?zhí)钊氡?1-6 中。表1-6實驗記錄名稱回描述當前大小應用程序日志應用程序錯誤記錄128.0KB安全性日志安全審核記錄64.0KB系統(tǒng)日志系統(tǒng)錯誤記錄128.0KB步驟5:在事件查看器中觀察“應用程序日志”:本地計算機中,共有 367個應用程序日志事件。步驟6:單擊“查看”菜單中的“篩選”命令,系統(tǒng)日志包括的事件類型有:1)信息、(I )2)警告(W3)錯誤(O4)成功審核(S)5)失敗審核(L)3 .性能監(jiān)視“性能

7、”監(jiān)視工具通過圖表、日志和報告,使管理員可以看到特定的組件和應用進程的 資源使用情況。利用性能監(jiān)視器,可以測量計算機的性能,識別以及診斷計算機可能發(fā)生的錯誤,并且可以為某應用程序或者附加硬件制作計劃。另外,當資源使用達到某一限定值時,也可以使用警報來通知管理員。步驟7:在“管理工具”窗口中,雙擊“性能”圖標?!靶阅堋贝翱诘目刂婆_目錄樹中包括的節(jié)點有:1)性能監(jiān)視器2)性能日志和警報,其中的子節(jié)點填入表1-7中。表1-7實驗記錄名稱描述計數(shù)器日志配置性能數(shù)據(jù)和監(jiān)視器日志跟蹤日志配置跟蹤事件日志警報配置性能警報4 .服務步驟8:在“管理工具”窗口中,雙擊“服務”圖標。在你的本地計算機中,管理著 1

8、00個系統(tǒng)服務項目。通過觀察,重點描述你所感興趣的5個系統(tǒng)服務項目:1) World Wide Web Publishing: 通過Internet信息服務管理單元提供Webl接和管理2) Windows Image Acquisition:為掃描儀和照相機提供圖像捕獲3) Security Accounts Manager:存儲本地用戶賬號的安全信息4) Security Center : 監(jiān)視系統(tǒng)安全設置和配置5)Shell Hardware Detection : 為 自 動提供硬件事件提供通知5 .數(shù)據(jù)源(ODBC)ODBC即開放數(shù)據(jù)庫連接。 通過ODBC!以訪問來自多種數(shù)據(jù)庫管理系統(tǒng)

9、的數(shù)據(jù)。例如,ODB做據(jù)源會允許一個訪問 SQL數(shù)據(jù)庫中數(shù)據(jù)的程序,同時訪問 Visual FoxPro 數(shù)據(jù)庫中 的數(shù)據(jù)。為此,必須為系統(tǒng)添加稱為“驅動程序”軟件組件。步驟9:在“管理工具”窗口中,雙擊“數(shù)據(jù)源(ODBC) ”圖標,打開“ ODBO據(jù)源管理器”對話框,請描述其中各選項卡的功能,填入表 1-8中。表1-8實驗記錄選項卡功能描述用戶DSNODBC用戶數(shù)據(jù)源存儲了如何與指定數(shù)據(jù)提供程序連接的信息。用 戶數(shù)據(jù)只對當前用戶可見,而且只能用于當前機器上。系統(tǒng)DSNODBC用戶數(shù)據(jù)源存儲了如何與指定數(shù)據(jù)提供程序連接的信息。用 戶數(shù)據(jù)只對當前用戶可見,包括NT服務。文件DSNODBC文件數(shù)據(jù)

10、源允許用戶連接到數(shù)據(jù)提供程序。文件DSNM以由安裝了相同驅動程序的用戶共享。驅動程序ODBC1動程序允許支持 ODBC勺程序從ODBO據(jù)源獲取信息。要 安裝新的驅動程序,請使用其安裝程序。跟蹤ODBC艮蹤允許創(chuàng)建調用驅動程序的日志,以供技術支持人員查看,也有助于您調試應用程序。Visual Studio 跟蹤啟用 MicrosoftVisual Studio 的 ODBC艮蹤。連接池連接池允許應用程序重用打開連接句柄,此操作將節(jié)省到服務器的往返過程。步驟10:單擊“驅動程序”選項卡,試分析,系統(tǒng)為哪些數(shù)據(jù)源缺省安裝了ODBC區(qū)動程序:1) MSORCL32.DLL2) SQLSRV32.DLL

11、實驗二Windows任務管理器的進程管理一實驗目的1)在Windows任務管理器中對程序進程進行響應的管理操作;2)熟悉操作系統(tǒng)進程管理的概念;3)學習觀察操作系統(tǒng)運行的動態(tài)性能。二實驗環(huán)境需要準備一臺運行 Windows XP操作系統(tǒng)的計算機。三背景知識Windows XP的任務管理器提供了用戶計算機上正在運行的程序和進程的相關信息,也 顯示了最常用的度量進程性能的單位。使用任務管理器,可以打開監(jiān)視計算機性能的關鍵指示器,快速查看正在運行的程序的狀態(tài),或者終止已停止響應的程序。也可以使用多個參數(shù)評估正在運行的進程的活動,以及查看CPU和內(nèi)存使用情況的圖形和數(shù)據(jù)。四實驗內(nèi)容與步驟啟動并進入 W

12、indows環(huán)境,單擊Ctrl + Alt + Del 鍵,或者右鍵單擊任務欄,在快捷 菜單中單擊“任務管理器”命令,打開“任務管理器”窗口。當前機器中由你打開,正在運行的應用程序有:1)實驗二Windows任務管理器的進程管理2)管理工具Windows "任務管理器”的窗口由5個選項卡組成,分別是:1)應用程序2)進程3)性能4) W05)用戶當前“進程”選項卡顯示的欄目分別是(可移動窗口下方的游標/箭頭,或使窗口最大化進行觀察):1)映像名稱2)用戶名3) CPU4)內(nèi)存使用1 .使用任務管理器終止進程步驟1:單擊“進程”選項卡,一共顯示33個進程。請試著區(qū)分一下,其中:系統(tǒng)(S

13、YSTEM)進程有19個,填入表 2-1中。表2-1實驗記錄映像名稱用戶名作用內(nèi)存使用Svchost.exeSYSTEMWindows服務主進程4416KService.exeSYSTEM服務和控制器應用程序3272Ksqlservr.ex eSYSTEMSQL基礎服務9580KLMS.exeSYSTEMLocalManageabilityservice2912KMDM.EXESYSTEM針對應用軟件進行排錯3424KInetinfo.ex eSYSTEM支持微軟Windows IIS網(wǎng)絡服務的除錯9780KSpoolsv.exeSYSTEM管理所有本地和網(wǎng)絡打 印隊列及控制所有打印 工作56

14、12Kati2evxx.ex eSYSTEM管理ATI Hotkey特性4024KSvchost.exeSYSTEMWindows服務主進程24912KSvchost.exeSYSTEMWindows服務主進程5084Kservice.exeSYSTEM服務和控制器應用程序3476Klsass.exeSYSTEMLocalSecurityAuthority Process1736KServices.ex eSYSTEM服務和控制器應用程序5904KWinlogon.ex eSYSTEMWindows登錄應用程序1820KCsrss.exeSYSTEMClient Server RuntimeP

15、rocess9492Klsm.exeSYSTEM本地會話管理器服務1156KSmss.exeSYSTEMWindows會話管理器408KSystemSYSTEMNT Kernel & System2196KSystem IdleProcessSYSTEM處理器空閑時間白分比16K服務(SERVICE)進程有 4個,填入表 2-2中。表2-2 實驗記錄映像名稱用戶名作用內(nèi)存使用Svchost.ex eLOCAL SERVICEWindows服務主進程4212Kalg.exeLOCAL SERVICE處理微軟Windows網(wǎng)絡連接共享和網(wǎng)絡連接防 火墻3808KSvchost.ex eNE

16、TWORK SERVICEWindows服務主進程3848KSvchost.ex eNETWORK SERVICEWindows服務主進程4660K用戶進程有9個,填入表2-3中。表2-3 實驗記錄映像名稱用戶名作用內(nèi)存使用Taskmgr.exeAdministrator任務管理器2596KTXPplatform .exeAdministratorTXP platform620KSafecenter. exeAdministrator安全中心12728Ksogouflash.exeAdministrator搜狗拼音輸入法-Flash皮 膚引擎10976KSqlmangr.ex eAdminis

17、trator構建和管理用于業(yè)務的高 可用和高性能的數(shù)據(jù)應用 程序5548KCtfmon.exeAdministrator供語音識別、手寫識別、鍵 盤、翻譯和其它用戶輸入技 術的支持3512KRTHDCPL.EXEAdministrator聲卡特性設置軟件相關程 序6268KExplorer.ex eAdministratorWindows資源管理器34760KWscntfy.exeAdministratorWindows安全相關策略2544KWINWORD.EXEAdministratorMicrosoft Office Word28844K步驟2:單擊要終止的進程,然后單擊“結束進程”按鈕。

18、終止進程,將結束它直接或間接創(chuàng)建的所有子進程。例如,如果終止了電子郵件程序(如Outlook 98) 的進程樹,那么同時也終止了相關的進程,如MAPI后臺處理程序mapisp32.exe 。請將終止某進程后的操作結果與原記錄數(shù)據(jù)對比,發(fā)生了什么:終止后,原窗口被關閉, 進程不再運行, 未經(jīng)保持的數(shù)據(jù)都將失去。2 .顯示其他進程記數(shù)器在“進程”選項卡上單擊“查看”菜單,然后單擊“選擇列”命令。單擊要增加顯示為 列標題的項目,然后單擊“確定”。為對進程列表進行排序,可在“進程”選項卡上單擊要根據(jù)其進行排序的列標題。而為了要反轉排序順序,可再次單擊列標題。經(jīng)過調整,“進程”選項卡現(xiàn)在顯示的項目分別是

19、:映像名稱,用戶名, CPU內(nèi)存使用。通過對“查看”菜單的選擇操作,可以在“任務管理器”中更改顯示選項:在“應用程序”選項卡上,可以按詳細信息、大圖標或小圖標查看。在“性能”選項卡上,可以更改CPUH己錄圖,并顯示內(nèi)核時間。“顯示內(nèi)核時間”選項在“ CPUI用”和“ CPUI用記錄”圖表上添加紅線。紅線指示內(nèi)核操作占用的CPU務源數(shù)量。3 .更改正在運行的程序的優(yōu)先級要查看正在運行的程序的優(yōu)先級,可單擊“進程”選項卡,單擊“查看”菜單,單擊“選擇列”-“基本優(yōu)先級”命令,然后單擊“確定”按鈕。為更改正在運行的程序的優(yōu)先級,可在“進程”選項卡上右鍵單擊您要更改的程序,指向“設置優(yōu)先級”,然后單擊

20、所需的選項。更改進程的優(yōu)先級可以使其運行更快或更慢(取決于是提升還是降低了優(yōu)先級),但也可能對其他進程的性能有相反的影響。記錄操作后所體會的結果當進程的優(yōu)先級提高后,該進程的執(zhí)行速度比其他進程的速度快了,操作起來不卡,優(yōu)先級被降低的進程,運行速度明顯變慢。在多處理器計算機上,用戶還可以給處理器指派進程,將程序或進程的執(zhí)行限制在選定的處理器上,但這有可能導致總體性能的下降。實驗三 : 進程調度一、實驗內(nèi)容1 模擬批處理多道操作系統(tǒng)的進程調度;2模擬實現(xiàn)同步機構避免并發(fā)進程執(zhí)行時可能與時間相關的錯誤;二、實驗目的進程調度時進程管理的主要內(nèi)容之一,通過設計,編制, 調試一個簡單的進程調度模擬系統(tǒng),對

21、進程調度,進程運行狀態(tài)變換及PV操作加深理解和掌握。三、實驗題目采用剝奪式優(yōu)先算法,對三個進程進行模擬調度模PV操作同步機構,用 PV操作解決進程進入臨界區(qū)的問題。【提示】( 1 )對三個進程進行模擬調度,對各進程的優(yōu)先數(shù)靜態(tài)設置,P1,P2,P3 三個進程的優(yōu)先數(shù)為1 2, 3,并指定P1的優(yōu)先數(shù)最高,P3的優(yōu)先數(shù)最低,每個進程都處于執(zhí)行態(tài)“e”,就緒態(tài)“ r”,等待態(tài)“ w”三種狀態(tài)之一,并假定初始態(tài)為“ r”。(2)每一個進程用一個 PCBe, PCB表的內(nèi)容根據(jù)具體情況設置,該系統(tǒng)在運行過程中能顯示或打印各進程和參數(shù)的變化情況,以便觀察各進程的調度。( 3) 在完成必要的初始化后,便進

22、入進程調度程序,首先由P1 進入執(zhí)行,當執(zhí)行進程因等待某各事件被阻塞或喚醒某個進程等待進程時,轉進程調度。(4)在進入臨界區(qū)前后,調 PV操作。( 5)如果被喚醒的進程優(yōu)先數(shù)高于現(xiàn)有執(zhí)行的進程,則剝奪現(xiàn)行進程的執(zhí)行權。( 6)當三個進程都處于等待狀態(tài)時,本模擬系統(tǒng)退出執(zhí)行。四、實驗要求1、仔細閱讀程序,然后調試該程序;2、將程序中進程的優(yōu)先數(shù)改為隨機數(shù)或者改為動態(tài)優(yōu)先數(shù),重新調試該程序;3、將p1 先執(zhí)行改為p2 或者 p3 先執(zhí)行,并與p1 先執(zhí)行時的結果進行比較;4、寫好書面實驗報告,于下次實驗課時提交實驗報告。五、示例 1. 數(shù)據(jù)結構:( 1 )進程控制塊PCBstructint id;

23、char status;int priority;int waiter1;( 2)信號量structint value;int waiter2;sem2( 3)現(xiàn)場保護棧stackchar stack114每個進程都有一個大小為10 個字的現(xiàn)場保護棧,用來保護被中斷時的斷點地址等信息。( 4)全局變量int i; 用以模擬一個通用寄存器char addr; 用以模擬程序計數(shù)器int m1,m2; 為系統(tǒng)設置的公用數(shù)據(jù)被三個進程共享使用。六、程序框圖:略七、程序說明:本程序是用C語言編寫,模擬三個進程的運行情況,過程在運行中要調用P操作申請信號量,如果該過程得到其申請的信號量,就繼續(xù)運行,否則

24、P 操作阻塞該申請過程的運行,并將過程置為所申請信號量的等待者,如果已有其它過程在等待同一信號量則將該申請過程排在所有等待進程之后。過程運行中除了調用 P操作申請信號量外,還要調用V操作釋放彳t號量,V操作在釋放信號量之后,還將喚醒因申請此信號量而被阻塞的過程。在程序運行的三個過程(PROCESS1,PROCESS2,PROCESS輿中過程運彳T中通過 P操作申請信號量1,過程2通過V操作釋放信號量2,然后做一次操作申請信號量2。三個過程之間存在這樣一種關系:過程1消耗的信號量1由過程2通過V操作產(chǎn)生,而過程3即釋放信號量2 也消耗信號量2。三個過程的運行通過進程調度模塊同意安排,調度模塊通過

25、FIND() 函數(shù)找到第一個就緒過程,如果當前沒有過程已在運行,就直接運行此過程,如果有,則比較兩者的優(yōu)先數(shù),然后運行優(yōu)先權高者。七、源程序:#include <stdio.h>int m1;int m2;structint id;int waiter1;int priority;char status;pcb4;structint value;int waiter2;sem3;char stack114;int i,ep;char addr;void init();int find();int w2();int process1();int process2();int proc

26、ess3();int p(int,int ,char);int v(int,int ,char);main()init();printf(" 系統(tǒng)程序開始執(zhí)行n");for(;)if(find()!=0) w2();else break;printf(" 系統(tǒng)程序結束n");void init()int j,k;pcb0.status='w'pcb0.priority=4;for(j=1;j<=3;j+) pcbj.id=j;pcbj.status='r'pcbj.waiter1=0;pcbj.priority=j;

27、)for(j=1;j<=2;j+)semj.value=1;semj.waiter2=0;)i=0;ep=O;addr='O'm1=0;m2=0;for(j=1;j<=10;j+) for(k=1;k<=3;k+) stackjk=O;)int find()intj;for(j=1;j<=3;j+)if(pcbj.status='r') return(j);return(0);int w2()int pd;pd=find();if(pd=0) return(0);else if(ep=0)pcbpd.status='e'e

28、p=pd;printf("進程d正在執(zhí)行n",ep);else if(pcbpd.priority<pcbep.priority)pcbep.status='r'printf(" 讀取進程%dn",pcbpd.id);pcbpd.status='e'ep=pd;printf(" 運行進程%dn",ep);i=stack1ep;addr=stack2ep;switch(ep) case 1:process1();break;case 2:process2();break;case 3:process

29、3();break;default:printf(" 當前進程出現(xiàn)錯誤%dn",ep);break;int process1()if(addr='m') goto m;i=1;a:printf(" 進程1在信號量sem1上調用P操作n");if(p(1,1,'m')=0) return(0);else goto m;m:printf("打印進程1.m1=%dn",m1);printf("打印進程1.i=%dn",i);i+=5;goto a; int process2() if(ad

30、dr='m') goto m; if(addr='n') goto n;i=1;a:printf(" 進程2在信號量sem2上調用P操作n"); if(p(2,2,'m')=0) return(0); m:m1=2*m2;printf(" 進程2在信號量sem1上調用V操作m1=%dn",m1); if(v(1,2,'n')=0) return(0);else n:printf(" 打印進程2.i=%dn",i);i+=10; goto a; int process3()

31、 if(addr='m') goto m;if(addr='n') goto n;i=1;a:if(i>4)printf(" 進程3在信號量sem2上調用P操作n");if(p(2,3,'n')=0) return(0);n:m2=i;printf(" 進程3在sem2信號量上調用 V操作m=%dn",m2);if(v(2,3,'m')=0) return(0);else m:i+=1;goto a; int p(int se,int p,char ad)int w;semse.val

32、ue-;if(semse.value=0) return(1);printf(" 阻塞當前進程%dn",p);pcbp.status='w'ep=0;pcbp.waiter1=0;w=semse.waiter2;if(w=0) semse.waiter2=p;elsewhile(pcbw.waiter1!=0) w=pcbw.waiter1;pcbw.waiter1=p;stack1p=i;stack2p=ad;return(0);int v(int se,int p,char ad)int w;semse.value+;if(semse.value>

33、0) return(1);w=semse.waiter2;semse.waiter2=pcbw.waiter1;pcbw.status='r'printf(" 喚醒進程%dn",w);stack1p=i;stack2p=ad;return(0);實驗四 虛擬存儲器管理一、實驗目的1、為了更好的配合操作系統(tǒng)有關虛擬存儲器管理章節(jié)的教學。2、加深和鞏固學生對于請求頁式存儲管理的了解和掌握。3、提高學生的上機和編程過程中處理具體問題的能力。二、實驗內(nèi)容請求頁式存儲管理是一種常用的虛擬存儲管理技術。本實驗的目的是通過請求頁式存儲管理中頁面置換算法模擬設計,了解虛擬存

34、儲技術的特點,掌握請求頁式存儲管理的頁面置換算法。1 通過隨機數(shù)產(chǎn)生一個指令序列,共320 條指令。指令的地址按下述原則生成:50%的指令是順序執(zhí)行的。25%的指令是均勻分布在前地址部分。25%的指令是均勻分布在后地址部分。具體的實施方法是:在 0,319 指令地址之間隨機選取一起點;順序執(zhí)行一條指令,即執(zhí)行地址為m+1 的指令;在前地址0, m+1中隨機選取一條指令并執(zhí)行,該指令的地址為m'順序執(zhí)行一條指令,其地址為m;在后地址m +2, 319 中隨機選取一條指令并執(zhí)行;重復上述步驟ae,直到執(zhí)行320次指令。2將指令序列變換成為頁地址流設:a. 頁面大小為1K;b. 用戶內(nèi)存容量

35、為4 到 32 頁;c. 用戶虛存容量為32K。在用戶虛存中,按每K 存放 10 條指令排列虛存地址,即320 條指令在虛存中的存放方式為:第 0 條 第 9 條指令為第0 頁,對應虛存地址為0 , 9 ;第 10 條 第 19 條指令為第1 頁,對應虛存地址為10 , 19第 310 條 第319 條指令為第31 頁,對應虛存地址為310 , 319 。按以上方式,用戶指令可組成32 頁。3、輸出下述各種算法在不同內(nèi)存容量下的命中率。a. 先進先出的算法;b. 最近最少訪問算法;c. 最近最不經(jīng)常使用算法。其中:命中率 =1-頁面失效次數(shù)/頁地址流長度頁地址流長度為320,頁面失效次數(shù)為每次

36、訪問相同指令時,該指令所對應的頁不在內(nèi)存的次數(shù)。三、實驗要求實驗課時4 學時。 要求畫出利用各種算法置換時的置換圖,并可以分析說明。編程可分為幾個部分完成:指令的分頁,算法的選擇,算法的實現(xiàn),命中率的輸出。編寫程序前可先閱讀 Linux 源代碼頁面換入:static int do_swap_page(struct mm_struct * mm,struct vm_area_struct * vma,unsigned long address,pte_t * page_table,swp_entry_t entry,int write_access)struct page *page = loo

37、kup_swap_cache(entry);pte-t pte;if (!pgae)lock_kernel( );swapin_readahead(entry);page = read_swap_cache(entry);unlock_kernel( );if (!page)return -1;flush_page_to_ram(page);flush_icache_page(vma,page);mm->rss+;pte = mk_pte(page,vma->vm_page_prot);/*Freeze the "shared" ness of the page

38、,ie page_count + swap_count.*Must lock page before transferring our swap count to already*obtained apge count.*/lock_page(page);swap_free(entry);if (write_access && !is_page_shared(page)pte = pte_mkwrite(pte_mkdirty(pte);UnlockPage(page);set_pte(page_table,pte);/*No need to invalidate - it w

39、as non-present before */update_mmu_cache(vma,address,pte);return 1; /*Minor fault */四、源程序指導#include <stdlib.h>#include <stdio.h>#include <math.h>int i,M,j,k,s,h,t;char r;float int_count,page_count,v;float vc29;int l,m,n,o,p;int address320;int page3210,pageNo32,page_Index200,page_In

40、dexNo200,page_change200;pagechange()for(i=0;i<32;i+)for(j=0;j<10;j+)pageij=10*i+j;pageNoi=i;Ram_Make()int x,y;Loop1:l=random(319);if(l>1)m=l+1;elsegoto Loop1;Loop2:x=random(319);if(x<l-1)n=x;o=n+1;elsegoto Loop2;Loop3:y=random(319);if(y>o)p=y;elsegoto Loop3;fifo()for(s=4;s<=32;s+)p

41、age_change0=page_IndexNo0;int_count=1;page_count=1;for(h=1;h<5*M;h+)if(page_IndexNoh!=page_IndexNoh-1)page_count+=1;for(t=0;t<s;t+)if(page_IndexNoh=page_changet)goto Loop8;else if(page_IndexNoh!=page_changet && page_changet=999)page_changet=page_IndexNoh;int_count+;goto Loop8;for(k=0;k

42、<s;k+)page_changek=page_changek+1;page_changes-1=page_IndexNoh;int_count+=1;Loop8:;v=int_count/page_count;vcs-4=1-v;printf("Vc for page %d: vc%d=%.3f $ ",s,s-4,vcs-4);for(i=0;i<200;i+)page_changei=999;lru()int q,temp;for(s=4;s<=32;s+)page_change0=page_IndexNo0;page_count=1;int_cou

43、nt=1;for(h=1;h<5*M;h+)if(page_IndexNoh!=page_IndexNoh-1)page_count+=1;for(t=0;t<s;t+)if(page_IndexNoh!=page_changet && page_changet=999)page_changet=page_IndexNoh;int_count+;goto Loop9;else if(page_IndexNoh=page_changet)for(q=t;q<s;q+)if(page_changeq+1!=999)temp=page_changeq;page_ch

44、angeq=page_changeq+1;page_changeq+1=temp;goto Loop9;for(k=0;k<s;k+)page_changek=page_changek+1;page_changes-1=page_IndexNoh;int_count+=1;Loop9:v=int_count/page_count;vcs-4=1-v;printf("The vc for the page %d: vc%d=%.3f $ ",s,s-4,vcs-4);for(i=0;i<200;i+)page_changei=999;opt()int i,coun

45、t32,max,j;for(j=0;j<32;j+)countj=0;for(s=4;s<=32;s+)page_change0=page_IndexNo0;page_count=1;int_count=1;for(h=1;h<5*M;h+)if(page_IndexNoh!=page_IndexNoh-1)page_count+=1;for(t=0;t<s;t+)if(page_IndexNoh=page_changet)goto Loop10;else if(page_IndexNoh!=page_changet && page_changet=99

46、9)int_count+;goto Loop10;for(t=0;t<s;t+)for(i=h;i<5*M;i+)if(page_changet=page_IndexNoi)countt=i;goto Loop11;page_changet=page_IndexNoh;int_count+=1;goto Loop10;Loop11:;max=0;for(t=0;t<s;t+)if(countt>max)max=countt;for(t=0;t<s;t+)if(countt=max)page_changet=page_IndexNoh;int_count+=1;Lo

47、op10:;v=int_count/page_count;,s,s-4,vcs-4);vcs-4=1-v;printf("The vc for page %d: vc%d=%.3f $for(i=0;i<200;i+)page_changei=999;main()char c;Loop4:clrscr();for(i=0;i<320;i+)addressi=rand();for(i=0;i<200;i+)page_changei=999;printf("Put The Value Of The M: ");scanf("%d"

48、,&M);pagechange();for(j=0;j<M;j+)Ram_Make();page_Index5*j+0=l;page_IndexNo5*j+0=l/10;page_Index5*j+1=m;page_IndexNo5*j+1=m/10;page_Index5*j+2=n;page_IndexNo5*j+2=n/10;page_Index5*j+3=o;page_IndexNo5*j+3=o/10;page_Index5*j+4=p;page_IndexNo5*j+4=p/10;for(k=0;k<5*M;k+)printf("page_Index%

49、d=%d,page_IndexNo%d=%dn",k,page_Indexk,k,page_IndexNok);printf("n");Loop5:printf("select the method for page_exchange:n");printf("1.)FIFOn2.)LRUn3.)OPTn");printf("Put The select of The method: ");scanf("%s",&r);switch(r) case '1':fif

50、o();break;case '2':lru();break;case '3':opt();break;default:printf("n");printf("Put the value between 1 to 3 !n");goto Loop5;Loop6:printf("n");printf("Do You Want to do againy/n:");scanf("%s",&c);if(c='y')goto Loop4;else i

51、f(c='n')exit;elseprintf("Select for 'y' and 'n'!n");goto Loop6;實驗五 Windows XP 虛擬內(nèi)存管理一實驗目的1)了解存儲器管理以及虛擬存儲器管理的基本原理2) 了解和學習Windows系統(tǒng)管理工具中關于內(nèi)存管理的設置和使用;二實驗環(huán)境需要準備一臺運行 Windows XP操作系統(tǒng)的計算機。三背景知識虛擬存儲器技術是當代計算機中廣泛采用的內(nèi)存管理方案,在Windows XP中合理的進行虛擬內(nèi)存的設置,可以更有效的提高系統(tǒng)的工作效率。利用系統(tǒng)自帶的系統(tǒng)監(jiān)視器可以

52、查看虛擬內(nèi)存的使用情況,根據(jù)使用情況可以靈活的進行虛擬內(nèi)存的管理。四 實驗內(nèi)容與步驟啟動并進入 Windows環(huán)境,單擊Ctrl + Alt + Del 鍵,或者右鍵單擊任務欄,在快捷菜單 中單擊“任務管理器”命令,打開“任務管理器”窗口。步驟1:當前機器中由你打開,正在運行的應用程序有:1)實驗五 _Windows_XP_l擬內(nèi)存管理-Microsoft Word步驟2:單擊“進程”選項卡,一共顯示了33個進程。請試著區(qū)分一下,其中:系統(tǒng)(SYSTEM)進程有19個,填入表2-1中。表2-1實驗記錄映像名稱用戶名CPU使用率內(nèi)存使用進程實現(xiàn)的功能Svchost.exeSYSTEM004416

53、KNT Kernel &SystemService.exeSYSTEM003272KWindows會話管理器sqlservr.exeSYSTEM009580KClient Server Runtime ProcessLMS.exeSYSTEM002912K服務和控制器應用程序MDM.EXESYSTEM003424KLocal SecurityAuthorityProcessInetinfo.exeSYSTEM009780K本地會話管理器服務Spoolsv.exeSYSTEM005612KWindows服務主進程ati2evxx.exeSYSTEM004024K360主動防御服務模塊Svchost.exeSYSTEM0

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論