操作系统清华大学版笔记(十二)文件系统,文件描述符,和文件
前篇见此 : 操作系统清华大学版笔记(十一)死锁、银行家算法和进程间通信(直接通信、间接通信)
操作系统清华大学版笔记(十) 信号量、管程、条件互斥、经典同步问题(读者写者、哲学家问题)
- 文件系统和文件
- 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
用户怎么访问文件
顺序访问—几乎所有访问都是这种方式
随机访问—从中间读写,更快速
基于特征访问—类似数据库,很少
文件内部的结构:应用系统打开复杂文件,但对操作系统该文件可能很简单
无结构:单词,比特的队列
简单记录结构:列,固定/可变长度
操作系统清华大学版笔记(十二)文件系统,文件描述符,和文件相关推荐
- 嵌入式Linux系统编程学习之九基于文件描述符的文件操作
文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...
- linux进程文件描述符 vnode,Linux C编程详解:进程原理分析、文件描述符和文件记录表、文件句柄和文件原理...
一.引言 文件操作是Linux C编程中其中的一项核心技术,实际上也相当重要,这里并不是说狭义上的那种文件操作,它也非常有助于理解和学习Linux系统.为什么这样说呢?因为在Unix/Linux的世界 ...
- linux文件描述符泄漏,文件描述符(fd)泄漏排查一篇就够了
生产多次遇到文件描述符(fd)泄露相关的问题, 文件描述符泄漏一般引起 的现象是文件句柄数(封面图)/tcp alloc(上图)增长.文章分为两部分介绍文件描述符相关内容,第一部分介绍文件描述基础知识 ...
- linux c 文件指针 句柄(FILE*) 文件描述符(fd) 文件路径(filepath) 互相转换
最近在linux下编程常需要对一些文件进行操作.有时不同的条件下,需要将文件指针/句柄(FILE*).文件描述符(fd)以及文件路径(filepath)进行相互转换,以满足实际的编程需要. 现简单的做 ...
- 在c语言中文件的指针是什么,C语言中文件描述符和文件指针的本质区别
1,首先了解进程运行时默认打开的文件指针以及打开的文件 /* Standard streams. / extern struct _IO_FILE stdin; / Standard input st ...
- UNIX中文件描述符和文件指针
文件描述符 在C程序中,文件由文件指针或者文件描述符表示.ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UN ...
- (整理类)文件描述符,文件描述符标志,文件状态标志
感谢和参考于(你们是我成长路上的最大助力!): Linux中文件描述符fd和文件指针flip的理解 文件描述符标志.文件状态标志 Linux编程–文件描述符fd PART 1 文件描述符:fd(fil ...
- Linux - fd文件描述符和文件详解
感谢各位 点赞 收藏 评论 三连支持 本文章收录于专栏[Linux系统编程] ❀希望能对大家有所帮助❀ 本文章由 风君子吖 原创 ...
- Linux系统编程——基于文件描述符的文件操作(1)
概要: 打开.创建和关闭文件 读写文件 文件定位 获取文件信息 打开.创建和关闭文件 函数原型: #include <sys/types.h> //头文件 #include <sys ...
- 银河麒麟操作系统基础学习笔记十二
如果我们开机时希望挂载某个硬盘或分区,需要修改/etc/fstab文件. 开机挂载时需要注意的事项: 根目录是必须挂载的,而且需要最先被挂载.挂载点必须是已经存在的目录. 所有挂载点在同一时间只能被挂 ...
最新文章
- 浅析 Linux 初始化 init 系统
- PHP开发APP接口(二)
- Java CPU占用率高分析
- springboot java.util.NoSuchElementException: No value present 异常处理
- 服务器和操作系统怎么看,服务器和操作系统怎么看
- 浅谈python_浅谈python-Django
- 一个ASP.NE导出Excel类
- java隔几秒发数据_java – 如何将数据推送到jsp而不是每2秒请求一次?
- [圣诞记]HULK七周年庆
- MyBatis的CRUD操作
- heroku java_部署Java Web项目到Heroku
- mysql的四个默认数据库是什么版本,MySQL5.7数据库字符集和排序规则有四个级别的默认设置:服务器,数据库,表和列。...
- Json文件转Map(四)之代码
- Hierachy Viewer无法在真机上使用的解决方法
- 2022大淘宝技术工程师推荐书单
- 解决IOS播放器KxMovie播放音频卡顿的问题
- VUE+ElementUI实现div滚动条替换
- oracle otm运输管理系统_OTM服务中国十年-Oracle.PDF
- MAC vscode 编译多个文件失败(已解决)
- ZOJ 3380 Patchouli's Spell Cards [基础概率DP+大数]