Skip to content

Commit 891227a

Browse files
2 parents a7eaaac + f5f2afa commit 891227a

File tree

3 files changed

+43
-10
lines changed

3 files changed

+43
-10
lines changed

lec8/p1-multiprocessor-overview.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ backgroundColor: white
7878

7979
---
8080

81+
#### 对称多处理器(SMP)与非一致内存访问系统(NUMA)
82+
![w:1000](figs/smp-numa.png)
83+
84+
---
85+
8186
**提纲**
8287
<style>
8388
.container{
@@ -103,10 +108,6 @@ backgroundColor: white
103108

104109
</div>
105110

106-
---
107-
108-
#### 对称多处理器(SMP)与非一致内存访问系统(NUMA)
109-
![w:1000](figs/smp-numa.png)
110111

111112
---
112113

lec9/p1-fsoverview.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ backgroundColor: white
9999
- **用户的文件视图**
100100
- 持久的数据结构
101101
- 系统调用接口:**字节序列**的集合(UNIX)
102-
- **操作系统的文件视**
102+
- **操作系统的文件视图**
103103
- **数据块**的集合
104104
- 数据块是逻辑存储单元,而扇区是物理存储单元
105105

@@ -200,19 +200,21 @@ backgroundColor: white
200200

201201
---
202202

203-
##### 多进程如何同时访问共享文件
203+
##### 多进程如何访问共享文件
204204
- 文件是一类共享资源
205205
- 需要互斥访问
206206
- 采用类似的同步互斥技术(后续)
207207
- 读写锁
208208

209-
---
209+
<!-- ---
210210
211211
##### 文件的共享访问
212212
213213
UNIX 文件系统(UFS)语义
214214
- 对打开文件的写入内容,立即对其他打开同一文件的其他用户可见
215-
- 共享文件指针允许多用户同时读取和写入文件
215+
- 共享文件指针允许多用户读取和写入文件 -->
216+
217+
<!-- 文件锁的读锁和写锁 https://blog.csdn.net/Scroll_C/article/details/123804611 -->
216218

217219
---
218220

@@ -358,7 +360,7 @@ close(fd);
358360
359361
---
360362
361-
##### 文件系统的功能
363+
##### 文件系统功能
362364
- 文件系统是操作系统中**管理持久性数据的子系统**,提供数据**文件命名、存储和检索**功能。
363365
- 组织、检索、读写访问数据
364366
- 大多数计算机系统都有文件系统
@@ -411,7 +413,7 @@ close(fd);
411413
}
412414
</style>
413415
414-
<div class="container">
416+
<div class="container">g
415417
416418
<div class="col">
417419

lec9/p2-fsimplement.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,36 @@ backgroundColor: white
106106
- 数据块(`data block`
107107
![bg right:51% 100%](figs/fsdisk.png)
108108

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`则关注于提供一个统一的、文件系统无关的操作接口。 -->
109139
---
110140

111141
#### 文件系统的组织视图

0 commit comments

Comments
 (0)