auto commit

This commit is contained in:
CyC2018
2018-02-27 14:22:51 +08:00
parent ae2477e7f9
commit 85fd95bf22
+9 -7
View File
@@ -640,7 +640,7 @@ void philosopher(int i) {
![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/e0900bb2-220a-43b7-9aa9-1d5cd55ff56e.png)
分段的做法是把每个表分成段,一个段构成一个独立的地址空间。每个段的长度可以不同,可以动态改变。
分段的做法是把每个表分成段,一个段构成一个独立的地址空间。每个段的长度可以不同,并且可以动态增长。
每个段都需要程序员来划分。
@@ -648,17 +648,19 @@ void philosopher(int i) {
用分段方法来分配和管理虚拟存储器。程序的地址空间按逻辑单位分成基本独立的段,而每一段有自己的段名,再把每段分成固定大小的若干页。
用分页方法来分配和管理实存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。程序对内存的调入或调出是按页进行的。但它又可按段实现共享和保护。
用分页方法来分配和管理实存。即把整个主存分成与上述页大小相等的存储块,可装入作业的任何一页。
程序对内存的调入或调出是按页进行的,但它又可按段实现共享和保护。
### 4. 分页与分段区别
① 对程序员的透明性:分页透明,但是分段需要程序员显示划分每个段。
- 对程序员的透明性:分页透明,但是分段需要程序员显示划分每个段。
② 地址空间的维度:分页是一维地址空间,分段是二维的。
- 地址空间的维度:分页是一维地址空间,分段是二维的。
③ 大小是否可以改变:页的大小不可变,段的大小可以动态改变。
- 大小是否可以改变:页的大小不可变,段的大小可以动态改变。
④ 出现的原因:分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。
- 出现的原因:分页主要用于实现虚拟内存,从而获得更大的地址空间;分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。
## 页面置换算法
@@ -686,7 +688,7 @@ void philosopher(int i) {
虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。
可以用栈来实现该算法,栈中存储页面的页面号。当进程访问一个页面时,将该页面的页面号从栈移除,并将它压入栈顶,这样,最近被访问的页面的页面号总是在栈顶,而最近最久未使用的页面的页面号总是在栈底。
可以用栈来实现该算法,栈中存储页面的页面号。当进程访问一个页面时,将该页面的页面号从栈移除,并将它压入栈顶。这样,最近被访问的页面的页面号总是在栈顶,而最近最久未使用的页面的页面号总是在栈底。
4,7,0,7,1,0,1,2,1,2,6