操作系统驱动调度

操作系统驱动调度

ID:37504840

大小:181.51 KB

页数:20页

时间:2019-05-24

操作系统驱动调度_第1页
操作系统驱动调度_第2页
操作系统驱动调度_第3页
操作系统驱动调度_第4页
操作系统驱动调度_第5页
资源描述:

《操作系统驱动调度》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统实习报告姓名学号日期实验室指导教师设备编号实习题目实习九驱动调度一、实习内容模拟电梯调度算法,实现对磁盘的驱动调度。二、实习目的磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务、在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求。这就叫驱动调度,使用的算法称为驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实验要求学生模拟设

2、计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实验使学生理解和掌握驱动调度的职能。三、实习过程1.数据结构设计#defineM20typedefstructPCB{charproc[M];//进程名intcylinder_num;//柱面号inttrack_num;//磁道号intphy_num;//物理记录号structPCB*next;}PCB;2.算法设计(1)主函数框图如图1.1)主函数要求用户选择大于0.5<电梯调度>小于0.5<接受请求>2)进入模拟程序调用函数对输入值进行判定。3)输入值大于0.5

3、初始化数组。调用lift()函数。调用电梯调度算法。调用输出函数output。4)输入值小于0.5调用接受请求函数。接受进程输入请求,写入链表。调用输出函数output。5)要求用户选择是否继续Y.继续N.退出(2)电梯调度算法lift()如图3.1)查I/O请求表,若等待进程表中有进程,则继续。否则返回。2)若有与当前运行的进程的柱面号相同的进程访问,则选择能使旋转距离最短的访问者,并登记当前位置。否则继续判断当前移臂方向。3)若当前移臂方向向里,则判断是否有比当前柱面号大的访问请求;否则判断是否有比当前柱面号小的访问

4、请求。4)若有比当前柱面号大的访问请求,则从大于当前柱面号的访问请求中选择一个最小者,然后登记当前位置。否则置当前移臂方向为向外移,并从小于当前柱面号的访问请求中选择一个最小者,再登记当前位置;若有比当前柱面号小的访问请求,则从小于当前柱面号的访问请求中选择一个最小者,然后登记当前位置。否则置当前移臂方向为向里移,并从大于当前柱面号的访问请求中选择一个最小者,再登记当前位置。5)在登记的当前位置处启动磁盘。6)执行完成后,被选中的进程退出I/O请求表。7)返回(3)接受请求模块Receive_requests()如图2.

5、1)判断是否接受请求,接受则继续。否则返回。2)显示当前正在运行的进程的信息,并列出目前的等待进程表。3)依次输入要接受的进程的信息,并排入等待队列。(3)流程图主函数流程图开始初始化输入在[0,1]区间内的一个是否随机数>1/2驱动调度接受请求是否继续?结束图1主函数接受请求模块图如图2开始否有请求?是输入进程名物理地址进程排入等待队列登记“请求I/O表返回图2接受请求流程图驱动调度流程图如图3开始查“请求I/O表”否是有等待访问者返回否有与当前柱面号是相同的访问者?是当前移臂方否向是向里移?选择能使旋转距离最短的访问

6、者有比当前柱面号有比当前柱面号大的访问请求?小的访问请求?否是是置当前移臂方向置当前移臂方向为向外移为向里移从大于当前柱面号的访问从小于当前柱面号的访问请求中选择一个最小者请求中选择一个最小者登记当前位置:柱面号;物理记录号启动磁盘被选中者退出“请求I/O表”返回图3驱动调度函数流程图四、程序实现及运行结果程序见下边程序截图如下:等待输入,创建I/O请求表图4创建I/O请求表显示I/O请求表,并选择调度还是继续接受请求(如图6)图5输入判定SCAN调度如图:图6电梯调度沿着up方向图7电梯调度沿着down方向接受输入请求

7、如图图8.接受输入请求五、实验总结课程设计终于结束了,这次课程设计给我们很大的收获,使我们对操作系统的基本知识有了进一步的提高,熟悉了c语言的操作,并在实践中对操作系统和c语言的各种概念有了进一步的理解和体会。第一次完全独立的化理论为实际,实实在在的把操作系统的理论转换成c语言的代码感觉很吃力,在老师和同学们的帮助下,我们一点点改进,一点点修正,几天过去了,我们的程序也成型了,我们一点点的修改将它能够运行出来!在老师的帮助和同学的关心下,终于可以运行了。现将课程设计中的收获简单的写在下面。1.程序的设计思想的精巧的重要性

8、是不管怎么说都不为过的,好的设计可以让大家很快的明白自己的思想,而且很方便的来实现它.2.在多人做项目的时候,团队的团结是非常重要的.集思广益比一个人闭门造车要好的多。3.良好的编程习惯,可以使程序很方便的被人阅读,也很方便的被修改.4.基本的语言功底一定要扎实.六、指导教师评语及成绩评语:成绩:年月日源代码:#in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。