当前位置: 首页 > news >正文

【从零开始学习计算机科学】操作系统(八)IO管理

【从零开始学习计算机科学】操作系统(八)IO管理

    • IO管理
      • IO设备
      • IO设备的分类
      • IO控制器
      • 设备控制器的IO端口编址
      • 设备数据传输控制方法
      • 缓冲技术
        • 缓冲区的分类
        • 常用的缓冲技术
      • 虚拟设备
      • IO设备的分配
      • IO相关的软件的设计

IO管理

IO设备

IO设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备,属于计算机的硬件部件。

日常生活中,最典型的IO设备就是如下几种:键盘,字符输入设备(input);显示器,输出设备(output);移动硬盘,既可以输入又可以输出的设备。

IO设备的分类

  1. 按使用特性分类:人机交互类设备(数据传输速度慢),存储设备(数据传输速度快),网络通信设备(数据传输速度介于上述两者之间)。

  2. 按照传输速率分类:低速设备(每秒几个到几百字节),中速设备(每秒几千到上万个字节),高速设备(每秒数千到千兆字节)。

  3. 按信息交换的单位分类:块设备(传输快,可寻址),字符设备(传输慢,不可寻址,常采用中断驱动方式)。

  4. 按是否可以共享分类:共享设备,独占设备。

IO控制器

CPU无法直接控制IO设备的机械部件,因此IO设备还要有一个电子部件作为CPU和IO设备机械部件之间的中介,用于实现CPU对设备的控制,该电子部件就是IO控制器,又称为设备控制器,CPU控制IO控制器,IO控制器来控制IO的机械设备。

IO控制器的功能主要有:

  1. 接受和识别CPU发出的指令。IO控制器中有相应的控制寄存器来存放cpu传来的相应的命令和参数。

  2. 向cpu报告设备状态。IO控制器中有相应的状态寄存器来记录当前IO设备的状态。

  3. 数据交换。IO控制器中有相应的数据寄存器。输出时,数据寄存器用于暂存CPU发来的数据,之后再由控制器传送设备;输入时,数据寄存器用于暂存设备发来的数据,之后cpu从数据寄存器中取走数据。

  4. 地址识别。为了区分设备控制器中的各个寄存器,也要给各个寄存器设置一个特定的地址,IO控制器通过CPU提供的地址来判断cpu要读/写哪个寄存器。

  5. 数据缓冲。

  6. 差错控制。

http://www.dtcms.com/a/62493.html

相关文章:

  • 搜广推校招面经四十五
  • Spring (十)事务
  • Spring Boot中利用Redis解决接口幂等性问题
  • GPIO接口
  • Django ORM自定义排序的实用示例
  • Axure RP 9 安装与汉化指南(附安装包)包含下载、安装、汉化、授权,Axure9 汉化教程、Axure9 汉化步骤
  • MoonSharp 文档三
  • Rust规律归纳随笔
  • 使用Mermaid语法绘制的C语言程序从Linux移植到Windows的流程图
  • Leetcode8-字符串转换整数(atoi)
  • 【技术白皮书】内功心法 | 第二部分 | Telnet远程登录的工作原理
  • 大模型:定义与主流架构全解析
  • 【TVM教程】为 Mobile GPU 自动调优卷积网络
  • SwiftUI 让视图自适应高度的 6 种方法(四)
  • Kubernetes Pod的生命周期概述
  • LearnOpenGL-笔记-其二
  • DeepSeek-实用集成大礼包
  • 基于某著名企业IPD与质量管理体系融合的研发质量管理方案(64页PPT)
  • 【保姆级教程】使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD
  • 十二天-双指针技术:链表问题的高效解法
  • springboot433-基于SpringBoot的流浪猫爱心救助系统(源码+数据库+纯前后端分离+部署讲解等)
  • Fast DDS Security--多方密钥协商协议
  • 人脸识别之数据集中 PI20 和 CFMT 之间关联的模型预测贝叶斯(Python+论文代码实现)
  • 接口使用实例和Object类及内部类
  • 本地部署 DeepSeek R1 的几种常见方法
  • 在 UniApp 开发的网站中使图片能够缓存,不一直刷新
  • 委外订单不能删除提示领料未发量不能小于零
  • 【 PyQt】事件的触发:信号与槽
  • GitHub 项目版本管理与 Release 发布流程记录
  • HTTPS工作原理与安全机制详解(仅供参考)