资源描述:
《操作系统实验报告1207-07-张俊》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统实验报告姓名:张俊学号:3901120707指导老师:胡志刚完成时间:2013-12-15实验一一、实验内容选择一个调度算法,实现处理机调度。二、实验目的多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。三、实验题目1、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。四、实验要求1.PCB内容:进程名/PID;要求运行时间(单位时间);优先权;状态:2.PCB指针;可随机输入若干进程,并按优先
2、权排序;从就绪队首选进程运行:优先权-1/要求运行时间-1要求运行时间=0时,撤销该进程重新排序,进行下轮调度;最好采用图形界面;可随时增加进程;规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。每次调度后,显示各进程状态。实验二一、实验内容主存储器空间的分配和回收二、实验目的帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。三、实验题目在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。四
3、、实验要求1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目内容:起址、长度、状态(未分/空表目)2、结合实验一,PCB增加为:{PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针}3、采用最先适应算法分配主存空间;4、进程完成后,回收主存,并与相邻空闲分区合并。五.实验源代码及截图:importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.text
4、.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.*;importjava.text.*;importjavax.swing.*;importjavax.swing.table.DefaultTableModel;importjava.awt.event.MouseAdapter;importjava.awt.event.*;importjava.lang.Integer;classPCB{publicString
5、name;publicintpri;publicintntime;publicStringstate;publicintlimit;publicintbase;publicintflag;}classDivide{publicintdivBase;publicintlength;publicintdivFlag;}publicclassWScpuextendsJFrameimplementsRunnable{JButtonbt1,bt2,bt3,bt4;JScrollPanejspane,jspane1,jspane2;JT
6、extFieldpro,nt,pname,psize;JTabletable1,table2,table3;JLabellab1,lab2,lab3,lab4,lab5,lab6,lab7;JPanelbtnPanel,mainPanel;DefaultTableModelmodel1,model2,model3;PCB[]apcb=newPCB[20];intpcbnum=0;intnewi=0;Divide[]div=newDivide[20];Threadthread=newThread(this);Calendarc
7、a=Calendar.getInstance();intminute=ca.get(Calendar.MINUTE);inthour=ca.get(Calendar.HOUR);intsecond=ca.get(Calendar.SECOND);publicWScpu(){super("进程调度");Containerc=this.getContentPane();c.setLayout(null);//c.setBackground(Color.pink);lab1=newJLabel("就绪队列");lab1.setSi
8、ze(80,20);lab1.setLocation(60,20);c.add(lab1);model1=newDefaultTableModel(newObject[][]{},newString[]{"进程名","需要时间","优先级","状态"});table1=newJTable(