前篇见此 : 操作系统清华大学版笔记(十一)死锁、银行家算法和进程间通信(直接通信、间接通信)

操作系统清华大学版笔记(十) 信号量、管程、条件互斥、经典同步问题(读者写者、哲学家问题)

  • 文件系统和文件

    • 12-1 基本概念:文件系统,块,文件描述符,目录,文件别名,文件系统的种类
    • 12-2 虚拟文件系统
    • 12-3 文件分配
    • 12-4 空间列表
    • 12-5 多磁盘管理与调度

文件系统和文件

12-1 基本概念:文件系统,块,文件描述符,目录,文件别名,文件系统的种类

文件系统的功能:
1. 分配文件磁盘空间:管理文件块,空闲空间,分配算法
2. 管理文件集合,定位,命名,分层文件系统,文件系统类型
3. 提供分层等保护,可靠性/持久性,保持文件的持久。

文件描述符—用整数代表f
必须先打开文件

f = opea(name , flag)
…
…= read(f,..)
…
close(f)

操作系统为每个进程维护一个打开文件表,一个打开文件描述符是这个表中的索引index
内核跟踪每个进程打开的文件,需要元数据来管理
文件指针,指向最近的一次读写位置,
文件打开计数,记录文件打开的次数,当最后一个进程关闭了文件时,允许将其从打开文件表中移除
文件磁盘位置:缓存数据访问信息
访问权限:每个程序访问模式信息

操作系统内部视角
块的集合(块是逻辑转换单元,而扇区是物理转换单元)
块大小 <> 扇区大小,在unix中块的大小是4kb

用户怎么访问文件
顺序访问—几乎所有访问都是这种方式
随机访问—从中间读写,更快速
基于特征访问—类似数据库,很少

文件内部的结构:应用系统打开复杂文件,但对操作系统该文件可能很简单
无结构:单词,比特的队列
简单记录结构:列,固定/可变长度

操作系统清华大学版笔记(十二)文件系统,文件描述符,和文件相关推荐

  1. 嵌入式Linux系统编程学习之九基于文件描述符的文件操作

    文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...

  2. linux进程文件描述符 vnode,Linux C编程详解:进程原理分析、文件描述符和文件记录表、文件句柄和文件原理...

    一.引言 文件操作是Linux C编程中其中的一项核心技术,实际上也相当重要,这里并不是说狭义上的那种文件操作,它也非常有助于理解和学习Linux系统.为什么这样说呢?因为在Unix/Linux的世界 ...

  3. linux文件描述符泄漏,文件描述符(fd)泄漏排查一篇就够了

    生产多次遇到文件描述符(fd)泄露相关的问题, 文件描述符泄漏一般引起 的现象是文件句柄数(封面图)/tcp alloc(上图)增长.文章分为两部分介绍文件描述符相关内容,第一部分介绍文件描述基础知识 ...

  4. linux c 文件指针 句柄(FILE*) 文件描述符(fd) 文件路径(filepath) 互相转换

    最近在linux下编程常需要对一些文件进行操作.有时不同的条件下,需要将文件指针/句柄(FILE*).文件描述符(fd)以及文件路径(filepath)进行相互转换,以满足实际的编程需要. 现简单的做 ...

  5. 在c语言中文件的指针是什么,C语言中文件描述符和文件指针的本质区别

    1,首先了解进程运行时默认打开的文件指针以及打开的文件 /* Standard streams. / extern struct _IO_FILE stdin; / Standard input st ...

  6. UNIX中文件描述符和文件指针

    文件描述符 在C程序中,文件由文件指针或者文件描述符表示.ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UN ...

  7. (整理类)文件描述符,文件描述符标志,文件状态标志

    感谢和参考于(你们是我成长路上的最大助力!): Linux中文件描述符fd和文件指针flip的理解 文件描述符标志.文件状态标志 Linux编程–文件描述符fd PART 1 文件描述符:fd(fil ...

  8. Linux - fd文件描述符和文件详解

    ​​​​​​​             ​​​​​​​  感谢各位 点赞 收藏 评论 三连支持 本文章收录于专栏[Linux系统编程] ❀希望能对大家有所帮助❀ 本文章由 风君子吖 原创 ​​​​​​ ...

  9. Linux系统编程——基于文件描述符的文件操作(1)

    概要: 打开.创建和关闭文件 读写文件 文件定位 获取文件信息 打开.创建和关闭文件 函数原型: #include <sys/types.h> //头文件 #include <sys ...

  10. 银河麒麟操作系统基础学习笔记十二

    如果我们开机时希望挂载某个硬盘或分区,需要修改/etc/fstab文件. 开机挂载时需要注意的事项: 根目录是必须挂载的,而且需要最先被挂载.挂载点必须是已经存在的目录. 所有挂载点在同一时间只能被挂 ...

最新文章

  1. 浅析 Linux 初始化 init 系统
  2. PHP开发APP接口(二)
  3. Java CPU占用率高分析
  4. springboot java.util.NoSuchElementException: No value present 异常处理
  5. 服务器和操作系统怎么看,服务器和操作系统怎么看
  6. 浅谈python_浅谈python-Django
  7. 一个ASP.NE导出Excel类
  8. java隔几秒发数据_java – 如何将数据推送到jsp而不是每2秒请求一次?
  9. [圣诞记]HULK七周年庆
  10. MyBatis的CRUD操作
  11. heroku java_部署Java Web项目到Heroku
  12. mysql的四个默认数据库是什么版本,MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。...
  13. Json文件转Map(四)之代码
  14. Hierachy Viewer无法在真机上使用的解决方法
  15. 2022大淘宝技术工程师推荐书单
  16. 解决IOS播放器KxMovie播放音频卡顿的问题
  17. VUE+ElementUI实现div滚动条替换
  18. oracle otm运输管理系统_OTM服务中国十年-Oracle.PDF
  19. MAC vscode 编译多个文件失败(已解决)
  20. ZOJ 3380 Patchouli's Spell Cards [基础概率DP+大数]

热门文章

  1. mysql学习之旅途(一)
  2. 只有菜鸟才写LLK外挂(标题摘自互联网,不代表本人观点)
  3. JavaEE最新技术整理
  4. 新玺配资:罕见 这个数据为何连续逆势创记录
  5. 南澳西冲东冲穿越2日游
  6. 【实习校招实习】【灵均投资】【北京、上海】量化研究实习生火热招聘中
  7. Python信号处理:波束形成及目标方位估计,CBF、MVDR
  8. c#某幼儿园只收2-6岁的小孩。2-3随入小班,4岁入中班,5~6岁入大班
  9. LeetCode-714.买卖股票的最佳时机含手续费
  10. FOXBORO FBM242 RH916TA数字模块