操作系统实验报告-中南大学.docx
《操作系统实验报告-中南大学.docx》由会员分享,可在线阅读,更多相关《操作系统实验报告-中南大学.docx(35页珍藏版)》请在三一文库上搜索。
1、精选文档操作系统原理试验报告班级:学号:姓名:可编辑实验一: CPU 调度一、实验内容选择一个调度算法,实现处理机调度。二、实验目的多道系统中, 当就绪进程数大于处理机数时, 须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。三、实验题目1 、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。四、实验要求PCB 内容:进程名 /PID ;要求运行时间(单位时间) ;优先权;状态:PCB 指针;1 、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权 -1/ 要求运行时间 -1要求运行时间 =0
2、 时,撤销该进程3、重新排序,进行下轮调度4、最好采用图形界面;5、可随时增加进程;6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。7、每次调度后,显示各进程状态。实验二:内存管理一、实验内容主存储器空间的分配和回收二、实验目的帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。三、实验题目在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。四、实验要求1 、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目内容:起址、长度、状态(未分/ 空
3、表目)2 、结合实验一, PCB 增加为:PID ,要求运行时间,优先权,状态,所需主存大小,主存起始位置, PCB 指针 3、采用最先适应算法分配主存空间;4、进程完成后,回收主存,并与相邻空闲分区合并.1 、 Vo 类说明(数据存储结构)进程控制块PCB 的结构:Public class PCB / 进程控制块 PCB ,代表一个进程/ 进程名,作为进程的标识;private String name;/ 要求运行时间,假设进程运行的单位时间数;private int time;/ 赋予进程的优先权,调度时总是选取优先数小的进程先执行;private int priority;/ 状态,假设
4、有“就绪”状态( ready ) 、 “运行”状态( running ) 、/ “后备”状态( 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 流程图就缔队列首过程开帕运打时间片翱.玷
5、打SE程己占相.LH;时间加I运行进用的情郛戴畿一,斯需 举行时可被,出道打进和哺 入到就第劭列Jfi程充撤精当明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).ge
6、tPriority(),0,3);jt1.setValueAt(runningList.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.
7、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).getLength(
8、),i,5);for(int j = readyList.size(); j 6; 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).getName().trim(),i,0);jt3.setVa
9、lueAt(waitingList.get(i).getIsIn(),i,1);jt3.setValueAt(waitingList.get(i).getTime(),i,2);jt3.setValueAt(waitingList.get(i).getPriority(),i,3);jt3.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(n
10、ull,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 =0; i handupList.size(); i+)jt4.setValueAt(handupList.get(i).getName().trim(),i,0);jt4.setValueAt(handupList.get(i).getIsIn(),i,1);jt4.setValueAt(handupLis
11、t.get(i).getTime(),i,2);jt4.setValueAt(handupList.get(i).getPriority(),i,3);jt4.setValueAt(handupList.get(i).getStart(),i,4);jt4.setValueAt(handupList.get(i).getLength(),i,5);for(int j = handupList.size(); j 15; j+)jt4.setValueAt(null,j,0);jt4.setValueAt(null,j,1);jt4.setValueAt(null,j,2);jt4.setVal
12、ueAt(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()=1)runningList.get(0).setPriority(runningList.get(0).g
13、etPriority()-1);if(runningList.get(0).getTime()0&runningList.get(0).getIsIn()=1)runningList.get(0).setTime(runningList.get(0).getTime()-1);if(runningList.get(0).getTime()=0)putOutMemory(runningList,0);if(runningList.get(0).getPriority()=1)runningList.get(0).setPriority(runningList.get(0).getPriority
14、()-1);/public class MyRunnable implements Runnablepublic void run()while(true)timeManager();tryThread.sleep(1000);ex)catch(InterruptedException精选文档/public class MyRunnable1 implements Runnablepublic void run() while(true)PManager();tryThread.sleep(1000);catch(InterruptedExceptionex)/得 到 list 中 优 先 权
15、 最 高 的/public int getFirstW(ArrayList list)if(list.size()0)int min = 0;for(int i = 1;i list.get(i).getPriority()min = i;可编辑精选文档min+;return min;elsereturn 0;/删 除 列 表 中 第 几 个 数 据/public void update(ArrayList list, int num)sList.clear();for(int i = 0; i list.size(); i+)if(i != num)sList.add(list.get(i)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 报告 中南 大学
链接地址:https://www.31doc.com/p-11739978.html