Skip to content

Commit

Permalink
Lecture 6 for OS2023autumn
Browse files Browse the repository at this point in the history
  • Loading branch information
xyongcn committed Oct 11, 2023
1 parent 5968f31 commit c031aef
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 171 deletions.
42 changes: 18 additions & 24 deletions lec6/p1-vmoverview.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ backgroundColor: white

向勇 陈渝 李国良 任炬

2023年春季
2023年秋季

---

Expand Down Expand Up @@ -57,7 +57,8 @@ backgroundColor: white

---
#### 地址空间
<!--计算机系统时常出现内存空间不够用
<!--
计算机系统时常出现内存空间不够用
- 模块覆盖(overlay)
- 应用程序**手动**把需要的指令和数据保存在内存中
- 任务交换(swapping)
Expand All @@ -68,8 +69,6 @@ backgroundColor: white
地址空间是操作系统对虚拟存储的**抽象**
![w:900](figs/os-abstract-address-space.png)



---

**提纲**
Expand All @@ -94,6 +93,7 @@ backgroundColor: white
---

#### 覆盖的基本原理

覆盖是指把一个程序**划分**为一系列功能相对独立的程序段,让执行时**不要求同时装入**内存的程序段组成一组(称为覆盖段),**共享**主存的同一个区域。
- **必要**部分(常用)的代码和数据常驻内存
- **可选**部分(不常用)放在其他程序模块中,只在**需要时装入**内存
Expand All @@ -104,8 +104,6 @@ backgroundColor: white
#### 覆盖技术示例

![w:900](figs/overlay.png)



---

Expand All @@ -118,8 +116,7 @@ backgroundColor: white
- 从外存装入覆盖模块
- 时间换空间

Turbo Pascal的Overlay系统单元支持程序员控制的覆盖技术

[Turbo Pascal](https://winworldpc.com/product/turbo-pascal/7x)的Overlay系统单元支持程序员控制的覆盖技术

---

Expand Down Expand Up @@ -157,7 +154,7 @@ backgroundColor: white

- 交换区(空间)**大小**:经验值。下面是Linux专家给出的建议

![w:1200](figs/swap-size.png)
![w:1150](figs/swap-size.png)

<!-- redhat的建议 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/installation_guide/s2-diskpartrecommend-ppc#id4394007 -->

Expand All @@ -173,7 +170,6 @@ backgroundColor: white
- 以运行的程序为单位
- 不需要模块间的逻辑覆盖结构


运行的程序:``任务````进程``

---
Expand Down Expand Up @@ -202,16 +198,15 @@ backgroundColor: white

#### 局部性原理

局部性(locality):程序在执行过程中的一个**较短时期**,所执行的**指令**地址和指令的**操作数**地址,分别局限于一定区域
- **时间**局部性:**一条指令**的一次执行和下次执行,**一个数据**的一次访问和下次访问都集中在一个较短时期内
- **空间**局部性:当前指令和**邻近时间**的几条指令,当前访问的数据和邻近时间访问的几个数据都集中在一个较小区域内
- **分支**局部性:一条**跳转指令**的两次执行,很可能跳到相同的内存位置
局部性(locality):程序在执行过程中的一个**较短时期**,所执行的**指令**地址和指令的**操作数**地址,分别局限于**一定区域**
- **时间**局部性:一条**指令**的一次执行和下次执行,一个**数据**的一次访问和下次访问都集中在一个**较短时期**
- **空间**局部性:当前指令和邻近时间的几条**指令**,当前访问的数据和邻近时间访问的几个**数据**都集中在一个**较小区域**
- **分支**局部性:一条**跳转指令**的两次执行,很可能**跳到相同的内存位置**

局部性的意义:如果大部分程序运行具有局部性特征,则虚拟存储技术是能够实现的,而且可取得满意的效果



---

#### 虚拟存储的思路与规则
- 思路:将**不常用**的部分内存块暂存到外存
- 规则:
Expand All @@ -222,8 +217,8 @@ backgroundColor: white
- 虚拟页式存储
- 虚拟段式存储


---

#### 虚拟存储的基本特征
- 不连续性
- 物理内存分配非连续
Expand All @@ -232,7 +227,6 @@ backgroundColor: white
- 提供给用户的虚拟内存可大于实际的物理内存
- 部分交换
- 虚拟存储只对部分虚拟地址空间进行调入和调出


---
#### 虚拟存储的底层支撑
Expand All @@ -241,7 +235,6 @@ backgroundColor: white
- 软件(OS)
- 内存中建立**页表或段表**
- 管理内存和外存间页面或段的**换入和换出**


---

Expand All @@ -254,8 +247,8 @@ backgroundColor: white
- 操作系统在处理缺页异常时,将外存中相应的页面**调入**内存,使得用户程序能继续运行
- 当内存快用完时,操作系统把部分页从内存**调出**到外存


---

#### 虚拟页式存储管理
在页式存储管理的基础上,增加请求调页和页面置换
- 请求调页:也称按需分页,在处理器需要访问某数据时,才把数据从外存调入内存
Expand All @@ -264,7 +257,6 @@ backgroundColor: white

![bg right:54% 100%](figs/vm-work.png)


---

**提纲**
Expand All @@ -284,7 +276,6 @@ backgroundColor: white

![bg left:51% 100%](figs/page-fault-handler.png)


---

#### 缺页异常的处理流程
Expand All @@ -305,11 +296,14 @@ backgroundColor: white
*在何处保存未被映射的页?如何找到这个页?*

---

#### 在何处保存未被映射的页?
- 交换空间(磁盘/文件形态)
- 采用特殊格式存储未被映射的页面
- 磁盘上的文件(代码或数据)
![bg right:50% 100%](figs/page-fault-handler.png)

![bg right:50% 100%](figs/page-fault-handler.png)

---

#### 虚拟存储的外存交换空间
Expand All @@ -319,7 +313,6 @@ backgroundColor: white
- 交换空间
- 磁盘分区:一般是扇区地址
- 在存在位为0的页表项中保存外存的页地址


![bg right:54% 100%](figs/page-fault-handler.png)

Expand All @@ -338,6 +331,7 @@ backgroundColor: white
![bg right:48% 100%](figs/page-fault-handler.png)

---

#### 虚拟存储的性能

有效存储访问时间(EAT, Effective memory Access Time)
Expand Down
Loading

0 comments on commit c031aef

Please sign in to comment.