操作系統實驗報告_第1頁
操作系統實驗報告_第2頁
操作系統實驗報告_第3頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、操作系統原理試驗報告班級:學號:姓名:實驗一: CPU 調度一、實驗內容選擇一個調度算法,實現處理機調度。二、實驗目的多道系統中, 當就緒進程數大于處理機數時, 須按照某種策略決定哪些進程優先占用處 理機。本實驗模擬實現處理機調度,以加深了解處理機調度的工作。三、實驗題目1、設計一個按優先權調度算法實現處理機調度的程序;2、設計按時間片輪轉實現處理機調度的程序。四、實驗要求PCB 內容:進程名 /PID ;要求運行時間(單位時間) ;優先權;狀態:PCB 指針;1、可隨機輸入若干進程,并按優先權排序;2、從就緒隊首選進程運行:優先權 -1/ 要求運行時間 -1要求運行時間 =0 時,撤銷該進程

2、3、重新排序,進行下輪調度4、最好采用圖形界面;5、可隨時增加進程;6、規定道數,設置后備隊列和掛起狀態。若內存中進程少于規定道數,可自動從后備 隊列調度一作業進入。被掛起進程入掛起隊列,設置解掛功能用于將指定掛起進程 解掛入就緒隊列。7、每次調度后,顯示各進程狀態。實驗二:內存管理一、實驗內容主存儲器空間的分配和回收二、實驗目的幫助了解在不同的存儲管理方式下,應怎樣實現主存空間的分配和回收。三、實驗題目在可變分區管理方式下,采用最先適應算法實現主存空間的分配和回收。四、實驗要求1、自行假設主存空間大小,預設操作系統所占大小并構造未分分區表; 表目內容:起址、長度、狀態(未分 / 空表目)2、

3、結合實驗一, PCB 增加為:PID ,要求運行時間,優先權,狀態,所需主存大小,主存起始位置,PCB 指針 3、采用最先適應算法分配主存空間;4、進程完成后,回收主存,并與相鄰空閑分區合并.1 、Vo 類說明(數據存儲結構)進程控制塊 PCB 的結構:Public class PCB / 進程控制塊 PCB ,代表一個進程/ 進程名,作為進程的標識;private String name;/ 要求運行時間,假設進程運行的單位時間數;private int time;/ 賦予進程的優先權,調度時總是選取優先數小的進程先執行;private int priority;running )、/ 狀態

4、,假設有“就緒”狀態( ready )、“運行”狀態(/ “后備”狀態( waiting )、“掛起”狀態 (handup)private String state;/ 進程存放在 table 中的位置private int start;/ 進程的大小private int length;/ 進程是否進入內存, 1 為進入, 0 為未進入private int isIn;/ 進程在內存中的起始位置private int base;/ 進程的大小private int limit;省略/ 一些 get 和 set 方法以及構造器;2 流程圖赫青講軒楓憂皆:載住一甯需 舉訐時可浦,圮迅竹進h哺 扎

5、到就箱貼列進用.完我、撤場-僉曲3.源程序核心代碼public void display()if(runningList.size()0)jt1.setValueAt(runningList.get(0).getName().trim(),0,0);jt1.setValueAt(runningList.get(0).getIsIn(),0,1);jt1.setValueAt(runningList.get(0).getTime(),0,2);jt1.setValueAt(runningList.get(0).getPriority(),0,3);jt1.setValueAt(runningLi

6、st.get(0).getStart(),0,4);jt1.setValueAt(runningList.get(0).getLength(),0,5);elsejt1.setValueAt( 無進程 ,0,0);jt1.setValueAt( 進行 ,0,1);jt1.setValueAt(null,0,2);jt1.setValueAt(null,0,3);jt1.setValueAt(null,0,4);jt1.setValueAt(null,0,5);/for(int i =0; i readyList.size(); i+)jt2.setValueAt(readyList.get(i

7、).getName().trim(),i,0);jt2.setValueAt(readyList.get(i).getIsIn(),i,1);jt2.setValueAt(readyList.get(i).getTime(),i,2);jt2.setValueAt(readyList.get(i).getPriority(),i,3);jt2.setValueAt(readyList.get(i).getStart(),i,4);jt2.setValueAt(readyList.get(i).getLength(),i,5);for(int j = readyList.size(); j 6;

8、 j+)jt2.setValueAt(null,j,0);jt2.setValueAt(null,j,1);jt2.setValueAt(null,j,2);jt2.setValueAt(null,j,3);jt2.setValueAt(null,j,4);jt2.setValueAt(null,j,5);/for(int i =0; i waitingList.size(); i+)jt3.setValueAt(waitingList.get(i).getTime(),i,2);jt3.setValueAt(waitingList.get(i).getPriority(),i,3);jt3.

9、setValueAt(waitingList.get(i).getStart(),i,4);jt3.setValueAt(waitingList.get(i).getLength(),i,5);for(int j = waitingList.size(); j 15; j+)jt3.setValueAt(null,j,0);jt3.setValueAt(null,j,1);jt3.setValueAt(null,j,2);jt3.setValueAt(null,j,3);jt3.setValueAt(null,j,4);jt3.setValueAt(null,j,5);/for(int i =

10、0; i handupList.size(); i+)jt4.setValueAt(handupList.get(i).getName().trim(),i,0);jt4.setValueAt(handupList.get(i).getIsIn(),i,1);jt4.setValueAt(handupList.get(i).getTime(),i,2);jt4.setValueAt(handupList.get(i).getLength(),i,5);for(int j = handupList.size(); j 15; j+)jt4.setValueAt(null,j,0);jt4.set

11、ValueAt(null,j,1);jt4.setValueAt(null,j,2);jt4.setValueAt(null,j,3);jt4.setValueAt(null,j,4);jt4.setValueAt(null,j,5);jl1.setCellRenderer(new MyRenderer();for(int i = 0; i 0&runningList.get(0).getIsIn()=1)runningList.get(0).setTime(runningList.get(0).getTime()-1);if(runningList.get(0).getPriority()=

12、1)runningList.get(0).setPriority(runningList.get(0).getPriority()-1);if(runningList.get(0).getTime()0&runningList.get(0).getIsIn()=1)putOutMemory(runningList,0);if(runningList.get(0).getPriority()=1)runningList.get(0).setPriority(runningList.get(0).getPriority()-1);/public class MyRunnable implement

13、s Runnablepublic void run()while(true)timeManager();tryThread.sleep(1000);ex)catch(InterruptedException 議isH旗三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三二pub-icc-ass MyRunnab-e二mp-emenfs Runnab-epub=c void run()whi-e(=rue)PManageo八Thread.s-eepuooor 議isH旗cafchunCDITUPCDd Except on ex) G-俞 型 =sf 甘

14、言対BM三三三三三三三三三三三三三三三三三三三三三三三三三三二pub=c inf gemirsfw(AITayLisADaQrv -isuif(=s!-*sN-e()vo)inf min H o八for(inf i H rA-isf.sN-e()T+ )if(=s!-*gef(min).gefpriorify() V =s!-*gef(i).gefpriorify()min Hrmin+;return min;elsereturn 0;/數據/ 刪 除 列 表 中 第 幾 個 /public void update(ArrayList list, int num)sList.clear();f

15、or(int i = 0; i list.size(); i+)if(i != num)sList.add(list.get(i);list.clear();for(int i = 0; i sList.size();i+)list.add(sList.get(i);public void update1(ArrayList list, int num) sList1.clear();for(int i = 0; i list.size(); i+)if(i != num)sList1.add(list.get(i);list.clear();for(int i = 0; i 0)if(run

16、ningList.get(0).getIsIn()=0)=for(int i = 0; i 0)for(int j = 0; j readyList.size(); j+)if(readyList.get(j).getIsIn()=0)for(int i = 0; i =if(unAssignList.get(i).getLimit() readyList.get(j).getLength()readyList.get(j).setStart(unAssignList.get(i).getBase();readyList.get(j).setIsIn(1);if(unAssignList.ge

17、t(i).getLimit() readyList.get(j).getLength()update1(unAssignList,i);elsej).getLeunAssignList.get(i).setBase(unAssignList.get(i).getBase()+readyList.get( ngth();ngth();break;/移除內/public void putOutMemory(ArrayList list, int num) list.get(num).setIsIn(0);boolean flag1 = false;boolean flag2 = false;for

18、(int i = 0; i unAssignList.size(); i+)if(unAssignList.get(i).getBase()(list.get(num).getLength()+list.get(num).getStart()unAssignList.get(i).setBase(list.get(num).getStart();unAssignList.get(i).setLimit(list.get(num).getLength()+unAssignList.get(i).getLi mit();flag1 = true;break;for(int i = 0; i unA

19、ssignList.size(); i+)if(unAssignList.get(i).getBase()+unAssignList.get(i).getLimit()list.get(num).getStart()if(!flag1)mit();flag2 = true;break;elseunAssignList.get(i).setLimit(unAssignList.get(i).getLimit()+unAssignList.get(i+1).getLimit();update1(unAssignList,i+1);if(flag1 | flag2)elseint i = 0;whi

20、le(unAssignList.get(i).getBase()list.get(num).getStart()Data_Memory data = new Data_Memory(); data.setBase(list.get(num).getStart(); data.setLimit(list.get(num).getLength(); sList1.clear();for(int j = 0; j i; j+)sList1.add(unAssignList.get( j);sList1.add(data);for(int j = i; j unAssignList.size(); j

21、+)sList1.add(unAssignList.get( j);unAssignList.clear();for(int j = 0; j sList1.size(); j+)unAssignList.add(sList1.get(j);/JLISTprivate class MyRenderer extends DefaultListCellRendererObjectpublic Component getListCellRendererComponent(JList list,value,int index, boolean isSelected, boolean cellHasFo

22、cus)index,super.getListCellRendererComponent(list, value,isSelected,cellHasFocus);setBackground(Color.gray);for(int i = 0; i 0)if(runningList.get(0).getTime()=0)runningList.clear();sList.clear();for(int i = 0; i 0)sList.add(readyList.get(i);readyList.clear();for(int i =0; i sList.size();i+)readyList

23、.add(sList.get(i);readyList.get(i).setState(ready);/ 從 waiting 隊列加入新的進程int j = 0;int m = readyList.size();for(; m 6 & j waitingList.size(); m+,j+)readyList.add(waitingList.get(j);readyList.get(m).setState(ready);/ sort(readyList);/ 調整 waitingList sList.clear();for(int i = j; i waitingList.size(); i+

24、)sList.add(waitingList.get(i);waitingList.clear();for(int i =0; i 0)runningList.add(readyList.get(0);runningList.get(0).setState(running); update(readyList,0);if(waitingList.size()0)readyList.add(waitingList.get(0);readyList.get(5).setState(ready);update(waitingList,0);else /if(runningList.size()0)i

25、f(readyList.size()0)readyList.add(runningList.get(0);runningList.clear();readyList.get(0).setState(running);readyList.get(readyList.size()-1).setState(ready);runningList.add(readyList.get(0);update(readyList,0);putInMemory();sub();display();jtf1.grabFocus();public void PManager()if(runningList.size()0)if(runningList.get(0).getTime()=0)runningList.clear();sList.clear();for(int i = 0; i 0)sList.add(readyList.get(i);readyList.clear();for(int i =0; i sList.size();i+)readyList.add(sList.get(i);readyList.get(i).setState(ready

溫馨提示

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

評論

0/150

提交評論