一般来说,设备驱动程序并不直接从用户处接收I/O请求,而是通过另外一层中介获得用户请求。这层介于设备驱动程序与用户程序之间的中介就是设备独立的操作系统软件。操作系统在设计时之所以有这层软件是因为I/O软件的一部分与设备有关,一部分与设备无关。而如果与设备无关,就可以将这部分共用起来,放置在设备驱动程序之上,为用户提供一个统一的I/O界面。

这种对于所有I/O设备都共同的操作包括诸如缓冲、错误报告、分配与释放独享设备、提供设备独立的数据块尺寸等。设备独立的操作系统软件与设备驱动软件之间的分界自然与每个设备有关。

1.统一界面

设备独立的操作系统软件的一个重要目标是提供一个统一的I/O界面。即让所有的I/O设备看上去一样或者相似,这是操作系统惯常扮演的角色。采用的手段则是为设备驱动界面规定一个标准:在下层规定设备驱动程序必须提供的功能清单,在上层规定内核为设备驱动程序提供的功能清单和界面

2.缓冲

缓冲是几乎所有I/O设备都需要的一种操作。
缓冲的目的有两个:

一是桥接速度不同的设备,使之可以沟通同步;
二是提供灵活的健壮机制,因为在每个缓冲层都可以进行一些健壮性、可靠性和安全性处理。

而第1点又有两层意思:一是提高数据传输速度,因为快速设备不必等待慢速设备;二是防止溢出,因为慢速设备来不及处理的数据可以存放在缓冲区而不会丢失。

当然,缓冲也有缺点,就是降低了数据传输的时效性。因为数据层层缓冲处理是需要时间的。如果一个系统的时效性非常重要,则最好不要使用缓冲,而是在通信双方之间创建一个没有缓冲的直接通道,这样,数据从一方发出后,另一方将马上收到。

例如,Mach操作系统的x-kernel就提供这种无缓冲的直接数据通道。自然,这种行为是比较危险的,必须非常小心来避免数据溢出和丢失。

3.错误报告

在I/O操作中,错误是难免的。这是因为I/O需要与计算机外面的世界打交道。而外面的世界自然不如计算机内部的世界井然有序。统计数据表明,计算机壳里面发生数据传输错误的概率很低,而在计算机壳外部进行数据传输发生错误的概率相当高。二者可以相差几百万倍。因此,在I/O中进行错误处理是件十分重要的事情。

如何进行错误处理则取决于错误的类型。一般来说,错误可以分为程序错误和真正的I/O错误。程序错误就是用户要求设备做一件该设备无法做到的事情,例如从输出设备上读数据。真正的I/O错误当然是指数据读写过程中发生的错误,例如数据读错了,或者磁盘盘片损坏了等。

对于程序设计错误来说,I/O软件除了将错误报告给用户外,似乎不能做任何别的事情了。但如果是I/O错误,那I/O软件则需要进行适当的纠错操作,看能否消除错误。如果不能消除错误,可以询问调用者如何处理,或者干脆返回一个错误码给用户。

总结

  • 设备驱动程序并不直接从用户处接收I/O请求,而是通过另外一层中介获得用户请求
  • 计算机需要提供一套设备独立的操作系统软件

ps
以windows为例 属于哪一部分?

设备独立的操作系统软件相关推荐

  1. 操作系统软件层次结构及硬件资源管理能力设计

    先阅读计算机硬件结构历史简介: https://blog.csdn.net/starcraft501/article/details/100806378 操作系统层次结构 操作系统软件可以分为两部分: ...

  2. Juniper SRX操作系统软件升级

    SRX操作系统软件升级必须按照下面的步骤进行操作: 1.管理终端连接SRX console口,便于升级过程中查看设备重启和软件加载状态. 2. SRX上开启FTP服务,并使用具有超级用户权限的非roo ...

  3. 4.设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

    一.背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css ...

  4. css基础知识四:说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

    一.背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css ...

  5. 【正版软件】Windows 11/10 专业工作站版操作系统软件 终身使用,支持迁移。

    使用人群:数据科学家.CAD 专业人员.研究人员.媒体制作团队.平面设计师和动画师 Windows 11/10 专业工作站版操作系统软件,专为具有高级工作负载和数据需求的人设计. Windows 11 ...

  6. 设备像素、css像素、设备独立像素、dpr、ppi 之间的区别

    一.背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css ...

  7. 说说设备像素、css像素、设备独立像素、dpr、ppi 之间的区别?

    一.背景 在css中我们通常使用px作为单位,在PC浏览器中css的1个像素都是对应着电脑屏幕的1个物理像素 这会造成一种错觉,我们会认为css中的像素就是设备的物理像素 但实际情况却并非如此,css ...

  8. 设备物理像素、设备独立像素

    视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 首先,选取一款手机的屏幕宽高作为基准(以前是iph ...

  9. iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100%,说明产生的I/O请求太多...

    iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况.同vmstat一样, ...

最新文章

  1. 谈谈对Spring IOC的理解
  2. 病毒周报(071029至071104)
  3. python3 环境变量
  4. hibernate Disabling contextual LOB creation as connection was null
  5. ObjectInputStreamObjectOutputStream工具类
  6. 《社会智能与综合集成系统》第1章1.节参考文献
  7. android 新浪微博的点赞功能实现,Android PraiseTextView实现朋友圈点赞功能
  8. mysql api查询例子_MySQL数据库:常用查询的例子Frommysqlapi
  9. java link_Java Link类代码示例
  10. java 相同字符不连续_Java中字符串中连续相同字符去重方法
  11. SSL和数字证书服务慨述(4)
  12. 之前跳槽面试时整理的一些知识点
  13. 广联达登录显示服务器异常去回答,广联达设置服务器异常5
  14. 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(二)
  15. 搭建gradle环境
  16. java获取不重复随机数_java实现生成不重复的随机数,可循环利用
  17. 包的变量作用域测试说明
  18. Excel 高级筛选实现多条件筛选数据
  19. 06年你看过《武林外传》吗?如果看过,就明白什么叫物是人非
  20. 百度人脸识别api php demo,百度人脸识别api实现及demo

热门文章

  1. VALSE学习(二):行人重识别研究进展回顾
  2. elementUI 分页器使用时遇到的Bug
  3. CentOS虚拟机 Device eth0 does not seem to be present
  4. python reduce函数filter_Python filter()及reduce()函数使用方法解析
  5. 那个抗血栓机器人_美国DJO抗血栓压力袜
  6. cesium 模型绕点飞行一周
  7. matlab中用于离散系统求解的命令,MATLAB求解规划问题(线性规划, 整数规划, 非线性规划)...
  8. 虚拟化平台服务器故障,Vsphere虚拟化平台故障切换
  9. 不是华为手机可以刷鸿蒙系统,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  10. layui的表单控件的input文本框赋值