本文共 3383 字,大约阅读时间需要 11 分钟。
文章目录
第五章随心记录问题部分
1、I/O设备大致分为哪两类
我的理解:
一共有两类 一类是 字符设备 另一类是 块设备
块设备把信息存储在固定大小的块中 每个块都有自己的地址
字符设备 以字符为单位发送或接受 不考虑块结构
2、DMA 设计的意义
我的理解:
DMA 英文全程为Direct Memory Access 从英文中就能看出来作用 设计的意义在于异步 不占用CPU的时间而处理输入输出
DMA能够独立于CPU而访问系统主线
3、中断信号作用
我的理解:
中断信号能够反应某个操作完成 某种状态结束或异常 并交由CPU处理 进行下一步操作
CPU必须保存当前状态 进程 PSW进入堆栈 有些中断信号可以屏蔽 而有些不可以 不可以屏蔽的信号则说明最高优先级 CPU必须放下当前工作 并且处理此信号
4、I/O可以用三种方式实现
我的理解:
可以由 CPU处理实现 中断驱动I/O 使用DMA的I/O
5、I/O系统所有层次 对于一种详细控制流解释
我的理解:
I/O系统从上至底层
用户I/O软件 与设备无关的操作系统软件 设备驱动软件 中断处理软件 硬件例如一个文件想要读取一个块 首先向操作系统发送请求 操作系统先看内存高速缓冲中是否存在当前块 如果有直接读取 返回值即可 没有则操作系统向磁盘驱动软件发出请求 驱动软件负责从硬件获取信息
当磁盘调用完成获取信息后 硬件产生中断 中断处理软件相应并获取提取设备信息 并唤醒 被阻塞的进程 使其继续进行
6、磁盘 磁道 磁面 扇区 柱面
我的理解:
一个硬盘含多个盘片 一个盘片有两个盘面 一个盘面就有一个磁头
磁道就是一个盘面中许许多多的 同心圆 由多个扇区组成的
柱面就是多个相同编号的磁道组成的类圆柱 柱面数 == 磁道数
7、柱面斜进
我的理解:
举个例子 假设我们没有用柱面斜进 那么0号扇区磁道 的外一个磁道的对应位置就是19扇区 一个磁道18扇区 并且扇区都是连续编号的 比如我们要读取19个扇区 其中0~18个扇区 在最内层的磁道上 当我们读取完后 我们需要把寻道到有19扇区的磁道上 但是此时磁盘仍然在旋转 如果当我们磁头已经移动到了含有19扇区的磁道时 寻道需要时间 此时偏移量可能都已经到了扇区20 21 22了 那么我们此时需要再重新旋转一圈才能重新回到19扇区位置 此时旋转一圈的时间花销则多了
那么我们不妨每次把之前的对应位置吗 每次相应位置斜进一点 此时就不会再出现这种需要再旋转一圈的额外花销了 比如我们把19扇区放到22扇区的位置 之后的每个扇区都向后移动三位 寻道完后 磁头刚好在20扇区位置 此时就只用移动一小点位置即可
8、单交错 双交错磁盘
我的理解:
例如我们需要读取磁盘 此时我们的扇区是连续分布的 不妨假设控制区只有一个扇区的缓冲区 而此时我们要求读取两个扇区 则在我们读取完一个扇区后 我们需要讲控制器中的缓存区移动到主存 这需要一定的时间 此时磁盘仍在转动 跟我们的柱面斜进一个问题 所以我们初始化的编号就可以采用单交错 如果复制速率很慢 还可以采用双交错
9、磁道臂优化算法
我的理解:
提前柱面假设一共有100个
有几种设想算法 1、FIFO 先来先服务算法 2、SSF (Shortest Seek First) 最短寻道优先算法 3、电梯算法FIFO就不介绍了
SSF算法 最短寻道优先算法 就是比如 此时柱面申请访问需求 有40 60 100 0 我们比如当前位于43号柱面位置 那么我们每一次的申请访问 都已访问中与当前距离最短的柱面来进行工作 但是问题是 如果一直存在着新访问需求在我们当前工作的附近 则相对0号 100号相对远的访问申请则一直得不到相应 一直无法工作 显然违背了公平性原则
能够解决上面问题的算法出现了 电梯算法 这个原则则是 我们需要一个位来存储我们的访问方向 例如1为 UP向上 0为 DOWN向下 那么每次我们接受的访问仅限于当前方向的 比如 0->100方向 或者 100->0 方向 仅当我们当前方向没有访问需求时 我们再进行掉头切换方向
10、时钟驱动程序任务
我的理解:
时间硬件可以 周期性产生一个CPU中断 这里介绍的是时钟驱动程序任务
1、维护日时间 2、防止进程超时运行 3、对CPU使用情况记账 4、处理用户进程提出的alarm系统调用 5、为系统本身的各个部分提供监视定时器 6、完成概要剖析、监视、统计信息收集
我也记不到这个干了什么 还是就写一下吧写一下 :)
11、现代光学鼠标 怎么移动的
我的理解:
这个我觉得还是挺有趣的 因为我也一直不知道鼠标是怎么实现在电脑上实现移动映射的
我现在也翻不到是好多页了 我记得是书上写着 通过图像查看 在低分辨率下通过看图像 获取连续的低分辨率图像 来找到图像到图像的变化
第五章课后习题
1、访问时一般先尝试内存主线后尝试I/O主线 现在提出主意 同时访问可以加速 此主意如何
我的理解:
显然主意十分差 我们的内存主线明显访问比I/O主线快得多啊 而且如果内存中有的话 就直接取出来即可
谷歌翻译:
这不是一个好主意。内存总线肯定比I / O总线快,否则明智的做法为何要打扰它?考虑正常的内存重新存储会发生什么 寻求。内存总线首先完成,但是I / O总线仍很忙。如果CPU 等到I / O总线完成,它的内存性能降低到 I / O总线。如果它只是尝试使用内存总线作为第二个参考,它将失败 如果这是I / O设备参考。如果有办法 立即中止先前的I / O总线参考,尝试第二个I / O总线参考。 进行改进可能会起作用,但是从来没有这样的选择。总而言之,这是一个 馊主意。
2、通过DMA向内存写入输入 和 CPU直接进行内存复制 优点缺点比较
我的理解:
通过DMA向内存写入输入 明显在DMA工作时 CPU就释放了 并且这个时间可以去进行其他的操作 不会一直占用CPU 而缺点是 DMA明显先比CPU 写入输入的速率更慢 我认为更好的处理是 在CPU空闲时 直接负责内存复制 而CPU有进程需要处理时 将工作交给DMA来进行负责
谷歌翻译:
可以先发出读取命令来执行内存到内存的复制 它将把字从存储器传送到DMA控制器,然后发出一个 写入存储器以将字从DMA控制器传输到另一个 内存中的地址。这种方法的优点是CPU可以执行其他操作 并行进行有用的工作。缺点是此内存到内存复制 由于DMA控制器比CPU慢得多,并且 数据传输是通过系统总线而不是专用的 CPU内存总线。
3、CPU体系设计师 当得到中断信号通知时 让CPU停止发射指令 但允许当前指令完成再中断 是否有缺点
我的理解:
这样可能会使中断的持续等待时间有点长
谷歌翻译:
现代CPU的执行率取决于指令的数量。 每秒完成的指令与指令的持续时间无关现代操作系统 需要。如果一个CPU可以每秒完成10亿条指令,那么它就是1000 MIPS的计算机,如果一条指令花费30纳秒。因此,通常很少尝试 使说明迅速完成。保持中断直到最后一条指令 当前执行的完成可能会显着增加中断的等待时间。 此外,需要一些管理部门才能实现此权利。
4、以下各项工作是在四个I/O软件层 哪一层完成的
题目:
1、磁盘读操作计算磁道、扇区 2、为设备寄存器写命令 3、检查用户是否允许使用设备 4、二进制整数转化为ASCII码以便打印我的理解: (1)(2) 设备驱动程序 (3) 与设备无关的操作系统软件 (4) 用户级I/O软件
谷歌翻译:
(a)设备驱动程序。现代操作系统 (b)设备驱动程序。 (c)与设备无关的软件。 (d)用户级软件。5、为什么打印机的输出文件打印前全部假脱机输出在磁盘上
我的理解:
打印需要时间 操作系统不可能一直等待打印机结束再结束 这个时间代价是不可接受的 则我们在磁盘上存储打印文件 当缓冲池为空时 我们的设备才停止
谷歌翻译:如果在输出出现后立即分配了打印机,则可能需要处理 通过打印一些字符来使打印机工作,然后进入休眠状态一周。
6、光盘和磁盘的优点和缺点
谷歌翻译:
光盘的主要优点是它们具有更高的记录能力 密度比磁盘高。磁盘的主要优点是 它们比光盘快一个数量级。
转载地址:https://love6.blog.csdn.net/article/details/116947587 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!