资源描述:
《操作系统实验报告-中南大学.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、操作系统原理试验报告班级:学号:姓名:实验一:CPU调度一、实验内容选择一个调度算法,实现处理机调度。二、实验目的多道系统中,当就绪进程数大于处理机数时,须按照某种策略决定哪些进程优先占用处理机。本实验模拟实现处理机调度,以加深了解处理机调度的工作。三、实验题目1、设计一个按优先权调度算法实现处理机调度的程序;2、设计按时间片轮转实现处理机调度的程序。四、实验要求PCB内容:进程名/PID;要求运行时间(单位时间);优先权;状态:PCB指针;1、可随机输入若干进程,并按优先权排序;2、从就绪队首选进程运行:优先权-1/
2、要求运行时间-1要求运行时间=0时,撤销该进程3、重新排序,进行下轮调度4、最好采用图形界面;5、可随时增加进程;6、规定道数,设置后备队列和挂起状态。若内存中进程少于规定道数,可自动从后备队列调度一作业进入。被挂起进程入挂起队列,设置解挂功能用于将指定挂起进程解挂入就绪队列。7、每次调度后,显示各进程状态。实验二:内存管理一、实验内容主存储器空间的分配和回收二、实验目的帮助了解在不同的存储管理方式下,应怎样实现主存空间的分配和回收。三、实验题目在可变分区管理方式下,采用最先适应算法实现主存空间的分配和回收。四、实验要
3、求1、自行假设主存空间大小,预设操作系统所占大小并构造未分分区表;表目内容:起址、长度、状态(未分/空表目)2、结合实验一,PCB增加为:{PID,要求运行时间,优先权,状态,所需主存大小,主存起始位置,PCB指针}3、采用最先适应算法分配主存空间;4、进程完成后,回收主存,并与相邻空闲分区合并.1、Vo类说明(数据存储结构)进程控制块PCB的结构:PublicclassPCB{//进程控制块PCB,代表一个进程//进程名,作为进程的标识;privateStringname;//要求运行时间,假设进程运行的单位时间数;
4、privateinttime;//赋予进程的优先权,调度时总是选取优先数小的进程先执行;privateintpriority;//状态,假设有“就绪”状态(ready)、“运行”状态(running)、//“后备”状态(waiting)、“挂起”状态(handup)privateStringstate;//进程存放在table中的位置privateintstart;//进程的大小privateintlength;//进程是否进入内存,1为进入,0为未进入privateintisIn;//进程在内存中的起始位置priva
5、teintbase;//进程的大小privateintlimit;//一些get和set方法以及构造器省略…};2流程图3.源程序核心代码publicvoiddisplay(){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()
6、,0,2);jt1.setValueAt(runningList.get(0).getPriority(),0,3);jt1.setValueAt(runningList.get(0).getStart(),0,4);jt1.setValueAt(runningList.get(0).getLength(),0,5);}else{jt1.setValueAt("无进程",0,0);jt1.setValueAt("进行",0,1);jt1.setValueAt(null,0,2);jt1.setValueAt(null,
7、0,3);jt1.setValueAt(null,0,4);jt1.setValueAt(null,0,5);}///////////////////////////////////////////////////for(inti=0;i8、yList.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).getLeng