目錄實驗一 windows程序初識 3
實驗二程序管理 4
實驗三程序同步的經典演算法 7
實驗四儲存管理 10
實驗一 windows程序初識
1、 實驗目的
2、 實驗內容和步驟
執行結果 (如果執行不成功,則可能的原因是什麼?) :
步驟4:執行結果 (如果執行不成功,則可能的原因是什麼?) :
因為此程式是個死迴圈,所以時間無限。
步驟5:分別遮蔽while迴圈中的兩個for迴圈,或調整兩個for迴圈的次數,寫出執行結果。
遮蔽i迴圈:
遮蔽j迴圈:
調整迴圈變數i的迴圈次數:
調整迴圈變數j的迴圈次數:
3、 實驗結論
通過實驗可以得知執行乙個程式cpu的使用情況是不同的,同時與迴圈的次數無關,和當前計算的複雜情況有關。實驗得出的資料可以可以說明這一點。
實驗二程序管理
1、實驗目的
2、實驗內容和步驟
(1). 建立程序
按下ctrl+alt+del,呼叫windows的任務管理器,記錄程序相關的行為屬性:
pid:3676,控制代碼數:11
記憶體使用:1080k頁面錯誤:263頁面快取:15k
在「命令提示符」視窗加入引數重新執行生成的可執行檔案。執行結果:
按下ctrl+alt+del,呼叫windows的任務管理器,記錄程序相關的行為屬性:
pid:2821控制代碼數:7
記憶體使用:832k頁面錯誤:263頁面快取:15k
修改清單2-1中的程式,將nclone的定義和初始化方法按程式注釋中的修改方法進行修改,編譯成可執行檔案(執行前請先儲存已經完成的工作)。再按步驟2中的方式執行,看看結果會有什麼不一樣。執行結果:
第一次修改:結果不變。
第二次修改:是乙個死迴圈,不斷彈窗。
從中你可以得出什麼結論:
nclone的作用:
控制程式的執行,當nclone大於等於5時可跳出程式。
變數的定義和初始化方法(位置)對程式的執行結果有影響嗎?為什麼?
_有,nclone被修改後會對程式的結束控制產生影響
(2). 父子程序的簡單通訊及終止程序
在vc的工具欄單擊「execute program」(執行程式) 按鈕,或者按ctrl + f5鍵,或者在「命令提示符」視窗執行步驟1中生成的可執行檔案。執行結果:
按源程式中注釋中的提示,修改源程式2-2,編譯執行(執行前請先儲存已經完成的工作)。執行結果:
在程式中加入跟蹤語句,或除錯執行程式,同時參考msdn中的幫助檔案createprocess()的使用方法,理解父子程序如何傳遞引數。給出程式執行過程的大概描述:
通過main(intargc,char*argv)傳遞引數,每次執行時先檢測argc的值,若小於1,程式執行結束,否則繼續往下執行
createprocess() 函式有5個核心引數?本實驗程式中設定的各個引數的值是:
a. szfilename;
b. szcmdline;
c. null;
d. null;
e. false;
f. create_new_console;
g. null;
h. null。
按源程式中注釋中的提示,修改源程式2-2,編譯執行。執行結果:
參考msdn中的幫助檔案createmutex()、openmutex()、releasemutex()和waitforsingleobject()的使用方法,理解父子程序如何利用互斥體進行同步的。給出父子程序同步過程的乙個大概描述:
createmutex()建立互斥體,openmutex()開啟互斥體,releasemutex()釋放互斥體,waitforsingleobject()檢測hhandle事件的訊號狀態,通過這些方法可實現當前只有乙個程序被建立或使用,實現程序的同步。
實驗結論
通過對程序的操作,如建立程序,實現對程序的簡單控制。建立互斥體,解決了程序的同步問題,兩者相互使用,使程序的運**況得到了很好的管理。
實驗三程序同步的經典演算法
1、實驗目的
2、實驗內容和步驟
(1). 生產者消費者問題
在「命令提示符」視窗執行步驟1中生成的可執行檔案。執行結果:
仔細閱讀源程式,找出建立執行緒的windows api函式,回答下列問題:執行緒的第乙個執行函式是什麼(從**開始執行)?它位於建立執行緒的api函式的第幾個引數中?
答:第乙個執行函式是producer;位於第三個引數中。
修改清單3-1中的程式,調整生產者執行緒和消費者執行緒的個數,使得消費者數目大與生產者,看看結果有何不同。執行結果:
_從中你可以得出什麼結論:
生產速度快,生產者經常等待消費者;反之,消費者經常等待。
修改清單3-1中的程式,按程式注釋中的說明修改訊號量emptysemaphore的初始化方法,看看結果有何不同。執行結果:
null
根據步驟4的結果,並檢視msdn,回答下列問題
1)createmutex中有幾個引數,各代表什麼含義。
答:有三個引數.
1.lpsecurity_attributeslpmutexattributes代表安全屬性的指標
2.boolbinitialowne代表布林binitialowner
3.lpctstrlpname代表lpctstr型別lpname
2)createsemaphore中有幾個引數,各代表什麼含義,訊號量的初值在第幾個引數中。
四個引數:
1、表示採用不允許繼承的預設描述符
2、設定訊號機的初始計數
3、設定訊號機的最大計數
4、指定訊號機物件的名稱。
3)程式中p、v原語所對應的實際windows api函式是什麼,寫出這幾條語句。
p:take()v:append()
4)createmutex能用createsemaphore替代嗎?嘗試修改程式3-1,將訊號量mutex完全用createsemaphore及相關函式實現。寫出要修改的語句:
可以mutex=createsemaphore(null,false,false,null);
(2). 讀者寫者問題
根據實驗(1)中所熟悉的p、v原語對應的實際windows api函式,並參考教材中讀者、寫者問題的演算法原理,嘗試利用windows api函式實現第一類讀者寫者問題(讀者優先)。
3、 實驗結論
將訊號量看作生產或消費的乙個物件,對訊號量的生成和銷毀操作如同p操作和v操作一樣,生成者消費者問題模擬的就是對訊號量的生成和銷毀,其中牽涉了訊號量的同步,這也是該問題為何稱為同步的經典問題的原因。
實驗四儲存管理
1、 實驗目的
2、 實驗內容和步驟
(1)觀察和調整windows 2000/xp的記憶體效能。
1) 什麼是「分頁過程」?
分頁過程就是將資訊從主記憶體移動到磁碟進行臨時儲存的過程。
2) 什麼是「記憶體共享」?
允許訪問某些記憶體空間而不危及它和其他應用程式的安全性和完整性
3) 什麼是「未分頁合併記憶體」和「分頁合併記憶體」?
windows 2000中,未分頁合併記憶體的最大限制是多少?
未分頁合併記憶體:分頁合併記憶體是儲存遲早需要的可分頁**或資料的記憶體部分。
分業合併記憶體:未分頁合併記憶體包含必須駐留在記憶體中的占用**或資料。
在windows200中為分業合併記憶體的最大限制是256mb。
4) windows 2000分頁檔案預設設定的最小容量和最大容量是多少?
記憶體數量的1.5倍作為分頁檔案的最小容量,這個最小容量的兩倍作為最大容量。
請在表4-3中記錄:
表4-3 實驗記錄
請描述使用第二個例項占用的記憶體與使用第乙個例項時的記憶體對比情況:
第二個例項占用記憶體22612k,比第乙個例項占用的記憶體大很多。
總數 (k) :98640k
分頁數:52840
未分頁 (k) :45800k_
仍以剛才開啟觀察的應用程式 (例如word) 為例,請在表4-4中記錄:
表4-4 實驗記錄
請在表4-5中記錄:
表4-5 實驗記錄
請記錄:
所選驅動器 (c: ) 的頁面檔案大小:11
驅動器:_c:_
可用空間:________31637_mb
所選驅動器(d:)的頁面檔案大小:(如果有的話)驅動器d:
可用空間: 20682mb
初始大小(mb):_756mb_
最大值(mb): 1512mb
所有驅動器頁面檔案大小的總數:
允許的最小值: 2mb
推薦: _1522mb
當前已分配: 756mb
請記錄:
物理記憶體(k)
總數:___1039660k______
可用數:_502544k________
系統快取:504332k________
認可用量(k)總數:____400156k___
限制:____1714520k_________
作業系統實驗指導書
信電工程學院周巨集生 2015年3月 目錄前言 1 實驗要求 2 實驗準備 3 實驗一程序管理 4 實驗二儲存管理 6 實驗三裝置管理 9 實驗四檔案管理 13 作業系統 是計算機及相關專業的必修課程,在學習計算機作業系統理論的同時,通過實驗可以加強對作業系統基本原理的理解。讓學生通過上機實驗驗證計...
作業系統實驗指導書
計算機作業系統 實驗指導書 實驗報告內容規範 實驗報告內容要求如下 課程名稱 實驗日期 實驗名稱 實驗型別 班級 姓名 學號 指導教師 一 實驗目的及要求 本次實驗所涉及並要求掌握的知識點。二 實驗環境 本次實驗所使用的裝置和軟體。三 實驗內容 本次實驗的具體內容。四 實驗步驟 按照實驗過程列出實驗...
作業系統實驗指導書
李玲娟李剛編寫 李玲娟審核 南京中醫藥大學資訊科技學院 2005年10月 編者說明 軟體技術是 作業系統 最重要的計算機系統軟體,同時也是電腦科學與技術專業的一門核心專業基礎課,其發展極為迅速。學習計算機軟體技術,特別是計算機作業系統技術,除了需要刻苦努力外,還需要掌握軟體和作業系統的原理與設計技巧...