1 / 14
文档名称:

中南大学操作系统实验报告.doc

格式:doc   大小:192KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

中南大学操作系统实验报告.doc

上传人:2072510724 2020/6/26 文件大小:192 KB

下载得到文件列表

中南大学操作系统实验报告.doc

文档介绍

文档介绍:中南大学操作系统实验报告姓名:学号:班级:;,实现进程调度;。;熟悉进程管理中主要数据结构的设计及进程调度算法、进程控制机构和同步机构的实现过程。帮助了解在不同的存储管理方式下,;;,设置后备队列和阻塞状态。若内存中进程少于规定道数,。被阻塞进程入阻塞队列,设置唤醒功能用于将指定阻塞进程唤醒进入就绪队列;,显示各进程状态;,模拟同步过程;;,预设操作系统所占大小并构造未分分区表。,分配主存,并与相邻空闲分区合并。具体实现将实验一与实验二结合在一起。所以整合成了一分实验报告。在这里统一给出自己实现的思想。:利用冒泡法实现优先级的排序//优先级的排序 publicvoidsort(ArrayList<PCB>arraylist){ for(inti=0;i<();i++){ for(intj=i+1;j<();j++){ if((i).getPriority()<(j).getPriority()){ //根据冒泡法来优先级排序 PCBtemp=(i); (i,(j)); (j,temp); } } } }自动从后备队列中往就绪队列中增加进程//若内存中进程少于规定道数,可从后备队列中调度作业进入 publicvoidcheckPCB(ArrayList<PCB>ready,ArrayList<PCB>pool){ while(()<4&&()>0){ ((0)); ("从后备队列往就绪队列中加入进程"); (0).getAll(); (0); } }内存不够时,移入外存队列publicvoidmove(PCBPCB,ArrayListexternStore,ArrayListPCBready){ if(()==false){ (PCB); (PCB); } },对于操作系统的模拟有了更深的理解。进程的调度,在开始做第一个实验时,由于设计上的漏洞,导致临界资源一直被占用,结果造成了死锁。在实践中,更加理解了死锁的涵义。同时,也提醒着自己要不断的总结,注意数据结构方面的设计问题。,我在这方面产生了点困难。刚开始,不知道如何来模拟临界资源。在请教了老师之后,慢慢开始摸索。3.,接触到第二个实验,对于主存空间的模拟又产生了困难。不知道该用什么来模拟。最终采用了投机取巧的方式。,就不用担心主存的回收问题了。但是这样,不太符合实际情况。源代码packageos_check_1;;;lassCPU{ staticbooleansource=false; staticArrayList<PCB>PCBready=newArrayList<PCB>();//这里才是真正的就绪队列 staticArrayList<PCB>poolQueue=newArrayList<PCB>();//后备队列 staticArrayList<PCB>blockQueue=newArrayList<PCB>();//阻塞队列 staticArrayList<PCB>endQueue=newArrayList<PCB>();//结束队列 staticArrayList<PCB>externStore=newArrayList<PCB>();//放入外存的队列 PCBinitpi=newPCBinit(); Scannersc=newScanner(); MainStorems=newMainStore(); CPU(){ =