5.10 小结

输入/输出是一个经常被忽略但是十分重要的话题。任何一个操作系统都有大量的组分与I/O有关。I/O可以用三种方式来实现。第一是程序控制I/O,在这种方式下主CPU输入或输出每个字节或字并且闲置在一个密封的循环中等待,直到它能够获得或者发送下一个字节或字。第二是中断驱动的I/O,在这种方式下CPU针对一个字节或字开始I/O传送并且离开去做别的事情,直到一个中断到来发出信号通知I/O完成。第三是DMA,在这种方式下有一个单独的芯片管理着一个数据块的完整传送过程,只有当整个数据块完成传送时才引发一个中断。

I/O可以组织成4个层次:中断服务程序、设备驱动程序、与设备无关的I/O软件和运行在用户空间的I/O库与假脱机程序。设备驱动程序处理运行设备的细节并且向操作系统的其余部分提供统一的接口。与设备无关的I/O软件做类似缓冲与错误报告这样的事情。

盘具有多种类型,包括磁盘、RAID和各类光盘。磁盘臂调度算法经常用来改进磁盘性能,但是虚拟几何规格的出现使事情变得十分复杂。通过将两块磁盘组成一对,可以构造稳定的存储介质,具有某些有用的性质。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

时钟可以用于跟踪实际时间,限制进程可以运行多长时间,处理监视定时器,以及进行记账。

面向字符的终端具有多种多样的问题,这些问题涉及特殊的字符如何输入以及特殊的转义序列如何输出。输入可以采用原始模式或加工模式,取决于程序对于输入需要有多少控制。针对输出的转义序列控制着光标的移动并且允许在屏幕上插入和删除文本。

大多数UNIX系统使用X窗口系统作为用户界面的基础。它包含与特殊的库相绑定并发出绘图命令的程序,以及在显示器上执行绘图的服务器。

许多个人计算机使用GUI作为它们的输出。GUI基于WIMP范式:窗口、图标、菜单和定点设备。基于GUI的程序一般是事件驱动的,当键盘事件、鼠标事件和其他事件发生时立刻会被发送给程序以便处理。在UNIX系统中,GUI几乎总是运行在X之上。

瘦客户机与标准PC相比具有某些优势,对用户而言,值得注意的是简单性并且需要较少维护。对THINC瘦客户机进行的实验表明,以五条简单的原语就能制造出具有良好性能的客户机,即使对于视频也是如此。

最后,电源管理对于笔记本电脑来说是一个主要的问题,因为电池寿命是有限的。操作系统可以采用各种技术来减少功率消耗。通过牺牲某些质量以换取更长的电池寿命,应用程序也可以做出贡献。