第一篇:實驗一 Windows 2000XP操作系統教案
實驗一Windows 2000XP操作系統
數計學院教師實驗教案
課程名稱:操作系統
任課專業班級:計算機應用技術 實驗學時: 2學時
一、實驗項目名稱:
Windows 2000/XP操作系統(第1個實驗)
二、實驗目的和要求:
目的:對日常使用的Windows 2000/XP系統進行較深入的了解。要求:了解Windows 2000/XP操作系統的體系結構;了解Windows 2000/XP操作系統的主要管理功能。
三、實驗內容
1、了解所用系統的常規屬性,計算機名及所在工作組
2、使用Windows 2000/XP任務管理器,對應用程序、進程、性能、聯網等方面進行查看和管理。
3、使用Windows 2000/XP系統性能監視器,跟蹤內存、硬盤、CPU、緩存、文件系統、網絡等方面的性能。
四、實驗原理:
Windows 2000/XP采用基于對象的技術來設計系統,提出了客戶/服務器系統結構,該結構在純內核結構的基礎上做了一些擴展,它融合了層次式結構和純微內核結構的特點。對操作系統影響很大的組件放在內核下運行,而其他一些功能則在內核外實現。
五、實驗步驟:
1、查看系統的常規屬性
①、選擇我的電腦單擊鼠標右鍵,選擇“屬性”打開“系統屬性”對話框;
實驗一Windows 2000XP操作系統
②、選擇“常規”選項卡,查看系統常規屬性;
③、選擇“計算機名”選項卡查看計算機名及所在工作組。
2、使用Windows 2000/XP任務管理器,對應用程序、進程、性能、聯網等方面進行查看和管理。①、用“Ctrl”+“A1t”+“Delete”(或 “Ctrl”+“Shift”+“Esc”)組合鍵打開任務管理器。觀察任務管理器下方的狀態欄,察看當前運行的進程總數、CPU的占有率以及提交更改的信息。
②、選擇“應用程序”選項卡,觀察當前正在運行的應用程序以及它們的狀態。在“應用程序”選項卡中可以看到當前用戶正在前臺運行的應用程序,以及這些應用程序的狀態,其狀態一般為“正在運行”或“無反應”。通過“結束任務”按鈕可以結束一個正在運行的應用程序,所以若某個應用程序在運行時出現“無反應”,可用此方法強行關閉該應用程序?!扒袚Q至”按鈕可轉向被選中的應用程序,而“新任務”按鈕則可以打開一個新的程序。
③、選擇“進程”選項卡,觀察用戶進程和系統進程以及它們所屬的用戶、CPU的占用率、內存的使用情況等。值得注意的是,在該選項卡右下角有一個“結束進程”按鈕,可以結束被選中的進程,但一些系統的關鍵進程是不可以結束的。實際應用中,可以發現并關閉一些惡意的程序(如病毒等),它們大量地占有CPU和內存,影響機器正常運行。
實驗一Windows 2000XP操作系統
④、選擇“性能”選項卡,觀察系統資源的占用情況?!靶阅堋边x項卡上部圖形表示CPU和頁面文件的使用狀況,下面部分有句柄、進程和線程的總數,物理內存、核心內存的使用情況,以及認可用量等信息。從這些數據可以清楚地看出系統資源的當前使用情況和歷史記錄,從而可以更好地管理系統。
實驗一Windows 2000XP操作系統
3、使用Windows 2000/XP系統性能監視器,跟蹤內存、硬盤、CPU、緩存、文件系統、網絡等方面的性能。
①、在Windows XP 的“控制面板”中雙擊“管理工具”,再雙擊“性能”快捷方式,打開系統性能監視器窗口。在這個窗口中,紅線表示當前時刻,綠線表示CPU的性能變化,藍線反映物理硬盤的運行情況,黃線反映內存運行情況。單擊窗口右下方的選項,查看所選項目的詳細運行情況,包括最后(當前)、最大、最小、平均值的詳細情況。
②、選擇工具欄上的“添加(Ctrl+I)”按鈕,彈出 “添加計數器”窗口。在該窗口的“性能對象”中選擇“Processor”,“從列表選擇計數器”中選中“Interrupt Time”選項,單擊“添加”按鈕,從系統監視器中可以看出最下面多了一個監視的任務。
③、在系統性能監視器中,打開“添加計數器”窗口,在“添加計數器”窗口的“性能對象”中選擇“Memory”,在“從列表選擇計數器”中分別選中“pages
實驗一Windows 2000XP操作系統
input/sec”、“pages 0utput/sec”和“page Faults/sec”選項,單擊“添加”按鈕,從系統監視器中可以看出最下面多了3個監視內存的任務。
六、參考文獻:
1、《操作系統教程》,第3版,孫鐘秀主編,高等教育出版社。
2、《計算機操作系統教程習題解答與實驗指導書》,第2版,張堯學編著,清華大學出版社。
3、《操作系統實驗與課程設計》,龐麗萍編,華中科技大學出版社。
第二篇:網絡操作系統實驗教案
網絡操作系統實驗指導書
2006.3
網絡操作系統實驗教案
孫梅
一、實驗名稱: 實驗
一、網絡操作系統的安裝(2學時)
二、儀器、設備: 計算機、網絡互聯設備路由器或交換機
三、參考資料:《計算機網絡操作系統——Windows Server 2003管理與配置》張浩軍編著,中國水利水電出版社。
四、實驗目的
1、通過對Windows Server 2003、Windows Server 2003 workstation安裝的實際操作,了解網絡操作系統應用環境建立的初步過程,在對Windows Server 2003、Windows Server 2003 workstation系列產品具體認識的基礎上,明確域、主域服務器、額外域服務器、獨立服務器、工作組等概念,對組網和規劃建立初步的認識。
2、了解網絡系統的文件系統FAT16、FAT32、NTFS等概念。
五、實驗重點、難點
重點:域控制器的安裝
六、實驗內容
(1)進行安裝前的硬、軟件準備,制作資源調查表,規劃網絡拓撲圖(2)安裝Windows Server 2003操作系統、主域控制器、額外域控制器
(3)安裝Windows Server 2003 workstation,將不同子網的客戶機添加到域
七、實驗原理
(1)根據實驗室具體情況作安裝前準備,制作資源調查表、根據實驗室的具體情況規劃網絡拓撲圖。
(2)了解安裝命令參數及應用場合。
(3)了解網絡系統的文件系統FAT16、FAT32、NTFS等概念。(4)選擇系統分區、引導分區和合適的文件系統。
(5)按步驟實際安裝Windows Server 2003主域控制器、額外域控制器和Windows Server 2003 workstation,將不同子網的客戶機添加到域。
(6)若有異常情況,參照常見故障表進行分析并尋求解決方案。
八、注意事項
網絡互聯設備的工作狀態。
一、實驗名稱: 實驗
二、網絡操作系統中的用戶、組和域的管理(4學時)
二、儀器、設備:在互連網絡機房上機,并具有Windows Server 2003 環境
三、參考資料:《計算機網絡操作系統——Windows Server 2003管理與配置》張浩軍編著,中國水利水電出版社。
四、實驗目的
通過對Windows Server 2003 環境下對用戶、組和域實施管理的各種實際操作,了解網絡操作系統資源管理的基本概念,認識創建組和域的目的、作用以及用戶、組、域互相間的關系。進一步,通過對用戶、組權限設置、建立域間委托關系的實驗,透徹地理解用戶及組權限與用戶真正擁有的網絡資源訪問權限之間的關系,培養對網絡資源整體規劃及具體實施的能力。
五、實驗重點、難點
重點:用戶、組權限設置
六、實驗內容
(1)使用系統管理員身份登錄Windows Server2003操作系統。(2)進行增加、刪除、編輯用戶帳號和用戶組的操作。
(3)設置用戶組和用戶的不同訪問權限,注銷后重新用新增的用戶進行登錄訪問網絡資源。
(4)在網絡范圍內建立Windows Server2003域之間的信任關系,并進行登錄。
七、實驗原理
1、域用戶管理器和用戶管理器 域用戶管理器具有以下功能: 創建、修改、刪除域中的用戶帳戶 管理域中的組和組中帳戶間的成員關系 管理域的安全策略
2、用戶帳戶的創建與管理
3、創建新用戶帳戶
4、復制用戶帳戶
5、刪除用戶帳戶
6、創建新的全局組
7、創建新的本地組 要求:
a)創建一個名為Domain TestGroup的全局組,加入上一節新建的一些測試帳戶。b)創建一個名為Local TestGroup的本地域,加入Domain TestGroup全局組及其他一些用戶。
c)刪除局部組和全局組,注意構成組的帳戶操作前后是否變化。
8、設置用戶權限
要求: 為本地組Local TestGroup授予在本機登錄的權限。
9、建立雙向信任關系
設置兩個域“wlgc1”和“wlgcX”,要求使域“wlgc”的用戶可以訪問域“wlgcX”的資源,域“wlgcX”的用戶可以訪問域“wlgc1”的資源。
10、撤銷信任關系
八、注意事項
網絡互聯設備的工作狀態。
一、實驗名稱: 實驗
三、基于TCP/IP的網絡服務配置(3學時)
二、儀器、設備:在互連網絡機房上機,并具有Windows Server 2003 環境
三、參考資料:《計算機網絡操作系統——Windows Server 2003管理與配置》張浩軍編著,中國水利水電出版社。
四、實驗目的
通過對TCP/IP協議的安裝和參數配置的實際操作,掌握利用TCP/IP協議建立LAN和WAN及其網間的互聯和路由。通過對基于TCP/IP協議的各種網絡服務的創建和配置了解DNS服務器、DHCP服務器、www.tmdps.cnpter ……… Staff Aaron Ann Baker ……… ……… ……… ……… Maggie ……… Grade Document Course
假設:上述結構是某系文件服務器的一部分。
? 目錄Users下為所有注冊用戶的對應主目錄,由管理員建立。
? 用戶對自己對應的主目錄有完全控制權限,可創建子文件夾、文件、改變屬性、賦予別的用戶相應的存取權限;對其他用戶的主目錄沒有存取權限(除非其他用戶愿意賦予一定的權限)。
? Message目錄存放本系學生與教工的信息,教工信息存于Staff目錄中,學生以班級為單位組織,圖中僅顯示計算機班對應目錄Compter,這些文件夾由系統管理員建立。? Compter目錄中的文件Document包括學生的固定信息,如年齡、性別、身份證號等,由系檔案管理員創建和維護,系領導小組成員及該班班主任有讀的權限。
? Compter目錄中的Grade為學生成績文件,由系教學秘書創建和維護,所有學生有讀的權限,教師有讀和寫的權限。
? Staff目錄中的文件Document包括教師的固定信息,如年齡、性別、身份證號等,由系檔案管理員創建和維護,所有教工有讀的權限。
? Staff目錄中的Course為教師—課程列表,由系教學秘書創建和維護,所有教師和學生有讀的權限。
生成共享文件夾
1.2.3.4.5.1.2.3.4.選擇開始 → 程序 → 資源管理器,打開資源管理器。
單擊D:盤符前的加號或雙擊D:盤符,展開D盤目錄樹。
右鍵單擊message目錄,選擇共享,打開“message屬性”對話框。選擇共享選項卡,選中“共享為”單選項,使用缺省共享名,用戶個數設定為“無限制”。單擊“確定”,返回資源管理器,message目錄圖標下方多了表示共享的手形標志。
設置共享文件夾權限
右鍵單擊message目錄,選擇共享,打開“message 屬性”對話框。單擊“權限”按鈕,打開“通過共享訪問的權限”對話框。單擊“添加”按鈕,打開“添加用戶及組”對話框。
在名稱列表中列出了所有本地組和全局組,單擊“顯示用戶”可在名稱表中列出所有用戶。在名稱列表中選中要授予共享權限的組或用戶,單擊“添加”按鈕,則被添加的組或用戶列于添加名稱列表中,并具有選定的訪問類型。重復此過程,可賦予多個組或用戶共享訪問權限。5.單擊“確定”,返回共享權限設置窗口,名稱列表中列出了所有對該目錄擁有共享訪問權限的組和用戶。6.單擊“確定”,返回目錄屬性對話框。7.單擊“確定”,返回資源管理器。
為共享區設定別名
一個共享區可設置一個或多個別名,以滿足不同用戶的使用習慣。
1.右鍵單擊共享目錄,選擇共享,打開“message屬性”對話框。與生成共享區時相比,多了一個“新共享”按鈕。
2.單擊“新共享”按鈕,打開如圖新共享對話框。輸入共享區別名,如果需要針對該共享區別名設置權限,單擊“權限”按鈕。3.單擊“確定”,加入新共享名,單擊“確定”返回資源管理器。
設置目錄權限
1.選擇開始 → 程序 → 資源管理器,打開資源管理器。
2.單擊D:盤符前的加號或雙擊D:盤符,展開D盤目錄樹。
3.右鍵單擊要設置權限的目錄,選擇屬性,打開目錄屬性對話框。4.安全性選項卡。
5.單擊“權限”按鈕,打開目錄權限設置對話框。初始,Everyone組有完全控制的權限。6.選中Everyone組,單擊“刪除”按鈕,取消Everyone組的控制權限。單擊“添加”按鈕,打開“添加用戶及組”對話框,在名稱列表中選中要授予共享權限的組或用戶,單擊“添加”按鈕,則被添加的組或用戶列于添加名稱列表中,并具有選定的訪問類型。重復此過程,可賦予多個組或用戶共享訪問權限。7.單擊“確定”,返回目錄權限設置窗口,名稱列表中列出了所有對該目錄擁有訪問權限的組和用戶。8.單擊“確定”,返回目錄屬性對話框。9.單擊“確定”,返回資源管理器。
設置文件權限
設置文件權限與設置目錄權限的過程基本相同。但文件的訪問類型與目錄的訪問類型有些不同。
1.在資源管理器中,右鍵單擊要設置權限的文件,選擇“屬性”菜單項,打開文件屬性對話框。
2.選擇“安全性”選項卡,單擊“權限”按鈕,打開文件的權限對話框,由圖中可知,文件的訪問權限繼承了包含該文件的目錄的訪問權限。單擊“添加”,打開添加用戶和組對話框,根據需要授予相關用戶和組不同的訪問權限后,單擊“確定”返回文件的權限對話框。3.單擊“確定”,返回文件屬性對話框。4.單擊“確定”,返回資源管理器。
創建鏡像集
1.選擇開始 → 程序 → 管理工具(公用)→ 磁盤管理器,打開磁盤管理器。
2.單擊要建立鏡象的分區,然后,按下Ctrl的同時單擊位于另一硬盤上的一個可用分區,該區域不能小于要鏡象的分區大小。
3.選擇容錯→ 創建鏡象,開始數據傳送,建立鏡象盤。經過一段時間,完成操作,返回磁盤管理器主菜單,新建的鏡象分區與原分區具有相同的顏色標志條和驅動器號。
斷開鏡像集
1.選擇開始 → 程序 → 管理工具(公用)→ 磁盤管理器,打開磁盤管理器。
2.單擊鏡象集中的任一磁盤,即可選中鏡象集,選擇容錯→ 中斷鏡象,出現確認框。3.單擊“是”,出現確認框要求再次確認。4.單擊“是”,關閉磁盤管理器,重啟計算機后,即解除了鏡象關系。
帶區集 創建帶區集
1.選擇開始 → 程序 → 管理工具(公用)→ 磁盤管理器,打開磁盤管理器。
2.單擊一個可用空間區域,按下Ctrl的同時單擊位于不同硬盤上的可用分區,以同時選擇至少2個的可用空間區域。
3.選擇磁盤分區 → 創建帶區集,出現創建帶區集對話框。
4.顯示帶區集允許的最大容量和最小容量,輸入要創建的帶區集容量,單擊“確定”創建帶區集,并返回磁盤管理器主菜單,新建的帶區集盤符G和容量值用灰色顯示。5.選擇磁盤分區 → 立即更改,出現確認窗口。6.單擊“是”,出現緊急修復配置信息提示窗口,單擊“確定”,返回主界面,且新建的帶區集盤符G和容量值改為黑色顯示。7.單擊新建帶區集,選擇工具 → 格式化,打開格式化對話框,選擇文件系統后,單擊“開始”按鈕。格式化完成后,單擊“關閉”按鈕,返回磁盤管理器。
刪除帶區集
1.打開磁盤管理器后,單擊要刪除的帶區集。2.選擇磁盤分區 → 刪除,出現確認窗口。3.單擊“是”返回磁盤管理器,完成刪除操作。
提示:創建帶校驗帶區集與帶區集的創建過程基本相似,但至少需要三個物理硬盤,同一物理硬盤上不能選擇多于一個的可用區域。
卷集
創建卷集
1.選擇開始 → 程序 → 管理工具(公用)→ 磁盤管理器,打開磁盤管理器。
2.單擊一個可用空間區域,按下Ctrl的同時單擊位于不同硬盤上的可用分區,以同時選擇一個或多個可用空間區域。
3.選擇磁盤分區 → 創建卷集,出現創建卷集對話框。4.輸入卷集容量,單擊“確定”,返回主界面。新建的卷集盤符和容量值用灰色顯示。5.選擇磁盤分區 → 立即更改,出現確認窗口,單擊“是”,出現緊急修復配置信息提示窗口,單擊“確定”,返回主界面,且新建的卷集盤符和容量值改為黑色顯示。
6.單擊新建卷集,選擇工具 → 格式化,打開格式化對話框,單擊“開始”按鈕。格式化完成后,單擊“關閉”按鈕,返回磁盤管理器。
擴展卷集
1.打開磁盤管理器后,單擊要擴展的一個NTFS分區或卷集。
2.按下Ctrl的同時單擊可用分區,可同時選擇一個或多個可用空間區域。這些可用空間區域可分布于同一硬盤或不同硬盤上。
3.選擇磁盤分區 → 擴展卷集,顯示對話框。4.輸入卷集容量,單擊“確定”進行擴展操作。
5.卷集擴展后,不必再做格式化操作,重啟計算機后,擴展部分即可生效。
刪除卷集
1.打開磁盤管理器后,單擊要刪除的卷集。2.選擇磁盤分區 → 刪除,出現確認窗口。3.單擊“是”返回磁盤管理器,完成刪除操作。
使用性能監視器 使用網絡監視器
安裝、啟用網絡監視器
網絡監視器實際上是由網絡監視器工具和網絡監視器代理兩部分組成,要啟用網絡監視器,必須首先安裝網絡監視器工具和網絡監視器代理服務。1.選擇開始 → 設置 → 控制面板。
2.雙擊網絡圖標,打開網絡對話框,單擊服務選項卡。
3.單擊“添加”按鈕,打開“選定網絡服務”對話框,選中安裝的網絡服務“網絡監視工具和代理”,單擊“確定”,開始安裝。4.安裝完成后,顯示提示窗口,單擊“是”,重啟計算機后,打開開始 → 程序 → 管理工具(公用),網絡監視器已被包含在內,鼠標單擊即可啟動網絡監視器。
捕獲網絡數據包
打開網絡監視器后,只有啟動捕獲,才能接收、統計網絡傳輸的數據包,采集的數據可存于內存或文件中。如果保存于捕獲文件中,以后可打開進行分析。啟、停捕獲過程
在網絡監視器中,要啟動捕獲操作有三種方式:(1)選擇捕獲 → 開始(2)按下F10鍵
(3)單擊工具欄上的開始捕獲圖標(朝右的箭頭)
捕獲過程一旦啟動,將繼續直到手動停止為止。停止捕獲過程有三種方式:(1)選擇捕獲 → 停止(2)按下F11鍵
(3)單擊工具欄上的停止捕獲圖標(小方塊)
通過設置捕獲過濾程序,可以有選擇地捕獲所需的數據包,過濾條件有:
? 只捕獲(或不捕獲)使用特定協議的數據包
? 只捕獲(或不捕獲)發往或送出特定計算機或網絡設備的數據包 ? 只捕獲包含特定字節格式的數據包 ? 以上條件的組合
設置捕獲過濾程序
1.在網絡監視器中,選擇捕獲 → 過濾程序,打開“捕獲過濾程序”對話框。
2.要設置按協議捕獲數據包,雙擊圖中第一項SAP/ETYPE=Any SAP or Any ETYPE,或選中該項,單擊“線”按鈕。打開“捕獲過濾程序SAP和ETYPE”對話框。在啟用的協議列表中,選擇要禁用協議,單擊“禁用”按鈕后,這些協議插入被禁止的協議列表中。反之,“啟用”按鈕把被禁止的協議列表中選中的協議插入到啟用的協議列表中。單擊“確定”關閉窗口。
3.要設置按與數據包有關的計算機名或網絡地址捕獲數據包,雙擊圖中第二項Address Pairs,或選中該項,單擊“地址”按鈕,打開“地址表達式”對話框。設置時,首先選擇窗口上部單選項“包含”和“排除”,在機器
1、機器2列表中分別選中一個計算機名或網絡地址,在方向列表中選擇數據包傳送方向,單擊“確定”關閉該窗口。
4.要設置按數據包中包含特定字節格式捕獲數據包,雙擊圖中第三項Pattern Matches,或選中該項,單擊“模式”按鈕,打開“模式匹配”對話框。設置偏移值和圖案后,單擊“確定”關閉該窗口。5.返回后,單擊“確定”完成過濾條件的配置,網絡監視器將按配置的過濾條件捕獲網絡數據包。
保存捕獲數據
1.在網絡監視器中,停止捕獲過程。
2.選擇文件 → 另存為,在打開的對話框中,輸入捕獲文件名及存放路徑。3.單擊“確定”按鈕,完成操作。
使用任務監視器
? ? ? ? ? 任務管理器可以方便地監督和控制目前正在執行的程序和進程。主要具有如下功能: 列表顯示正在運行的程序和進程 允許終止任何正在運行的程序和進程 監視CPU和內存的使用情況 允許調整運行進程的優先級 啟動程序進入運行狀態
啟用任務管理器
任務管理器不在管理工具(公用)菜單中,要啟用任務管理器,同時按下Ctrl-Alt-Del,彈出任務對話框,選擇任務管理器,出現任務管理器窗口。
八、注意事項
掌握共享許可和文件許可的設置操作,理解二者關系和相互作用。磁盤管理(包括鏡像磁盤、磁盤帶區集和卷集)、磁盤實用程序(錯誤檢查、磁盤碎片整理等)的使用。
遠程計算機進程調度。計算機任務的管理及計算機系統資源的使用監視。
結合實驗二,分析用戶權限、組權限、共享許可權限、文件許可權限與用戶最終的資源訪問權限之間的關系。
比較磁盤鏡像、帶區集、卷集之間的區別。分析進程調度計劃的參數。監視工具的作用。
一、實驗名稱: 實驗
五、異種網絡操作系統之間的資源共享
二、儀器、設備:在互連網絡機房上機,并具有Windows Server 2003 環境
三、參考資料:《計算機網絡操作系統——Windows Server 2003管理與配置》張浩軍編著,中國水利水電出版社。
四、實驗目的
在各種網絡操作系統之間進行資源的共享。建立linux與Windows之間的文件共享。
五、實驗重點、難點
重點linux中各種網絡服務器的架設
六、實驗內容
(1)架設DHCP服務器(2)架設DNS服務器(3)架設FTP服務器
七、實驗原理 1.dhcp服務器的配置
在Red Hat Linux 9中,DHCP服務器的配置文件是: /etc/dhcpd.conf,但Red Hat Linux9安裝后的默認情況下,此 文件是不存在的。用戶必須手工建立該文件,系統有一個該文件的 模板,所在位置是:
/usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample,可以把這
個文件拷貝到“/etc”目錄,并把文件名的后綴改成“.conf”。使用下 面的命令:
#cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample
/etc/dhcpd.conf /etc/dhcpd.conf通常包括三部分:parameters、declarations、option。? DHCP配置文件中的parameters(參數):表明如何執行任務,是否要執行任務,或將哪些網絡配置選項發送給客戶。? DHCP配置文件中的declarations(聲明):用來描述網絡布局、提供客戶的IP地址等。
? DHCP配置文件中的option(選項):用來配置DHCP可選參數,全部用option關鍵字作為開始。
下面我們通過一個具體的例子來說明怎么利用文本文件來配置DHCP服務器,首先利用Linux操作系統的文本編輯軟件Vi,生成如下的文件:
? [root@rh9 test]# vi /etc/dhcpd.conf <回車>
ddns-update-style interim;
ignore client-updates;
subnet 192.168.137.0 netmask 255.255.255.0 {
//subnet定義了網絡的地址
option routers 192.168.137.1;//option routers定義了網關地址
option subnet-mask 255.255.255.0;//subnet-mask定義子網掩碼
option broadcast-address 192.168.0.255;//broadcast-address定義廣播地址
option domain-name-servers 202.96.199.133, 202.96.133.134;//DNS(域名服務)的地址
range dynamic-bootp 192.168.0.1 192.168.0.255;
//dynamic-bootp是給客戶端分配的地址,定義的范圍是192.168.0.1~192.168.0.255整個網、//段地址
default-lease-time 21600;
max-lease-time 43200;}
2.FTP服務器的配置
? Redhat Linux 9中vsftpd的默認配置文件是/etc/vsftpd/vsftpd.conf。
? 修改vsftpd默認配置 關于匿名上傳下載的實現
anonymous_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES write_enable=YES anon_umask=022 如果要開放匿名用戶的瀏覽權限(即登陸后允許使用ls、dir等命令瀏覽目錄內容),添加
anon_word_readable_only=NO 如果允許匿名用戶對服務器上的文件或文件夾有更名或刪除操作的權限,添加 anon_other_write_enable=YES 其次,在ftp用戶家目錄的下建一個文件夾,并修改其權限為完全開放;ftp用戶的家目錄在哪?我們可以通過/etc/passwd來查看;也可以通過finger 命令來查看: # finger ftp Login: ftp Name: FTP User Directory: /var/ftp Shell: /sbin/nologin 這說明ftp用戶的家目錄在/var/ftp,我們要在這個目錄下建一個目錄,然后把他的權限設置為任何用戶可讀可寫可執行就行了;一般的情況下,在發行版中,有一個/var/ftp/pub的目錄,如果沒有,也可以自己建一個 # mkdir /var/ftp/pub # chmod 777 /var/ftp/pub
第三篇:操作系統實驗
操作系統實驗
實驗一
Linux常用命令實驗
一.目的和要求
本實驗的目的是熟悉Linux操作系統的命令接口、圖形接口和程序接口;了解Linux操作系統的啟動過程;了解Linux操作系統的目錄結構;用vi編輯器編寫簡單的C語言程序,并用gcc編譯器編譯、運行。
二.實驗內容
1、實現開機、登錄、退出與關機:
(1)如果以root用戶登錄,則命令窗口的提示符為#;如果以普通用戶登錄,則命令窗口的提示符為$;登陸用戶名:user 密碼:123456(2)修改口令(修改口令操作不做):成功進入系統后,在命令提示符后輸入“passwd”并鍵入回車鍵
(3)退出帳號:命令方式下:logout(4)關機或重啟:
命令方式下:halt或reboot 窗口方式下:“桌面”->“注銷”
2、掌握的基本常用命令列表
(1)關于目錄的操作命令:cd、ls、mkdir、rmdir、pwd等;
(2)關于文件的操作命令:cat、find、man/help、vi/vim、cp、rm、mv、dd、du、df、chmod、ln等;
(3)關于進程管理的操作命令:ps、kill、top、free 等;
(4)關于系統管理的操作命令:whoami、passwd、adduser/useradd、addgroup、userdel、groupdel、su、who、Ctrl+Alt+Fn(n=1、2、3、4、5、6)(在X-Window界面下切換到字符界面,重新登錄,Ctrl+Alt+F7返回圖形界面)、Alt+Fn(n=1、2、3、4、5、6)(在6個虛擬終端之間切換)等;
(5)安裝和卸載文件系統:mount、umount等;
(6)顯示有關計算機系統信息的命令:uname(顯示操作系統的名稱)、uname –n(顯示系統域名)、uname –p(顯示系統的CPU名稱)
(7)其它命令:time、date、cal 等。
3、閱讀/etc/inittab 文本文件,思考問題:如果要求啟動Linux系統之后進入字符 1
操作系統實驗
界面,應如何修改/etc/inittab文件?用戶應具有什么權限?
4、切換到不同的虛擬終端,登錄到Linux系統
5、vi 編輯器的使用(1)進入和退出vi(2)利用文本插入方式建立一個文件(3)在新建的文本文件上移動光標。
(4)對文本文件執行刪除、復原、修改、替換操作。
6、熟悉gcc編譯環境:編寫一個C語言程序myfile1.c,求1~100中偶數的和,編譯并運行。
(1)編譯 gcc myfile1.c 運行./a.out(2)編譯 gcc –o myfile1 myfile1.c
運行./myfile1
7、編寫一個C語言程序myfile2.c,顯示字符串“Hello, Linux!”,并將其反向輸出。
8、熟悉Linux系統的目錄結構,使用命令或者編寫C語言程序報告Linux內核的行為。
報告以下內容: ? ? CPU類型和型號 ? ? 內核版本
? ? 從系統最后一次啟動以來經歷了多長時間?形式為dd:hh:mm:ss ? ? 當前配置的內存數量 ? ? 當前可用內存數量
? ? 自系統啟動以來,發生的所有的中斷的次數 ? ? 從系統啟動開始創建的進程數 ? ? 內核執行的上下文轉換的次數
三.實驗提示
1、Linux安裝
(1)安裝前的準備工作 <1>.基本的硬件配置
由于安裝涉及到各種硬件的設置,所以在安裝前必須了解機器各種硬件的型號,硬盤的使用情況,內存的大小,鼠標的類型及接口,聲卡,網卡,顯卡,顯示器的型號。
操作系統實驗
<2>.有關網絡的信息
IP地址,掩碼,網關IP地址,域名服務器IP地址,域名,宿主機名。<3>.安裝方式的選擇
?從CD-ROM安裝 ?從FTP站點安裝 ?從NFS服務器安裝 ?從硬盤安裝 硬盤分區
硬盤空間必須和計算機上安裝的其他操作系統所使用的硬盤空間分開。特別要注意,如果硬盤空間很大,切忌不能將Linux裝在8G以后。安裝Red Hat Linux至少需要兩個硬盤分區:一個或多個“Linux native”類型的分區,一個“Linux swap”類型的分區
分區命名設計Linux 通過字母和數字的組合來表示硬盤分區。
? 前兩個字母-----分區名的前兩個字母表明分區所在設備的類型。hd指IDE硬盤,sd指SCSI硬盤。
? 下一個字母-----分區在哪個設備。例如,/dev/hda(第一個IDE硬盤),/dev/sdb(第二個SCSI硬盤)。
? 數字-----代表分區。前四個分區(主分區或擴展分區)用數字1到4表示。邏輯分區從5開始。例如,? 若IDE硬盤在安裝Linux前安裝了Windows系統并劃分了C盤和邏輯分區D盤,那么D盤就是/dev/hda5, /dev/hda5表示第一個硬盤的第一個邏輯分區。
對于Linux初學者來說,為Linux分兩個區(根分區和交換分區)是比較簡單方便的。
一個交換分區:用來支持虛擬內存。一個根分區:根分區是/(根目錄)的所在地,其中包含啟動系統所需的文件和系統配置文件。這個分區要足夠大。
一個/usr分區: /usr是Linux系統許多軟件所在的地方。一個/home分區:這是用戶的主目錄所在地。(2)開始安裝
注意點:我們一般選擇的是圖形化的安裝方式。它的主要部分是相同的。
? 可能會在安裝完成后第一次啟動時才進行網卡的檢測。
操作系統實驗
? 在選擇圖形化界面時,有兩種方式gnome和kde;它們各有優缺點。? 系統會讓你選擇啟動時是圖形化方式,還是字符方式。請大家選擇字符方式。
? 在選擇防火墻的時候,在安裝時請先不用防火墻。
? 圖形化安裝方式下,不能選擇啟動時的開啟服務??稍谙到y安裝完成后用setup命令進行修改。
2、進入Linux(1)登錄
第一次登錄系統,必須作為“root”登錄。這個帳號對系統的一切都有完全的訪問權限。
在login:提示符處輸入root。按[Enter](或[Return]鍵).會出現Password提示。輸入口令,應該看到類似以下的信息:
[root@localhost /root] #(2)退出
輸入[Ctrl]-[D](3)帳號和口令 <1>.帳號
創建新的帳號有幾種方法,最基本的方法:useradd命令.[root @ localhost / root] # useradd
Tom
[root @ localhost / root] # <2>.口令
passwd 命令可以用來: ? 為新創建的用戶分配口令。? 修改已存在的用戶的口令。? 修改登錄的用戶的口令。此時必須以root登錄。如:
[root @ localhost / root]# passwd Tom
New UNIX password:
Retype new UNIX password:
passwd:all authentication tokens updated successfully 4
操作系統實驗
[root @ localhost / root]#
用新帳戶登錄:
Red Hat Linux release 7.1(Manhattan)
Kernel 2.0.34 on an i586
login: Tom
Password:
[Tom@ localhost Tom] $ <3>.su 命令
用su,當前的登錄段能變成root(或其他用戶)的登錄段。如:
[Tom@ localhost Tom] $ su
Password:
[root@ localhost Tom] # 也可以用su變成其他用戶。這時,必須作為root運行su,給出用戶名。<4>.關閉系統
關閉系統時,必須告訴所有的進程結束運行,使用shutdown命令。且只能由root 運行,格式是:
shutdown
-h-------在關閉完成后(Halt)停止系統。
-r--------在關閉完成后重啟動(Reboot)系統。
3、vi 編輯器的使用(1)進入和退出vi <1>進入vi 在系統提示符($)下輸入命令vi和想要編輯(建立)的文件名(如example),便可進入vi。
<2>退出vi 在命令方式下可有幾種方法退出vi編輯器:
:wq 把編輯緩沖區的內容寫到正在編輯的文件中,退出編輯器,回到Linux shell下。
:ZZ 僅當作過修改時才將緩沖區內容寫到文件上。
操作系統實驗
:x 與 :ZZ 相同。
:q!強行退出vi。感嘆號(!)告訴vi,無條件退出,丟棄緩沖區內容。這樣,先前對該文件所做的修改或輸入都被拋棄。(2)新建文件
<1>在Linux提示符$之后,輸入命令 :vi myfile,然后按〈Enter〉鍵。<2>輸入插入命令i(屏幕上看不到字符i)。<3>然后,輸入以下文本行: To the only book tht I, For mang year you have been my favourite book <4>發現這兩行有錯,進行改正: 按〈Esc〉鍵,從插入方式回到命令方式。按光標上移鍵,使光標移到第一行。
按光標左移鍵,使光標移到“tht”的第二個“t”處。
輸入i(這是插入命令),然后輸入a。該行變成如下形式: To the only book that I, 按光標右移鍵,使光標移到“I”上。
我們想在“I”之后輸入一個空格和單詞“like”。為此,輸入附加命令“a”。結果屏幕顯示為:
To the only book that a I,沒有出現預期的效果......原來是:我們先前使用了插入命令i,至今并未用〈Esc〉鍵返回命令方式。所以,輸入的所有字符都作為輸入文本予以顯示。<5>按〈Esc〉鍵,返回命令方式。
利用x命令刪除錯誤字符。然后,進入插入方式,輸入正確字符。<6>最后輸入如下所示的文本: To the only book that I like, For many year you have been my favourite book I liveeyou all the time and could not have picked much better.<7>將編輯的文本文件存盤。(利用“:wq”命令,或者“:x”命令)<8>重新進入vi編輯程序,編輯上面的文件。(如:$ vi myfile)
操作系統實驗
<9>在屏幕上見到myfile文件的內容。在屏幕底邊一行顯示出該文件的名稱、行數和字符個數:“myfile”4 lines,130 characters 它仍然有錯,需進一步修改。
<10>將光標移到第二行的year的r處。輸入a命令,添加字符s。
<11>按〈Esc〉,回到命令方式。輸入命令10〈Space〉,光標移至何處?---光標右移10個字符位置。
<12>利用取代命令r將liveeyou改為live you。
<13>將光標移至第三行。輸入新行命令O(大寫字母),屏幕上有什么變化?---光標移至上一行(新加空行)的開頭。<14>輸入新行的內容: We've been through much together 此時,vi處于哪種工作方式? <15>按〈Esc〉,回到命令方式。將光標移到第四行的live的v字母處。利用替換命令s將v改為k。
<16>在第四行的you之后添加單詞very much。<17>修改后的文本是以下內容: To the only book that I like, For many years you have been my favourite book We've been through much together I like you very much all the the time and could not have picked much better.將該文件存盤,退出vi。
<18>重新編輯該文件。并將光標移到最后一行的have的v字母處,使用d$命令將v至行尾的字符都刪除。
<19>現在想恢復17步的原狀,怎么辦?(使用復原命令u)
<20>使用dd命令刪除第一行;將光標移至through的u字母處,使用C(大寫字母)命令進行修改,隨便輸入一串字符。將光標移到下一行的開頭,執行5x命令;然后執行重復命令(.)。
<21>屏幕內容亂了!現在想恢復17步的原狀,怎么辦?(不寫盤,強行退出vi)
4、Linux內核
操作系統實驗
Linux 內核源程序目錄結構(/usr/src/redhat/SOURCES)如下: /document :保存幫助文檔
/arch
:包含多個子目錄,每個存放與特定體系結構相關的代碼。如arch/i386(intel 386 體系結構),arch/sparc,arch/alpha等。每個子目錄下至少又包含三個子目錄:
? kernel(存放支持該體系結構特有的諸如信號處理和SMP之類特征的實現);
? ? lib(存放該體系結構特有的諸如Strlen和memcpy之類的高效率函數); mm(存放該體系結構特有的諸如內存管理程序的實現)
/drivers :該目錄占內核代碼一半以上,包括顯卡、網卡、SCSI適配器、軟驅、PCI設備和其他外設的軟件驅動程序。/fs:包含linux支持的文件系統。
/include :包含源程序中大部分包含(.h)文件。/init: 包含main.c,保存大部分協調內核初始化的代碼。/ipc:實現了SYSTEM V的進程間通訊IPC。
/kernel:包含了linux最重要的部分:實現平臺獨立的基本功能,包括Sched.c、fork.c、exit.c。
/lib :存放字符串和內存操作函數。
/mm:包含與體系結構無關的內存管理代碼。/net:包含了linux應用的網絡協議代碼。/script :包含用來配置內核的腳本。
5、報告Linux狀態(/proc 中的信息)
在終端窗口提示符下,可以使用cat命令顯示相關文件的內容,如: cat /proc/cpuinfo 通過編寫程序,顯示相關文件內容:應用文件操作,將相關 /proc中的文件讀入到緩沖區中,可用fgets()函數按行取文件中數據,通過strstr()檢驗包含所需數據字符串。如存在,用printf()函數輸出。(1)CPU類型和型號
/proc/cpuinfo文件提供了有關CPU的多種信息,這些信息是從內核里對CPU的測試代碼中得到的。文件列出了CPU個數:processor;CPU制造商:vendor_id;CPU架構:model;CPU名稱:model name;CPU時鐘頻率:cpu MHz;CPU緩存大?。?8
操作系統實驗
cache size;CPU包含的指令集:flags。文件還包含了以bogomips表示的處理機速度,而且如果檢測到CPU的多種特性或bug,文件還會包含相應的標志。該文件的格式為:文件由多行構成,每行包括一個域名稱、一個冒號和一個值。
通過fopen()函數打開包含CPU類型和型號的文件cpuinfo,把內容讀入字符數組char_all,然后通過strstr()函數查找CPU類型和型號所在的位置,用strncpy()函數拷貝到字符數組中,通過printf()標準輸出函數輸出。(2)存儲器信息
/proc/meminfo 文件給出了內存狀態的信息。它顯示出系統中物理內存的總量:MenTotal;未使用的物理內存的總量:MemFree;用做文件緩沖的物理內存的總量:buffers;用做緩沖的物理內存的總量:Cached;活躍的內存大小:Active;不活躍的內存大?。篒nactive;交換分區的總量:SwapTotal;交換分區未使用的總量:SwapFree等信息。(3)內核版本
文件/proc/version顯示了正在運行的內核版本、編譯此內核的gcc版本以及該內核的編譯時間。
(4)從系統最后一次啟動以來的時間,形式為dd:hh:mm:ss uptime讀出的時間是以秒計的,所以根據要求要轉換為天:小時:分鐘:秒。1天為86400秒,1小時為3600秒,1分鐘為60秒。通過兩個運算符就可以很好的轉換:“/”做除法取整運算,“%”做除法取余運算。舉例:86800秒,(86800/86400)=1(天),(86800%86400)=400(余400秒);400秒,(400/3600)=0小時,(400%3600)=400(余400秒);400秒,(400/60)=6分鐘,(400%60)=40(余40秒)。所以最后結果為:1:0:6:40。(5)其他信息的讀取 從/proc/stat中讀取信息
? CPU花費在用戶態、系統態和空閑態的時間——cpu ? 自系統啟動以來,發生的所有的中斷的次數——intr ? 內核執行的上下文轉換的次數----ctxt ? 系統最后啟動的時間----btime ? 從系統啟動開始創建的進程數----processes
6、Linux的目錄結構
操作系統實驗
對于Linux來講它的樹型結構與Windows不同,Windows可以有多個分區,每個分區都有根,但Linux 只有一個根,其他的所有文件、目錄或硬盤分區、軟盤、光盤、U 盤都必須mount(掛載)到Linux 根下的一個目錄中才能被訪問和使用。下面列出根目錄下的常見系統目錄及其用途。
/bin
bin是binary的縮寫。這個目錄沿襲了UNIX系統的結構,存放著使用者最經常使用的命令。例如cp、ls、cat,等等。
/boot
這里存放的是啟動Linux時使用的一些核心文件。
/dev
dev是device(設備)的縮寫。這個目錄下是所有Linux的外部設備,其功能類似DOS下的.sys和Win下的.vxd。在Linux中設備和文件是用同種方法訪問的。例如:/dev/hda代表第一個物理IDE硬盤。
/etc
這個目錄用來存放系統管理所需要的配置文件(例如配置文件inittab)和子目錄。
/home
用戶的主目錄,比如說有個用戶叫wang,那他的主目錄就是/home/wang,也可以用~wang表示。
/lib
這個目錄里存放著系統最基本的動態鏈接共享庫,其作用類似于Windows里的.dll文件。幾乎所有的應用程序都需要用到這些共享庫。
/lost+found
這個目錄平時是空的,當系統不正常關機后,這里就成了一些無家可歸的文件的避難所,有點類似于DOS下的.chk文件。
/media
用來掛載光盤、U盤等文件系統的目錄。/misc
用來掛載NFS 共享目錄。
/mnt
用于掛載其他硬盤分區系統的目錄(如掛載xp分區)。
/opt
某些第三方軟件商軟件的安裝地點,如國產紅旗office就存放于此。/proc
這個目錄是一個虛擬的目錄,它是系統內存的映射,可以通過直接訪問這個目錄來獲取系統信息。也就是說,這個目錄的內容不在硬盤上而是在內存里。
/root
系統管理員(也叫超級用戶)的主目錄。作為系統的擁有者,總要有些特權,比如單獨擁有一個目錄。
/sbin
s就是Super User的意思,也就是說這里存放的是系統管理員使用的管理程序。
/tmp
這個目錄是用來存放一些臨時文件的地方。
/usr
這是最龐大的目錄,要用到的應用程序和文件幾乎都存放在這個目錄 10
操作系統實驗
下。其中包含以下子目錄:
/usr/X11R6
存放X-Window的目錄; /usr/bin
存放著許多應用程序;
/usr/sbin
給超級用戶使用的一些管理程序就放在這里;
/usr/include
Linux下開發和編譯應用程序需要的頭文件,在這里查找; /usr/lib
存放一些常用的動態鏈接共享庫和靜態檔案庫;
/usr/local
這是提供給一般用戶的/usr目錄,在這里安裝軟件最適合; /usr/src
Linux開放的源代碼就存在這個目錄。
/var
這個目錄中存放著那些不斷在擴充著的東西,為了保持usr的相對穩定,那些經常被修改的目錄可以放在這個目錄下,實際上許多系統管理員都是這樣做的。另外,系統的日志文件就在/var/log目錄中。
我們一般日常能經常訪問的目錄有/home 目錄、/mnt目錄、/media 目錄、/usr 目錄。
第四篇:操作系統 實驗一 進程調度
實驗一
進程控制與處理機調度綜合實驗
一、實驗目的
通過模擬進程控制方法及單處理機系統的進程調度,了解進程的結構,進程的創建與撤消,進程的組織及進程的狀態及其轉換,掌握進程調度策略。
二、實驗環境
開發工具使用windows平臺下的vc++6.0。
三、實驗內容
本實驗為單機模擬進程調度算法,在程序設計時不需真正地建立線程或者進程。實驗模擬創建若干進程(人為輸入或隨機數產生),選擇一種或幾種單處理機的進程調度算法,如FCFS(先來先服務),SPF(短進程優先),RR(時間片輪轉法),優先級算法等,模擬進行進程調度。每進行一次調度,都打印一次運行進程、就緒隊列、以及各個進程的PCB,并能在進程完成后及時撤消該進程。
四、完成情況
1、進程及進程的運行狀態
進程是現代計算機中的基本要素,是系統分配資源和調度的基本單位。進程與程序不同,進程是系統中動態的實體,有它的創建、運行和撤銷的過程。PCB塊是系統感知進程存在的唯一實體。進程的創建必須首先創建進程的PCB塊,而進程的運行也伴隨著PCB塊的變化,進城撤銷也要同時撤銷它的PCB塊。所以本實驗的任務就是通過模擬調度進程的PCB塊來調度進程。進程的PCB塊包含以下四方面的內容: a)進程標示符 b)處理及狀態信息 c)進程調度信息 d)進程控制信息
進程在運行中存在三種基本狀態,分別是運行狀態、就緒狀態和阻塞狀態。
2、進程調度
一個運行進程的時間片用完或發生阻塞時,系統就會選擇一個就緒進程調度執行。進程的調度算法有很多如FCFS、SPF、優先級調度和時間片輪轉方法。進程調度算法模擬試驗就是通過調度進程的PCB塊來模擬調度進程。在系統中PCB塊就表現為一個結構體,PCB塊之間的連接方式存在兩種,一種是連接方式,一種是索引方式。本試驗中可選擇任意一種連接方式。
3、例程
設計一個有 N個進程共行的進程調度程序。進程調度算法:采用最高優先數優先的調度算法(即把處理機分配給優先數最高的進程)。
每個進程有一個進程控制塊(PCB)表示。進程控制塊可以包含如下信息:進程名、優先數、到達時間、需要運行時間、已用CPU時間、進程狀態等等。進程的優先數及需要的運行時間可以事先人為地指定(也可以由隨機數產生)。進程的到達時間為進程輸入的時間。進程的運行時間以時間片為單位進行計算。每個進程的狀態可以是就緒 W(Wait)、運行R(Run)、或完成F(Finish)三種狀態之一。就緒進程獲得 CPU后都只能運行一個時間片。用已占用CPU時間加1來表示。如果運行一個時間片后,進程的已占用 CPU時間已達到所需要的運行時間,則撤消該進程,如果運行一個時間片后進程的已占用CPU時間還未達所需要的運行時間,也就是進程還需要繼續運行,此時應將進程的優先數減1(即降低一級),然后把它插入就緒隊列等待CPU。每進行一次調度程序都打印一次運行進程、就緒隊列、以及各個進程的 PCB,以便進行檢查。重復以上過程,直到所要進程都完成為止。
調度算法的流程圖如下:
開始初始化進程PCB,輸入進程信息各進程按優先數從高到低排列y就緒隊列空?結束就緒隊列首進程投入運行時間片到CPU占用時間+1運行已占用CPU時間已達到所需CPU時間y進程完成撤銷該進程是運行進程的優先數減1把運行進程插入就緒隊列 圖1-1 流程圖
源代碼:#include “stdio.h” #include
int insert=0;if((ready==NULL)||((p->super)>(ready->super)))/*優先級最大者,插入隊首 */ {
p->link=ready;ready=p;} else /* 進程比較優先級,插入適當的位置中*/ {
first=ready;second=first->link;
while(second!=NULL)
{
if((p->super)>(second->super))/*若插入進程比當前進程優先數
大,*/
{ /*插入到當前進程前面*/
p->link=second;
first->link=p;
second=NULL;
insert=1;}
else /* 插入進程優先數最低,則插入到隊尾*/
{
first=first->link;second=second->link;
}
}
if(insert==0)
first->link=p;} } void input()/* 建立進程控制塊函數*/ { int i,num;printf(“n請輸入進程數量:”);scanf(“%d”,&num);for(i=0;i printf(“n 進程號No.%d:n”,i); p=getpch(PCB); printf(“n 輸入進程名:”); scanf(“%s”,p->name); printf(“n 輸入進程優先數:”); scanf(“%d”,&p->super); printf(“n 輸入進程運行時間:”); scanf(“%d”,&p->ntime); printf(“n”); p->rtime=0;p->state='w'; p->link=NULL; sort();/* 調用sort函數*/ } } int space(){ int l=0;PCB* pr=ready;while(pr!=NULL){ l++; pr=pr->link;} return(l);} void show(){ printf(“nqnametstatetsupertndtimetruntimen”);} void disp(PCB * pr)/*建立進程顯示函數,用于顯示當前進程*/ { printf(“ %st”,pr->name);printf(“ %ct”,pr->state);printf(“ %dt”,pr->super);printf(“ %dt”,pr->ntime);printf(“ %dt”,pr->rtime);printf(“n”);} void check()/* 建立進程查看函數 */ { PCB* pr;printf(“n****當前正在運行的進程是:%s”,p->name);/*顯示當前運行進程*/ show();disp(p);pr=ready;if(pr==NULL) printf(“n****當前就緒隊列為空!”); else { printf(“n****當前就緒隊列狀態為:”);/*顯示就緒隊列狀態*/ show(); while(pr!=NULL) { disp(pr); pr=pr->link; } } } void destroy()/*建立進程撤消函數(進程運行結束,撤消進程)*/ { printf(“n 進程[%s]已完成.n”,p->name);free(p);} void running()/* 建立進程就緒函數(進程運行時間到,置就緒狀態*/ {(p->rtime)++;if(p->rtime==p->ntime)destroy();/* 調用destroy函數*/ else { (p->super)--; p->state='w'; sort();/*調用sort函數*/ } } void main()/*主函數*/ { int len,h=0;char ch;input();len=space();while((len!=0)&&(ready!=NULL)){ ch=getchar(); h++; printf(“n 當前運行次數為:%d n”,h); p=ready; ready=p->link; p->link=NULL; p->state='R'; check(); running(); printf(“n 按任一鍵繼續......”); ch=getchar();} printf(“nn 進程已經完成.n”);ch=getchar();} 輸入數據后運行結果如下圖所示: 五、問題及解決辦法 問題:當插入的進程優先級大于當前進程優先級的時候,插入的進程應該放在什么 位置? 方法:通過指針的指向變換,把插入的進程放置在當前進程前面。 六、實驗心得 通過本次實驗,了解了進程的結構,進程的創建、撤銷,掌握了進程調度策略處理機調度的理解,我更加深刻的認識到調度進程的pcb塊來調度進程的過程,以及按照優先權進行排序的算法實現。對操作系統有了進一步的認識,后面會更加努力學習,掌握這門學科。 void * my_malloc(unsigned int size){ // int i; // Linker *p=first; // for(i=size;i<=HEAP_SIZE&&p==NULL;i++) //p=p->next; // if(i>HEAP_SIZE)//空?間?不?足á? //return NULL; // if(i==HEAP_SIZE){ ////p=(l.n+a)->first; //delete p;} // else // {//p=(l.n+i)->first; //int j; ////WORD *w; //int temp; //for(j=HEAP_SIZE;jtag=1;p->kval=a;return p; //return NULL; if(size>first->size) return NULL; else { static Linker* p=(struct Linker *)&heap[HEAP_SIZE-(first->size)];p->size=size; Linker* tem=first; while(tem!=NULL) tem=tem->next; tem=p; first->size=(first->size)-size; return tem; } } void my_free(void * addr){ Linker* p,*tem; p=first; while((Linker*)addr->size!=p->next->size) p=p->next; tem=p->next; p->next=tem->next; first->size=first->size+tem->size; delete tem; } l.insert(w,j);}第五篇:操作系統實驗六