- 2
- 0
- 约1.35万字
- 约 145页
- 2017-03-24 发布于浙江
- 举报
在系统方面,最大限度地发挥设备的效率,分配尽量合理化,避免分配完成后使占用的进程组出现不安全性,引发死锁现象;从用户一方考虑,应使分配体现设备独立性,使用户面对的是逻辑设备,与物理设备结合不紧密,减轻用户编程的负担,提高应用程序的灵活性。围绕这样的目标,在设计操作系统的设备分配算法时,应权衡各方面的要求,作出合理的分配方案的设计。 2.设备分配方式: 在设备分配中起作用的分配方式主要有两种:静态分配与动态分配。 静态分配方式主要适用对独占型设备的分配,这种类型的分配在使用上必须是互斥地占用,所以往往是在某个作业执行之前,根据作业需求,全部一次性分出,当作业撤离时,再由系统收回。由于是预分配,一般不会引起不安全因素。这种方式主要用于分配设备,而对数量较少的通道和设备控制器的分配不能采用此方式。 动态分配的方式则是由进程在执行中再来动态申请外设,资源分配的灵活性大,利用率高。在此方式下,设备不是进行预分配,而是用时才分,运行中的进程当需要与外界交换信息时,通过执行系统中的访管指令,形成访管中断,系统响应后进入访管中断处理,启动分配程序工作,完成分配任务。 由于在系统中,进程的数量一般都会超出系统拥有的外设资源数量,故有些进程在I/O请求完成后,不能立即分到所要的外设,这些进程必须排成等设备的等待队列。当等待队列出现后,系统对设备分配的先后次序的确定必须要有一定的措施。常见的措施主要是先请求先分配或优先级高优先级分配两种。 (1)先请求先分配 当若干进程申请某一设备的请求得不到满足时,必须排入等队列中。这些进程由于申请的有先后次序,故排入等待队列的次序也是不相同的。当该设备被归还给系统后,就可以重新分配,此时,系统按进程在等待队列中排队的先后次序,将设备分给最早排入队列的那个进程。 (2)优先级高优先分配 在此分配对策中,进程的优先级起了决定作用。当从等待某设备的进程队列中挑选下一个可占用设备的进程时,按进程所具有的优先级处理。高优先级的进程先分配,同优先级的,先申请先分配。 3.设备分配算法: 在具有通道的I/O系统中,分配算法对各资源的分配顺序为: (a)设备 、 (b )控制器、 ( c )通道。具体分配流程图如下: ③ 禁发长度错特征位(34位):如该位为“1”表示通道命令给出的字节数和I/O 设备传输时的字节数即使不等,也不发出“出错信息”。反之该位为“0”时,当二者的字节数不等,就发出“出错信号”,停止数据的传送。 ④ 假读特征位(35位):表示禁止将数据送入主存,这样就可以跳过一些数据。 ⑤ 程序控制中断特征位(36位):也可称程序中断屏蔽位。当该特征位为“1”时,只要取出通道命令并开始操作,则通道就向CPU 发出中断信号;反之,即使有中断也不允许发出。 (4)字节计数器(48~63位):它规定了数据区的字节数。 2. 通道程序 所谓通道程序就是用命令链、数据链或转移命令,把诸条通道命令连接在一起,完成某些特定功能的通道命令的集合。通道程序的执行过程就是I/O 操作的处理过程,通道程序的编制除了要了解各通道命令外,还应熟悉各种外部设备的物理特性。 3.举例 例1:要求编制一个通道程序,完成从磁带机上读入200字节的信息,送入主存(1000)16开始的单元中。 通道命令码: “07” 将磁带机反转到磁带的起点。 “02” 读命令。 则该通道程序为: CCW1 X “07” * X “40” 1 ; 反转到磁带的起点。 CCW2 X “02” 1000 X “00”200; 读入200字节信息到主存1000开始的连续单元中。 例2:要求编制一个通道程序,完成从磁带机读入200字节信息。将其1~50byte送入主存(1000)16~(1031)16单元中,将其51~70byte不存入主存,将其71~200byte字节存入主存(2000)16~(2081)16中。 假设通道命令码: “07”为将磁带机反转到磁带机的起点 “02”为读命令 则该通道程序为: CCW1 X “07” * X“40” 1 ;反转到磁带的起点。 CCW2 X “02” 1000 “40” 50;读入50个字节的信息到主存1000号开始的连续单元中。 4.CPU 与通道之间的通信 通道I/O 操作是由两种指令实现控制,即CPU 的I/O 指令和通道本身提供的通道命令字CCW。I/O 指令属于特权指令,只能由操作系统使用,使用CCW编写的程序称为通道程序,不同的设备有不同的通道程序,通道程序存放在内存中,由I/O 指令启动执行。 CPU和通道是主/ 从关系,CPU
原创力文档

文档评论(0)