php网站源码带后台,wordpress4.9.8下载,建设网站话术,北京万户网络技术有限公司传统存储管理方式的不足
一次性#xff1a;作业必须一次性全部装入内存后才能开始运行。这会造成#xff1a;当作也很大时不能全部装入内存#xff1b;当大量作业要求运行时#xff0c;由于内存无法容纳所有作业#xff0c;因此只有少量作业能够运行#xff0c;导致多道…传统存储管理方式的不足
一次性作业必须一次性全部装入内存后才能开始运行。这会造成当作也很大时不能全部装入内存当大量作业要求运行时由于内存无法容纳所有作业因此只有少量作业能够运行导致多道程序并发度下降驻留性一旦作业被装入内存就会一直留驻在内存中直至作业运行结束。导致内存中驻留大量的、暂时用不到的数据浪费了宝贵的内存资源。
局部性原理
时间局部性如果执行了程序中的某条指令那么不久后这条指令很可能再次执行如果某个数据被访问过那么这个数据很可能再次被访问空间局部性一旦程序访问了某个存储单元在不久之后其附近的存储单元也很有可能被访问。
高速缓冲技术的思想将近期会频繁访问到的数据放到更告诉的存储器中暂时用不到的数据放在更低速存储器中。 快表机构就是将近期长访问的页表项副本放到更高速的联想寄存器中。
虚拟内存
由于局部性原理在程序装入时可以将程序中很快用到的部分装入内存暂时用不到的部分留在外存就可以让程序开始执行。在程序执行过程中当访问的信息不在内存时由操作系统负责将所需信息从外存调入内存然后继续执行程序。若内存空间不够由操作系统负责将内存中暂时用不到的信息换出外存。
在操作系统的管理下在用户看来似乎有一个比实际内存大得多的内存这就是虚拟内存。操作系统虚拟性的体现
虚拟内存的最大容量是由计算机的地址结构CPU寻址范围确定的 虚拟内存的实际容量min(内存和外存容量之和CPU寻址范围)
主要特征
多次性允许多次装入对换性允许作业运行过程中将作业换入换出虚拟性使得用户看到的内存容量大于实际容量 主要区别如果访问的信息不再内存时有操作系统将所需信息从外存调入内存请求调页/段 如果内存空间不够由操作系统负责将内存中暂时用不到的信息换到外存页面/段置换
请求分页管理方式
请求调页操作系统需要知道每个页面是否已经调入内存如果没有调入需要知道该页面在外存存放的位置 页面置换根据某些指标来决定换出哪些页面有的页面没有被修改过就不用再浪费时间写回外存。有的页面修改过就需要将外存中就数据覆盖因此操作系统需要记录各个页面是否被修改的信息。
缺页中断机构
在请求分页系统中每当要访问的页面不再内存时便产生一个缺页中断然后由操作系统的缺页中断处理程序处理中断。此时缺页的进程阻塞放入阻塞队列调页完成后再将其唤醒放回就绪队列。
如果内存中有空闲块则为进程分配一个空闲块将所缺页面装入该块并修改页表中相应的页表项。 如果内存中没有空闲块则由页面置换算法选择一个页面淘汰若该页面在内存期间被修改过则要将其写回外存。未修改过的页面不用写回外存。
缺页中断是因为当前执行的指令想要访问的目标页面未调入内存而产生的因此属于内中断。 一条指令在执行期间可能产生多次缺页中断
地址变换
请求分页存储管理与基本分页存储管理的区别 新增步骤1请求调页查到页表项时进行判断 新增步骤2页面置换需要调入页面但没有空闲内存块时 新增步骤3需要修改请求页表中新增的表项 只有写指令才需要修改修改位。并且一般来说只需要修改快表中的数据只有要将快表想删除时才需要写回内存中的慢表这样就可以减少访存次数。和普通的中断处理一样却也中断处理依然需要保留CPU现场页面换入/换出都要启动慢速的I/O操作页面调入内存后需要修改慢表同时也需要将表项复制到快表中
页面置换算法
最佳置换算法(OPT)
每次选择淘汰的页面将时以后永不使用或者在最长时间内不再被访问的页面这样可以保证最低的缺页率。 注意缺页时未必发生页面置换若还有可用的空闲内存块就不用进行页面置换 缺页率缺页中断次数/页面访问次数 只有没有空闲内存块的缺页中断才需要页面置换 理想化算法实际无法实现
先进先出置换算法(FIFO)
每次选择淘汰的页面是最早进入内存的页面 把调入内存的页面根据调入的先后顺序排成一个队列需要换出页面时选择队头将新页面放入队尾 Belady异常当为进程分配的物理块数增大时缺页次数不减反增的异常现象。 只有FIFO算法会产生Belady异常。
最近最久未使用置换算法(LRU)
每次淘汰的页面是最近最久未使用的页面 实现方法在每个页面对应的页表项中用访问字段记录该页面自从上次被访问以来经历的时间t当需要 淘汰一个页面时选择现有页面中t中最大的即最近最久未使用的页面
算法性能好实现困难开销大 性能最接近OPT
时钟置换算法(CLOCK)
是一种性能和开销较均衡的算法又称作CLOCK算法或最近未使用算法(NRU not recently used)
简单CLOCK算法实现为每个页面设置一个访问位1表示最近访问0表示最近没有访问再讲内存中的页面都通过链接指针链接成一个循环队列。当某页被访问时其访问位置为1。当需要淘汰一个页面时只需要检查页的访问位如果时0就将该页换出如果是1则将它置为0暂不换出继续检查下一个页面。若第一轮扫面中所有页面都是1则将这些页面的访问位依次置为0后再进行第二次扫描。
简单CLOCK算法选择一个淘汰页面最多会经过两次扫描。
改进型的时钟置换算法简单时钟置换算法仅仅考虑一个页面最近是否被访问事实上如果被淘汰的页面没有被修改过就不需要执行I/O操作写回外存。只有被淘汰的页面被修改过时才需要写回外存。 因此考虑一个页面最近有没有被访问过之外操作系统还应该考虑页面有没有被修改过。在其他条件都相同时应优先淘汰没有修改过的页面避免I/O操作。 实现设置修改位0表示没有被修改1表示被修改。 访问位修改位 算法规则 将所有可能被置换的页面排成一个循环队列
从当前位置开始扫描第一个00的帧用于替换不修改任何标志位如果第一轮扫描失败则重新扫描。查找第一个(0,1)的帧用于替换本轮将所有扫描过的帧访问位设为0如果第二轮扫描失败则重新扫描查找第一个(0,0)的帧用于替换本轮扫描不修改任何标志位若第三轮扫描失败则重新扫描找到第一个(0,1)的帧用于替换。
由于第二轮已经将所有帧的访问位设置为0因此经过第三轮第四轮扫描一定会有一个帧被选中因此改进型CLOCK置换算法选择一个淘汰页面最多会进行四次扫描 页面分配置换策略
驻留集请求分页管理中给进程分配的物理块的集合 在采用了虚拟存储的系统中驻留集大小一般小于进程的总大小 如果驻留集太小则会频繁缺页系统要花大量的时间处理缺页实际用于进程推进的时间很少 驻留集太大会导致多道程序并发度下降资源利用率降低。 固定分配操作系统为每个进程分配一组固定数目的物理块在进程运行期间不再改变。 可变分配纤维每个进程分配一定数目的物理块在进程运行期间可根据情况做适当的增加或者减少即驻留集大小可变 局部置换发生缺页时只能选进程自己的物理块进行置换 全局置换可以将操作系统保留的空闲物理块分配给却也进程也可以将别的进程持有的物理块置换到外存再分缺页进程。 固定分配局部置换缺点很难在刚开始就确定为每个进程分配多少个物理块才算合适。采用这种策略的系统一般会根据一定的参数确定内存块 可变分配全局置换只要某进程发生缺页都能获得新的物理块仅当空闲物理块用完时系统才选择一个未锁定的页面调出。被选择调出的页面可能是系统中任何一个进程中的页因此这个被选中的进程拥有的物理块会减少缺页率会增加。 系统会锁定一些页面这些页面中的内容不能置换出去。 可变分配局部置换如果进程在运行中频繁地换页系统回味该进程多分配几个物理块直至该进程缺页率趋势适当程度。反之如果进程在运行时缺页率特别低可适当减少分配给该进程的内存块。
可变分配全局置换只要就分配新物理块 可变分配局部置换根据缺页率动态增加或者减少物理块
调入页面
时间
预调页策略根据局部性原理一次调入若干个相邻的页面可能比一次调入一个页面更加高效。预测不久之后可能要访问的页面将他们预先调入内存。预测成功率只有50%。这种策略主要用于进程的首次进入。请求调页策略进程在运行期间发现缺页才将所缺页面调入内存。这种策略调入的页面一定会被访问到。但是每次都只能调入一页而每次调页都要磁盘I/O操作因此I/O开销较大
地点 如果系统拥有足够的调换去空间页面的调入调出都是内存与对换区之间进行的这样可以保证页面的调入调出速度很快。在进程运行前需要讲进程相关的数据从内存区复制到对换区。如果系统缺少足够的对换区空间凡是不会被修改的数据都直接从文件区调入由于这些页面不会被修改因此换出时不需要写回磁盘下次需要时再从文件区调入即可。对于可能被修改的部分换出时需要写回磁盘对换区下次需要时再从对换区调入。UNIX:运行之前进程有关的数据全部放在文件区故未使用过的页面都可以从文件区调入。若被使用过的页面需要换出则写回对换区下次需要时再从对换区调入。
抖动颠簸现象
抖动现象是指在更换页面时如果被更换的页面是一个很快再次访问的页面则会频繁地发生页面调度以至于调度页面所需时间过长系统效率急剧下降的现象。
解决策略
有针对性地选择更优秀的页面置换算法以减少页面替换策略失误挂起低优先级的进程减少多道程序数量使得能够增大驻留集让进程拥有更多的内存块给进程分配合适大小的内存块。为了解决给进程分配多少个内存块比较合适可以使用Denning提出的 “工作集”的概念进行解决。首先操作系统根据窗口尺寸统计工作集的大小然后让驻留集的大小大于等于工作集的大小即可。与之相关的我们可以每次选择一个不再工作集中的页面进行淘汰。使用LS准则调节缺页率让程序最大可能地并发处理提高磁盘和处理机的利用率。
工作集
工作集在某段时间间隔内进程实际访问页面的集合 驻留集请求分页存储管理中给进程分配的内存块的集合 一般来说驻留集的大小不能小于工作集的大小否则进程运行过程中将会频繁缺页
拓展基于局部性原理可知进程在一段时间内访问的页面与不久之后访问的页面是有相关性的。因此可以根据近期访问的页面集合来设计页面置换算法选择一个不再工作集中的页面进行淘汰