操作系統實驗指導書_第1頁
操作系統實驗指導書_第2頁
操作系統實驗指導書_第3頁
操作系統實驗指導書_第4頁
操作系統實驗指導書_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、操作系統實驗指導書徐軍利 編寫武漢工業學院 計算機與信息工程系2009 年 8 月實驗一 進程管理1 目的和要求通過實驗理解進程的概念,進程的組成(PC琢構),進程的并發執行和操作系統進行進程管理的相關原語(主要是進程的創建、執行、撤消) 。2 實驗內容用 C 語言編程模擬進程管理,至少要有:創建新的進程;查看運行進程;換出某個進程;殺死運行進程以及進程之間通信等功能。3 實驗環境Windows操作系統、VC+C語言4 實驗提示PCB結構通常包括以下信息:進程名,進程優先數,輪轉時間片,進程所占用 的CPUS寸間,進程的狀態,當前隊列指針等。可根據實驗的不同, PC琢構的內容 可以作適當的增刪

2、。主體程序#include ""#include ""#include ""struct PCB_type int pid;int priority;int cputime;struct PCB_type neicun20;int shumu=0,pid_l;main()int n,m,i;char a; n=1;while(n=1) clrscr();printf("n*");printf("n*進程演示系統*");printf("n*");printf("n p

3、rintf("n printf("n1.創建新的進程2.查看運行進程");3.換出某個進程4.殺死運行進程");5. 進程之間通信6. 退出系統");printf("n*");printf("n 請選擇(1 6)");a=getchar();switch(a) case'1':create( );break;case'2':run( );/* 自定義過程*/break;case'3':huanchu(); /* 自定義過程*/break; case'

4、4':kill( );break;case'5':tongxun( );/* 自定義過程 */break;case'6': exit(0);default: n=0;create( )/* 創建一個進程的示例(不完整的程序) */if(shumu>=20) n");printf("n else printf("n 請輸入新進程的 pidn");scanf("%d",&neicunshumu-1.pid);printf("n請輸入新進程的優先級n");scanf(

5、"%d",&neicunshumu-1.youxian);printf("n請輸入新進程的大小 n");scanf("%d",&neicunshumu-1.daxiao); shumu+;5實驗運行結果*進程演示系統*1.創建新的進程2.查看運行進程3.換出某個進程4.殺死運行進程5. 進程之間通信6.退出系統*請選擇(16)然后根據你選擇的不同,出現不同的結果。6. 實驗要求:1) 上機前認真使用 C 語言編寫好程序,采用 Visual C+ 作為編譯環境;2) 上機時獨立調試程序3) 根據具體實驗要求,填寫好實驗報

6、告(包括目的和要求、實驗內容、實驗環境、設計思想、源程序、實例運行結果、總結) 。實驗二 進程調度1 目的和要求通過這次實驗,理解進程調度的過程,進一步掌握進程狀態的轉變、進程調度的策略,進一步體會多道程序并發執行的特點,并分析具體的調度算法的特點,掌握對系統性能的評價方法。2 實驗內容閱讀教材計算機操作系統第二章和第三章,掌握進程管理及調度相關概念和原理。編寫程序模擬實現進程的輪轉法調度過程,模擬程序只對PCB!行相應的調度模擬操作,不需要實際程序。假設初始狀態為:有n個進程處于就緒狀態,有 m個進程處于阻塞狀態。采用輪轉法進程調度算法進行調度( 調度過程中,假設處于執行狀態的進程不會阻塞)

7、 ,且每過 t 個時間片系統釋放資源,喚醒處于阻塞隊列隊首的進程。程序要求如下:1)輸出系統中進程的調度次序;2)計算CPUPJ用率。3 實驗環境Windows操作系統、VC+C語言4 實驗提示用C語言實現提示:1)程序中進程可用PCB表示,其類型描述如下:struct PCB_type int pid ; 實驗要求:1)上機前認真使用C語言編寫好程序,采用 Visual C+作為編譯環境;2)上機時獨立調試程序3)根據具體實驗要求,填寫好實驗報告 (包括目的和要求、 實驗內容、 實驗環境、設計思想、源程序、實例運行結果、總結) 。4)測試用數據:n=2m=3t=5ready_headbloc

8、ked head/*use_cpu 中記錄CPU運行時間中記錄CPU空閑時間unuse_cpu+dispath()算法流程圖:.begi、nuse_cpu=0 x=0/*unuse_cpuunuse_cpu=0p 取ready隊首元素p->置“運行”輸出p->p->use_cpu+實驗三 可變分區存儲管理1 目的和要求通過這次實驗, 加深對內存管理的認識, 進一步掌握內存的分配、 回收算法 的思想。2實驗內容閱讀教材計算機操作系統第四章,掌握存儲器管理相關概念和原理。編寫程序模擬實現內存的動態分區法存儲管理。內存空閑區使用自由鏈管理, 采用最壞適應算法從自由鏈中尋找空閑區進行

9、分配, 內存回收時假定不做與 相鄰空閑區的合并。假定系統白內存共640K,初始狀態為操作系統本身占用 64K。在t1時間之 后,有作業 A B、C、D分別請求8K、16K、64K、124K的內存空間;在t2時間 之后,作業C完成;在t3時間之后,作業E請求50K的內存空間;在t4時間之 后,作業D完成。要求編程序分別輸出t1、t2、t3、t4時刻內存的空閑區的狀 態。3實驗環境Windows操作系統、VC+C語言4實驗提示用C語言實現提示:1. 程序中自由鏈隊列的結點類型可描述如下:struct freelinkint len, address; /* len 為分區長度/* address為

10、分區起始地址struct freelink *next;內存占用區用鏈表描述,其結點類型描述如下:struct busylinkchar name; /*作業或進程名name= S' 表示OS占用int len , address;struct busylink *next;并設全程量:struct freelink *free_head=NULL;計子函數:void start(void); /* 設置系統初始狀態*/ struct freelink * p;struct busylink *q;free_head=(structfreelink*)malloc(sizeof(str

11、uctfreelink);free_head->next=NULL;計主函數:main() start();past(t1);requireMemo( A ,8); requireMemo( B ,16);requireMemo( C ,64); requireMemo( D ,124);printlink();past(t2);freeMemo( C );printlink();past(t3);re quireMemo( E ,50);printlink();freeMemo( D );printlink();5. 實驗要求:1)上機前認真使用C語言編寫好程序,采用 Visual C

12、+作為編譯環境;2)上機時獨立調試程序3)根據具體實驗要求,填寫好實驗報告(包括目的和要求、實驗內容、實驗環境、設計思想、源程序、實例運行結果、總結)requireMemo(char name, int require) 流程圖如下:p=(struct busylink*)malloc( );p->name=name;p->address=free_head->next->address;p->len=require; p->next=NULLw->address=w->address+require;w->len=w->len-re

13、quire;u=free_head;v=rree_head->nexl;free(w)end(end ' printf("Can' t .否end實驗四頁式虛擬存儲管理頁面置換算法1 .目的和要求存儲管理的主要功能之一是合理的分配空間。請求頁式管理是一種常用的虛 擬存儲管理技術。本實驗的目的是:通過編寫和調試請求頁式存儲管理中頁面置 換算法的模擬程序以加深對存儲管理方案的理解,了解虛擬存儲技術的特點,掌 握請求頁式存儲管理的頁面置換方法。2 .實驗內容閱讀教材計算機操作系統第四章,掌握存儲器管理相關概念和原理。編寫程序模擬實現頁式虛擬存儲管理的最佳頁面置換算法。

14、前提:(1)頁面分配采用固定分配局部置換。(2)作業的頁面走向和分得的物理塊數預先指定。可以從鍵盤輸入也可以 從文件讀入。(3)置換算法的置換過程輸出可以在顯示器上也可以存放在文件中,但必 須清晰可讀,便于檢驗。3 .實驗環境Windows操作系統、VC+C語言4 .實驗提示(1)數據結構要模擬實現某一個置換算法,有如下一些對象需要用相關的數據結構來描述:作業的頁面走向(執行過程中對頁面的訪問順序)。可以用數組也可以 用字符串。如果用數組,則頁面走向的長度受數組長度限制,如果用字 符申,則需要將字符串進行解析,將字符串經過解析處理后變成一個貢面的排列順序。考慮最佳置換算法(“向前看”)和其他置

15、換算法(”向 后看“)的特點。頁框(作業分得的物理塊)。由于作業分得的物理塊數在置換算法執行 之前已經確定,可以用一些比較簡單的數據結構實現。在綜合置換算法 的原理,可以靈活采用相應的數據結構(如隊列、數組、堆棧) ,盡可 能使程序的時間復雜度最低。采用不同的數據結構還要配合在數據結構 上的相應操作才行。(2)功能模塊劃分大體上可以將整個程序的模塊劃分成如下幾個部分:1)主模塊:主要是初始化、界面和模塊調用。2)頁面走向輸入模塊。(從鍵盤讀入數據結構或將頁面走向寫入文件)3)置換算法模塊。*判斷模塊。決定換出哪一塊。每一種置換算法對應一 種判斷算法。* 調整模塊。根據判斷模塊的結果,調整作業分

16、得物理塊集合中 邏輯頁面的情況。* 置換過程輸出模塊(在顯示器上顯示或寫入文件)。該模塊每 發生一次置換,由置換算法模塊調用一次。* 除此之外,有些反復執行的操作考慮用過程或函數實現。總而言之, 整個程序應該結構清晰,界面友好,可讀性好,易調試,易擴充,易維護。5.實驗要求:1)上機前認真使用C語言編寫好程序,采用 Visual C+作為編譯環境;2)上機時獨立調試程序3)根據具體實驗要求,填寫好實驗報告(包括目的和要求、實驗內容、實 驗環境、設計思想、源程序、實例運行結果、總結)。實驗五用戶接口實驗1 .目的和要求通過上機操作的實踐理解操作系統的作業級接口,著重理解shell的作用和工作過程,通過編寫程序,在程序中調用操作系統的系統調用來加深對程序級接 口的理解,著重理解系統調用的實現。2 .實驗內容選做任意一個:能夠熟練使用Linux系統的鍵盤命令和X-window圖形界面,熟悉shell 編程語言,編寫一個簡單的shell程序。指導學生在內核文件中添加一 個自定義的系統調用(或者利用現有操作系統的系統調用),編程來調用自己設計(選定)的這系統調用。練習使用DOS勺鍵盤命令,熟悉批處理編程的語法,編寫帶參數的簡單批處理程序,通過使用 DOS勺作業級接口(鍵盤命令)和 WINDOWS作 業級接口(圖形界

溫馨提示

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

評論

0/150

提交評論