当前位置:首页 > 内存 > 正文

缺页中断访问内存次数

  • 内存
  • 2024-06-09 09:05:07
  • 7565

一、越界中断和缺页中断的区别是什么?越界中断和页面错误中断都是操作系统中的重要概念,但它们的处理方式有明显的区别。
页错误中断又称为pagefault,是指令执行过程中产生并处理的中断信号。当程序尝试访问的页面不在内存中时(即页面丢失),就会发生页面错误中断。该中断立即停止当前正在运行的进程,并将控制权交给操作系统,操作系统找到丢失的页面并将其加载到内存中。然后中断处理程序恢复被中断的进程并继续执行。
越界中断,也称为分段错误,通常发生在程序尝试访问超出其分配区域的内存区域时。该中断通常由操作系统的内存管理模块产生,以防止非法内存访问。当程序试图访问超出其分配范围的内存时,内存管理模块立即停止程序的执行并产生越界中断信号。然后操作系统处理中断信号,可能终止程序或重新分配内存。


二、缺页中断文/峰峰吖
页错误中断:要访问的页面不在主存中,操作系统必须将其转移到主存中才能访问。
页面丢失率:进行内存访问时,如果访问的页面已经在主存中,则认为访问成功;如果访问的页面不在主存中,则认为访问成功be失败并生成页错误中断。假设程序P执行过程中页面访问总数为S,产生缺页中断的访问次数为F,则其缺页率为:F/s。
解:根据对于给定的Page方向,采用先进先出淘汰算法的页面替换情况如下:这里的Page方向是系统要调用的页号。
在请求分页系统中,可以通过查找页表中的状态位来判断内存中是否存在要访问的页面。
每当要访问的页面不在内存中时,就会产生缺页中断,此时操作系统会通过页表外部的内存地址在外部内存中查找缺页,并通过将其存储在内存中。
缺页本身就是一种中断,和一般中断一样,它要经过4个处理步骤:
1/>2、分析中断原因
3转入分页处理程序进行处理
4
PageFailure中断时,由于要访问的页面在内存中不存在,所以有专门的中断由硬件产生,因此与一般中断不同:
1、指令执行过程中产生并处理缺页中断信号
2、执行一条指令,可能会出现多个缺页符
3当分页符返回时,执行产生该中断符的指令,当返回一般中断符时,执行下一条指令
页面替换期间。进程执行时,如果发生缺页中断,此时磁盘交换区是否还有空闲内存。
但是此时应该替换哪个页面,需要根据一定的页面替换算法来确定。
①先进先出替换算法(FirstInFirstOut、FIFO)
替换最先转移到内存的页面,即替换保留在内存中的页面最长的时间。按照进入内存、从队列底部插入、从队列头部删除的顺序将它们排列在队列中。但这种算法会剔除频繁访问的页面,并不适合进程的实际运行。
②最近最少使用替换算法(LeastRecentlyUsed,LRU)
替换最近一段时间内最长时间没有访问过的页面。根据程序局部性原理,刚刚打开过的页面可能很快就会被再次访问,而长时间没有访问过的页面可能最近不会被访问。
LRU算法一般适用于各种类型的程序,但系统需要时刻记录和更新每个页面的访问历史,代价非常大,所以LRU算法必须有硬件支持。
缺页中断率:出现缺页的中断次数(首先填充的间隙数+消除的次数)除以页面引用数。(这是给你的数字总数)*100%
总结:LRU算法也是从上到下设置数字,如果进程数相同,则应该将它们移至上面的,后面的都应该下移,甚至淘汰(这与先进先出不同),如果没有,就挤掉下面的(淘汰,会出现分页)
。页面错误中断的次数越少越好,不会浪费空间资源,进程可以以最佳状态继续运行。