操作系統(tǒng)實(shí)驗(yàn)報(bào)告1_第1頁
操作系統(tǒng)實(shí)驗(yàn)報(bào)告1_第2頁
操作系統(tǒng)實(shí)驗(yàn)報(bào)告1_第3頁
操作系統(tǒng)實(shí)驗(yàn)報(bào)告1_第4頁
操作系統(tǒng)實(shí)驗(yàn)報(bào)告1_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25、FIND() 函數(shù)找到第一個(gè)就緒過程,如果當(dāng)前沒有過程已在運(yùn)行,就直接運(yùn)行此過程,如果有,則比較兩者的優(yōu)先數(shù),然后運(yùn)行優(yōu)先權(quán)高者。七、源程序:#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)程序結(jié)束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("進(jìn)程d正在執(zhí)行n",ep);else if(pcbpd.priority<pcbep.priority)pcbep.status='r'printf(" 讀取進(jìn)程%dn",pcbpd.id);pcbpd.status='e'ep=pd;printf(" 運(yùn)行進(jìn)程%dn",ep);i=stack1ep;addr=stack2ep;switch(ep) case 1:process1();break;case 2:process2();break;case 3:process

29、3();break;default:printf(" 當(dāng)前進(jìn)程出現(xiàn)錯(cuò)誤%dn",ep);break;int process1()if(addr='m') goto m;i=1;a:printf(" 進(jìn)程1在信號(hào)量sem1上調(diào)用P操作n");if(p(1,1,'m')=0) return(0);else goto m;m:printf("打印進(jìn)程1.m1=%dn",m1);printf("打印進(jìn)程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(" 進(jìn)程2在信號(hào)量sem2上調(diào)用P操作n"); if(p(2,2,'m')=0) return(0); m:m1=2*m2;printf(" 進(jìn)程2在信號(hào)量sem1上調(diào)用V操作m1=%dn",m1); if(v(1,2,'n')=0) return(0);else n:printf(" 打印進(jìn)程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(" 進(jìn)程3在信號(hào)量sem2上調(diào)用P操作n");if(p(2,3,'n')=0) return(0);n:m2=i;printf(" 進(jìn)程3在sem2信號(hào)量上調(diào)用 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(" 阻塞當(dāng)前進(jìn)程%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(" 喚醒進(jìn)程%dn",w);stack1p=i;stack2p=ad;return(0);實(shí)驗(yàn)四 虛擬存儲(chǔ)器管理一、實(shí)驗(yàn)?zāi)康?、為了更好的配合操作系統(tǒng)有關(guān)虛擬存儲(chǔ)器管理章節(jié)的教學(xué)。2、加深和鞏固學(xué)生對(duì)于請(qǐng)求頁式存儲(chǔ)管理的了解和掌握。3、提高學(xué)生的上機(jī)和編程過程中處理具體問題的能力。二、實(shí)驗(yàn)內(nèi)容請(qǐng)求頁式存儲(chǔ)管理是一種常用的虛擬存儲(chǔ)管理技術(shù)。本實(shí)驗(yàn)的目的是通過請(qǐng)求頁式存儲(chǔ)管理中頁面置換算法模擬設(shè)計(jì),了解虛擬存

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

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

36、訪問相同指令時(shí),該指令所對(duì)應(yīng)的頁不在內(nèi)存的次數(shù)。三、實(shí)驗(yàn)要求實(shí)驗(yàn)課時(shí)4 學(xué)時(shí)。 要求畫出利用各種算法置換時(shí)的置換圖,并可以分析說明。編程可分為幾個(gè)部分完成:指令的分頁,算法的選擇,算法的實(shí)現(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 */四、源程序指導(dǎo)#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;實(shí)驗(yàn)五 Windows XP 虛擬內(nèi)存管理一實(shí)驗(yàn)?zāi)康?)了解存儲(chǔ)器管理以及虛擬存儲(chǔ)器管理的基本原理2) 了解和學(xué)習(xí)Windows系統(tǒng)管理工具中關(guān)于內(nèi)存管理的設(shè)置和使用;二實(shí)驗(yàn)環(huán)境需要準(zhǔn)備一臺(tái)運(yùn)行 Windows XP操作系統(tǒng)的計(jì)算機(jī)。三背景知識(shí)虛擬存儲(chǔ)器技術(shù)是當(dāng)代計(jì)算機(jī)中廣泛采用的內(nèi)存管理方案,在Windows XP中合理的進(jìn)行虛擬內(nèi)存的設(shè)置,可以更有效的提高系統(tǒng)的工作效率。利用系統(tǒng)自帶的系統(tǒng)監(jiān)視器可以

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

53、KNT Kernel &SystemService.exeSYSTEM003272KWindows會(huì)話管理器sqlservr.exeSYSTEM009580KClient Server Runtime ProcessLMS.exeSYSTEM002912K服務(wù)和控制器應(yīng)用程序MDM.EXESYSTEM003424KLocal SecurityAuthorityProcessInetinfo.exeSYSTEM009780K本地會(huì)話管理器服務(wù)Spoolsv.exeSYSTEM005612KWindows服務(wù)主進(jìn)程ati2evxx.exeSYSTEM004024K360主動(dòng)防御服務(wù)模塊Svchost.exeSYSTEM0

溫馨提示

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

評(píng)論

0/150

提交評(píng)論