编写单通路IO系统中地设备分配程序实验报告材料.doc

编写单通路IO系统中地设备分配程序实验报告材料.doc

ID:56523996

大小:134.50 KB

页数:26页

时间:2020-06-27

编写单通路IO系统中地设备分配程序实验报告材料.doc_第1页
编写单通路IO系统中地设备分配程序实验报告材料.doc_第2页
编写单通路IO系统中地设备分配程序实验报告材料.doc_第3页
编写单通路IO系统中地设备分配程序实验报告材料.doc_第4页
编写单通路IO系统中地设备分配程序实验报告材料.doc_第5页
资源描述:

《编写单通路IO系统中地设备分配程序实验报告材料.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学院计算机科学与技术系实验报告2009~2010学年第1学期课程操作系统原理实验名称编写单通路I/O系统中的设备分配程序学生冯阿雷毕秋平高健宁阳专业班级07计本(1)班指导教师屠菁2000年12月一、实验目的熟练掌握单通路I/O系统中的设备分配方法。二、实验容本实验要现模拟单通路I/O系统中的设备分配程序,有如下要求:1、设计系统设备表SDT、设备控制表DCT、控制器表COCT、通道表CHCT和逻辑设备表LUT。2、提供给用户各表目的初态。3、回答信息:能够分配时,给出设备号、控制器号、通道号,否则,给出无法分配的回答,插入相应的等待队列。三、实验步

2、骤1、任务分析为单通路I/O系统设计系统设备表SDT、设备控制表DCT、控制器表COCT、通道表CHCT和逻辑设备表LUT五表。用户可以查看各表目的容,另外,程序为用户进程分配设备,并且输出分配结果,如果能够分配,则给出设备号、控制器号、通道号,否则,给出无法分配的回答,插入相应的等待队列。2、概要设计为实现本次实验任务要求,首先,定义SDT、DCT、COCT、CHCT、LUT五表,调用input()函数初始化各表容;其次,调用print()函数,实现对上述四表的输出显示;最后,调用add_process()函数,为用户进程申请设备,如果分配成功,给

3、出设备号、控制器号、通道号,否则,给出无法分配的原因,并将该进程插入相应的等待队列中。本程序包含如下3个模块:(1)主模块,由函数main()组成。(2)显示表目模块,由函数print()组成。(3)分配设备模块,由函数add_process()、process_run()等函数组成。绘制流程图如下:运行程序`主函数运行进程申请设备显示SDT、COCT、DCT、CHCT、LUT五张表退出判断设备是否存在输出无法分配原因判断控制器是否忙输出无法分配原因输入所需设备名称(输入0退出申请)判断通道是否忙输出无法分配原因给予分配,输出分配信息YNYNYN输入

4、0输入非0流程图3、详细设计和编码通过以上的分析和初步设计,已经对本程序作了初步了解。下面将对本程序的各个模块作详细的讲解。(1)主函数模块对各个表就行初始化,设置好各个表的状态,以及对各个步骤进行函数调用来实现本实验的要求。(2)显示表目模块调用print()函数,显示出SDT系统设备表、DCT设备控制表、COCT控制器控制表、CHCT通道表和LUT逻辑设备表五表目,直接显示各表中的设备类型、设备名称和设备状态等信息。(3)分配设备模块在此模块中,首先调用add_process()函数,要求用户输入所要申请的逻辑设备名称,然后根据逻辑设备名称查看L

5、UT表中的该设备是否存在,若不存在,则直接退出分配,输出分配失败原因,若存在,则继续如下分析:a.分配设备。根据LUT表找到设备表,然后根据SDT表中指向DCT表该设备的指针,检索到DCT设备控制表中该物理设备,检查该设备的状态信息Busy。若忙,则将要求I/O的进程插入到该设备的等待队列中等待;若不忙,则继续步骤(b)。b.分配控制器。根据设备控制表DCT中的控制器表指针,可找到与此设备相连的控制器表COCT,通过检查该表中的状态信息Busy。若忙,则将要求I/O的进程插入到等待该控制器的队列中等待;若不忙,则把该控制器分配给进程,继续步骤(c)。

6、c.分配通道。首先根据控制器表COCT中的通道表指针找到与此控制器相连的通道表CHCT,从中了解此通道的状态信息Busy。若为忙,则把该进程插入等待通道的队列CHL中;若通道空闲,则表明本次I/O请求所需之I/O设备和相应的控制器、通道都能得到,于是便可启动I/O设备开始数据传送。调用add_process()函数来实现上述步骤。分配完成后,将相应的设备、控制器和通道的状态信息Busy置1。结束分配程序。4、调试分析本次程序设计的核心容在于设备的分配过程,一次分配只有在设备、控制器和通道三者都分配成功时,这次分配才算成功。该程序的核心逻辑关系是先分配

7、设备再分配控制器最后分配通道。当三者都空闲并安全时,才可分配,最终启动该I/O设备进行数据传送。5、测试结果运行程序后,运行结果如下图1。图1进行初始化,运行结果如下图2图2图3各表的初始化状态如图3。图3进程分配设备结果如图3四、实验总结通过本次实验,充分的理解了单通道I/O设备分配程序,知道了设备表,控制器表,通道表以及其他表的数据结构,加深了对课本知识的理解,明白了设备分配的过程:先分配设备,接下来分配控制器,然后再分配通道,若成功就可以启动该I/O设备进行数据传送了。同时,通过和同学一起做这个实验,从中学习到了合作的经验,为以后的工作打下基础

8、。经过编写程序,复习了C语言程序。五、附录源程序:#include#include

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

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

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