2022年实验一单处理器调度算法的实现 .pdf

上传人:C****o 文档编号:32154886 上传时间:2022-08-08 格式:PDF 页数:6 大小:137.44KB
返回 下载 相关 举报
2022年实验一单处理器调度算法的实现 .pdf_第1页
第1页 / 共6页
2022年实验一单处理器调度算法的实现 .pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《2022年实验一单处理器调度算法的实现 .pdf》由会员分享,可在线阅读,更多相关《2022年实验一单处理器调度算法的实现 .pdf(6页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、实验一单处理器调度算法的实现班级:计算机04-1 班学号: 04034040112 姓名:汀芷约成绩: _ _ 日期: _ 2006-11-02 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 6 页实验一单处理器调度算法的实现一、实验目的在多道程序或多任务系统中,系统同时处于就绪态的进程有若干个。为了使系统中的各进程能有条不紊地运行,必须选择某种调度策略,以选择占用处理机。要求学生设计一个模拟单处理机调度的算法,以巩固和加深处理机调度的概念。二、实验内容设计一个按时间片轮转法调度的算法。提示:1、假设系统有5 个进程,每个进程用一个进

2、程控制块PCB 来代表。 PCB的格式如图所示。其中,进程名即是进程标识。链接指针:指出下一个到达进程的进程控制块首地址。按照进程到达的顺序排队。系统设置一个队头和队尾指针分别指向第一个和最后一个进程。新生成的进程放队尾。2、为每个进程任意确定一个要求运行时间和到达时间。3、 按照进程到达的先后顺序排成一个循环队列。再设一个队首指针指向第一个到达进程的首地址。4、执行处理机调度时,开始选择队首的第一个进程运行。另外再设一个当前运行进程指针,指向当前正运行的进程。5、由于本实验是模拟实验,所以对被选中进程并不实际启动运行,而是执行:一是估计运行时间减1;二是输出当前运行进程的名字。用这两个操作来

3、模拟进程的一次执行。6、进程运行一次后,以后的调度则将当前指针依次下移一个位置,指向下一个进程,即调整当前运行指针指向该进程的链接指针所指进程,以指示应运行进程。同时还应该判断该进程的剩余运行是否为0。若不为0,则等待下一轮精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 6 页的运行; 若该进程的剩余时间为0,则将该进程的状态置为C,并退出循环队列。7、若就绪队列不空,则重复上述的(5)和(6)步骤直到所有进程都运行为止。8、在所设计的调度程序中,应包含显示或打印语句。以便显示或打印每次选中进程的名称及运行一次后队列的变化情况。三、实验

4、说明1、 程序中使用的数据结构及符号说明:数据结构:数组data 符号说明: 每个进程的状态是就绪 W (Wait )、运行 R ( Run)、或完成 C (Complete )三种状态之一。2、程序流程图:四、实验源程序import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class ShiJianPianDiaoDu / 调度算法static void diaoDuSuanFa(Object data) int count = 0, i1 = 0

5、; Object t; for (int i = 0; i data.length; i+) i1 += (Integer) datai2; 输入 name,arrivetime,runtime State 到数组 data 调用 paiXu() 方法调用 diaoDuSuanFa()方法精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 6 页for (int j = 0; j i1; j+) if (data03 != C) t = data0; data02 = (Integer) data02 - 1; if (Integer) d

6、ata02 = 0) data03 = C; for (int i = 0; i data.length - 1; i+) datai = datai + 1; datadata.length - 1 = t; println(data); System.out.println(-); count+; else for (int i = 0; i data.length - 1 - count; i+) datai = datai + 1; datadata.length - 1 - count = t; println(data); System.out.println(-); static

7、 void paiXu(Object data) / 排序 Object t; for (int i = 0; i data.length - 1; i+) for (int j = 0; j (Integer) dataj + 11) t = dataj; dataj = dataj + 1; dataj + 1 = t; static void println(Object data) / 打印 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 6 页for (int i = 0; i data.length; i+) System.

8、out.println( + datai0 + t + datai1 + t + datai2 + t + datai3); public static void main(String args) int n = 0, count = 1; String s; System.out.println(时间片为 1); System.out.print(输入进程数 :); try BufferedReader br = new BufferedReader(new InputStreamReader( System.in); s = br.readLine(); n = Integer.pars

9、eInt(s); catch (IOException e) /dataname,arrivetime,runtime,state Object data = new Objectn4; for (int i = 0; i n; i+) try System.out.print(请输入第 + count + 个进程的名字 :); BufferedReader br = new BufferedReader(new InputStreamReader( System.in); datai0 = br.readLine(); System.out.print(到达时间 (s):); s = br.

10、readLine(); datai1 = Integer.parseInt(s); System.out.print(运行时间 (s):); s = br.readLine(); datai2 = Integer.parseInt(s); catch (Exception e) datai3 = R; count+; paiXu(data); System.out.println(namet+arrivetimet+runtimet+state); diaoDuSuanFa(data); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 6 页五、运行结果六、实验体会为了使系统中的各进程能有条不紊地运行,必须选择调度策略,而进程调度算法有 FIFO,优先数调度算法,时间片轮转调度算法,本次实验运用的是时间片轮转调度算法。通过本次实验,我巩固和加深处理机调度的概念,为操作系统这门课程打下了坚实的基础。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 6 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com