5.5 设备的分配与回收.ppt_第1页
5.5 设备的分配与回收.ppt_第2页
5.5 设备的分配与回收.ppt_第3页
5.5 设备的分配与回收.ppt_第4页
5.5 设备的分配与回收.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5 5设备的分配与回收 5 5 1设备分配所用的数据结构在进行设备分配时所需的数据结构主要有 设备控制表DCT DeviceControlTable 控制器控制表COCT ControllerControlTable 通道控制表CHCT ChannelControlTable 系统设备表SDT SystemDeviceTable 图5 11列出了各自的主要组成部分 下面对它们做一简要介绍 设备控制表集合 a b c d 图5 11设备分配所需的数据结构表 1 设备控制表DCT 系统为每一个设备都配置了一张设备控制表DCT 用来记录设备的特性 设备和I O控制器的连接情况以及设备的分配和使用情况 如图5 11 a 所示 它主要包括以下内容 设备标识符 设备类型 设备地址 设备状态 与设备连接的控制器表指针 等待该设备的进程队列 重复执行次数或时间 其它信息 如一些释放信息等 设备A的DCT 控制器B的COCT 通道D的CHCT 通道E的CHCT 控制器C的COCT 图5 12DCT和COCT CHCT的连接 设备A的DCT PCB B PCB C PCB D PCB 图5 13DCT和PCB的连接 2 控制器控制表COCT 系统为每个控制器都设置了一个COCT 用它来反映I O控制器的使用情况以及所连接的通道情况 如图5 11 b 所示 COCT中各相应项意义与DCT类似 3 通道控制表CHCT此表存在于设置有通道的系统中 也是每个通道都配有一张通道控制表 如图5 11 c 所示 4 系统设备表SDT 如图5 11 d 所示 SDT的每个表项主要包括 设备类型和设备标识符 含义同DCT 正在使用设备的进程标识 指向有关设备的设备控制表 DCT指针 除了以上四种主要的数据结构外 还有 设备数据块DDB DeviceDataBlock 设备分配块DAB DeviceAllocationBlock I O请求包IRP I ORequestPackage 等 有了这些数据结构之后 对于配置有通道的计算机系统中 设备分配程序还应考虑到至少如下三个问题 是否有能用来为I O请求提供服务的通路 是否有多条通路可用 如果当前没有可用通路 那么通路何时才能空闲 对于所请求的I O设备 根据上述的查找方法 可能出现三种情况 对于所请求的I O设备 仅有一条通路可用 例如 通道E 控制器B 设备A 对于所请求的I O设备 可以找出一条以上的可用通路 例如上例中 最多可找出四条可用通路 通道D 控制器B 设备A通道D 控制器C 设备A通道E 控制器B 设备A通道E 控制器C 设备A 对于所请示的I O设备 没有一条可用的通路 若通道D E都处于忙状态 则对于设备A 就没有可用通路 5 5 2设备分配与回收 1 设备分配原则根据设备的固有属性 独占 共享还是虚拟 用户要求和系统配置情况决定设备分配总原则 设备分配方式有静态分配和动态分配两种 动态分配在进程执行过程中根据执行需要进行分配 2 设备分配算法 一般多采用以下几种算法 先来先服务分配算法 即先申请的 先被满足 优先级算法 即优先级高的进程的I O请求先被满足 按时间片轮转分配 3 设备分配程序 REQDEV的一般形式为 REQDEV devtype status 其功能是 系统根据调用参数devtype提供的设备类型名 为进程分配该类设备中的一台物理设备 同时为进程建立设备分配块DAB 记录所分配的设备 将DAB地址存入status变量中返回 若暂时分配不到所需设备 进程在 设备分配队列 中等待 若调用出错 用status返回错误信息 进程执行REQDEV系统调用控制最初转入总控程序 总控程序顺序完成 在系统设备表SDT中 根据设备类型名devtype检查该类设备的设备数据块DDB 若没找到则用status返回 NoDev 信息 为进程创建设备分配块DAB结构 控制转入设备数据块DDB中保存的该类设备的分配程序ALLOCATION ALLOCATION子过程返回后 设备分配块DAB中记录了所分配的设备 将DAB排入进程队列 DAB地址送status后总控程序返回 总控程序算法描述为 voidREQDEV devtype status i search SDT devtype if NOfound status NODev return Else createDAB ALLOCATION DDB i ALLOCATION PID address DDB status address DDB return 下面我们看看对独占型设备和共享型设备的分配程序 独占型设备的分配程序每一类独占型设备的分配程序大致相同 总控程序转来后 顺序完成下列步骤 根据设备数据块DDB 检索DDB中的设备控制表DCT指针所指示的一条资源队列 找一台当前未分配的设备 若没找到未分配设备 则将进程的PCB退至调用指令 自动插入DDB中的等待指针所指向的设备分配队列 返回 若找到可用设备 先进行死锁检测 若不会出现死锁再将该设备分配给进程 这时 要置该设备为已分配状态 将进程标识符填入设备控制表DCT中 在设备分配块DAB中填入设备 控制器 通道控制表地址及设备标识符 再返回 共享型设备的分配程序 设备数据块DDB同样将每一类共享型设备组织成一条资源队列 总控程序转来后 共享设备分配程序的工作也大致相同 顺序完成下列步骤 根据设备数据块DDB 检索资源队列 按用户要求的设备名定位所需设备的DCT 将设备分配给进程 在设备分配块DAB中填入设备 控制器 通道控制表地址及设备标识符 返回 4 设备回收 当某一作业 或进程 使用完设备后 则需 释放设备 调用系统调用RELDEV 释放所分配的设备 简称回收 RELDEV是REQDEV的逆过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论