从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 汇编语言

  • C语言

  • 数据结构

  • 操作系统

    • 我的操作系统学习笔记

    • 我的操作系统实验笔记

    • 操作系统网课-王道考研

      • 0_课程白嫖指南
      • 1_1_操作系统的概念(定义)、功能和目标
      • 1_2_操作系统的特征
      • 1_3_操作系统的发展与分类
      • 1_4_操作系统的运行机制与体系结构
      • 1_5_中断和异常
      • 2_1_1_进程的定义、组成、组织方式、特征
      • 2_1_6_系统调用
      • 2_1_2_进程的状态与转换
      • 2_1_3_进程控制
      • 2_1_4_进程通信
      • 2_1_5_线程概念和多线程模型
      • 2_2_1_处理机调度的概念、层次
      • 2_2_2_进程调度的时机、切换与过程、方式
      • 2_2_3_调度算法的评价指标
      • 2_2_4_FCFS、SJF、HRRN调度算法
      • 2_2_5_调度算法:时间片轮转、优先级、多级反馈队列
      • 2_3_1_进程同步、进程互斥
      • 2_3_2_进程互斥的软件实现方法
      • 2_3_3_进程互斥的硬件实现方法
      • 2_3_4_信号量机制
      • 2_3_5_用信号量实现进程互斥、同步、前驱关系
      • 2_3_6_生产者-消费者问题
      • 2_3_7_多生产者-多消费者问题
      • 2_3_8_吸烟者问题
      • 2_3_9_读者-写者问题
      • 2_3_10_哲学家进餐问题
      • 2_3_11_管程
      • 2_4_1_死锁的概念(1)
      • 2_4_2_死锁的处理策略—预防死锁
      • 2_4_3_死锁的处理策略—避免死锁
      • 2_4_4_死锁的处理策略—检测和解除
      • 3_1_1_内存的基础知识
      • 3_1_2_内存管理的概念
      • 3_1_3_覆盖与交换
      • 3_1_4_连续分配管理方式
      • 3_1_5_动态分区分配算法
      • 3_1_6_基本分页存储管理的基本概念
      • 3_1_7_基本地址变换机构
      • 3_1_8_具有快表的地址变换机构
      • 3_1_9_两级页表
      • 43_3_1_10_基本分段存储管理方式
      • 3_1_11_段页式管理方式
      • 3_2_1_虚拟内存的基本概念
      • 3_2_2_请求分页管理方式
      • 3_2_3_页面置换算法
      • 3_2_4_页面分配策略
      • 4_1_1_初识文件管理
      • 4_1_2_文件的逻辑结构
      • 4_1_3_文件目录
      • 4_1_4_文件的物理结构(上)
      • 4_1_4_文件的物理结构(下)
      • 54_4_1_5_文件存储空间管理
      • 4_1_6_文件的基本操作
      • 4_1_7_文件共享
      • 4_1_8_文件保护
      • 4_1_9_文件系统的层次结构
      • 4_2_1_磁盘的结构
      • 4_2_2_磁盘调度算法
      • 4_2_3_减少磁盘延迟时间的方法
      • 4_2_4_磁盘的管理
      • 5_1.2_I-O控制器
      • 5_1.3_I-O控制方式
      • 65_5_1_1_I-O设备的概念和分类
        • 什么是I/O设备
        • I/O设备的分类
        • 小结
      • 5_1_4_I-O软件层次结构
      • 5_1_5_I-O核心子系统
      • 5_1_6_假脱机技术
      • 5_1_7_设备的分配与回收
      • 5_1_8_缓冲区管理
    • 操作系统
  • Linux

  • 计算机网络

  • Git

  • 数据库

  • 计算机小知识

  • 编译原理

  • 名人堂

  • 计算机基础
  • 操作系统
  • 操作系统网课-王道考研
2023-05-15
目录

65511I-O设备的概念和分类

# 5.1_1_I-O设备的概念和分类

从这个小节开始,我们会开始学习这门课的最后一个章节设备管理,‍‍通过之前的学习,我们知道操作系统它作为系统资源的管理者,既需要对上层的软件进行管理,‍‍也需要对下层的硬件进行管理。   在之前的学习当中我们学习了操作系统,‍‍它需要对处理机还有存储器这些硬件进行管理,但是这些硬件其实是在计算机的主机内部的,‍‍这个章节我们要探讨的,所谓的设备管理其实指的是操作系统,‍‍对计算机主机外部的那些硬件设备的一个管理。‍‍

‍

​

‍

‍

# 什么是I/O设备

在正式开始本章之前,我们首先要了解一下IO设备的基本概念和分类。

首先来看一下什么是I/O设备,‍‍ I/O设备又可以称为外部设备,所谓的I/O其实指的就是输入和输出,‍‍I代表的是input,O代表的是output,‍‍因此I/O设备的作用就和它的名字一样,它无非就是用来‍‍把数据输入到计算机当中的一种设备,或者是一种‍‍可以接收计算机输出数据的一种外部设备,像平时我们很熟悉的鼠标和键盘就是一种‍‍很典型的输入型设备,

比如说像键盘这种外部设备,可以把一个的字符数据输入到计算机当中,‍‍像显示器它又是一种很典型的输出型的设备,‍‍显示器可以接收计算机主机输出的那些数据,那些图像的数据,并且把那些图像显示出来。‍‍像移动硬盘,还有大家很熟悉的U盘,就是属于既可以输入又可以输出的设备,‍‍可以把移动硬盘当中存储的数据输入到计算机当中,也可以把计算机当中的数据‍‍输出到移动硬盘当中进行存储。‍‍

所以其实输入的过程无非就是把‍‍这个设备准备好的数据‍‍读入计算机当中,而输出的过程无非就是把计算机当中准备好的数据,‍‍把它写出到这个输出设备上,

​

‍

因此UNIX系统会把这些外部设备把它抽象为一种特殊的文件,‍‍这样的话用户就可以用读文件或者写文件的方式来对这些外部设备进行操作。‍‍像write操作其实就是向外部设备写出数据,也就是一个数据输出的过程,‍‍而read操作就是从外部设备中读入数据,也就是一个输入的过程。‍‍

因此在之后的讲解当中,大家也会经常看到对一个设备进行write操作和read操作,‍‍它们所对应的其实就是数据输出和数据输入的过程。‍‍

​

‍

# I/O设备的分类

那么接下来我们来看一下I/O设备有哪些分类,‍‍如果按使用特性来分的话,I/O设备可以分为这样的三种类型,‍‍

第一种叫做人机交互类的外部设备,像平时我们经常用于和计算机进行交互的这些鼠标键盘打印机等等这些设备,‍‍就属于人机交互型的外设,‍‍这些设备一般来说数据的传输速度会比较慢,数据的传输都是以字节或者几十字节为单位的。‍‍

第二种叫做存储设备,这也是大家很熟悉的,像移动硬盘还有光盘这些‍‍存储设备就是用于存放数据的,‍‍像这种存储设备一般来说数据的传输速度会比较快。‍‍

第三种叫做网络通信设备,像大家平时熟悉的猫,‍‍还有路由器,这些就属于网络通信设备,‍‍这种设备的数据传输速度一般来说是介于这二者之间,会比人机交互类的更快一些,‍‍又会比存储类的设备要更慢一些,这是按使用特性来分类

​

‍

‍

如果按照传输速率来分类的话,又可以把l设备分为低速、中速和高速这样三种。‍‍低速设备就是像什么鼠标键盘这样的设备,因为我们每敲击一次键盘,其实只是往‍‍计算机当中输入了一个字符,‍‍所以这种设备和计算机进行数据交换的速度是很慢的,一般来说每秒几个到几百个字节,‍‍

中速设备的话一般来说传输速率是每秒钟数千至上万个字节,‍‍比如说激光打印机,

而高速设备的话就是每秒数千个字节,甚至还要更快。‍‍像平时咱们使用的移动硬盘

其实高中低速并没有一个很明确的这种界限‍‍划分,所以这个知识点大家也不需要特别的记忆,能有一个印象了解就可以了,‍‍基本不可能作为考点进行考察。‍‍

​

‍

‍

‍

第三种分类方式就是按照信息交换的单位进行分类,‍‍分为块设备和字符设备,像平时咱们使用的移动硬盘磁盘等等,这些就属于块设备。‍‍它的数据传输的基本单位是一块一块进行的,经过上个章节的学习,大家对块的概念应该‍‍也已经有了很明确的了解。这种设备的特点是传输速率会比较高,并且可寻址。‍‍所谓可寻址就是指这种设备可以随机的读写任意的一块,‍‍

像字符设备的话,就是类似于鼠标键盘这种数据的传输基本单位是字符或者字节,‍‍所以这种类型的设备传输速度一般会比较慢,并且不可寻址,在输入输出的时候,一般来说会采用中断驱动的方式,‍‍中断的概念咱们在第一章也有比较详细的介绍,在下个小节中我们还会继续介绍什么叫中断驱动方式

​

‍

‍

# 小结

那么这个小节的内容并不多,我们理解了什么是I/O设备,所有的I其实就是input,‍‍o指的就是output,也就是输入和输出。

那么之后我们又介绍了l/O设备,按照不同的‍‍分类方式可以分为哪几种类型,‍‍像前面的这两种分类方式,其实并不会有很明确的那种划分的界限。‍‍两所以这两种分类方式其实一般来说也不太可能进行考察。‍‍

因此大家需要重点关注的是第三种分类方式,也就是按信息交换的单位分类,‍‍分为块设备和字符设备,大家需要注意它们之间的区别。‍‍这两类设备最本质的区别是‍‍这种设备与计算机进行数据交换的时候,这种数据交换的基本单位一个是快,一个是字符。‍‍

除此之外大家还需要结合上一章的内容,理解块设备是可寻址的,‍‍而字符设备是不可选址的这样的两个特性,那字符设备通常会采用‍‍中断驱动的这种I/O控制方式,这也是我们下个小节会详细介绍的内容。

​

在GitHub上编辑此页 (opens new window)
上次更新: 2023/5/16 10:03:43
5_1.3_I-O控制方式
5_1_4_I-O软件层次结构

← 5_1.3_I-O控制方式 5_1_4_I-O软件层次结构→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式