Skip to content

Commit 9f0cd0d

Browse files
authored
lec03 updating
1 parent 0102ec0 commit 9f0cd0d

File tree

3 files changed

+83
-46
lines changed

3 files changed

+83
-46
lines changed

lec3/p1-osviewarch.md

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@ backgroundColor: white
2727
[课程幻灯片列表](https://www.yuque.com/xyong-9fuoz/qczol5/glemuu?)
2828

2929

30+
---
31+
32+
### 问题
33+
34+
- 什么是计算机系统的**层次结构**
35+
- 层次结构中相邻层次间有什么**区别**
36+
- 层次结构中相邻层次间的**边界**是什么?
37+
38+
例如:软件与硬件、操作系统与应用程序
39+
3040
---
3141
**提纲**
3242

@@ -110,7 +120,7 @@ u/rCore的框架结构
110120
- 好处:执行很快;
111121
- 好处:灵活-易于传递和返回复杂数据类型;
112122
- 好处:程序员熟悉的机制,...
113-
- 坏处:应用程序不可靠,可能有恶意,有崩溃的风险
123+
- **坏处**:应用程序不可靠,可能有恶意,有崩溃的风险
114124

115125

116126
<!--
@@ -150,25 +160,26 @@ u/rCore的框架结构
150160

151161
---
152162
#### 隔离要解决的问题
153-
- 防止程序 X 破坏或监视程序 Y
163+
- 防止程序 X **破坏或监视**程序 Y
154164
- 读/写内存,使用 100%的 CPU,更改文件描述符
155-
- 防止进程干扰操作系统
156-
- 防止恶意程序、病毒、木马和 bug
165+
- 防止进程**干扰**操作系统
166+
- 防止恶意程序、病毒、木马和 **bug**
157167
- 错误的过程可能会试图欺骗硬件或内核
158168

159169
---
160170
#### 什么是隔离?
161171
- 隔离(Isolation) 的**定义**
162-
- 指操作系统通过软硬件机制确保不同的进程、用户或虚拟机相互独立运行,避免彼此之间在执行、数据或资源使用上的干扰或未经授权的访问
172+
- 指操作系统通过软硬件机制确保不同的进程、用户或虚拟机相互**独立运行**,避免彼此之间在执行、数据或资源使用上的**干扰或未经授权的访问**
163173
- 隔离的**本质**
164174
- 不同实体间具备交换或共享信息、资源的情况下,如何确保彼此之间的安全和独立运行。
165175
- 隔离并不意味着不要共享
166176

167177
---
168178
#### 隔离边界
179+
169180
隔离需要建立边界(boundary)
170181
- 边界决定了各自的势力范围
171-
- 跨界即有**风险**的共享资源
182+
- 跨界即**有风险的共享**资源
172183
- 强制隔离
173184
- 避免有问题的单元对整个系统的安全影响
174185
- 隔离的单位
@@ -206,12 +217,12 @@ u/rCore的框架结构
206217

207218
---
208219

209-
#### OS隔离APP的分类
220+
#### OS隔离APP的方法分类
210221
***数据**的隔离:**地址空间**
211222
* 用户地址空间 vs 内核地址空间
212223
***控制**的隔离:**特权级机制**
213224
* 用户态 vs 内核态
214-
***时间**的隔离:**中断处理**
225+
***时间**的隔离:**时钟中断处理**
215226
* 随时打断正在执行的用户态App
216227
* 对破坏隔离的处理:**异常处理**
217228
* OS在内核态及时处理用户态App的异常行为
@@ -224,7 +235,7 @@ u/rCore的框架结构
224235
- 地址空间 address spaces
225236
- 一个程序仅寻址其自己的内存
226237
- 若无许可,则**每个程序无法访问不属于自己的内存**
227-
- 虚拟内存
238+
- 虚拟内存需要解决的问题
228239
- 读写内存的安全性问题
229240
- 进程间的安全问题
230241
- 内存空间利用率的问题
@@ -256,35 +267,36 @@ u/rCore的框架结构
256267

257268
---
258269
#### 控制隔离:特权模式
259-
特权模式是 CPU 提供的一种机制,它将 CPU 的执行权限划分为不同的级别,防止低权限代码访问或修改高权限的系统资源。
270+
特权模式是 CPU 提供的一种机制,它将 CPU **执行权限**划分为不同的级别,防止低权限代码访问或修改高权限的系统资源。
260271
- CPU 硬件中的特权模式
261-
- 保护操作系统内核,防止应用直接访问关键数据或执行特权指令
262-
- 防止应用恶意或错误访问硬件状态:控制寄存器、内存管理单元
263-
- 提供受控的系统调用接口:应用可受限制地请求操作系统服务
272+
- **保护操作系统内核**,防止应用直接访问关键数据或执行特权指令
273+
- 防止应用恶意或错误访问**硬件状态**:控制寄存器、内存管理单元
274+
- 提供受控的系统调用接口:应用**可受限制地请求操作**系统服务
264275

265276

266277
---
267278
#### 特权模式
268279

269280
- CPU 硬件支持不同的特权模式
270281
- Kernel Mode(内核态) vs User Mode(用户态)
271-
- 内核态可以执行用户态无法执行的特权操作
282+
- 内核态可以执行用户态无法执行的**特权操作**
272283
- 访问**外设**
273284
- **配置**地址空间(虚拟内存)
274285
- 读/写特殊**系统级寄存器**
275286
- OS内核运行在内核态
276287
- 应用程序运行在用户态
277-
- 每个微处理器都有类似的用户/内核模式标志
288+
- 每个微处理器都有类似的用户/内核**模式标志**
278289

279290
---
280-
#### 时间隔离:中断 --v.s.-- 控制隔离:异常机制、陷入机制
291+
#### 时间隔离:时钟中断 --v.s.-- 控制隔离:异常和陷入
281292
- CPU **硬件支持**中断/异常的处理
282-
- 异常(Exception): CPU 执行指令时检测到错误(如除零错误、缺页异常),立即触发异常处理例程。
293+
- 异常(Exception): CPU 执行指令时检测到**错误**(如除零错误、缺页异常),立即触发异常处理例程。
283294
- 中断(Interrupt): 是一种用于处理外部或内部事件的机制。当中断发生时,CPU 暂停当前执行的指令流,转而执行相应的中断处理例程。
284-
- 陷入(Trap): 也称系统调用(Syscall),进程主动请求操作系统服务,需要从用户模式切换到内核模式。
295+
- 时钟中断:定时器超时产生的中断,可控制**CPU时间片**
296+
- 陷入(Trap): 也称系统调用(Syscall),进程主动**请求操作系统服务**,需要从用户模式切换到内核模式。
285297

286298
---
287-
#### 时间隔离:中断 --v.s.-- 控制隔离:异常机制、陷入机制
299+
#### 时间隔离:时钟中断 --v.s.-- 控制隔离:异常和陷入
288300
- 中断是**异步**发生,由外部设备或异步事件触发,而非程序主动调用,这使得它们与当前指令流无直接关系。。
289301
- 陷入是**同步**触发的,因为它是程序主动发起的。
290302
- 异常是**同步**发生,是由由程序指令直接触发的错误或异常情况。
@@ -356,6 +368,9 @@ u/rCore的框架结构
356368
---
357369
### 小结
358370

359-
- 了解计算机硬件与操作系统的关系:接口/边界
360-
- 了解操作系统与应用程序的关系:接口/边界
361-
- 了解操作系统如何隔离与限制应用程序
371+
- 计算机硬件与操作系统的关系:接口/边界
372+
- 指令集
373+
- 操作系统与应用程序的关系:接口/边界
374+
- 系统调用
375+
- 操作系统如何隔离与限制应用程序
376+
- 时间、空间、权限、

lec3/p2-osviewrv.md

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ backgroundColor: white
2626

2727

2828
---
29+
30+
### 问题
31+
32+
- RISC-V的各特权级的特征有什么异同?
33+
- 如何跨越特权级?
34+
- 各特权级的特有软件功能有哪些?
35+
36+
---
37+
2938
**提纲**
3039

3140
### 1. 主流CPU比较
@@ -105,10 +114,10 @@ backgroundColor: white
105114
##### RISC-V相关术语
106115
- 应用执行环境 (Application Execution Environment, AEE)
107116
- 应用程序二进制接口 (Application Binary Interface, ABI)
108-
- 管理员二进制接口 (Supervisor Binary Interface, SBI)
109-
- 管理员执行环境 (Supervisor Execution Environment, SEE)
110-
- Hypervisor二进制接口 (Hypervisor Binary interface,HBI)
111-
- Hypervisor执行环境 (Hypervisor Execution Environment, HEE)
117+
- 内核二进制接口 (Supervisor Binary Interface, SBI)
118+
- 内核执行环境 (Supervisor Execution Environment, SEE)
119+
- 虚拟机监控器二进制接口 (Hypervisor Binary interface,HBI)
120+
- 虚拟机监控器执行环境 (Hypervisor Execution Environment, HEE)
112121

113122
---
114123
##### RISC-V 系统模式:单应用场景
@@ -163,7 +172,7 @@ backgroundColor: white
163172
<div class="col">
164173

165174
1. 主流CPU比较
166-
2. RISC-V系统模式
175+
2. **RISC-V系统模式**
167176
3. RISC-V系统编程:用户态编程
168177
4. RISC-V系统编程:M-Mode编程
169178
5. RISC-V系统编程:内核编程
@@ -258,7 +267,7 @@ backgroundColor: white
258267
<div class="col">
259268

260269
1. 主流CPU比较
261-
2. RISC-V系统模式
270+
2. **RISC-V系统模式**
262271
3. RISC-V系统编程:用户态编程
263272
4. RISC-V系统编程:M-Mode编程
264273
5. RISC-V系统编程:内核编程
@@ -432,7 +441,7 @@ OS通过硬件隔离手段(三防)来保障计算机的安全可靠
432441
2. RISC-V系统模式
433442
3. RISC-V系统编程:用户态编程
434443
### 4. RISC-V系统编程:M-Mode编程
435-
1. RISC-V系统编程:内核编程
444+
5. RISC-V系统编程:内核编程
436445

437446
</div>
438447

@@ -552,7 +561,7 @@ OS通过硬件隔离手段(三防)来保障计算机的安全可靠
552561
1. 主流CPU比较
553562
2. RISC-V系统模式
554563
3. RISC-V系统编程:用户态编程
555-
4. RISC-V系统编程:M-Mode编程
564+
4. **RISC-V系统编程:M-Mode编程**
556565
5. RISC-V系统编程:内核编程
557566

558567
</div>
@@ -657,7 +666,7 @@ OS通过硬件隔离手段(三防)来保障计算机的安全可靠
657666
1. 主流CPU比较
658667
2. RISC-V系统模式
659668
3. RISC-V系统编程:用户态编程
660-
4. RISC-V系统编程:M-Mode编程
669+
4. **RISC-V系统编程:M-Mode编程**
661670
5. RISC-V系统编程:内核编程
662671

663672
</div>
@@ -828,7 +837,7 @@ scause 寄存器
828837
2. RISC-V系统模式
829838
3. RISC-V系统编程:用户态编程
830839
4. RISC-V系统编程:M-Mode编程
831-
5. RISC-V系统编程:内核编程
840+
5. **RISC-V系统编程:内核编程**
832841

833842
</div>
834843

@@ -888,7 +897,7 @@ scause 寄存器
888897
2. RISC-V系统模式
889898
3. RISC-V系统编程:用户态编程
890899
4. RISC-V系统编程:M-Mode编程
891-
5. RISC-V系统编程:内核编程
900+
5. **RISC-V系统编程:内核编程**
892901

893902
</div>
894903

@@ -1072,9 +1081,12 @@ Page Offset = 0x078-->
10721081
---
10731082
### 小结
10741083

1075-
- 了解 RISC-V 特权级和硬件隔离方式
1076-
- 了解 RISC-V 的 M-Mode 和 S-Mode 的基本特征
1077-
- 了解OS在 M-Mode 和 S-Mode 下如何访问控制计算机系统
1078-
- 了解不同软件如何在 M-Mode<–>S-Mode<–>U-Mode 之间进行切换
1079-
- 了解虚实地址转换
1080-
1084+
- RISC-V 特权级
1085+
- M-Mode, (H-Mode) S-Mode, U-Mode
1086+
- RISC-V 的 M-Mode 和 S-Mode 的基本特征
1087+
- 中断使能、委托和配置;页表使能和配置
1088+
- 不同软件如何在 M-Mode<–>S-Mode<–>U-Mode 之间进行切换
1089+
- ecall, mret, sret
1090+
- 中断响应过程
1091+
- 虚实地址转换过程
1092+
- 手工计算地址转换

lec3/p3-batchos.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ backgroundColor: white
2525
2025年秋季
2626

2727
---
28+
29+
### 问题
30+
31+
- 特权级切换和中断处理的基本原理是什么?
32+
- 如何利用基本原理写出系统调用功能的示例程序?
33+
- 如何把示例程序完善成批处理操作系统(顺序执行多个程序)?
34+
35+
---
36+
2837
**提纲**
2938

3039
### 1. 实验目标
@@ -35,6 +44,7 @@ backgroundColor: white
3544
6. 内核程序设计
3645

3746
---
47+
3848
##### 批处理操作系统的结构
3949
![w:750](figs/batch-os-detail.png)
4050

@@ -1153,12 +1163,12 @@ __restore:
11531163

11541164
---
11551165
### 小结
1156-
- OS与硬件的关系
1157-
- OS与应用程序的关系
1158-
- 隔离(isolation)机制
1159-
- 批处理创建并执行程序
1160-
- 特权级切换
1161-
- 系统调用
1162-
- 能写邓氏鱼OS
1166+
1167+
- 编译过程
1168+
- 应用、内核
1169+
- 数据结构
1170+
- app_manager, TrapContext
1171+
- 系统调用执行过程
1172+
- 第一次从内核态到用户态的切换过程
11631173

11641174
![bg right:57% 95%](figs/batch-os-detail.png)

0 commit comments

Comments
 (0)