当前位置:首页 » 存储配置 » 页式存储管理的页面置换算法

页式存储管理的页面置换算法

发布时间: 2022-07-26 10:39:01

1. 计算机操作系统页面置换算法的问题

第二次机会算法:

与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。

第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。

2. 页式管理的请求页式管理中的置换算法

功能:需要调入页面时,选择内存中哪个物理页面被置换。称为replacement policy。
出发点:把未来不再使用的或短期内较少使用的页面调出,通常只能在局部性原理指导下依据过去的统计数据进行预测。
页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键(time-critical)的应用进程。实现方法为在页表中加上锁定标志位(lock bit)。 轮转法(RR,round robin)和先进先出算法(FIFO,first in first out):轮转法循回换出内存可用区内一个可以被换出的页,无论该页是刚被换进或已换进内存很长时间。FIFO算法总是选择在内存驻留时间最长的一员将其淘汰。
FIFO算法认为先调入内存的页不再被访问的可能性要比其它页大,因而选择最先调入内存的页换出。实现FIFO算法需要把各个已分配页面按分配时间顺序链接起来,组成FIFO队列,并设置一置换指针指向FIFO队列的队首页面。这样,当要进行置换时,只需把置换指针所指的FIFO队列前头的页顺次换出,而把换入的页链接在FIFO队尾即可。
由实验和测试发现FIPO算法和RR算法的内存利用率不高。这是因为,这两种算法都是基于CPU按线性顺序访问地址空间这一假设。事实上,许多时候.CPU不是按线性顺序访问地址空间的。
Belady现象:一般来说,对于任一作业或进程,如果给它分配的内存页面数越接近于它所要求的页面数,则发生缺页的次数会越少。在极限情况下,这个推论是成立的。因为如果给一个进程分配了它所要求的全部页面,则不会发生缺页现象。但是,使用FIFO算法时,在未给进程或作业分配足它所要求的页面数时,有时会出现分配的页面数增多,缺页次数反而增加的奇怪现象。这种现象称为Belady现象。 最近最久未使用页面置换算法(LRU, Least Recently Used):
选择内存中最久未使用的页面被置换。这是局部性原理的合理近似,性能接近最佳算法。但由于需要记录页面使用时间的先后关系,硬件开销太大。硬件机构如:
(1) 一个特殊的栈:把被访问的页面移到栈顶,于是栈底的是最久未使用页面。
(2) 每个页面设立移位寄存器:被访问时左边最高位置1,定期右移并且最高位补0,于是寄存器数值最小的是最久未使用页面。
比较常用的近似算法有:
(a) 最不经常使用页面淘汰算法(LFU, Least Frequently Used)
(b) 最近没有使用页面淘汰(NRU, Not Recently Used) 理想型淘汰算法(OPT,Optimal Replacement Algorithm)
该算法淘汰在访问串中将来再也不出现的或是离当前最远的位置上出现的页。它是一种理想化的算法,性能最好,但在实际上难于实现。

3. 请分别给出三种不同的页面置换算法,并简要说明他们的优缺点

[fifo.rar]
-
操作系统中内存页面的先进先出的替换算法fifo
[先进先出页面算法程序.rar]
-
分别实现最佳置换算法(optimal)、先进先出(fifo)页面置换算法和最近最久未使用(LRU)置换算法,并给出各算法缺页次数和缺页率。
[0022.rar]
-
模拟分页式虚拟存储管理中硬件的地址转换和缺页中断,以及选择页面调度算法处理缺页中断
[Change.rar]
-
java实现操作系统的页面置换
其中包括
最佳置换算法(Optimal)、先进先出算法(First-in,
First-out)
、最近最久不用的页面置换算法(LeastRecently
Used
Replacement)三种算法的实现
[M_Management.rar]
-
操作系统中内存管理页面置换算法的模拟程序,采用的是LRU置换算法
[detail_of_44b0x_TCPIP.rar]
-
TCPIP
程序包加载到44b0x
的ADS1.2工程文件的说明书。说名了加载过程的细节和如何处理演示程序和代码。演示代码已经上传,大家可以搜索
[.rar]
-
java操作系统页面置换算法:
(1)进先出的算法(fifo)
(2)最近最少使用的算法(LRU)
(3)最佳淘汰算法(OPT)
(4)最少访问页面算法(LFU)
(注:由本人改成改进型Clock算法)
(5)最近最不经常使用算法(NUR)

4. 什么是虚拟存储器请求式分页存储管理常用的页面置换算法有哪些试比较他们的性能。

虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。
最佳置换算法(OPT)(理想置换算法)
先进先出置换算法(FIFO):
最近最久未使用(LRU)算法
Clock置换算法(LRU算法的近似实现)
最少使用(LFU)置换算法

5. 操作系统页面置换算法:第二次机会算法是什么

第二次机会算法:

与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。

第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。

第二次机会算法可视为一个环形队列。用一个指针指示哪一页是下面要淘汰的。当需要一个存储块时,指针就前进,直至找到访问位是0的页。随着指针的前进,把访问位就清为0。在最坏的情况下,所有的访问位都是1,指针要通过整个队列一周,每个页都给第二次机会。这时就退化成FIFO算法了。

6. 操作系统页面置换算法题,谁会

第二次机会算法:

与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。

第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。

第二次机会算法可视为一个环形队列。用一个指针指示哪一页是下面要淘汰的。当需要一个存储块时,指针就前进,直至找到访问位是0的页。随着指针的前进,把访问位就清为0。在最坏的情况下,所有的访问位都是1,指针要通过整个队列一周,每个页都给第二次机会。这时就退化成FIFO算法了。

7. 分页式存储管理页面置换算法C语言描述,帮忙看一下错误

void initPagelist(){//初始化页表
int k,b,l;
for(k=0;k<length;k++){
if(k<4){
printf("\n请输入第%d个页面所在的块的块号:",k);
scanf("%d",&b);
pagelist[k].bnum=b;
pagelist[k].id=1;
}else{
pagelist[k].bnum=0;
pagelist[k].id=0;
}
pagelist[k].changeid=0;
printf("\n请输入第%d个页面所在的磁盘位置:",k);
scanf("%d",l);
pagelist[k].location=l;
}
}
输入scanf("%d",l);错了、、、scanf("%d",&l),少了地址符

8. 操作系统 页式管理中的置换算法 怎么看缺页

去年学过,现在记忆残缺,尽量回答
FIFO算法是先入先出算法吧,首先是有三个页面,所以一列只有三行
再者,根据先入先出的规则,后面读取的串替代内存中进来时间最久的串,若当前读取的串内存中已经有了,则内存中的页面不变
缺页就是没有重复的页面,即没有重复的页面共有10页,就缺页10次
LRU LFU就是看访问串前面或者后面会不会有使用到,具体哪个我忘了,把FIFO看明白了你就晓得了
FIFO:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0
空0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1
空空1 1 1 1 0 0 0 3 3 3 3 3 2 2 2
你的打错了吧
PS:我上面说缺页10页是随便举的例子,题目中的缺页数是12,缺页不是很好计算的么,就是没有内容重复的内存页,数一下就知道了,还不知道就留言我吧

9. 什么是lru置换算法

LRU是Least
Recently
Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的。
LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。反过来说,已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。这个,就是着名的局部性原理——比内存速度还要快的cache,也是基于同样的原理运行的。因此,我们只需要在每次调换时,找到最近最少使用的那个页面调出内存。这就是LRU算法的全部内容。
这是一个相当好的算法,它是理想算法很好的近似。

10. 操作系统:请求页式存储管理中页面置换算法的模拟设计

srand()——获取运算随机数(数据类型:double);
getpid()——获取当前进程识别码(long);
srand(10*getpid())就是产生一个10陪的随机数。该随机函数的种子参数是getpid(),少了10意义就不一样了,所以不行

s=(float)319*rand()/32767/32767/2+1,是一个算术式,rand()函数是产生随机数的一个随机函数,float是一种数据类型,为浮点数,S就是一个随机数乘以319除以32767/32767/2+1的值,32767是2的(16-1)次方,为什么要减1,因为是从0开始,0到15,2的0次方是1,一直算下去,2的(16-1)次方是32767,把(float)319*rand()/32767/32767/2+1所得的值存储在S变量里

希望采纳

热点内容
仙方一般是什么配置 发布:2024-05-18 18:53:43 浏览:158
黑莓安卓手机主题下载到哪里 发布:2024-05-18 18:47:18 浏览:56
汤靖轩编程 发布:2024-05-18 18:46:04 浏览:532
脚本故事梗 发布:2024-05-18 18:29:02 浏览:822
安卓和csharp哪个发展好 发布:2024-05-18 18:09:30 浏览:527
换编程题库 发布:2024-05-18 18:00:58 浏览:562
如何使用服务器ip直连网站 发布:2024-05-18 18:00:49 浏览:432
三星n7100哪个安卓版本好用 发布:2024-05-18 17:55:41 浏览:490
万国觉醒采集脚本源码 发布:2024-05-18 17:55:39 浏览:947
sqlserver加字段 发布:2024-05-18 17:54:53 浏览:928