?? ass.html
字號:
<html><head><meta http-equiv="Content-Language" content="zh-cn"><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>操作系統實驗安排</title></head><body><p align="center"><font size="6">操作系統實驗安排</font></p><p>實驗地點:B3-239</p><p>實驗時間:第6周-第13周,每周三3-4節</p><p>指導老師:羅綿川</p><p>實驗要求:</p><p>1。所有的實驗必須獨立完成</p><p>2。實驗一、二、三的操作系統環境為windows,使用vc,實驗四的操作系統環境為linux,C編譯器使用gcc。</p><p>3。第14周周3提交實驗報告,每個實驗寫一份實驗報告。實驗報告要求提交打印版,并且刻一張光盤,光盤內容包括你的每個實驗的源程序以及實驗報告的電子版。也可以全班同學刻一張光盤,但必須每個同學一個目錄,目錄的名字為同學的姓名。</p><p>實驗內容:</p><p>一、進程與線程</p><p>下載相關的<a href="process_and_thread.pdf">閱讀材料</a></p><p>1. 在windows 下編寫一個控制臺應用程序,命名為an_ch2_1b。這個程序不斷地輸出如下行:<br>Those output come from child,[系統時間]<br>另外寫一個控制臺應用程序,命名為an_ch2_1a。這個程序創建一個子進程,執行an_ch2_1b。這個程序不斷地輸出如下行:<br>Those output come from child,[系統時間]<br>觀察程序運行的結果,并對你看到的現象進行解釋。你如何修改程序使得兩個進程的輸出出現在兩個不同的控制臺窗口上?</p><p><br>2。在windows 環境下編寫一個控制臺應用程序,輸出系統中正在運行的進程的信息,包括進程號、進程所運行的程序、進程的啟動時間、在核心態下消耗的時間以及在用戶態下消耗的時間。</p><p><br>3。在windows 環境下編寫一個控制臺應用程序,程序中有一個共享的整型變量shared_var,初始值為0;創建一個線程并使其立即與主線程并發執行。新創建的線程與主線程均不斷地循環,并輸出shared_var 的值。主線程在循環中不斷地對shared_var 進行加1操作,即每次循環shared_var 被加1;而新創建的線程則不斷地對shared_var 進行減1 操作,即每次循環shared_var 被減1。觀察程序運行的結果,并對你看到的現象進行解釋。</p><p>二、進程、線程之間的同步</p><p>下載相關的<a href="ipc.pdf">閱讀材料</a></p><p>1。生產者消費者問題(信號量+mutex)</p><p>參考教材中的生產者消費者算法,創建5個進程,其中兩個進程為生產者進程,3個進程為消費者進程。一個生產者進程試圖不斷地在一個緩沖中寫入大寫字母,另一個生產者進程試圖不斷地在緩沖中寫入小寫字母。3個消費者不斷地從緩沖中讀取一個字符并輸出。為了使得程序的輸出易于看到結果,仿照閱讀材料中的實例程序,分別在生產者和消費者進程的合適的位置加入一些隨機睡眠時間。</p><p>可選的實驗:在上面實驗的基礎上實現部分消費者有選擇地消費某些產品。例如一個消費者只消費小寫字符,一個消費者只消費大寫字母,而另一個消費者則無選擇地消費任何產品。消費者要消費的產品沒有時,消費者進程被阻塞。注意緩沖的管理。</p><p>2。用信號量和mutex方式實現睡覺的理發師問題</p><p>教材和相關的閱讀材料中對讀者寫者問題算法均有描述,但這個算法在不斷地有讀者流的情況下,寫者會被阻塞。編寫一個寫者優先解決讀者寫者問題的程序,其中讀者和寫者均是多個進程,用信號量作為同步互斥機制。</p><p>三、實現一個文件查找程序</p><p>仿照unix操作系統中的find命令,在windows上實現一個find命令。<font class="f14" id="zoom0"><font color="#000000">find命令從指定的目錄下開始,遞歸地查找指定文件。其命令格式如下:</p><p><strong>find PATH -option 參數 [-print] [-exec 命令 {} \;]</strong></p><p>PATH:查找的起始目錄。</p><p>-option 參數:用來控制搜索方式,具體如下(以下只給我常用的):</p><p> -name "文件":指定要查找的文件名,可以有通配符?*等。</p><p> -prune 目錄:指出搜索時不搜索該目錄。</p><p> -mtime +n或-n:按時間搜索,+n:表示n天之前修改過的文件;-n:表示今天到n天前之間修改過的文件。</p><p> -ctime +n或-n:也是按時間查找,+n:表示n天之前創建的文件;-n:表示今天到n天前之間創建的文件。</p><p> -mulstream:如果是多流的文件,查找流的名字</p><p> -print:將搜索結果輸出到標準輸出。</p><p>提示:有關多流文件的介紹,請看<a href="intro_of_mulstream.pdf">文檔</a>。其他相關的API請查看MSDN.</p><p>可選的實驗1:實現-exe選項。</p><p> -exec:對查找到的每一個結果實行指定的程序。格式如下:</p><p> -exec 程序名</p><p>提示:執行指定的程序可以創建一個進程執行</p><p>可選的實驗:</p><p> 將你實現的find命令改為用多線程的方式實現。比較多線程實現的find與單線程實現的find的執行結果、效率等,并在實驗報告中給出你的解釋。</p><p>四。編寫一個簡單的unix命令解釋程序,詳細要求<a href="unix_shell.pdf">點擊這里</a></p></font></font></body></html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -