首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

想弄明白操作系统,想弄懂内核,那你先从这里的I/O子系统开始

内核提供了许多与I / O相关的服务。内核的基于硬件和设备驱动程序基础结构的I / O子系统提供了诸如调度,缓存,假脱机,设备保留和错误处理之类的多种服务。I / O子系统还负责保护自己免受错误进程和恶意用户的侵害。

1.I / O计划–

计划一组I / O请求意味着确定执行它们的良好顺序。最佳选择是应用程序发出系统调用的顺序。调度可以提高系统的整体性能,可以公平地向所有进程共享设备访问权限,减少平均等待时间,响应时间,I / O完成的周转时间。操作系统开发人员通过为每个设备维护请求的等待队列来实现调度。当应用程序发出阻塞的I / O系统调用时,该请求将放置在该设备的队列中。I / O调度程序重新排列顺序以提高系统效率。

2.缓冲-

缓冲器是一个存储器区域两个设备之间或在设备和应用程序之间传送存储数据。进行缓冲的原因有三个。首先是要处理数据流的生产者和使用者之间的速度不匹配。缓冲的第二种用途是为具有不同数据传输大小的数据提供适应性。缓冲的第三种用途是支持应用程序I / O的复制语义,“复制语义”是指假设应用程序要在存储在其缓冲区中的磁盘上写入数据。它调用write()系统的调用,提供指向缓冲区的指针和指定要写入的字节数的整数。问:系统调用返回后,如果缓冲区的应用程序更改了缓冲区的内容会怎样?

Ans。使用复制语义,可以保证写入磁盘的数据版本是应用程序系统调用时的版本。

3.缓存-

一个高速缓存是保存数据的副本快速记忆的区域。访问缓存副本比原始文件容易得多。例如,当前正在运行的进程的指令存储在磁盘上,缓存在物理内存中,然后再次复制到CPU的二级和一级缓存中。

缓冲区与高速缓存之间的主要区别在于,缓冲区可能仅保留数据项的现有副本,而根据定义,高速缓存将保留位于其他地方的项的较快存储时的副本。

4.绕线和设备保留-

甲阀芯是容纳一个设备,输出诸如不能接受交错数据流的打印机的缓冲器。尽管一台打印机一次只能完成一项工作,但有些应用程序可能希望同时打印其输出,而又不能将它们的输出混合在一起。操作系统通过阻止所有输出继续输出到打印机来解决此问题。所有应用程序的输出都后台处理在单独的磁盘文件中。当应用程序完成打印时,假脱机系统会将相应的假脱机文件排入队列,以输出到打印机。

5.错误处理–

使用受保护的内存的操作系统可以防范多种硬件和应用程序错误,因此,每个轻微的机械故障通常不会导致完全的系统故障,因此设备和I / O传输可能会以多种方式发生故障,要么是由于暂时原因(例如网络过载),要么是出于永久性原因(例如磁盘控制器出现故障)。

6.I / O保护–

错误和保护问题密切相关。用户进程可能试图发出非法的I / O指令来破坏系统的正常功能。我们可以使用各种机制来确保这种中断不会在系统中发生。为了防止非法I / O访问,我们将所有I / O指令都定义为特权指令。用户不能直接发出I / O指令。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210306A09X9V00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券