ZKX's LAB

clock置换算法处理缺页中断c语言 怎么样实现分页管理的缺页调度clock算法C语言代码

2020-09-30知识18

什么是缺页中断? 缺页中断就是2113要访问的页不在主存,需要操5261作系统将其调入主存后再进行4102访问。缺页率:在进行内存访问时,1653若所访问的页已在主存,则称此次访问成功;若所访问的页不在主存,则称此次访问失败,并产生缺页中断。若程序P在运行过程中访问页面的总次数为S,其中产生缺页中断的访问次数为F,则其缺页率为:F/s.解:根据所给页面走向,采用FIFO淘汰算法的页面置换情况如下:这里的页面走向,即为系统要调用的页号。页面走向 1 2 1 3 1 2 4 2 1 3 4 物理块1 1 1 3 3 2 2 1 1 4 物理块2 2 2 1 1 4 4 3 3 缺页 缺 缺 缺 缺 缺缺 缺 缺 缺 从上述页面置换图可以看出:页面引用次数为11次,缺页次数为9次,所以缺页率为9/11。若采用后一种页面淘汰策略,其页面置换情况如下:页面走向 1 2 1 3 1 2 4 2 1 3 4 物理块1 1 1 3 1 1 1 3 4 物理块2 2 2 2 4 2 2 2 缺页:缺 缺 缺 缺缺 缺缺 缺 从上述页面置换图可以看出:页面引用次数为11次,缺页次数为8次,所以缺页率为8/11。

clock置换算法处理缺页中断c语言 怎么样实现分页管理的缺页调度clock算法C语言代码

缺页中断处理的详细过程1)硬件陷入内核,在内核堆栈中保存程序计数器。大多数机器将当前指令的各种状态信息保存在特殊的CPU寄存器中。2)启动一个汇编代码例程保存通用寄存器和其他易失的信息,以免被操作系统破坏。这个例程将操作系统作为一个函数来调用。3)当操作系统发现一个缺页中断时,尝试发现需要哪个虚拟页面。通常一个硬件寄存器包含了这一信息,如果没有的话,操作系统必须检索程序计数器,取出这条指令,用软件分析这条指令,看看它在缺页中断时正在做什么。4)一旦知道了发生缺页中断的虚拟地址,操作系统检查这个地址是否有效,并检查存取与保护是否一致。如7a64e4b893e5b19e31333337393566果不一致,向进程发出一个信号或杀掉该进程。如果地址有效且没有保护错误发生,系统则检查是否有空闲页框。如果没有空闲页框,执行页面置换算法寻找一个页面来淘汰。5)如果选择的页框“脏”了,安排该页写回磁盘,并发生一次上下文切换,挂起产生缺页中断的进程,让其他进程运行直至磁盘传输结束。无论如何,该页框被标记为忙,以免因为其他原因而被其他进程占用。6)一旦页框“干净”后(无论是立刻还是在写回磁盘后),操作系统查找所需页面在磁盘上的地址,通过。

clock置换算法处理缺页中断c语言 怎么样实现分页管理的缺页调度clock算法C语言代码

缺页中断是如何发生的?发生缺页中断后如何处理? 缺页中断发生时的事件顺序如下: 1)硬件陷入内核,在堆栈中保存程序计数器。大多数机器将当前指令的各种状态信息保存在特殊的CPU寄存器中。2)启动一个汇编代码例程保存通用。

clock置换算法处理缺页中断c语言 怎么样实现分页管理的缺页调度clock算法C语言代码

#fifo#页表#中断处理#分页#缺页中断

随机阅读

qrcode
访问手机版