




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、操作系统实验报告选题名称处理器调度所在院系计算机科学与技术学院专业名称计算机科学与技术学院(日语双学位)姓 名龚德兴、徐莉莉、张文卿、王俏、何慧楠、刘艳茹、朱静君班 级1202班指导老师付老师完成时间2014-12-2目录实验三 驱动调度- 1 -一、实习内容- 1 -二、实习目的- 1 -三、实习题目- 1 -四、程序中使用的数据结构及其说明。- 4 -五、流程图:- 5 -六、源码:- 6 -1、模拟类- 6 -2、主要实现- 8 -3、运行代码- 10 -七、程序截图- 13 -1、初始化界面- 13 -2、调度界面- 13 -3、调度完成界面- 13 -八、小组成员及其分工- 13 -
2、九、试验总结- 14 -实验三 驱动调度一、实习内容模拟电梯调度算法,实现对磁盘的驱动调度。二、实习目的磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务,在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求,这就叫驱动调度,使用的算法称驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实习要求学生模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实习使学生理解和掌握驱动调度的职能。三、实习题目模拟
3、电梯调度算法,对磁盘进行移臂调度和旋转调度。提示:(1) 磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务。当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出请求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。选择访问者的工作由“驱动调度”进程来完成。由于磁盘与处理器是可以并行工作的,所以当磁盘在为一个进程服务时,占有处理器的另一进程可以提出使用磁盘的要求,也就是说,系统能动态地接收新的输入输出请求。为了模拟这种情况,在本实习中设置一个“接收请求”进程。“驱动调度”进程和“接收请求”进
4、程能否占有处理器运行,取决于磁盘的结束中断信号和处理器调度策略。在实习中可用随机数来模拟确定这两个进程的运行顺序,以代替中断处理和处理器调度选择进程的过程。因而,程序的结构可参考图10-1。图10-1 程序结构(2) “接收请求”进程建立一张“请求I/O”表,指出等待访问磁盘的进程要求访问的物理地址,表的格式为:进程名柱面号磁道号物理记录号MMMMMMMM假定某个磁盘组共有200个柱面,由外向里顺序编号(0-199),每个柱面上有20个磁道,编号为0-19,每个磁道分成8个物理记录,编号0-7。进程访问磁盘的物理地址可以用键盘输入的方法模拟得到。图10-2是“接收请求”进程的模拟算法。收请求”
5、模拟算法在实际的系统中必须把等待访问磁盘的进程排入等待队列,由于本实习模拟驱动调度,为简单起见,在实习中可免去队列管理部分,故设计程序时可不考虑“进程排入等待队列”的工作。(3) “驱动调度”进程的功能是查“请求I/O”表,当有等待访问磁盘的进程时,按电梯调度算法从中选择一个等待访问者,按该进程指定的磁盘物理地址启动磁盘为其服务。对移动臂磁盘来说,驱动调度分移臂调度和旋转调度。电梯调度算法的调度策略是与移动臂的移动方向和移动臂的当前位置有关的,所以每次启动磁盘时都应登记移臂方向和当前位置。电梯调度算法是一种简单而实际上用的驱动调度算法,这种调度策略总是优先选择与当前柱面号相同的访问请求,从这些
6、请求中再选择一个能使旋转距离最短的等待访问者。如果没有与当前柱面号相同的访问请求,则根据移臂方向来选择,每次总是沿臂移动方向选择一个与当前柱面号最近的访问请求,若沿这个方向没有访问请求时,就改变臂的移动方向。这种调度策略能使移动臂的移动频率极小化,从而提高系统效率。用电梯调度算法实现驱动调度的模拟算法如图10-3。(4) 图10-1中的初始化工作包括,初始化“请求I/O”表,置当前移臂方向为里移;置当前位置为0号柱面,0号物理记录。程序运行前可假定“请求I/O”表中已经有若干个进程等待访问磁盘。在模拟实习中,当选中一个进程可以访问磁盘时,并不实际地启动磁盘,而用显示:“请求I/O”表;当前移臂
7、方向;当前柱面号,物理记录号来代替图10-3中的“启动磁盘”这项工作。四、程序中使用的数据结构及其说明。1、程序中使用的bean:Process:把进程抽象为一个类,包含进程名,柱面号、磁道号、物理记录号。2、使用了conpareto接口、对进程进行了比较排序,如果柱面号相同,则比较磁道号,如果磁道相同,则比较记录号。3、把当前位置抽象为一个进程,进程名字固定,up或者down五、流程图:初始化当前位置,放入集合中添加作业0或者进程调度1添加作业,放入集合中判断集合中是否有作业对作业位置进行排序根据当前位置调度作业开始 0 1 N 结束 Y六、源码:1、模拟类public class Proc
8、ess implements Comparable<Process> private String pname;private Integer cid;private Integer tid;private Integer prid;public Process(String pname, Integer cid, Integer tid, Integer prid) this.pname = pname;this.cid = cid;this.tid = tid;this.prid = prid;public String getPname() return pname;publ
9、ic void setPname(String pname) this.pname = pname;public Integer getCid() return cid;public void setCid(Integer cid) this.cid = cid;public Integer getTid() return tid;public void setTid(Integer tid) this.tid = tid;public Integer getPrid() return prid;public void setPrid(Integer prid) this.prid = pri
10、d;Overridepublic int compareTo(Process p) if (p.getCid() > this.cid) return 1; else if (p.getCid() < this.getCid() return -1; else if (p.getTid() > this.getTid() return 1; else if (p.getTid() < this.getTid() return -1; else if (p.getPrid() > this.getPrid() return 1; else if (p.getPrid
11、() < this.getPrid() return -1; else return 0;Overridepublic String toString() return "Process pname=" + pname + ", cid=" + cid + ", tid=" + tid+ ", prid=" + prid + ""2、主要实现public class IO private List list = new ArrayList();/ 用来记录作业位置/* * 运行 * * p
12、aram list */public void run(List<Process> list) int count = 0;for (int i = 0; i < list.size(); i+) if (list.get(i).getPname().equals("up") if (list.get(0)!=list.get(i) System.out.println("上升");System.out.println(list.get(i - 1);list.remove(i - 1);break; else System.out.p
13、rintln("下降了");System.out.println(list.get(i + 1); list.get(i).setPname("down"); list.remove(i + 1);break;if (list.get(i).getPname().equals("down") if(i!=list.size()-1&&list.get(list.size()-1)!=list.get(i)System.out.println("下降");System.out.println(list
14、.get(i + 1);list.remove(i + 1);break; else System.out.println("反向");System.out.println(list.get(i - 1); list.get(i).setPname("up"); list.remove(i - 1);break;/* * 初始化 * * param pname* param cid * param tid * param phid */public void init(String pname, Integer cid, Integer tid, Int
15、eger phid) Process p = new Process(pname, cid, tid, phid);list.add(p);public List getList() return list;3、运行代码public class RunTest public static void main(String args) IO io = new IO();Scanner scan = new Scanner(System.in);Random rand = new Random();List<Process> list = null;System.out.println
16、("请输入运行方向(up or down)及位置:");Process p = new Process(scan.next(), scan.nextInt(), scan.nextInt(),scan.nextInt();while (true) int select = scan.nextInt();System.out.println(select + "select");if (select = 0) / 初始化作业list = runInit(scan, io);boolean b = isHava(list);if (!b) list.add(
17、p); else / 调度 select =1if (list = null) System.out.println("没有作业需要完成");select = 0; else System.out.println(list.size();if(list.size()=1&&(list.get(0).getPname().equals("up")| list.get(0).getPname().equals("down")System.out.println("没有作业需要调度");select =
18、0; else runExecute(list, io);private static void runExecute(List<Process> list, IO io) Collections.sort(list);for (Process process : list) System.out.println(process);io.run(list);private static boolean isHava(List<Process> list) for (Process process : list) if (process.getPname().equals("up")| process.getPname().equals("down")
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 购房定金解约协议
- 服装设计合同范本
- 紧急救援体系考核试卷
- 租赁经营的个人信息保护和人权问题考核试卷
- 木地板企业人力资源规划与招聘考核试卷
- 电容器在音频电路中的运用考核试卷
- 窄轨机车车辆设计与制造中的绿色环保考核试卷
- 糖果企业发展战略规划与实施考核试卷
- 海上深海探险基地考核试卷
- 聚苯并咪唑纤维耐化学性考核试卷
- 2025劳动合同范本下载打印
- 微生物检验的基础知识试题及答案
- 2025年北京市三类人员安全员c3证考试题库及答案
- (四调)武汉市2025届高中毕业生四月调研考试 地理试卷(含答案)
- GB/T 45434.3-2025中国标准时间第3部分:公报
- 北京市消防条例解读
- 2025年中国城市轨道交通维修行业投资潜力分析及行业发展趋势报告
- 公司转让租赁合同样本
- 大概念视角下的初中数学函数单元整体教学设计研究与实践
- 建筑工程检测行业市场现状分析及未来三到五年发展趋势报告
- 烟草行业网络安全体系建设
评论
0/150
提交评论