1.程序的局部性原理:程序在运行的时候局限在某个局部的地方。
2.虚拟存储器的工作基本情况
2.1.1思想
分页:
2.1.2数据结构
2.1.3缺页中断
缺页中断可以发生在程序执行的过程中,但是一般的程序的中断都是发生在程序执行完之后才会发生的。
1.缺页中断和一般的中断的区别
相同点:
不同点:
2.缺页中断的过程
当某一条指令找对应的页号的时候没有找到,就会发生缺页中断。
发生缺页->缺页中断(将当前要执行的程序挂起,调用缺页中断程序)->采用某种置换算法,将缺页的调入内存->恢复现场(唤醒中断的程序)
3.中断处理的特例:
涉及到6次中断的过程。
原因:一条指令在两个页面中,指定一条指令都会置换两次。
2.2.1内存分配策略
可变分区的全局置换是用的次数最多的。
1.内存分配策略
2.内存置换策略
2.2.2物理块的分配算法-基于固定分区分配策略
1.物理块的分配算法-基于固定分区分配策略
就是事先调入内存中的部分程序和数据。
2.3.1何时调入
1.何时调入
2.3.2何处调入
1.常见的调入的三种情况
2.3.3如何调入
调入的过程就是发生缺页中断处理的过程
发生缺页->缺页中断(将当前要执行的程序挂起,调用缺页中断程序)->采用某种置换算法,将缺页的调入内存->恢复现场(唤醒中断的程序)
2.3.4缺页率
1.缺页率的计算公式
1.常见的5中页面置换的算法
2.4.1最佳页面算法(OPT)
算法简介,只是一种最理想话的算法。具有最好的性能但是最难实现。将永不使用的和长时间最不会被访问到的调出内存。
作用:可以用来评价其余算法的好坏。
注意点:如果预先装入内存的话,算是命中。没有预先装入的就算是失败的。
案例:
假定系统为某进程分配了三个物理块, 并考虑有以下的页面号引用串:
内存分配图如下:
所以:缺页率为:30%
期待下期再见!ヾ(•ω•`)o