版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届湖南省汨罗市第二中学物理高二上期末达标检测模拟试题含解析
- 2025届广东省信宜市高一物理第一学期期中统考试题含解析
- 山东省阳谷县第二中学2025届高二物理第一学期期中检测试题含解析
- 2025届吉林省公主岭市范家屯镇一中高一物理第一学期期末检测模拟试题含解析
- 2025届辽宁省凤城市通远堡高级中学物理高二上期中综合测试试题含解析
- 2025届宁夏回族自治区银川市兴庆区一中高一物理第一学期期末统考试题含解析
- 上海市浦东新区南汇中学2025届高二物理第一学期期末学业水平测试模拟试题含解析
- 2025届上海市南模中学高三物理第一学期期末调研模拟试题含解析
- 2025届河南省九师联盟商开大联考物理高一第一学期期中调研试题含解析
- 安徽省合肥市第三十五中学2025届物理高二第一学期期中质量跟踪监视模拟试题含解析
- 《珍惜青春主题班会》课件
- LED封装工艺流程图解
- 中央团校培训心得体会
- 炼钢工知识考试练习题及答案13-2023-背题版
- 医药代表拜访中的客户需求分析技巧
- 大沥废旧金属行业分析报告
- 2024年情感领域抖音号运营推广策划方案
- GB/T 27917.3-2023快递服务第3部分:服务环节
- 临床医学职业素养与职业道德培训课件
- 火灾逃生与自救技能培训
- 水淹赔偿协议书范本
评论
0/150
提交评论