版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川省峨眉山市高二生物下册期末考试模拟检测卷【能力提升】附答案
- 2025年山东省青州市高二历史上册期末考试真题及参考答案(新)
- 2026 山东 退役军人岗事业单位考前模拟训练卷含答案
- 2026 江苏 水利岗事业单位含答案
- 2026 山东退役军人岗事业编含解析
- 2026下半年高中物理教资面试相对论知识专项题库
- 2026年微软Azure数据科学家认证考试(DP-100)模型部署与监控试题
- 2026年辽宁省北票市高二历史上册期末考试检测卷带答案(培优B卷)
- 2026年云南省安宁市高二历史下册期末考试自测卷及参考答案(黄金题型)
- 2026中国碳纤维复合材料在航空航天领域应用前景与技术创新报告
- 2026年《中国脑出血急性期救治临床指南(2026版)》
- 2026年国庆节小学主题班会课件
- 炉膛内脚手架搭设安全措施培训课件
- 初中团课课件
- DB44∕T 2653-2025 粤菜制作职业技能等级规范
- 广东省广州市荔湾区部分学校2025-2026学年高一上学期11月期中考试英语试题(解析版)
- 家装修保修合同范本
- 沥青混凝土施工现场技术服务方案
- 心理委员理论知识考核试题及答案
- CJ/T 188-2018户用计量仪表数据传输技术条件
- 土方消纳处置合同协议书
评论
0/150
提交评论