auto commit
This commit is contained in:
parent
0cba3211d8
commit
7ae76782ef
|
@ -637,15 +637,19 @@ void philosopher(int i) {
|
|||
|
||||
## 虚拟内存
|
||||
|
||||
每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。
|
||||
|
||||
当程序引用到一部分不在物理内存中的地址空间时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。
|
||||
每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称为一页。这些页被映射到物理内存,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。当程序引用到一部分不在物理内存中的地址空间时,由硬件执行必要的映射,将缺失的部分装入物理内存并重新执行失败的指令。
|
||||
|
||||
## 分页与分段
|
||||
|
||||
### 1. 分页
|
||||
|
||||
用户程序的地址空间被划分为若干固定大小的区域,称为页。相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配,由一个页表来维护它们之间的映射关系。
|
||||
大部分虚拟内存系统都使用分页技术。把由程序产生的地址称为虚拟地址,它们构成了一个虚拟地址空间。例如有一台计算机可以产生 16 位地址,它的虚拟地址空间为 0\~64K,然而状态计算机只有 32KB 的物理内存。因此虽然可以编写 64KB 的程序,但它们不能被完全调入内存运行。
|
||||
|
||||
<div align="center"> <img src="../pics//7b281b1e-0595-402b-ae35-8c91084c33c1.png"/> </div><br>
|
||||
|
||||
虚拟地址空间划分成固定大小划分的页,在物理内存中对应的单元称为页框,块和页框大小通常相同,页与页框之间通过页表进行映射。
|
||||
|
||||
程序最开始只将一部分页载入页框中,当程序引用到没有在页框的页时,产生缺页中断,进行页面置换,按一定的原则将一部分页框换出,并将页载入。
|
||||
|
||||
### 2. 分段
|
||||
|
||||
|
|
BIN
pics/7b281b1e-0595-402b-ae35-8c91084c33c1.png
Normal file
BIN
pics/7b281b1e-0595-402b-ae35-8c91084c33c1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
Loading…
Reference in New Issue
Block a user