110 likes | 228 Views
第六章 输入 / 输出系统. 6.7 I/O 与操作系统. 设计 I/O 系统需要注意操作系统的因素。 ◆ I/O 系统硬件的功能如何使用,往往完全是由 操作系统来决定的。 例如寻址空间的大小 ◆ I/O 操作主要在外设和存储器间进行,所以操 作系统的主要任务是维护数据的安全性。. 6.7 I/O 与操作系统. 6.7.1 DMA 和虚拟存储器 DMA 是使用虚拟地址还是物理地址? 1. 使用物理地址进行 DMA ,存在的问题: ◆ 对于超过一页的数据缓冲区,由于缓冲区使 用的页面在物理存储器中不一定是连续的,
E N D
第六章 输入/输出系统 6.7 I/O与操作系统 设计I/O系统需要注意操作系统的因素。 ◆I/O系统硬件的功能如何使用,往往完全是由 操作系统来决定的。 例如寻址空间的大小 ◆I/O操作主要在外设和存储器间进行,所以操 作系统的主要任务是维护数据的安全性。
6.7 I/O与操作系统 • 6.7.1 DMA和虚拟存储器 DMA是使用虚拟地址还是物理地址? 1. 使用物理地址进行DMA,存在的问题: ◆ 对于超过一页的数据缓冲区,由于缓冲区使 用的页面在物理存储器中不一定是连续的, 所以传输可能会发生问题。 ◆ 如果DMA正在存储器和缓冲器之间传输数据 时,操作系统从存储器中移出(或重新装载) 一些页面后,DMA将会在存储器中错误的页 面上传输数据。
6.7 I/O与操作系统 ◆ 解决问题的方法 • 锁定在主存中的页面 • 虚拟DMA技术 2. 通过DMA连接的I/O “虚拟DMA”技术,它允许DMA设备直接使用 虚拟地址,在DMA期间由硬件将虚拟地址映射到 物理地址。
6.7 I/O与操作系统 -主存总线 CPU Cache 地址转换寄存器 主存 DMA 控制器 TLB 总线 CPU I/O
6.7 I/O与操作系统 • 6.7.2 I/O和Cache数据一致性 1. Cache会使一个数据出现两个副本 一个在Cache中,一个在主存中。 2. I/O与计算机的连接方式 (1) 连接到CPU的Cache上
6.7 I/O与操作系统 CPU -主存总线 Cache 主存 总线适配器 TLB 总线 I/O CPU
6.7 I/O与操作系统 I/O连接到CPU的Cache上的特点: ◆ 不会产生数据不一致的问题所有I/O设备和CPU都能在Cache中看到最 新的数据,而且存储器中的机制能保证数据 的其它副本得到及时更新。 ◆ 损失了性能I/O要传给Cache的数据往往不是CPU当 前需要访问的数据。
6.7 I/O与操作系统 (2) 直接连到存储器上 I/O与存储器之间的数据交换不会干扰CPU。 -主存总线 CPU Cache 主存 总线适配器 CPU 总线 I/O I/O I/O I/O 控制器 控制器 控制器 网络 图形显示
6.7 I/O与操作系统 I/O直接连到存储器上的问题: ◆ 第一个问题 如果系统中存在Cache,而I/O连接到存储 器上,此时存储器中可能不是CPU产生的最新数 据,最新数据在Cache中。 ◆ 第二个问题I/O与存储器交换数据之后,在Cache中被 CPU使用的可能就是陈旧数据,而最新数据在存 储器中。
6.7 I/O与操作系统 • 6.7.3 异步I/O 1. 提高I/O性能的一种方法:并行 使用多个磁盘同时工作来获得一批数据。 2. 同步I/O 进程处于等待状态直到所需数据从磁盘读出。 3. 异步I/O ◆ 允许进程在发出I/O请求后继续执行,直到 该进程需要使用请求的数据。
6.7 I/O与操作系统 ◆ 异步I/O允许进程进一步发出I/O请求,这 样多个I/O请求可以同时处理以最大限度地 利用带宽。 • 6.7.4 块服务器和文件服务器 ◆ 将存储功能与网络技术结合起来 ◆ 目的:方便共享信息,方便维护信息。