吾爱程序员:这里有好玩的游戏和软件
当前位置:首页操作系统教程 → 操作系统中的内核 I/O 子系统

操作系统中的内核 I/O 子系统

来源:网络 | 更新时间:2022-02-26 19:18:49
先决条件——微内核 内核提供了许多与 I/O 相关的服务。诸如调度、缓存、假脱机、设备保留和错误处理等多项服务由内核提供,该 I/O 子系统建立在硬件和设备驱动程序基础架构上。I/O 子系统还负责保护自己免受错误进程和恶意用户的侵害。   
  1. I/O 调度—— 调度一组 I/O 请求意味着确定执行它们的良好顺序。应用程序发出系统调用的顺序是最佳选择。调度可以提高系统的整体性能,可以将设备访问权限公平地共享给所有进程,减少I/O完成的平均等待时间、响应时间、周转时间。 操作系统开发人员通过维护每个设备的请求等待队列来实现调度。当应用程序发出阻塞 I/O 系统调用时,该请求将放入该设备的队列中。I/O 调度器重新排列顺序以提高系统的效率。 
  2. 缓冲 – 缓冲区存储在两个设备之间或设备与应用程序之间传输的数据的内存区域。出于三个原因进行缓冲。 
    1. 首先是应对数据流的生产者和消费者之间的速度不匹配。 
    2. 缓冲的第二个用途是为具有不同数据传输大小的数据提供适应。 
    3. 缓冲的第三个用途是支持应用程序 I/O 的复制语义,“复制语义”意味着,假设应用程序想要将数据写入存储在其缓冲区中的磁盘上。它调用write()系统的调用,提供指向缓冲区的指针和指定要写入的字节数的整数。 
  3. 缓存 - 缓存保存数据副本的快速内存区域。访问缓存副本比原始文件容易得多。例如,当前运行进程的指令存储在磁盘上,缓存在物理内存中,然后再次复制到 CPU 的二级和一级缓存中。 缓冲区和缓存之间的主要区别在于,缓冲区可能仅保存数据项的现有副本,而缓存根据定义保存位于其他位置的更快存储项的副本。   
  4. 假脱机和设备保留 – (Spooling and Device Reservation ) 脱机保存设备输出的缓冲区,例如不能接受交错数据流的打印机。尽管一台打印机一次只能处理一项作业,但多个应用程序可能希望同时打印它们的输出,而不是将它们的输出混合在一起。 操作系统通过阻止所有输出继续到打印机来解决此问题。所有应用程序的输出都在一个单独的磁盘文件中进行假脱机。当应用程序完成打印时,假脱机系统将相应的假脱机文件排队以输出到打印机。   
  5. 错误处理—— 使用受保护内存的操作系统可以防止多种硬件和应用程序错误,因此完整的系统故障不是每个轻微机械故障的常见结果,设备和 I/O 传输可能会以多种方式失败,或者出于暂时的原因,例如网络过载或出于永久性原因,例如磁盘控制器出现故障时。  
  6. I/O 保护—— 错误和保护问题密切相关。用户进程可能会尝试发出非法 I/O 指令来破坏系统的正常功能。我们可以使用各种机制来确保系统中不会发生这种中断。 为了防止非法 I/O 访问,我们将所有 I/O 指令定义为特权指令。用户不能直接发出 I/O 指令。 

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com