zoukankan      html  css  js  c++  java
  • 输入输出系统 ——I/O系统

    需要用于输入、输出和存储信息的设备;
    需要相应的设备控制器;
    控制器与CPU连接的高速总线;
    有的大中型计算机系统,配置I/O通道;

    1. I/O系统的基本功能及模型
    主要功能:
    隐藏物理设备细节,方便用户
    用户使用抽象的I/O命令即可
    实现设备无关性,方便用户
    用户可用抽象的逻辑设备名来使用设备,同时也提高了OS的可移植性和易适应性。
    提高处理机和设备的并行性,提高利用率:缓冲区管理
    对I/O设备进行控制:控制方式、设备分配、设备处理
    确保对设备正确共享:虚拟设备及设备独立性等
    错误处理

    I/O软件的分层
    ①用户层软件
    实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。
    ②设备独立软件
    用于实现用户程序与设备驱动器的统一接口、设备命名、设备的保护以及设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。
    ③设备驱动程序
    与硬件直接相关,用于具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。
    ④中断处理程序
    用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后再恢复被中断进程的现场后,返回到被中断进程。

    在I/O系统与高层接口中,根据设备类型的不同,又进一步分为若干个接口。主要包括:
    块设备接口
    流设备接口
    网络通信接口

    I/O系统的组成
    需要用于输入、输出和存储信息的设备;
    需要相应的设备控制器;
    控制器与CPU连接的高速总线;
    有的大中型计算机系统,配置I/O通道;

    I/O设备的类型繁多,从OS的观点,按其重要的性能指标进行分类如下:

    按传输速率分类:
    低速、中速、高速(键盘、打印机、磁盘)
    使用:存储设备、输入输出设备
    按信息交换的单位分类:
    块设备:有结构、速率高、可寻址、DMA方式控制
    字符设备:无结构、速率低、不可寻址、中断方式控制

    按设备的共享属性分类:
    独占:打印机
    共享:一个时刻上仍然是只被一个进程占用。可寻址、可随机访问的色后备。磁盘。
    虚拟:使一台独占设备变换为若干台逻辑设备,供给若干用户“同时使用”。

    与控制器的接口有三种类型的信号
    数据信号线(进出数据转换、缓冲后传送)
    控制信号线(读写移动磁头等控制)
    状态信号线

    数组选择通道
    针对高速设备:分配型子通道
    设备利用子通道占用通道后,一段时间内一直独占,直至设备传送完毕释放。
    利用率低。
    数组多路通道
    结合上述两种方式。
    含多个非分配型子通道。数据传送则按数组方式进行。

    1.中断简介
    ⑴中断和陷入
    中断:CPU对I/O设备发来的中断信号的一种响应,中断是由外部设备引起的,又称外中断。
    陷入:由CPU内部事件所引起的中断,通常把这类中断称为内中断或陷入(trap)。
    中断和陷入的主要区别:是信号的来源。

    ⑵中断向量表
    中断向量表:为每种设备配以相应的中断处理程序,并把该程序的入口地址,放在中断向量表的一个表项中,并为每一个设备的中断请求,规定一个中断号,它直接对应于中断向量表的一个表项中。
    ⑶对多中断源的处理方式
    ①屏蔽(禁止)中断
    ②嵌套中断

    中断处理流程
    测定是否有未响应的中断信号
    保护被中断进程的CPU环境
    转入相应的设备处理程序
    中断处理
    恢复CPU的现场


    驱动程序处理过程
    I/O设备与控制器间的通信转换程序
    了解抽象命令,了解控制器内部的寄存器结构
    与硬件密切相关,每类设备配备一种驱动程序
    功能:接受解释指令(有通道的系统,自动通道程序)、相关判断、发送设备命令、响应中断
    特点,控制方式不同程序不同,部分固化进硬件,代码可重入。

    CPU向相应的设备控制器发出一条I/O命令
    然后立即返回继续执行任务。
    设备控制器按照命令的要求去控制指定I/O设备。
    这时CPU与I/O设备并行操作。
    I/O设备输入数据中,无需CPU干预,因而可使CPU与I/O设备并行工作。从而提高了整个系统的资源利用率及吞吐量。
    3)直接存储器访问DMA 方式
    ①该方式的特点是:
    数据传输的基本单位是数据块;
    所传送的数据是从设备直接送入内存的,或者直接从内存进设备;不需要CPU操作。
    CPU干预进一步减少:仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
    可见DMA方式又是成百倍的减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。

    DMA控制器由三部分组成:
    主机与DMA控制器的接口;
    DMA控制器与块设备的接口;
    I/O控制逻辑。

  • 相关阅读:
    搭建了一个在线的机器学习webshell检测RESTful API
    CentOS yum 安装RabbitMQ
    python使用pika链接rabbitmq Connection reset by peer 解决办法
    docker image 转换 docker file
    破解微信某游戏
    任务型对话(一)—— NLU/SLU(意图识别和槽值填充)
    KL散度、JS散度、Wasserstein距离
    机器翻译评价指标 — BLEU算法
    文本相似度 — TF-IDF和BM25算法
    Deep Reinforcement Learning for Dialogue Generation 论文阅读
  • 原文地址:https://www.cnblogs.com/Kirino1/p/10084644.html
Copyright © 2011-2022 走看看