操作系统12:I/O系统的功能、模型、接口及 I/O 设备和设备控制器

I/O系统的主要任务是隐藏物理设备细节、实现设备无关性、提高处理机和I/O设备利用率,以及正确管理设备共享和错误处理。它通过层次结构,如用户层I/O软件、设备独立性软件和设备驱动程序,与硬件交互。I/O接口包括块设备接口和流设备接口,分别针对块设备(如磁盘)和字符设备(如键盘、打印机)。设备控制器负责控制I/O操作,内存映像I/O和I/O通道则优化了数据传输。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、I/O系统的功能、模型和接口

(1)I/O系统的基本功能

1.1 - 隐藏物理设备的细节

1.2 - 与设备的无关性

1.3 - 提高处理机和I/O设备的利用率

1.4 - 对 I/O 设备进行控制

1.5 - 确保对设备的正确共享

1.6 - 错误处理

(2)I/O系统的层次结构和模型

2.1 - I/O 软件的层次结构

2.2 - I/O 系统中各种模块之间的层次视图

(3)I/O系统接口

3.1 - 块设备接口

3.2 - 流设备接口

2.3 - 网络通信接口

2、I/O 设备和设备控制器

(1)I/O 设备

1.1 - I/O 设备类型

1.2 - 设备与控制器之间的接口

(2)设备控制器

2.1 - 设备控制器的基本功能

2.2 - 设备控制器的组成

(3)内存映像 I/O

(4)I/O 通道


        I/O 系统管理的主要对象是 I/O 设备和相应的设备控制器。其最主要的任务是,完成用户提出的 I/O 请求,提高 I/O 速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。

1、I/O系统的功能、模型和接口

(1)I/O系统的基本功能

1.1 - 隐藏物理设备的细节

        I/O 设备控制器是一种硬件设备,用来对各类型的 I/O 设备进行控制,其中包含有若干个用于存放控制命令的寄存器和存放参数的寄存器。用户通过这些命令和参数,可以控制外部设备执行所要求的操作。

        对于不同的设备,需要有不同的命令和参数。例如,在对磁盘进行操作时,不仅要给出本次是读还是写的命令,还需给出源或目标数据的位置,包括磁盘的盘面号、磁道号和扇区号。由此可见,如果要求程序员或用户编写直接面向这些设备的程序,是极端困难的。因此,I/O 系统必须通过对设备加以适当的抽象,以隐藏掉物理设备的实现细节,仅向上层进程提供少量的、抽象的读/写命令,如 read、write 等。//让设备易用

1.2 - 与设备的无关性

        与设备的无关性是是在隐藏物理设备细节的基础上实现的。

        一方面,用户不仅可以使用抽象的 I/O 命令,还可使用抽象的逻辑设备名来使用设备,例如,当用户要输出打印时,他只须提供读(或写)的命令(提出对 I/O 的要求),和提供抽象的逻辑设备名如 /dev/printer,而不必指明是哪一台打印机。

        另一方面,也可以有效地提高 OS 的可移植性和易适应性,对于 OS 本身而言,应允许在不需要将整个操作系统进行重新编译的情况下,增添新的设备驱动程序,以方便新的 I/O 设备的安装。如 Windows 中,系统可以为新 I/O 设备自动安装和寻找驱动程序,从而做到即插即用。

1.3 - 提高处理机和I/O设备的利用率

        I/O 系统要尽可能地让处理机和 I/O 设备并行操作,以提高它们的利用率。

  • 一方面,要求处理机能快速响应用户的 I/O 请求,使 I/O 设备尽快地运行起来;
  • 另一方面,也应尽量减少在每个 IO 设备运行时处理机的干预时间。
1.4 - 对 I/O 设备进行控制

        对 I/O 设备进行控制是驱动程序的功能。目前对 I/O 设备有四种控制方式:

  • 采用轮询的可编程 I/O 方式
  • 采用中断的可编程 I/O 方式
  • 直接存储器访问方式
  • I/O 通道方式。

        具体应采用何种控制方式,与 I/O 设备的传输速率、传输的数据单位等因素有关。//比如传输的数据是字节还是数据块等

1.5 - 确保对设备的正确共享

        从设备的共享属性上,可将系统中的设备分为如下两类:

  • 独占设备,进程应互斥地访问这类设备,即系统一旦把这类设备分配给了某进程后,便由该进程独占,直至用完释放。典型的独占设备有打印机、磁带机等。系统在对独占设备进行分配时,还应考虑到分配的安全性。
  • 共享设备,是指在一段时间内允许多个进程同时访问的设备。典型的共享设备是磁盘,当有多个进程需对磁盘执行读、写操作时,可以交叉进行,不会影响到读、写的正确性。
1.6 - 错误处理

        大多数的设备都包括了较多的机械和电气部分,运行时容易出现错误和故障。从处理的角度,可将错误分为临时性错误持久性错误

        对于临时性错误,可通过重试操作来纠正,只有在发生了持久性错误时,才需要向上层报告。例如,在磁盘传输过程中发生错误,系统并不认为磁盘已发生了故障,而是可以重新再传,一直要重传多次后,若仍有错,才认为磁盘发生了故障。

        由于多数错误是与设备紧密相关的,因此对于错误的处理,应该尽可能在接近硬件的层面上进行,即在低层软件能够解决的错误就不向上层报告,因此高层也就不能感知;只有低层软件解决不了的错误才向上层报告,请求高层软件解决。//错误解决的思路和指导思想,软件也适用,错误尽可能的在底层解决

总结:

  • 第 1、2 方面的功能是为了方便用户使用 I/O 设备
  • 第 3、4 方面的功能是用于提高 CPU 和 I/O 设备的利用率
  • 第 5、6 方面的功能是为用户在共享设备时提供方便,以保证系统能有条不紊的运行,当系统发生错误时能及时发现错误,甚至于能自动修正错误

(2)I/O系统的层次结构和模型

        I/O

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

swadian2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值