文章目录

  • 文件共享

摘自《UNIX环境高级编程第三版》

文件共享

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

第一种数据结构

  • 每个进程在进程表中都有一个记录项,记录项中包含一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项。与每个文件描述符相关联的是:文件描述符标志(close_on_exec)和 指向一个文件表项指针

第二种数据结构

  • 内核为所有打开文件维持一张文件表。每个文件表项包含:文件状态标志(读,写,添写,同步和非阻塞等),当前文件偏移量 和 指向该文件 v节点表项的指针

第三种数据结构

  • 每个打开文件(或设备)都有一个v节点(v-node)结构。v节点包含了文件类型和对此文件进行各种操作函数的指针。对于大多数文件,v节点还包含了该文件的 i 节点(i-node,索引节点)。这些信息是在打开文件时从磁盘上读入内存的,所以,文件的所有相关信息都是随时可用的。例如:i节点包含了文件的所有者文件长度指向文件实际数据块在磁盘上所在位置的指针
linux没有使用v节点,而是使用了通用i节点结构。虽然两种实现有所不同,
但在概念上,v节点与i节点是一样的。两者都指向文件系统特有的i节点结构

如图所示

UNIX系统中的文件共享相关推荐

  1. chmod 是一条在Unix系统中用于控制用户对文件的权限的命令

    chmod 是一条在Unix系统中用于控制用户对文件的权限的命令(change mode单词前缀的组合)和函数.只有文件所有者和超级用户可以修改文件或目录的权限.可以使用绝对模式,符号模式指定文件的权 ...

  2. UNIX系统中进程由哪三部分组成

    在UNIX系统中进程由以下三部分组成:①进程控制块PCB:②数据段:③正文段.             UNIX系统为了节省进程控制块所占的内存空间,把每个进程控制块分成两部分.一部分常驻内存,不管进 ...

  3. linux中85379端口如何恢复,技术|如何在 Linux/Unix 系统中验证端口是否打开

    在 Linux 或者类 Unix 中,我该如何检查某个端口是否被占用?我又该如何验证 Linux 服务器中有哪些端口处于监听状态? 验证哪些端口在服务器的网络接口上处于监听状态是非常重要的.你需要注意 ...

  4. 文件路径最好使用正斜杠,使用反斜杠可能在unix系统中访问不到文件

    <%@ page language="java" contentType="text/html; charset=GBK"pageEncoding=&qu ...

  5. 文件路径最好使用正斜杠。使用反斜杠可能在unix系统中访问不到文件。

    /**** 下载模板*/public void downTemp() {String title="data";String savePath = PathUtil.getProj ...

  6. LINUX/UNIX系统中nobody用户信息

    http://hi.baidu.com/lxsbupt/blog/item/d5d75e01d7b8eed1267fb563.html Windows系统在安装后会自动建立一些用户帐户,在Linux系 ...

  7. unix和linux命令_Linux / Unix系统中SSH命令的用法

    unix和linux命令 Any security-minded Linux user will always use SSH protocol when connecting to servers. ...

  8. oracle 报12560,UNIX系统中Oracle报TNS-12560错误的解决思路

    前几天接到客户的一个电话,需要到现场解决一个问题.客户的电话就是命令,于是放下手中的活,急忙赶往客户现场.到达客户现场后,客户反应本地的一个应用程序隔一段时间就报错,同时客户传来了一张报错的图片,如下 ...

  9. 记录linux启动次数的脚本,类UNIX系统中启动脚本记录

    #程序运行时进程名称(唯一) EXE_NAME="" #此语句表示先杀掉存在的进程 for PID in `ps -ef | grep -v grep | grep Java | ...

  10. 类unix系统中启动脚本记录

    #程序运行时进程名称(唯一) EXE_NAME="" #此语句表示先杀掉存在的进程 for PID in `ps -ef | grep -v grep | grep java | ...

最新文章

  1. 设计模式 — 结构型模式 — 代理模式
  2. EventBus的简单使用
  3. 在汇编程序中调用C函数
  4. 他因为泼了李彦宏一瓶水,成功圈粉无数,成为「网红」
  5. android静态类保存context,Android:静态获取Context是一个好习惯吗?
  6. Linux 服务器惊现比特币勒索事件,腾讯云安全专家来支招
  7. 注册页面的JSON响应方式详细分析(与前端页面交互方式之一)
  8. 福特电动汽车负责人嘲讽特斯拉:新野马“车顶可不会掉”
  9. mysql binlog使用_mysql binlog 基本使用
  10. iis6扩展php_windows2003server中iis6多版本php配置方法
  11. JAVA虚拟机垃圾回收算法原理
  12. Java基础学习总结(49)——Excel导入导出工具类
  13. visio转换成eps
  14. @media实现网页自适应中的几个关键分辨率
  15. 主键和外键举例_数据库-主键和外键及其约束
  16. J-Octa 使用MD和MO/DFT计算相对介电常数
  17. 分享一个不错的个人简历模板下载网站(word文件可编辑的)
  18. 洞态IAST Agent正式开源
  19. MongoDB 唯一索引
  20. hdu 3954 Level up(成段更新)

热门文章

  1. C++学习笔记(达内视频版)
  2. 深入解析Windows操作系统之第一章:概念与工具
  3. Windows操作系统知识合集
  4. matlab车轮滚动动画,利用几何画板演示滚动的车轮
  5. tftp工具_tftp,tftp等八款最佳的FTP客户端工具
  6. python实现一个简单的tftp客户端
  7. 如何用iso文件制作U盘启动
  8. “FreeTextBox”控件使用——Word编辑器
  9. c语言学生成绩管理系统的设计,C语言学生成绩管理系统设计
  10. Python 视频教程下载 (全阶段)