File tree 3 files changed +43
-10
lines changed
3 files changed +43
-10
lines changed Original file line number Diff line number Diff line change @@ -78,6 +78,11 @@ backgroundColor: white
78
78
79
79
---
80
80
81
+ #### 对称多处理器(SMP)与非一致内存访问系统(NUMA)
82
+ ![ w:1000] ( figs/smp-numa.png )
83
+
84
+ ---
85
+
81
86
** 提纲**
82
87
<style >
83
88
.container {
@@ -103,10 +108,6 @@ backgroundColor: white
103
108
104
109
</div >
105
110
106
- ---
107
-
108
- #### 对称多处理器(SMP)与非一致内存访问系统(NUMA)
109
- ![ w:1000] ( figs/smp-numa.png )
110
111
111
112
---
112
113
Original file line number Diff line number Diff line change @@ -99,7 +99,7 @@ backgroundColor: white
99
99
- ** 用户的文件视图**
100
100
- 持久的数据结构
101
101
- 系统调用接口:** 字节序列** 的集合(UNIX)
102
- - ** 操作系统的文件视 ** 图
102
+ - ** 操作系统的文件视图 **
103
103
- ** 数据块** 的集合
104
104
- 数据块是逻辑存储单元,而扇区是物理存储单元
105
105
@@ -200,19 +200,21 @@ backgroundColor: white
200
200
201
201
---
202
202
203
- ##### 多进程如何同时访问共享文件 ?
203
+ ##### 多进程如何访问共享文件 ?
204
204
- 文件是一类共享资源
205
205
- 需要互斥访问
206
206
- 采用类似的同步互斥技术(后续)
207
207
- 读写锁
208
208
209
- ---
209
+ <!-- ---
210
210
211
211
##### 文件的共享访问
212
212
213
213
UNIX 文件系统(UFS)语义
214
214
- 对打开文件的写入内容,立即对其他打开同一文件的其他用户可见
215
- - 共享文件指针允许多用户同时读取和写入文件
215
+ - 共享文件指针允许多用户读取和写入文件 -->
216
+
217
+ <!-- 文件锁的读锁和写锁 https://blog.csdn.net/Scroll_C/article/details/123804611 -->
216
218
217
219
---
218
220
@@ -358,7 +360,7 @@ close(fd);
358
360
359
361
---
360
362
361
- ##### 文件系统的功能
363
+ ##### 文件系统功能
362
364
- 文件系统是操作系统中**管理持久性数据的子系统**,提供数据**文件命名、存储和检索**功能。
363
365
- 组织、检索、读写访问数据
364
366
- 大多数计算机系统都有文件系统
@@ -411,7 +413,7 @@ close(fd);
411
413
}
412
414
</style>
413
415
414
- <div class="container">
416
+ <div class="container">g
415
417
416
418
<div class="col">
417
419
Original file line number Diff line number Diff line change @@ -106,6 +106,36 @@ backgroundColor: white
106
106
- 数据块(` data block ` )
107
107
![ bg right:51% 100%] ( figs/fsdisk.png )
108
108
109
+
110
+ <!-- 在UNIX及类UNIX系统中,`inode`和`vnode`是两种重要的数据结构,用于表示文件系统中的文件和其他对象。这两个术语都是文件系统实现中的核心概念。
111
+
112
+ ### Inode
113
+ **全称:** Index Node
114
+
115
+ **定义:**
116
+ `inode`是UNIX文件系统的一个基本概念,它包含了关于文件系统中某个文件的几乎所有信息,除了文件名。每个文件或目录都有一个唯一对应的`inode`,其中存储了文件的元数据,比如:
117
+ - 文件的权限(读、写、执行)
118
+ - 文件的所有者和组
119
+ - 文件大小
120
+ - 文件创建、访问和修改时间
121
+ - 指向文件实际数据块的指针
122
+ - 链接数(即有多少文件名指向这个inode)
123
+
124
+ `inode`通过编号进行索引,而不是通过文件名。文件名存储在目录中,与`inode`号相关联,这样设计可以允许硬链接等功能的实现。
125
+
126
+ ### Vnode
127
+ **全称:** Virtual Node
128
+
129
+ **定义:**
130
+ `vnode`是一个更高级的抽象,最初由Sun Microsystems为其网络文件系统(NFS)开发。`vnode`为操作系统内核提供了一个统一的文件接口,使得不同类型的文件系统(如本地磁盘文件系统、网络文件系统等)之间的交互变得透明化。每个`vnode`对象代表一个具体的文件系统对象,可以是文件、目录或者其他任何类型的文件系统对象。
131
+
132
+ `vnode`的主要任务是抽象出文件操作和文件类型的细节,从而允许操作系统通过相同的接口与不同的底层文件系统进行交互。它包含了指向具体文件操作函数的指针,这些操作函数依赖于文件所在的具体文件系统。
133
+
134
+ ### 关系和区别
135
+ - **关系:** 在许多UNIX实现中,每个`vnode`结构通常包含一个指向`inode`的指针(如果底层文件系统使用`inode`机制的话)。这样,`vnode`可以被看作是`inode`的一个扩展或者包装,提供了更广泛的文件系统支持。
136
+ - **区别:** `inode`直接关联于UNIX传统文件系统(如UFS),而`vnode`为操作系统提供了一个抽象层,使得文件系统的具体实现对上层透明,支持多种类型的文件系统共存。
137
+
138
+ 总之,`inode`和`vnode`都是处理文件系统对象的关键数据结构,但它们服务于不同层面的需要:`inode`更多关注于文件的物理属性和存储,而`vnode`则关注于提供一个统一的、文件系统无关的操作接口。 -->
109
139
---
110
140
111
141
#### 文件系统的组织视图
You can’t perform that action at this time.
0 commit comments