1、要求运行时间(单位时间) ;优先权;状态:PCB 指针;1、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权 -1/ 要求运行时间 -1要求运行时间 =0 时,撤销该进程3、重新排序,进行下轮调度4、最好采用图形界面;5、可随时增加进程;6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备 队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程 解挂入就绪队列。7、每次调度后,显示各进程状态。实验二:内存管理主存储器空间的分配和回收帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。在可变分区管理方式下,采用最先适应算法
2、实现主存空间的分配和回收。1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表; 表目内容:起址、长度、状态(未分 / 空表目)2、结合实验一, PCB 增加为:PID ,要求运行时间,优先权,状态,所需主存大小,主存起始位置, PCB 指针 3、采用最先适应算法分配主存空间;4、进程完成后,回收主存,并与相邻空闲分区合并.1 、Vo 类说明(数据存储结构)进程控制块 PCB 的结构:Public class PCB / 进程控制块 PCB ,代表一个进程/ 进程名,作为进程的标识;private String name;/ 要求运行时间,假设进程运行的单位时间数;private i
3、nt time;/ 赋予进程的优先权,调度时总是选取优先数小的进程先执行;private int priority;running )、/ 状态,假设有“就绪”状态( ready )、“运行”状态(/ “后备”状态( waiting )、“挂起”状态 (handup)private String state;/ 进程存放在 table 中的位置private int start;/ 进程的大小private int length;/ 进程是否进入内存, 1 为进入, 0 为未进入private int isIn;/ 进程在内存中的起始位置private int base;private int
4、 limit;省略/ 一些 get 和 set 方法以及构造器;2 流程图赫青讲軒枫忧皆:载住一甯需 举讦时可浦,圮迅竹进h哺 扎到就箱貼列进用.完我、撤場-僉曲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.setValue
5、At(runningList.get(0).getPriority(),0,3);jt1.setValueAt(runningList.get(0).getStart(),0,4);jt1.setValueAt(runningList.get(0).getLength(),0,5);elsejt1.setValueAt( 无进程 ,0,0); 进行 ,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 r
6、eadyList.size(); i+)jt2.setValueAt(readyList.get(i).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).g
7、etLength(),i,5);for(int j = readyList.size(); j =1)runningList.get(0).setPriority(runningList.get(0).getPriority()-1);if(runningList.get(0).getTime()runningList.get(0).setTime(0);if(runningList.get(0).getTime()=0)putOutMemory(runningList,0);public void sub1()if(runningList.get(0).getPriority()15)/public class MyRunnable implements Runnablepublic void run()while(true)timeManager();tryThread.sleep(1000);ex)catch(InterruptedException 議isH旗 三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三三二pub-icc-ass MyRunnab-e二mp-emenfs Runnab-epub=c voi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1