SylixOS 的 I/O 系统结构,由于历史原因分为 ORIG 型驱动结构和 NEW_1 型驱动结构。NEW_1 型驱动结构在 ORIG 型驱动结构的基础上增加了文件节点(文件访问权限、文件记录锁等功能)。
(1)SylixOS ORIG型驱动结构
进程中的每个文件描述符都对应一个文件结构(在一个进程中open一次便打开一个设备文件,就会产生一个对应的文件描述符fd,),不同的文件描述符可以对应同一个文件结构类型(比如这个设备文件是字符设备文件,块设备文件,网络设备文件等),当对应同一个文件结构类型的所有文件描述符被关闭时,操作系统会调用相应的驱动程序来释放对应的文件结构。
不同的文件结构可以指向同一个逻辑设备,例如一个 FAT文件系统设备就可以被打开很多个文件结构。不同的逻辑设备也可以对应同一个驱动程序,例如物理结构相同的串口 0、串口 1 可以对应一组为其服务的驱动程序,每一组驱动程序具体服务的硬件设备则由底层 BSP 决定。

(2)NEW_1型驱动结构

NEW_1 型驱动结构在 ORIG型驱动结构的基础上增加了文件节点。文件节点引入了此设备文件的访问权限、文件的用户信息、文件记录锁等内容。

(3)NEW_1型内核数据结构

SylixOS 支持在不同进程间共享打开文件。从上图 NEW_1 型内核
数据结构可以看出 SylixOS 内核使用三种数据结构(文件描述符项、文件结构、文件节点)来表示打开文件,它们的关系决定了在文件共享方面,一个进程对另一个进程可能产生的影响。
上图显示了一个进程对应的三种数据结构之间的关系。该进程打开两个不同的文件,一个从文件描述符 3 打开,另一个从文件描述符 4 打开。

4,文件描述符表、文件结构表、文件节点
每个进程都维护着自己的一个文件描述符表,每个文件描述符占其中一项,与每个文件描述符相关联的是:
(1)指向文件结构的指针;
(2)文件引用计数;
(3)文件描述符标志(FD_CLOEXEC)。

内核为所有打开的文件维护一个文件结构表,每一个文件结构表项包括(部分):
(1)设备头指针(这个指针指向了设备节点);
(2)文件名;
(3)文件节点指针;
(4)文件属性标志(读、写等);
(5)文件当前指针(指示文件偏移)。

每个打开的文件都有一个文件节点,文件节点包括(部分):
(1)设备描述符;
(2)inode(同一个文件只有一个 inode);
(3)文件权限信息(可读、可写、可执行);
(4)文件用户信息;
(5)当前文件大小;
(6)文件记录锁指针。

5、两个独立进程各自打开了同一个文件

假定第一个进程在文件描述符 fd3 上打开该文件,而另一个进程在文件描述符 fd4 上打开相同文件。打开该文件的每个进程都获得各自的一个文件结构,但对于一个给定的文件只有一个文件节点。之所以每个进程都获得自己的文件结构,是因为这可以使每个进程都有它自己的对该文件的当前读写指针(文件操作偏移量)。
文件描述符标志文件属性标志在作用范围方面是有区别的。前者只用于一个进程中的某一个文件描述符,而后者则应用于指向该给定文件结构的任何进程中的所有文件描述符(字符设备、块设备、网络设备等)。

SylixOS的I/O系统结构类型(ORIG型和NEW_1型)相关推荐

  1. Dataset:数据生成之利用pandas自定义生成随机各自类型(离散型和连续型)的dataframe数据

    Dataset:数据生成之利用pandas自定义生成随机各自类型(离散型和连续型)的dataframe数据 目录 数据生成之利用pandas自定义生成随机数据 输出结果 实现代码 数据生成之利用pan ...

  2. 年龄是计数还是计量_MSA你只知道计量型和计数型?有哪些类型?分别是什么方法?...

    有些人学习MSA很多次,也具体从事MSA工作很久了.但是他们只知道MSA有计数和计量两种类型. MSA究竟有哪些类型呢? MSA手册开篇就非常清晰第说明了测量的类型分为: 1.基本计量型 2.基本计数 ...

  3. 慕尼黑大学睡眠类型测量表(清晨型和夜晚型)

    清晨型和夜晚型問卷自評量表 (MEQ-SA) 这是慕尼黑大学睡眠类型的调查问卷,来源于<睡眠革命>这本书所推荐. 注:本人从网上下载的,侵删! 以下为正文 原网址:https://www. ...

  4. 关于设计模式的创建型、结构型和行为型

    设计模式主要分三个类型:创建型.结构型和行为型. 其中创建型有: 一.Singleton,单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点 二.Abstract Factory,抽象工厂 ...

  5. 数据产品-规则型和挖掘型标签构建案例

    数据产品经理在构建数据标签的过程中,最为常见的是构建统计性的标签,其很大原因是统计型标签的可解释型比较强,开发周期很短,容易根据业务需要进行调整.而对于规则型和挖掘型标签,其构建周期较长,而且可解释性 ...

  6. php字符型和数字型的注入,Sql注入的分类:数字型+字符型

    Sql注入: 就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通过构造恶意的输入,使数据库执行恶意命令,造成数据泄露或者修改内容等,以 ...

  7. 标称型数据和数值型数据_2017-12-9 机器学习(4)-标称型和数值型

    [标称型数据和数值型数据] 监督学习一般使用两种类型的目标变量:标称型和数值型 标称型:一般在有限的数据中取,而且只存在'是'和'否'两种不同的结果(一般用于分类) 数值型:可以在无限的数据中取,而且 ...

  8. 标称型和数值型的区别

    在监督学习(supervised learning)的过程中,只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目 ...

  9. 标称型和数值型(连续型)的区别

    在监督学习(supervised learning)的过程中,只需要给定输入样本集,机器就可以从中推演出指定目标变量的可能结果.监督学习相对比较简单,机器只需从输入数据中预测合适的模型,并从中计算出目 ...

  10. 机器学习 标称型和数值型概念

    参考: <Machine Learning in Action>第一部分 分类 ###################################################### ...

最新文章

  1. Bootstrap栅格布局系统的特点
  2. 不用羡慕BAT,自己手工也能搭建伪基站监控系统
  3. iPad+MacBook+安卓手机的图书馆工作方案!超高效率!堪比移动工作站!
  4. FOSS历史回顾:三代开源人的故事
  5. mui 批量上传图片 php,MUI+Hbuilder之多图片,单图片上传(五)
  6. LeetCode 110. Balanced Binary Tree
  7. Apache 配置文件:.htaccess
  8. vim安装airline
  9. 一键备份服务器文件夹权限,教大家一键设置局域网共享文件夹权限
  10. DirectSOFT(光洋PLC编程软件)v6.3官方版
  11. 科学-建筑学:建筑学百科
  12. 【五年】Java打怪升级之路
  13. 超级计算机运算中心,中国科学技术大学超级计算中心
  14. Python实现桌面壁纸设置
  15. VCN新官网正式上线:展望中文编程未来
  16. 不止代码,职业发展黄金手册
  17. java基础语法(继承)
  18. 宋图图的工学课程12
  19. Javaweb(邮件发送)
  20. 学习vue加OpenLayers(3)动画 GIF

热门文章

  1. 中国近代史纲要考研选择题
  2. this的三种用法 详解
  3. Linux - send 出现 Resource temporarily unavailable
  4. chrome-功能指令
  5. 融资2500万美元,#Spatial从协作办公进化到元宇宙产品,#NFT创作生态
  6. 海海软件发布动态网站加密(DRM版权保护)Beta版
  7. 9.mysql SQL面试题
  8. 利用QQ游戏破解QQ密码
  9. CF1380D Berserk And Fireball 题解
  10. 两年软件开发工作总结及未来展望