现代操作系统随心笔记(第五章 输入/输出)学习理解+面试复习
发布日期:2021-06-30 22:31:16 浏览次数:2 分类:技术文章

本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Leetcode 455. 分发饼干(DAY 116) ---- 贪心算法学习期
下一篇:Leetcode 860. 柠檬水找零(DAY 115) ---- 贪心算法学习期

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月30日 19时22分23秒