分页置换算法
Ⅰ 在请求分页系统中,常采用哪几种页面置换算法
理想页面置换算法、先进先出页面置换算法、最近最少使用页面置换算法。
Ⅱ 分页式存储管理页面置换算法C语言描述,帮忙看一下错误
init里面那个for循环,k没有初始化就直接用,没问题吗?local variable不初始化,貌似不是默认初始化为0的。还有这个逻辑是什么意思:
if(k<4){
pagelist[k].id=1;
pagelist[k].chid=0;
}
Ⅲ 什么是虚拟存储器请求式分页存储管理常用的页面置换算法有哪些试比较他们的性能。
虚拟存储器(Virtual Memory):在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”。虚拟存储区的容量与物理主存大小无关,而受限于计算机的地址结构和可用磁盘容量。
最佳置换算法(OPT)(理想置换算法)
先进先出置换算法(FIFO):
最近最久未使用(LRU)算法
Clock置换算法(LRU算法的近似实现)
最少使用(LFU)置换算法
Ⅳ 操作系统页面置换算法:第二次机会算法是什么
第二次机会算法:
与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。
第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。
第二次机会算法可视为一个环形队列。用一个指针指示哪一页是下面要淘汰的。当需要一个存储块时,指针就前进,直至找到访问位是0的页。随着指针的前进,把访问位就清为0。在最坏的情况下,所有的访问位都是1,指针要通过整个队列一周,每个页都给第二次机会。这时就退化成FIFO算法了。
Ⅳ 操作系统页面置换算法题,谁会
第二次机会算法:
与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。
第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。
第二次机会算法可视为一个环形队列。用一个指针指示哪一页是下面要淘汰的。当需要一个存储块时,指针就前进,直至找到访问位是0的页。随着指针的前进,把访问位就清为0。在最坏的情况下,所有的访问位都是1,指针要通过整个队列一周,每个页都给第二次机会。这时就退化成FIFO算法了。
Ⅵ 计算机操作系统分页问题
与分页有关的工作
操作系统在四段时间里做与分页有关的工作:进程创建时,进程执行时,缺页中断时和进程终止时。
当在分页系统中创建一个一个新进程时,操作系统需要确定该进程的程序和数据在初始时有多大,并为它们创建一个页表。操作系统还要在内存中为页表分配空间并对其进行初始化。当进程被换出时,页表不需要驻留在内存中,但当进程运行时,页表必须在内存中。
另外,操作系统要在磁盘交换区中分配空间,以便在一个进程换出时在磁盘上有放置此进程的空间。操作系统还要用程序正文和数据对交换区进程初始化,这样当新进程发生缺页中断时,可以调入需要的页面。某些操作系统直接从磁盘上的可执行文件对程序正文进行分页,以节省磁盘空间和初始化时间。
最后,操作系统必须把有关页表和磁盘交换区的信息存储在进程表中。
当调度一个进程执行时,必须为新进程重置MMU,刷新TLB,以清除以前的进程遗留下的痕迹。
当缺页中断发生时,操作系统必须通过读硬件寄存器来确定是哪个虚拟地址造成的缺页中断。并计算出需要的页面以及要替换的老的页面。最后,还要备份程序计数器,使其指向引起缺页终端的指令,并重新执行该指令。
当进程退出的时候,操作系统需要释放进程的页表,页面和页面在硬盘上所占用的空间。但如果有些页面是被共享的,那只有当所有使用共享页面的进程终止时,该共享页面才会被释放。
2. 缺页中断处理
缺页中断时,发生的的事件顺序如下:
硬件陷入内核,在堆栈中保存程序计数器。大多数机器将当前指令的各种状态信息保存在特殊的CPU寄存器中。
启动一个汇编代码例程保存通用寄存器和其他易失的消息,以免被操作系统破坏。
当操作系统发现一个缺页中断时,尝试发现需要哪个虚拟页面。通常一个硬件寄存器包含了这以信息,如果没有的话,操作系统必须检索程序计数器,取出这条指令,用软件分析这条指令,看看它在缺页中断时正在做什么。
一旦知道了发生缺页中断的虚拟地址,操作系统检查这个地址是否有效,并检查存取与保护是否一致。如果不一致,向进程发出一个信号或杀掉该进程。如果地址有效且没有保护错误发生,系统则检查是否有空闲页框。如果没有空闲页框,执行页面置换算法寻找一个页面来淘汰。
如果选择的页框被修改过了,安排该页写回磁盘,并发生一次上下文切换,挂起产生缺页中断的进程,让其他进程运行直至磁盘传输结束。无论如何,该页框被标记为忙,以免因为其他原因而被其他进程占用。
一旦页框干净后,操作系统查找所需页面的在磁盘上的地址,通过磁盘操作将其装入。该页面被装入后,产生缺页中断的进程仍然被挂起,并且如果有其他可运行的用户进程,则选择另一个用户进程运行。
当磁盘中断发生时,表明该页已经被装入,页表已经更新可以反映它的位置,页框也被标记为正常状态。
恢复发生缺页中断指令以前的状态,程序计数器重新指向这条指令。
调度引发缺页中断的进程,操作系统返回调用它的汇编语言例程。
该例程恢复寄存器和其他状态信息,返回到用户空间继续执行,就好像缺页中断没有发生过一样。
Ⅶ 计算机操作系统页面置换算法的问题
第二次机会算法:
与FIFO、OPT、LRU、NRU等同为操作系统中请求分页式管理方式的页面置换算法。
第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,依然和FIFO一样,选择最早置入内存的页面。但是二次机会法还设置了一个访问状态位。所以还要检查页面的的访问位。如果是0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置为1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。