计算机硬件系统架构:

实际上,IO总线又可以分为常规IO总线和外围IO总线,常规IO总线是离CPU比较近的总线,即主要用于对时延要求高的设备,比如说显示器;外围总线相反。

设备控制器:

磁盘有磁盘控制器,打印机有打印机控制器,显卡有显卡控制器,键盘鼠标也有自己的控制器…

CPU是不会直接去和这些设备打交道的,对于这些各种各样的外部设备都是由设备控制器去进行控制的

拿打印机的设备控制器来举例子,打印机设备控制器主要分为两大部分,寄存器部分和接口控制电路。

其中寄存器分为命令寄存器,数据寄存器,状态寄存器等:

  • 命令寄存器:设备需要执行的某个具体的操作或者任务
  • 数据寄存器:操作的数据,可以是CPU要给设备的数据,也可以是设备返回的数据
  • 状态寄存器:用于存储当前设备状态,如忙碌或者就绪状态

举例CPU通过设备控制器和打印机做交互:

主要可以划分为以下几步:

  1. CPU查看状态寄存器的值,来判断设备的状态。假如设备的状态是BUSY,说明设备正在工作,不可使用,CPU可以通过轮询或者忙等待的方式继续查看设备的状态,直到状态为READY,转到第2步;假如设备的状态是READY,转到第2步;
  2. 向设备的数据寄存器写入数据,同时将状态寄存器转换成BUSY状态;
  3. 下发命令,将需要执行的命令写入到命令寄存器中;
  4. 设备控制器执行命令;
  5. 完成命令,将状态寄存器的状态设置为READY。

问题:

1.CPU给设备控制器的寄存器发送数据时,CPU是怎么找到要发送的给那个寄存器呢?

答:端口映射IO,或者给每个寄存器进行编址(内存映射IO).
如CPU会给每个寄存器分配一个端口,如数据寄存器端口是0X03A1,数据寄存器的端口是0X03B0等…

2.CPU通过什么指令将数据给到设备控制的各个寄存器?

答:使用IN(从外部设备控制器读取数据) OUT(内存数据写入设备控制器)等指令,
如将CPU中寄存器eax中的数据写到数据寄存器中,OUT 0X03B0 EAX 即可
当然IN OUT都是内核态的指令,设备控制器是内核态的代码,可以执行这些指令是不奇怪的。
我们用户态的应用程序是通过系统调用,将数据和指令传递给内核,进入内核态,由内核代码完成命令的下发和执行,最终完成设备控制器的工作。

总结:缺点

缺点一:轮询查状态,低效,使用中断机制替代

以上过程CPU全程参与了整个工作过程,CPU可能需要不断的在查询设备状态时,不断的轮询,会造成CPU时间片的浪费。
实际上,现在设备控制器会使用中断机制来处理该问题,当CPU看到设备的状态是BUSY,那么将会转去做别的事儿,当设备状态转为READ时,设备控制器会给CPU发送一个中断信号,通知告诉CPU,我当前时READY状态,可以使用,CPU接下来查询中断向量表,调用相应的中断服务程序,对相应设备控制器进行下发指令,完成相应的任务。
实际上,我们的系统中充斥着种种的中断,因为中断多数情况下能比轮询等方式高效,但是不是绝对的,因为中断有人上下文的切换等时间开销,对吧,当系统中充斥着大量的中断,系统不见得反应多灵敏呢。只能说多数情况下,中断能好一些。

缺点二: 拿打印机来讲,CPU需要参与整个数据的移动拷贝过程,使用DMA(Direct Memory Access)机制替换

操作系统如何与外部设备交互相关推荐

  1. 《操作系统》OS学习(二):启动、中断、异常

    Bootloader:加载OS.操作系统一开始是放在DISK(硬盘)中,并不是放在内存中. BIOS:基本I/O处理系统.存放在ROMRead-Only Memory)只读存储中 BIOS(Basic ...

  2. 操作系统面试题(史上最全、持续更新)

    尼恩面试宝典专题40:操作系统面试题(史上最全.持续更新) 本文版本说明:V28 <尼恩面试宝典>升级规划为: 后续基本上,每一个月,都会发布一次,最新版本,可以联系构师尼恩获取, 发送 ...

  3. 网络工程师考试-操作系统原理笔记

    网络工程师 网络工程师... 1 1.     操作系统原理... 3 1.1.           操作系统概论... 3 1.1.1.    操作系统的概念... 3 1.1.2.    操作系统 ...

  4. 项目一.认识Linux操作系统

    任务一.查找Linux系统的基本概况 任务实施 第一步:通过搜索引擎搜索"Linux" 在百度以及Google等搜索引擎中搜索"UNIX"."Linu ...

  5. 操作系统第一章操作系统引论相关习题

    一.单项选择题 1.操作系统是一种____. A.通用软件 B.操作系统 C.应用软件 D.软件包 答:b 2.操作系统的___管理部分负责对进程进行调度. A.主存储器 B.控制器 C.运算器 D. ...

  6. 主流操作系统及其优缺点

    主流操作系统介绍 目录如下: 文章目录 主流操作系统介绍 目录如下: 简介: 更多信息 中文名 外文名 英文简称 组成部分 主流操作系统及其优缺点: 85-95年主要操作系统- DOS MS-DOS的 ...

  7. excel正在等待某个应用程序以完成对象链接与嵌入操作_看完这篇操作系统,和面试官扯皮就没问题了

    各位看官内容喜欢的话,动动手指点个 ,点个关注呗!!谢谢支持! 解释一下什么是操作系统 操作系统是运行在计算机上最重要的一种软件,它管理计算机的资源和进程以及所有的硬件和软件.它为计算机硬件和软件提供 ...

  8. 计算机操作系统还能这样玩?这一篇计算机操作系统的总结为你保驾护航(零风险、高质量、万字长文、建议收藏)

    操作系统目录 1.什么是操作系统 2.计算机操作系统的基本特征 2.1.并发 2.2.共享 2.3.虚拟 2.4.异步 3.操作系统的发展 4.OS的运行机制和体系结构 4.1.运行机制 4.1.1. ...

  9. linux操作系统原理_Linux系统从新手到运维老鸟学习指南

    Linux是在1990年底到1991年由芬兰大学的学生LinusTorvalds利用Minix操作系统作为开发平台编写了内核,目前由世界各地的爱好者共同开发和维护的与UNIX兼容的操作系统,也是自由和 ...

最新文章

  1. GridView实践
  2. 重新想象 Windows 8 Store Apps (4) - 控件之提示控件: ProgressRing; 范围控件: ProgressBar, Slider...
  3. python文件对象是可以迭代的_详解python可迭代对象、迭代器和生成器
  4. pycharm导入本地py文件时,模块下方出现红色波浪线
  5. 程序员如何成为编程高手并以此创业
  6. ad18常用快捷键可以修改吗_常用发泡剂之聚氨酯发泡剂在冬季可以用吗?
  7. 【前端基础】浏览器对象
  8. tomcat启动startup出现闪退问题
  9. 【Pix4d精品教程】Pix4d修编正射影像DOM的两种方法案例详解
  10. WiFi网络测速专业版
  11. php 定义宏函数,汇编语言宏函数
  12. word文档粘贴到html,将Word 文档复制到Dreamweaver的方法
  13. Html 实现角标效果
  14. 免费LOGO在线生成
  15. 字号与像素大小的关系
  16. 开始使用Elasticsearch (2): 了解如何进行搜索
  17. 【操作系统基础】文件管理系统(一)
  18. 思量QQ本地会员v3.8官方2013版【免费使用部分QQ会员功能】
  19. cogs 998. [東方S2] 帕秋莉·诺蕾姬
  20. 7-80 大炮打蚊子(C语言)

热门文章

  1. 大学毕业后,留在北京的人,要坚强!
  2. 注册登录模块设计浅谈
  3. 线代 | 【行列式及矩阵】经典例题及方法总结
  4. 计算机学院运动会方阵策划案,运动会方阵策划案(图文)教学文案
  5. IIC实战---》BH1750FVI光照强度传感器
  6. whitelist方法_whitelist
  7. 汽车方向盘电子助力转向器如何接线_相比于液压助力,电子助力有什么优势?...
  8. C++入门——Day1_Start with C++
  9. 使用两种脉冲神经网络(Spiking Neural Network)预测脑电图的癫痫发作:基于LIF神经元模型的实践与分析
  10. 杀死所有的tomcat进程