设为首页 加入收藏

TOP

UNIX内核用于所有I/O的数据结构
2015-02-02 14:15:10 来源: 作者: 【 】 浏览:9
Tags:UNIX 内核 用于 所有 I/O 数据结构

内核使用三种数据结构表示打开的文件,分别是文件描述符表、文件表和 V 节点表。它们之间的关系决定了在文件共享方面一个进程对另一个进程可能产生的影响。


图 1 显示了一个进程的三张表之间的关系。该进程有两个不同的打开文件,一个文件打开为标准输入(文件描述符为 0),另一个打开为标准输出(文件描述符为 1)。



? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 图 1: 一个进程打开两个文件的内核数据结构


图 2 给出了两个进程打开同一个文件的内核数据结构。假定第一个进程在文件描述符 3 上打开该文件,而另一个进程在文件描述符 4 上打开该文件。打开该文件的每个进程都得到一个文件表项,但对一个给定的文件只有一个 v 节点表项。


? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 图 2: 两个进程打开同一个文件的内核数据结构


有了这些数据结构,对一些概念和操作有以下说明:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux ---lseek() 函数 下一篇Objective-C中的Block

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: