操作系统课程设计-驱动调度

上传人:夏** 文档编号:457967676 上传时间:2024-01-14 格式:DOCX 页数:21 大小:285.80KB
返回 下载 相关 举报
操作系统课程设计-驱动调度_第1页
第1页 / 共21页
操作系统课程设计-驱动调度_第2页
第2页 / 共21页
操作系统课程设计-驱动调度_第3页
第3页 / 共21页
操作系统课程设计-驱动调度_第4页
第4页 / 共21页
操作系统课程设计-驱动调度_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《操作系统课程设计-驱动调度》由会员分享,可在线阅读,更多相关《操作系统课程设计-驱动调度(21页珍藏版)》请在金锄头文库上搜索。

1、石家庄经济学院实习报告(学院)系:信息工程学院专业:网络工程专业姓名:班级:学号:指导教师:日期: 2011年1月14日操作系统实习报告姓名学号日期实验室指导教师设备编号设计题目实习九驱动调度、设计内容模拟电梯调度算法,实现对磁盘的驱动调度。二、设计目的磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负 着繁重的输入输出任务、在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待 处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求。这就叫驱动调度, 使用的算法称为驱动调度算法。驱动调度能降低为若干个输入输出请求服务所

2、需的总时间,从而提高系统 效率。本实验要求模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实验使学生理解 和掌握驱动调度的职能。三、设计过程(1)数据结构设计typedef struct Process/描述进程信息char nameN;int cyl_num;int tra_num;int rec_num;int signal;process;(2)算法设计函数模块进程名/柱面号/磁道号/物理记录号标记,用以判断结构体数组中该元素是否有效各函数调用关系如图1所示,箭头指向被调用的函数各函数功能及流程图如下:1) 主函数:void main()函数功能:显示提示信息,初始化进程数

3、组,根据随机数的值选择调用驱动调度和接收请求或者 选择继续和退出程序入口参数:无出口参数:无流程图:如图2所示开始i输出提示信/ 息初始化进程请求表(实际为进程的结构体数组)输入_个随机数是二.随机数0冬一.-二否驱动调度接收请求继续?I否结束图2主函数流程图2) 随机数函数:float Ran_Num()函数功能:接收随机数入口参数:无出口参数:接收进来的随机数流程图:无3) 接收请求函数:void list(int pro_count, int pro_num,process proM)函数功能:存放输入的进程信息,创建等待进程列表入口参数:初始化后的进程数组出口参数:无流程图:如图3所示

4、输入要输入的进程个数当前进程数组否否.第i个元素有效?J是输入进程信 息是 输入信息有错?I否已输入的进程数+1是 已输入的进程.数否一-数小于要输入的土返回图3接收请求流程图4) 旋转调度函数:void cir_sec(process proM)函数功能:如果有请求与当前柱面号相同,进行旋转调度,选择旋转距离最小的进程入口参数:部分全局变量及进程数组出口参数:选择的数组元素编号流程图:如图4所示开始当前访问者旋 否: 转距离小于最小旋转距离+是选择当前的访问进程图4旋转调度流程图5) 移臂调度函数:void mov_sec(process proM)函数功能:没有与当前柱面号相同的访问请求时

5、,进行移臂调度入口参数:进程数组出口参数:选择的数组元素编号开始是当前移臂方向是向否有比当前柱面号大的访问请求否有比当前柱面号小的访问请求1置当前移臂方向为向外移置当前移臂方向为向里移流程图:如图5所示从大于当前柱面号 的访问请求中选择 一个最小者从小于当前柱面号的访问请求中选择一个最小者旋转调度结束图5移臂调度流程图6) 驱动调度函数:void dri_sch(int pro_count,process proM)函数功能:进行进程调度,按照电梯调度算法选择进程入口参数:当前有效进程数、进程数组 出口参数:无 流程图:如图6所示是 有请求与当前一否 柱面号相同移臂调度旋转调度图6驱动调度流程

6、图四、程序实现及运行结果(1)源代码如下:qddr.cpp主函数pro struct.h 结构体定义pro list.h创建进程请求表ran num.h 接收随机数Driver Scheduling.h 驱动调度(2)运行结果如下:初始状态,结果如图7所示请按照如下顺序输入各进程信息以空格分开,每条进程信息输入完成后按回车键结束: 旺程名柱面号磴道号物理记录号汪:进程吝不超过莒个字符,柱面号为0-199,磴道号为口-项物理记录号为0-7端入随机数0,1:旗机数X). 5时转入电梯调度随机数油.5时转入接收请求图7初始状态输入0.4,输入进程数据并选择继续,结果如图8所示 c:Documents

7、 and SettingSiAdministrcitorMy DocumentsV1sucil Sfudio 2. ,回 |-请按照如下顺序输入各进程信息以空格分开再条进程信息输入完成后按回车键结束: 曲程名柱面号磁道号物理记录号注:进程各不超过顶个字符,柱面号为0-199-磴道号为口-也物理记录号为QT端人随机数0,1:血机数. 5时转入电梯调度随机数.5时转入接收请求0.4等待的进程数:5开始输入PlP2P3P4P576 1 7 183 2 19 4 476 6 0 0 0 5图8输入5个进程的相关信息重复选择继续,输入0.6进行驱动调度直到等待进程表为空,结果如图9图13所示 第一次选择

8、P5Pl76P2183P39P476第五次选择P2,当前等待表为空是否继续(Y/N) ?T输入随til毯0, 1;道机皴冗S肘转入电梯调度殖机数=. 5时转入援收请求0. 6当前请求1/0:|进程名I柱面号|道号|物理记录号IP218321选择的爸建为:i进程客I柱面号I物理宅录与I方向|1P21831up是否继绩(Y/N) ?Y翰入随机数0, 1:植机敬冲M&d转入电梯调度箱相,数.S时转入接收话求n. a请求I/O表为空上J图13第五次选择后,进程等待表为空4选择继续,输入0.4,再输入3个进程,结果如图14所示政 c:Documents and Settings.Administrcit

9、orMy DocumentsWisual Studio 2.I是否继续CY/N) ?y 输入随机数0,1: 随机数S时转入电梯调度 随机数=C. S时转入接收请求 0. 4等待的进程数:3 开始输入 PS 4 2 0P7 4 3 3P8 0 10 4图14再输入3个进程及相关信息5重复选择继续进行驱动调度至等待进程表为空,然后选择退出,结果如图15图17所示 第一次选择P8c0.5时转入电梯调度血机数饥.5时转入接收请求3.6当前请求工/0表为:I匿程各I柱面号I磁道号I物理记录号P6420P7433选择的进程为:I进程客|柱面号|物理记录号|方向F640up图16再次输入后第二次选择第三次选

10、择P7,当前等待表为空,选择退出 c:Documents and SettingSiXAdministrcitorMy DocumentsWIsual Studio 2. ,回 |-0.6当前诘求70表为:进程名I柱面号I磁道号I物理记录号P7433选择的进程为;进程各|柱面号|物理记录号|方向P743up是否继续(Y/N) ?yJ输入随机数0,1:血机0.5时转入电梯调度随机数.5时转入接收话求0.6请求1/。表为空是否继续W/N)七二J图17第三次选择后等待表为空,选择退出五、设计总结1、通过设计数据结构进程访问磁盘,我进一步了解了磁盘存储器的物理结构,对电梯算法有深入的 了解。2、刚刚开

11、始进行实习设计时,对题目没有进行正确的理解就忙于写代码,算法设计考虑的很不全面, 从而导致后来实验数据出错,通过再次审查题目及资料,我了解了题目要求,对算法进行了重新设计,最 终完成了试验,得出了正确的运行结果。3、在调试的过程中出现了很多的问题,从语法到算法中的错误,通过向老师和同学请教以及查阅资 料,解决了这些问题,使我对编程语句及算法设计有了更深的认识。编程是很严谨的事情,不容半点马虎, 即使是一个括号也可能导致程序的错误。4、刚开始编译的时候存在一些语法错误,结构体及数组,以及参数传递相关知识都一知半解,对编 程语言的运用还没达到很熟练地步,通过这次实验我更好复习和学习了编程语言的一些

12、知识。5、通过这次实验,学习到了很多在课堂上没有学到的知识,不仅仅是操作系统方面的知识,还包括 与同学间交流的增长和思维模式。附加代码如下:pro_struct.h#ifndef PRO_STRUCT_H#define PRO_STRUCT_H#define N 10typedef struct Processchar nameN;/进程名cyl_num;/W求的柱面号tra_num;/W求的磁道号rec_num;/请求的物理记录号signal;/标记位process;#endifpro_list.h#ifndef PRO_LIST_H#define PRO_LIST_H#include#include

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

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号