ZKX's LAB

缺页中断处理的详细过程 缺页中断处理程序分析

2020-10-11知识20

计算机操作系统分页问题? 与分页有关的工作操作系统在四段时间里做与分页有关的工作:进程创建时,进程执行时,缺页中断时和进程终止时。当在分页系统中创建一个一个新进程时,操作系统需要确定该进程的程序和数据在初始时有多大,并为它们创建一个页表。操作系统还要在内存中为页表分配空间并对其进行初始化。当进程被换出时,页表不需要驻留在内存中,但当进程运行时,页表必须在内存中。另外,操作系统要在磁盘交换区中分配空间,以便在一个进程换出时在磁盘上有放置此进程的空间。操作系统还要用程序正文和数据对交换区进程初始化,这样当新进程发生缺页中断时,可以调入需要的页面。某些操作系统直接从磁盘上的可执行文件对程序正文进行分页,以节省磁盘空间和初始化时间。最后,操作系统必须把有关页表和磁盘交换区的信息存储在进程表中。当调度一个进程执行时,必须为新进程重置MMU,刷新TLB,以清除以前的进程遗留下的痕迹。当缺页中断发生时,操作系统必须通过读硬件寄存器来确定是哪个虚拟地址造成的缺页中断。并计算出需要的页面以及要替换的老的页面。最后,还要备份程序计数器,使其指向引起缺页终端的指令,并重新执行该指令。当进程退出的时候,操作系统需要释放进程的页表,。

缺页中断处理的详细过程 缺页中断处理程序分析

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

缺页中断处理的详细过程 缺页中断处理程序分析

请求分页存储管理方案中,如果所需的页面不在内存中,则产生缺页中断,它属于()中断。A.硬件故障B.I/ 正确答案:D

缺页中断处理的详细过程 缺页中断处理程序分析

在虚拟页式存储管理方案中,下面()部分完成将页面调入内存的工作。A.缺页中断处理B.页面淘汰过程C. 正确答案:A

在一个请求分页面管理中,一个程序的页面走向为1、2、3、4、1、2、5、1、2、3、4、5。 1、首先在电脑中打开visual C++ 6.0,输入预处理命令百和主函数:#include<;stdio.h>;/*函数头:输入输出头文件*/void main()/*空类度型:主函数*/。2、接着定义变问量:int a,b=1,c=0;定义变量的数据类型为整型*/。3、然后计答算结果,如下图所示。回4、最后输出结果:printf(\"%d\\n\",c);输出结果*/。5、然后点击运答行,如下图所示就完成了。

#计算机指令#分页#缺页中断#算法#汇编指令

随机阅读

qrcode
访问手机版