操作系统原理课程设计报告.doc

上传人:龙*** 文档编号:1095596 上传时间:2018-12-05 格式:DOC 页数:9 大小:463.50KB
下载 相关 举报
操作系统原理课程设计报告.doc_第1页
第1页 / 共9页
操作系统原理课程设计报告.doc_第2页
第2页 / 共9页
操作系统原理课程设计报告.doc_第3页
第3页 / 共9页
操作系统原理课程设计报告.doc_第4页
第4页 / 共9页
操作系统原理课程设计报告.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、上海电力学院课程设计报告课程名称: 操作系统原理 姓 名: 刘昊 学 号: 20061945 班 级: 200605W1 同 组 姓 名: 陈新 实验时间: 第 19 周 成 绩:、 课程设计内容进程调度算法模拟。主要负责短进程优先调度算法、高优先权优先调度算法和多级反馈队列调度算法的模拟实现。、 设计要求。编写程序模拟进程调度程序,对五个进程进行调度。要求至少支持两种及两种以上调度算法。 (每个小组完成算法数量为小组人数+1)(1)调度算法包括:FIFO,短进程优先,优先级,时间片轮转,多级反馈队列等。(2)五个进程的进入时间、运行时间、优先数、时间片等可以事先人为地指定,也可由随机数产生。

2、每运行一次调度程序都要求打印一次运行进程、就绪队列、以及各进程的状态信息。最后给出每一种调度算法的平均周转时间和带权周转时间。、 调度算法及相关数据结构。使用的数据结构有以下几个:1、PCB :进程控制块String name:进程名char state:进程状态,分别有w( 等待,未被插入就绪队列),r(就绪,已进入就绪队列),f(结束,进程运行完毕)int ntime:服务时间int rtime:到达时间int f:优先权(静态)2、QueueOfAll:储存所有进程PCB PCB_Node:PCB结点的数组,用以保存所有进程信息int length:总的进程数3、QueueOfCurre

3、nt:就绪进程队列PCB PCB_Node:PCB结点的数组,用以保存所有进入就绪队列的进程信息int front:指向当前队头的前一位int rear:指向当前队尾int length:总的进程数int current:当前在执行的进程指针int cut:该队列的时间片长度FIFO,短进程优先,优先级调度算法示意流程图:开始比较各进程的到达时间和系统当前时间,将未进入就绪队列的进程插入到就绪队列中。把就绪队列的队首进程进行调度并运行该进程进程运行完毕,将其出队,并更新系统时间。队列是否为空系统时间加 1全部进程是否已调度完毕。N YYN按 FCFS、SPF、FPF算法分别对就绪队列中的进程进

4、行排序结束时间片轮转调度算法示意流程图:Serveredtimecurrentcut开始初始化个进程的 PCB,输入进程信息初始化就绪队列 CurrentPCB 的信息,front=rear=-1,current=0,length=0 ;系统运行时间 systemtime=0;数组 serveredtime记录程序所需时间;SreachPCB();将 0 时刻到达的程序插入就绪队列;时间片长=cut;currentcutSreachPCB();将 rtimesystemtime的程序插入就绪队列前面队列全部为空?NNumofqueue=非空队列列号执行 CurrentPCBQueuenumof

5、queuecurrent所指的程序 cut=numofqueueSystemtime=Systemtime+ Serveredtimecurrent将此程序退出绪列Systemtime=Systemtime+ cut退出第 numofqueue 队列,插到下一队列的末尾Ncurrent+(指向就绪队列下一个程序) Numofqueue+ current=front+1开始初始化个进程的 PCB,输入进程信息初始化就绪队列组 CurrentPCBQueue的信息,front=rear=-1,current=0 ,length=0;系统运行时间 systemtime=0;数组 serveredti

6、me记录程序所需时间;SreachPCB();numofqueue=0;将 0 时刻到达的程序插入第一级就绪队列;SreachPCB(); 将 0 时刻到达的程序插入就绪队列。时间片长=cut。结束所有队列为空?YN、 实验结果1、短进程优先调度算法各进程的相关初始值如下:进程名 A B C D E到达时间 0 1 2 3 4服务时间 4 3 5 2 4实验结果如下:结果分析:由于采用的是非抢占式,因此第一个进入就绪队列的 A 肯定会先执行完。这时系统时间为 4,B、C 、D 、E 已全部到达。D 的服务时间最短,会被优先执行。接下去的顺序依次为:B、C、E。C 和 E 的服务时间相同,则根据

7、先来先服务原则进行调度。2、高优先权优先调度算法各进程的相关初始值如下:进程名 A B C D E到达时间 0 1 2 3 4服务时间 4 3 5 2 4优先权 4 5 7 2 3实验结果如下:结果分析:同理最先完成的还是 A。这时系统时间为 4,B、 C、D 、E 已全部到达。C 的优先权最高,会被优先执行。接下去的顺序依次为:B、E 、D。3、多级反馈队列调度算法各进程的相关初始值如下:进程名 A B C D E到达时间 0 1 2 3 4服务时间 4 3 18 1 7实验结果如下:结果分析:采用多级反馈队列的方式,反馈队列有四个,时间片依次为 1、2、3、4。第一次可以将 ABCDE 顺

8、序执行一遍,在此过程中 D 执行完毕。第二次 B 执行完毕。如此进行下去,最后剩下 E,会不断地执行,直至结束。六、实验小结在这次实验中,我主要负责了短进程优先调度算法、高优先权优先调度算法和多级反馈队列调度算法的模拟实现。从实验中我加深了对这几种算法的理解,从而也对操作系统对于进程调度的方法有了新的认识。1、对于先来先服务调度算法、短进程优先调度算法和高优先权(静态优先权)优先调度算法,这几种算法的思想是类似的,即每次插入一个新的进程到就绪队列后,都要对就绪队列进行一次排序,只是排序的依据不同,分别是到达时间升序( 在实际中进程进入就绪队列时就已经是按这个顺序排好了)、服务时间升序和优先权降序。这对于编程实现,以及系统开销来说,都是很简单方便的。但从实验结果中可以看出,其平均带权周转时间是要比之后两种要长的,也就是说效率并不高。2、对于多级反馈队列调度算法,在编程中我们遇到了不少困难。除了JAVA 语言使用上的问题外,主要还是对调度过程的理解不够,因此在进程出队入队的时机没有判断准确,之后通过查阅课本相关内容,把整个过程搞清楚了,程序也就很快完成了。

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

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。