首页 > 其他分享 >第五章 输入输出系统 5.5 与设备无关的I/O软件

第五章 输入输出系统 5.5 与设备无关的I/O软件

时间:2023-05-06 19:57:38浏览次数:32  
标签:控制器 5.5 输入输出 第五章 进程 逻辑设备 物理 分配 设备

一、与设备无关软件的概念 

  1.在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。 应用程序独立于具体使用的物理设备 。

  2.系统须具有将逻辑设备名称转换为某物理设备名称的功能 。

  3.实现设备独立性后,有利于设备分配时的灵活性,易于实现I/O 重定向。

二、与设备无关的软件

  与设备无关的软件是I/O系统的最高层软件,主要功能如下:

  1.执行所有设备的公有操作 

  • 对独立设备的分配与回收:独立设备必须由系统统一分配
  • 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序 
  • 对设备进行保护,禁止用户直接访问设备
  • 缓冲管理:对字符设备和块设备的缓冲区进行有效的管理 
  • 差错控制

  2.向用户层软件提供统一接口 

三、设备分配

  1.设备分配中的数据结构

    ①设备控制表DCT 

      为每个设备配置一张设备控制表,用于记录设备的特性及I/O控制器连接的情况。 

    ②控制器控制表COCT

      每个控制器配置一张表,它反映控制器的使用状态以及和通道的连接状况等 。

    ③通道控制表CHCT

      为每个通道配置一张表,它反映通道的使用状态 。

    ④系统设备表SDT

      记录已被连接到系统中的所有物理设备的情况,每个物理设备占一个表目。整个系统配置一张 。

  2.设备分配过程

    ①分配设备 

    首先根据 I/O 请求中的物理设备名,查找系统设备表(SDT),从中找出该设备的 DCT;

    再根据 DCT 中的设备状态字段,可知该设备是否正忙;

    若忙,便将请求 I/O 进程的 PCB 挂在设备队列上;否则,便按照一定的算法来计算本次设备分配的安全性。如果不会导致系统进入不安全状态,便将设备分配给请求进程;否则,仍将其 PCB 插入设备等待队列。 

    ②分配控制器 

    在系统把设备分配给请求 I/O 的进程后,再到其 DCT 中找出与该设备连接的控制器的 COCT,从 COCT 的状态字段中可知该控制器是否忙碌;

    若忙,便将请求 I/O 进程的 PCB 挂在该控制器的等待队列上;否则,便将该控制器分配给进程。 

    ③分配通道 

    在该COCT中又可找到与该控制器连接的通道的CHCT,再根据CHCT内的状态信息, 可知该通道是否忙碌;

    若忙,便将请求 I/O 的进程挂在该通道的等待队列上;否则,将该通道分配给进程。

只有在设备、 控制器和通道三者都分配成功时,这次的设备分配才算成功。 然后,便可启动该 I/O 设备进行数据传送。

  3.设备分配时应考虑的因素

    ①设备的固有属性:独占性,共享性,可虚拟性

  • 独占设备是不能同时共用的设备,即在一段时间内,该设备只允许一个进程独占
  • 共享设备允许多个进程同时共享
  • 虚拟设备是利用某种技术把独占设备改造成可由多个进程共享的设备 

    ②设备分配算法

    ③设备分配中的安全性

  • 安全分配方式 :每当进程发出I/O请求后,便进入阻塞状态,I/O操作完成后唤醒 摒弃了“请求和保持”条件,不会产生死锁 
  • 不安全分配方式 :进程发出I/O请求后仍继续运行 可操作多个设备,推进迅速 

四、逻辑设备名到物理设备名映射的实现  

  1.逻辑设备表(LUT) 

  用于实现将应用程序中的逻辑设备名映射为物理设备名。 

  2.逻辑设备表的设置

  整个系统中设置一张LUT;在多用户系统中,为每个用户设置一张LUT 。

  例子:当将针式打印机换成激光打印机时,我们仅修改逻辑设备表LUT的物理设备名和对应的驱动程序入口地址,而用户使用的逻辑设备名不做修改。  逻辑设备名不做修改则应用程序不做修改,提高了系统管理的可适应性。  

标签:控制器,5.5,输入输出,第五章,进程,逻辑设备,物理,分配,设备
From: https://www.cnblogs.com/05-ReFrain-19/p/17378319.html

相关文章

  • Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)
    关键字:Tomcat6.0配置JNDI数据源注意事项:tomcatJDK一定要和应用程序的JDK版本一致(本例中统一JDK1.6)说明:tomcat5.5与6.0的配置略有不同,即:tomcat的lib位置不同(其他完全一致),6.0位置是:D:\我的工具\apache-tomcat-6.0.10\lib下5.5位置是:D:\我的工具\apa......
  • 第五章 输入输出系统 5.3 中断机构和中断处理程序
    中断是多道程序得以实现的基础,是设备管理的基础;中断处理程序是I/O系统中最低的一层,是整个I/O系统的基础。一、中断简介 1.中断和陷入 中断:CPU对I/O设备发来的中断信号的响应。 陷入:由CPU内部事件(非法指令、越界、运算上溢下溢等)所引起的中断。 2.中断向量表和中断优......
  • 第五章 输入输出系统 5.2 I/O设备和设备控制器
    一、I/O设备 1.I/O设备的类型 2.设备与控制器之间的接口 设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在设备与设备控制器之间应有一接口。  ①数据信号线:在设备与控制器之间传送数据信号。双向,有缓存。  ②状态信号线:传送指示设备当前状态的信号......
  • 5.5
    #include<iostream>usingnamespacestd;#include<string>classpeople{public:   voidsetValue(intm,stringstr){       age=m;       name=str;   }   voiddisplay(){       cout<<"姓名:"<<name<<......
  • 2023.5.5
    1//new在堆区开辟数据,手动开辟,手动释放2#include<iostream>3usingnamespacestd;4//1.new的基本语法5int*func()6{7//new返回的是指针8int*p=newint(10);9returnp;10}11voidtest01()12{13int*p=func();14co......
  • 5.5笔记
    1、格式化输入输出   CPU、内存、I/O设备在快速发展的过程中,有一个核心矛盾一直存在,就是三者之间的速度差异   平衡三者之间鸿沟的有效手段就是引入缓存   键盘---->stdin(内存,行缓冲区,标准输入缓冲区)---->程序---->stdout(内存,行缓冲区,标准输出缓冲区)---->屏幕 ......
  • 2023.5.5 《动手学深度学习》第3、4章
    今天继续学习《动手学习深度学习》第3章:线性神经网络、第4章:多层感知机,今天学到的内容主要有这两章的概念,另外,完成了Kaggle房价预测的代码复现(Kaggle_HousePricePrediction.ipynb)。一、理论部分:1、概念解释:超参数:可以调整但不在训练过程中更新的参数称为超参数2、DL操作数......
  • 5.5
          请定义一个分数类,拥有两个整数的私有数据成员,分别表示分子和分母(分母永远为正数,符号通过分子表示)。     重载运算符加号"+",实现两个分数的相加,所得结果必须是最简分数。输入:    第一行的两个数分别表示第一个分数的分子和分母(分母不为......
  • 5.5 2.4
    一、问题描述一个口袋中有12个球,已知其中三个是红的,3个是白的,6个是黑的,现从中任取8个,问共有多少颜色搭配。二、分析8个红球中,m个红球,n个白球,黑球为8-n-m个。m[0,3]  n[0,3]   8-n-m<=6 三、代码#include<iostream>usingnamespacestd;intmain(){intm=0;//......
  • 5.5每日总结
    <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd&qu......