《操作系統(tǒng)B》--實(shí)驗(yàn)指導(dǎo)書剖析_第1頁
《操作系統(tǒng)B》--實(shí)驗(yàn)指導(dǎo)書剖析_第2頁
《操作系統(tǒng)B》--實(shí)驗(yàn)指導(dǎo)書剖析_第3頁
《操作系統(tǒng)B》--實(shí)驗(yàn)指導(dǎo)書剖析_第4頁
《操作系統(tǒng)B》--實(shí)驗(yàn)指導(dǎo)書剖析_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、操作系統(tǒng)B»實(shí)驗(yàn)指導(dǎo)書計算機(jī)科學(xué)與技術(shù)系二o一五年實(shí)驗(yàn)一幾種操作系統(tǒng)的界面1實(shí)驗(yàn)二進(jìn)程調(diào)度程序設(shè)計2實(shí)驗(yàn)三存儲管理程序設(shè)計10實(shí)驗(yàn)一幾種操作系統(tǒng)的界面【目的與要求】(-)目的本實(shí)驗(yàn)的目的是使學(xué)生熟悉12種操作系統(tǒng)的界面,在熟練使用機(jī)器的基礎(chǔ)上,能了解 各種命令和調(diào)用在系統(tǒng)中的大致工作過程。也就是通過操作系統(tǒng)的外部特征,逐步深入到操作 系統(tǒng)的內(nèi)部實(shí)質(zhì)內(nèi)容中去,培養(yǎng)學(xué)生對系統(tǒng)軟件的認(rèn)知、結(jié)構(gòu)、設(shè)計及實(shí)施能力。(二)要求1.能熟練的在1 2種操作系統(tǒng)的環(huán)境下工作,學(xué)會使用各種命令,熟悉系統(tǒng)提供的各 種功能。主動而有效地使用計算機(jī)。2,熟悉系統(tǒng)實(shí)用程序的調(diào)用方法和各種系統(tǒng)調(diào)用模塊的功能和作用

2、。【實(shí)驗(yàn)內(nèi)容】在某種操作系統(tǒng)的環(huán)境下建立、修改、運(yùn)行、打印源程序和結(jié)果,最后撤消一個完整的程 序。提示:可按下述步驟進(jìn)行1 .編寫一個完整的源程序,通過編輯命令送入機(jī)器,建立源程序文件;2 .編譯該源文件,建立相應(yīng)的目標(biāo)文件;3 .編譯有錯時,再用編輯命令修改源文件,消除全部詞法和語法錯誤;4 .連接目標(biāo)文件,形成可執(zhí)行文件;5 .執(zhí)行該文件,得到結(jié)果;6 .打印輸出源程序和運(yùn)行結(jié)果;7 .撤消本次實(shí)驗(yàn)中形成的所有文件。實(shí)驗(yàn)二進(jìn)程調(diào)度程序設(shè)計【目的與要求】(一)目的進(jìn)程是操作系統(tǒng)最重要的概念之一,進(jìn)程調(diào)度是操作系統(tǒng)的主要內(nèi)容,本實(shí)驗(yàn)要求學(xué)生獨(dú)立地用高級語言編寫一個進(jìn)程調(diào)度程序,調(diào)度算法可任意選

3、擇或自行設(shè)計。本實(shí)驗(yàn)可使學(xué)生加深對進(jìn)程調(diào)度和各種調(diào)度算法的理解,培養(yǎng)學(xué)生對操作系統(tǒng)軟件的認(rèn)知、結(jié)構(gòu)、設(shè)計及實(shí)施能力,通過綜合運(yùn)用操作系統(tǒng)理論和技術(shù),分析、構(gòu)造、設(shè) 計、實(shí)施和運(yùn)行操作系統(tǒng)的工程技能。(-)要求1 .設(shè)計一個有幾個進(jìn)程共行的進(jìn)程調(diào)度程序,每個進(jìn)程由一個進(jìn)程控制塊(PCB)表示, 進(jìn)程控制塊通常應(yīng)包括下述信息:進(jìn)程名,進(jìn)程優(yōu)先數(shù),進(jìn)程需要運(yùn)行的時間,占用CPU勺時 間以及進(jìn)程的狀態(tài)等,且可按照調(diào)度算法的不同而增刪。2 .調(diào)度程序應(yīng)包含2 3種不同的調(diào)度算法,運(yùn)行時可以任選一種,以利于各種方法的 分析和比較。3 .系統(tǒng)應(yīng)能顯示或打印各進(jìn)程狀態(tài)和參數(shù)的變化情況,便于觀察?!緦?shí)驗(yàn)內(nèi)容】【

4、示例】1 題目本程序可選用優(yōu)先數(shù)法或簡單輪轉(zhuǎn)法對五個進(jìn)程進(jìn)行調(diào)度。每個進(jìn)程處于運(yùn)行 R(run)、就緒W(wait)和完成F(finish)三種狀態(tài)之一,并假定起始狀態(tài)都是就緒狀態(tài)W為了便于處理,程序中進(jìn)程的運(yùn)行時間以時間片為單位計算。各進(jìn)程的優(yōu)先數(shù) 或輪轉(zhuǎn)時間片數(shù)、以及進(jìn)程需要運(yùn)行的時間片數(shù),均由偽隨機(jī)數(shù)發(fā)生器產(chǎn)生。進(jìn)程控制塊結(jié)構(gòu)如下:表 2-1 PCB進(jìn)程標(biāo)識符鏈指針優(yōu)先數(shù)/輪轉(zhuǎn)時間片數(shù)占用CPU時間片數(shù)進(jìn)程所需時間片數(shù)進(jìn)程狀態(tài)進(jìn)程控制塊鏈結(jié)構(gòu)如下:圖2-1進(jìn)程控制塊鏈結(jié)構(gòu)其中:RUN 當(dāng)前運(yùn)行進(jìn)程指針;head 一進(jìn)程就緒鏈鏈?zhǔn)字羔?;tail 進(jìn)程就緒鏈鏈尾指針。2 .算法與框圖程序框圖

5、如下圖所示鏈?zhǔn)走M(jìn)程投入運(yùn)行鏈?zhǔn)走M(jìn)程投入運(yùn)行結(jié)束:結(jié)束圖2-2進(jìn)程調(diào)度框圖(1)優(yōu)先數(shù)法。進(jìn)程就緒鏈按優(yōu)先數(shù)大小從大到小排列,鏈?zhǔn)走M(jìn)程首先投入運(yùn)行。每過一個時間片,運(yùn)行進(jìn)程所需運(yùn)行的時間片數(shù)減1,說明它已運(yùn)行了一個時間片,優(yōu)先數(shù)也減3。理由是該進(jìn)程如果在一個時間片中完成不了,優(yōu)先級應(yīng)降低一級。 接著比較現(xiàn)行進(jìn)程和就緒鏈鏈?zhǔn)走M(jìn)程的優(yōu)先數(shù),如果仍是現(xiàn)行進(jìn)程高或者相同,就讓現(xiàn)行進(jìn)程繼續(xù)運(yùn)行,否則,調(diào)度就緒鏈鏈?zhǔn)走M(jìn)程投入運(yùn)行。原運(yùn)行進(jìn)程再按其優(yōu) 先數(shù)大小插入就緒鏈,且改變它們對應(yīng)的進(jìn)程狀態(tài),直至所有進(jìn)程都運(yùn)行完各自的時間片 數(shù)。(2)簡單輪轉(zhuǎn)法。進(jìn)程就緒鏈按各進(jìn)程進(jìn)入的先后次序排列,進(jìn)程每次占用處理機(jī)的

6、 輪轉(zhuǎn)時間按其重要程度登入進(jìn)程控制塊中的輪轉(zhuǎn)時間片數(shù)記錄項(xiàng)(相應(yīng)于優(yōu)先數(shù)法的優(yōu)先數(shù) 記錄項(xiàng)位置)。每過一個時間片,運(yùn)行進(jìn)程占用處理機(jī)的時間片數(shù)加1,然后比較占用處理 機(jī)的時間片數(shù)是否與該進(jìn)程的輪轉(zhuǎn)時間片數(shù)相等,若相等說明已到達(dá)輪轉(zhuǎn)時間,應(yīng)將現(xiàn)運(yùn)行進(jìn)程排到就緒鏈末尾,調(diào)度鏈?zhǔn)走M(jìn)程占用處理機(jī),且改變 它們的進(jìn)程狀態(tài),直至所有進(jìn)程完成各自的時間片。3.程序清單.# in elude <stdio.h># in elude <stdlib.h># defi ne furthest 5struct process /*PCB STRUCTURE*/int id;int prior

7、ity;int cputime;int alltime;char state;int n ext; Jprocha in furthest-1;int proc num;int ran d();int algo;int run 5head3tailJ;main() /*MAIN PROGRAM*/ aga n: printf( 44 type the algorithm is (1 :RR,2:PRIO):);scanf( " %d, &algo);if (algo=2) printf( " output of priority.);in it();prischQ;

8、elseif (algo=1) prin tf( woutput of round robin" ); in it(); timesch();else print% "try again,please;goto aga n;)for (j=1 ; j<=4O;j+)printf( "=”);printf(n<M);for (j=1 ;j<=40;j+) printf(" =");printf(ncn);printf(" system finishedprin t()/PRINT THE RUNNING PROCESS

9、,W WAITING QUEUE AND PCBSEQUENCE int k5p;for (k=1 ;k<=40;k+) printf( ");printf( nrUnning proc.");printf( " waiting queue. ");printf( n " %dn ,prochainrun.id);p=head;while(p!=0) printf( " 5d',p);p=procha inf p. next; printf( n ") ; for (k=1 ;k<=40;k+) prin

10、tf(");print* 優(yōu));printf( “id”);for (k=1 ;k<furthest+1 ;k+) printf( " %5d' ,prochaink.id);printf( nM,);printf( " priority "); for (k=1 ;k<furthest+1 ;k+) printf( “ % 5d' 5prochaink.priority);printf( nM,);printf( " cputime ");for (k=1 ;k<furthest+1 ;k+)in

11、sert(q) in sert2() mit()(printf( " %5d' ,prochaink.cputime);printf( n " ) ; printf( " alltime "); for (k=1 ;k<furthest+1 ;k+)printf( " %5d' ,prochaink.alltime);printf( nM );printf( " state”);for (k=1 ;k<furthest+1 ;k+)printf( " 5c” ,prochaink.state);p

12、rintf( n ”);printf( “ next ”);for (k=1 ;k<furthest+1 ;k+)printf( " %5d' ,prochaink.next);printf( n ”);/*INSERT A PROCESS*/int p,s; p=head; s=procha in head. nextwhile(procha in q.priority<procha in s.priority )&&( s!=0) P=s;s=procha in s. next;procha in p. next=q; procha in q.

13、 next=s;/*PUT A PROCESS ONTO THE TAIL OF THE QUEUE7 prochai n tail. next=ru n;tail=ru n;procha inrun . next=0;/*CREATE A W AITING QUEUE*/inti;head=0;if (alog=2)for (i=1 ;i<furthest+1 ;i+) procha in i.id=i;procha in i.priority=(ra nd()+11)%41;procha in i.cputime=O;procha in i.alltime=(ra nd()+1)%7

14、;prochaini.state= 1 W ;procha in i. next=0;if(procha in i.priority<procha in head.priority)&&(head!=0) in sert(procha in i.id); else procha in i. next=head; head= procha in i.id;)elsefor (i=1 ;i<furthest+1 ;i+) procha in i.id=i;procha in i.priority=(ra nd()+1)%3+1;procha in i.cputime=O

15、;procha in i.alltime=(ra nd()+1)%7;prochaini.state= ' W ;prochai ni. next=(i+1 )%(furthest+1); head=1;tail=furthest;procha in furthest .n ext=0;run=head;rg - Wprochainrun.state= ,卬; ihead=procha in head, next;procha inrun . next=0;print();prisch() "THE PROCESS WITH PRIO ALGORITHM*/ while(ru

16、 n!=0) procha inrun .cputime+=1;procha in run .priority-=3;procha inrun .alltime-=1; if(procha in ru n.alltime=O) prochainrun.sta te= 1 F* ; procha inrun . next=0; if(head!=0)run=head;prochainrun.state= f R1 head=procha in head. next; else procha in 0.id=procha inrun .id;run=0;elseif(procha in run .

17、priority< procha in head. priority )&&(head!=0) proch ainrun.state= f W ;in sert(r un);run=head;prochainrun.state=,卬;head= procha in head, next;)prin t();)timesch() /*THE PROCESS WITH RR ALRORITHM7 while(ru n!=0) procha inrun .alltime-=1;procha inrun .cputime+=1;if(prochai nrun .alltime=0

18、)* procha inrun .state= " F'; procha inrun . next=0; if(head!=0)run=head;prochainrun.state=,卬;head=procha in head. next; else procha in 0.id=procha inrun .id; run=0;)elseif(procha inrun .cputime=procha inrun. priority )&&(head!=0) prochainrun.state=,W ;procha inrun .cputime=0;in ser

19、t2();run=head;prochainrun.state= r R head=procha in head. next; ) prin t();)實(shí)驗(yàn)三存儲管理程序設(shè)計【目的與要求】(一)目的存儲管理的主要功能之一是合理地分配空間。請求頁式管理是一種常用的虛擬存儲管理技本實(shí)驗(yàn)的目的是通過請求頁式存儲管理中頁面置換算法的模擬設(shè)計,來了解虛擬存儲技術(shù) 的特點(diǎn),掌握請求頁式存儲管理的頁面置換算法。通過本實(shí)驗(yàn)可使學(xué)生加深對虛擬存儲管理技 術(shù)的理解,培養(yǎng)學(xué)生對操作系統(tǒng)軟件的認(rèn)知、結(jié)構(gòu)、設(shè)計及實(shí)施能力,通過綜合運(yùn)用操作系統(tǒng)理論和技術(shù),分析、構(gòu)造、設(shè)計、實(shí)施和運(yùn)行操作系統(tǒng)的工程技能。(二)要求模擬頁式

20、虛擬存儲管理中硬件的地址轉(zhuǎn)換和缺頁中斷,并用先進(jìn)先出調(diào)度算法 (FIFO)處理缺頁中斷?!緦?shí)驗(yàn)內(nèi)容】【提示】(1)為了裝入一個頁面而必須調(diào)出一頁時,如果被選中調(diào)出的頁面在執(zhí)行中沒有修改過, 則不必把該頁重新寫到磁盤上(因磁盤上已有副本)。因此,在頁表中可以增加是否修改過的標(biāo)志,當(dāng)執(zhí)行“存”指令、“寫”指令時把對應(yīng)頁的修改標(biāo)志置成“ F表示該頁修改過,否則為“ 0”表示該頁未修改過。頁表格式如表3-1所示。表31頁表格式頁號標(biāo)志主存塊號修改標(biāo)志磁盤上的位置(2)設(shè)計一個地址轉(zhuǎn)換程序來模擬硬件的地址轉(zhuǎn)換和缺頁中斷。當(dāng)訪問的頁在主存時則形成絕對地址,但不去模擬指令的執(zhí)行,可用輸出轉(zhuǎn)換后的絕對地址來表示一條指令已完成。當(dāng)訪問的頁不在主存時則輸出“*該頁頁號”來表示硬件產(chǎn)生了一次缺頁中斷。模擬地址轉(zhuǎn)換的程序流程如圖3-1所示。(3)編制一個FIFO頁面調(diào)度程序。FIFO頁面調(diào)度算法總是先調(diào)出作業(yè)中最先進(jìn)入主存的那一頁,因此,可以用一個數(shù)組來構(gòu)成頁號隊(duì)列。數(shù)組中每個元素是該作業(yè)已在主存的頁面號,假定分配給作業(yè)的主存塊數(shù)為m且該作業(yè)

溫馨提示

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

最新文檔

評論

0/150

提交評論