一、虚拟存储器
程序存在着局部性原理,时间局部性与空间局部性。时间局部性是指某条指令执行,不久之后可能再次执行。空间局部性是指一个存储单元访问后,其相邻单元不久之后可能会访问。
根据局部性原理,我们可以知道,在运行进程时,不必将所有的数据载入内存,可以将部分先载入内存,等运行需要时再动态载入。虚拟存储器存在着多次性、对换性和虚拟性的重要特征。
二、分页请求
2.1请求页表机制
(1) 状态位 P:用于指示该页是否已调入内存,供程序访问时参考。
(2) 访问字段 A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长 时间未被访问,供选择换出页面时参考。
(3) 修改位 M:表示该页在调入内存后是否被修改过。由于内存中的每一页都在外存上 保留一份副本,因此,若未被修改,在置换该页时就不需再将该页写回到外存上,以减少 系统的开销和启动磁盘的次数;若已被修改,则必须将该页重写到外存上,以保证外存中 所保留的始终是最新副本。简言之,M 位供置换页面时参考。
(4) 外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考
2.2缺页中断机构
当访问的页面不在内存时,便产生一却也中断,请求OS调入缺页。
2.3地址变换机构
2.4内存分配
(1)分配策略:固定分配局部置换、可变分配全局置换、可变分配局部置换
三、对置算法
(1)最佳置换:将未来最长时间内不再被访问的置换。
(2)先进先出置换:先进先出原则(3)最近最久未使用:记录页面自上次访问以来所经历的时间,将时间最长的置换。(4)最少使用置换:记录被访问的频率。(5)clock最近未用算法
四、抖动与工作集
4.1抖动
抖动是由于频繁换入换出现象。抖动的根本原因是分配给每一个进程的物理块较少。
4.2工作集
工作集是指在某段时间间隔里,进程实际所要访问页面的集合。
4.3抖动预防
(1)局部置换(2)把工作集融入处理机调度(3)利用L=S准则调节缺页率(4)选择暂停进程