• 计算机I/O输入输出系统

    由于计算机游戏与内存和 I/O 有着非常密切的关系,因此,它们推动计算机达到其最大性能。善于游戏编程的程序员通常很了解视频和音频硬件,并会优化代码的硬件特性。

    I/O 访问层次

    应用程序通常从键盘和磁盘文件读取输入,而将输出写到显示器和文件中。完成 I/O 不需要直接访问硬件——相反,可以调用操作系统的函数。

    与《虚拟机》一节中描述的虚拟机相似,I/O 也有不同的访问层次,主要有以下三个:

    1) 高级语言函数

    高级编程语言,如 C++ 或 Java,包含了执行输入输出的函数。由于这些函数要在各种不同的计算机系统中工作,并不依赖于任何一个操作系统,因此,这些函数具有可移植性。

    2) 操作系统

    程序员能够从被称为 API(应用程序编程接口,Application Programming Interface)的库中调用操作系统函数。操作系统提供高级操作,比如,向文件写入字符串,从键盘读取字符串,和分配内存块。

    3) BIOS

    基本输入输出系统是一组能够直接与硬件设备通信的低级子程序集合。BIOS 由计算机制造商安装并定制,以适应机器硬件。操作系统通常与 BIOS 通信。

    设备驱动程序

    设备驱动程序允许操作系统与硬件设备和系统 BIOS 直接通信。例如,设备驱动程序可能接收来自 OS 的请求来读取一些数据,而满足该请求的方法是,通过执行设备固件中的代码,用设备特有的方式来读取数据。

    设备驱动程序有两种安装方法:一种是在特定硬件设备连接到系统之前,或者设备已连接并且识别之后。对于后一种方法,OS 识别设备名称和签名,然后在计算机上定位并安装设备驱动软件。

    现在,通过展示应用程序在屏幕上显示字符串的过程,来了解 I/O 层次结构如下图所示。

    输入输出操作的访问层次

更多...

加载中...