磁盘键盘鼠标设备管理(鼠标设备管理器)

摘要

  1. 设备控制器
  2. IO控制方式
  3. 设备驱动程序
  4. 存储系统IO分层

设备控制器

为什么需要设备控制器?

电脑可以外接很多设备,如键盘、鼠标、硬盘、显示器、网卡等,每个设备的用法和功能不同,操作系统为了对这些输入输出设备进行统一管理,必须要屏蔽设备之间的差异,因此需要设备控制器。

磁盘键盘鼠标设备管理(鼠标设备管理器)

磁盘键盘鼠标设备管理(鼠标设备管理器)

设备控制器的特点?

  • 设备控制器必须要清楚的知道设备的用法和功能,这样CPU可以通过和设备控制器交互来控制设备。
  • 设备寄存器里面含有芯片,可以执行自己的逻辑
  • 设备寄存器里面有寄存器,用来与CPU进行通信

设备控制器中寄存器的作用?

  • 通过写入寄存器,操作系统可以让设备发送数据、接收数据、开启或关闭,或者执行某些其他操作
  • 通过读取寄存器,操作系统可以了解设备的状态,是否准备好接收一个新的指令等

设备控制器中寄存器的种类有哪些?

  • 数据寄存器:CPU向IO设备写入需要传输的数据
  • 命令寄存器:CPU发送一个命令,告诉IO设备要进行输入输出操作,于是就会交给IO设备去工作,任务完成以后,会把状态寄存器里面的状态标记为已完成。
  • 状态寄存器:目的是告诉CPU,现在的工作已完成或者在进行中,如果是在进行中状态,CPU再发送数据和指令过来都是无用的,直到工作完成,状态寄存器修改为已完成,CPU发送的数据和指令才能被处理

磁盘键盘鼠标设备管理(鼠标设备管理器)

输入输出设备大体分为哪几类?

  • 块设备:把数据存储在固定的块中,每个块都有自己的地址,比如磁盘、USB都是常见的块设备
  • 字符设备:以字符为单位发送或接收一个字符流,字符设备不可寻址,没有寻道操作,比如鼠标

设备控制器中数据缓冲区的作用?

块设备传输的数据量往往比较大,为了减少对设备的频繁操作,需要借助数据缓冲区:

  • CPU写入数据到控制器的缓冲区,等积累到一定的量时,再发送给设备
  • CPU从控制器的缓冲区读入数据时,也需要等缓冲区积累到一定的量时,才拷贝到内存

CPU和设备控制器的通信方式有哪几种?

  • 端口IO:每个控制寄存器被分配一个IO端口,可以通过特殊的汇编指令操作这些寄存器,比如in/out类的指令
  • 内存映射IO:将所有的控制寄存器映射到内存空间,这样可以像读写内存一样读写数据缓冲区

IO控制方式

设备控制器读取完数据后,如何通知CPU?

  • CPU自己轮询
  • 中断
  • DMA控制器

CPU自己轮询的缺点?

CPU需要一直查询控制器中寄存器的状态,直到寄存器的状态变为已完成,这种方式会占用大量的CPU时间

中断的缺点?

中断虽然能解决轮询的缺点,但对于频繁读写磁盘并不友好,因为这样CPU会经常性被打断,占用了大量的CPU时间。

什么是DMA?

DMA可以使得设备在CPU不参与的情况下,能够自行将IO数据放入内存,实现DMA必须要有DMA控制器硬件的支持。

DMA控制器的工作方式?

磁盘键盘鼠标设备管理(鼠标设备管理器)

  1. CPU对DMA控制器下发指令,告诉它需要读取多少数据,读取的数据放在内存的哪个位置
  2. DMA控制器向磁盘控制器下发指令,通知磁盘控制器读取数据到其内部缓冲区域
  3. 接着磁盘控制器将缓冲区域的数据传输到内存
  4. 传输操作完成以后,磁盘控制器在总线上发送一个确认成功的信号到DMA控制器
  5. DMA控制器收到信号以后,发送中断通知给CPU,CPU就可以利用内存中的数据了

设备驱动程序

为什么需要设备驱动程序?

设备控制器虽然屏蔽了设备的细节,但每种设备控制器的寄存器、缓冲区等的使用模式不同,因此引入了设备驱动程序屏蔽设备控制器的差异。

磁盘键盘鼠标设备管理(鼠标设备管理器)

设备控制器属于硬件范畴,但设备驱动程序属于操作系统的一部分。操作系统的内核代码可以像本地调用一样使用驱动程序的接口。

驱动程序处理中断

设备控制器在完成任务以后,会发出中断信号,此时CPU收到中断指令以后,往往会对中断进行响应,而响应的处理函数往往在驱动程序中,因此驱动程序初始化的时候,要先注册一个该设备的中断处理函数

中断处理流程

磁盘键盘鼠标设备管理(鼠标设备管理器)

  1. 设备控制器准备好数据时,会通过中断控制器向CPU发出中断请求
  2. CPU响应中断请求,保存当前进程的上下文信息
  3. 转入响应的中断函数处理函数
  4. 进行中断处理
  5. 中断处理完成以后,恢复被中断进程的上下文

存储系统IO分层

Linux的存储系统的IO由上到下可以分为三个层次,分别是:

  • 文件系统层
  • 通用块层
  • 设备层

磁盘键盘鼠标设备管理(鼠标设备管理器)

  • 文件系统层:包括虚拟文件系统和其他文件系统的具体实现,向上为应用程序统一提供了标准的文件访问接口,向下会通过通用块层来存储和管理磁盘数据
  • 通用块层:包括块设备的IO队列和IO调度器,它对文件系统的IO请求进行排队,再通过IO调度器,选择一个IO发给下层的设备层
  • 设备层:包括硬件设备、设备控制器和驱动程序,负责物理设备的IO

以上内容来源于网络,由“WiFi之家网”整理收藏!

原创文章,作者:电脑教程,如若转载,请注明出处:https://www.224m.com/203568.html

(0)
电脑教程电脑教程
openwrt路由器设置教程(openwrt新手教程)
上一篇 2023年2月8日 10:16
tplink默认密码忘记了怎么办?
下一篇 2023年2月8日 10:23

相关推荐

  • 登录网址melogin·cn

    答:这里要说的是不应该说水星路由器登录网址melogin·cn,而是水星路由器的登录地址是:melogin.cn 要进入水星路由器的管理页面,就需要正确安装路由器,并手机连接路由器的WiFi信号,打

    MERCUPY(水星) 2020年5月11日
    57.9K
  • 路由器如何装在网线上设置(路由器如何插网线)

    路由器如何装在网线上设置(路由器如何插网线) 路由器是现代家庭网络中不可或缺的设备。要让您的路由器正常工作,您需要正确地将其连接到您的网络,包括插入正确的网线。 步骤1:选择路由器…

    网络 2025年2月24日
    822
  • 买路由器没有光纤插口(图文)

    【导读】买路由器没有光纤插口,下面就是WiFi之家网整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解。买路由器没有光纤插口的原因:普通的路由器是没有光纤接口的,猫和

    2021年7月27日
    62.8K
  • 关于路由器的这些“谣言”,你信了吗?

    经常看到一些自媒体误导网友:路由器有辐射,对小孩和孕妇伤害极大?路由器天线越多,信号越好?路由器开24小时会释放甲醛?

    2020年12月22日
    5.7K
  • 华硕路由器联通优化设置(华硕路由器iptv设置联通IPTV)

    华硕路由器联通优化设置 华硕路由器是一款性能优异的路由器,但是在使用联通IPTV的时候,需要进行一些设置优化才能够达到更好的效果。下面我们就来介绍一下华硕路由器的IPTV设置联通优…

    网络 2024年9月14日
    548
  • 路由器怎么设置没有网址(路由器怎么重新设置)

    路由器怎么设置没有网址(路由器怎么重新设置) 如果您的路由器没有网址或需要重新设置,您可以按照以下步骤操作: 连接电脑和路由器 首先,您需要使用网线将电脑和路由器连接在一起。确保两…

    网络 2024年12月15日
    0
  • lan1是什么接口(图文)

    【导读】lan1是什么接口,下面就是WiFi之家网整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解。lan1是上网接口,光猫的LAN1到4口,除了LAN2是看网络电

    2021年8月15日
    54.1K
  • 水星路由器安装后如何设置(水星路由器手机设置)

    水星路由器安装后如何设置(水星路由器手机设置) 水星路由器是一种常见的网络设备,安装后需要进行一些设置以确保正常使用。以下是水星路由器手机设置的步骤: 步骤1:连接路由器 首先确保…

    网络 2024年11月25日
    274
  • 路由器登陆密码是什么

    以下文章由WiFi之家网整理! 路由器登录密码就是用户登陆路由器设置的密码,一般密码就会在路由器底部的标签上,但是也有部分路由器都是智能路由器,一般都是没有密码的,设置路由器的时候…

    2022年6月9日
    14.2K
  • 科磊路由器怎么设置联网(路由器怎么安装和设置)

    科磊路由器怎么设置联网(路由器怎么安装和设置) 科磊路由器是一种常见的家庭网络设备,它可以通过无线或有线方式为您的电脑、手机、平板等设备提供互联网接入服务。下面我们来了解一下如何安…

    网络 2025年12月3日
    411