操作系统原理:全局页面置换算法、工作集页置换、常驻集页置换、抖动问题
程序在运行过程中具有阶段性,可能刚开始的时候需要访问的内存很多,之后访问的内存可能会很少。如果操作系统给每个程序分配固定的物理页那么就显得不灵活,有没有办法动态地给程序分配页帧呢,在需要访问很多内存的时候多分配点页,不需要访问过多内存的时候少分配点页?
工作集模型:工作程序需要有局部性原理(邻近的代码变量分配在相邻的空间,一条指令的一次执行和下次执行都在很短的时间)。工作集是一个进程当前正在使用的逻辑页面集合。可以用 W(t,Δ) 二元式表示t时刻Δ窗口中的页面组成的集合, ,其中t 表示当前执行时刻,而Δ表示工作集窗口,是一个定长的页面访问的时间窗口 。 |W(t,Δ)| 表示工作集大小,页面数量。
常驻集概念:常驻集是工作集的一种,指在当前某个时刻,进程实际驻留在内存当中的页面集合。工作集是需要访问在内存的页面集合。由于在某个时刻需要访问的内存数量有限,所以整个执行过程中常驻集是有最大值的,当操作系统给程序的常驻集太大也可能造成空间上的浪费。
一、工作集的页置换算法
工作集的页置换算法并不是只有发生缺页中断时才把页换出到外存。随着程序在执行,工作集的窗口会跟着挪动,如果页不在工作集窗口中就会把页换出
这种置换算法虽然增加了缺页中断,但是却可以有效地保留最近访问的页,提前换出内存中的物理页,给其他应用程序提供更多的内存空间,达到动态分配内存空间的目的。与此同时,由于大部分写硬盘操作是提前完成的,所以当发生缺页中断时,大多数情况只需要写内存操作就行。
二、缺页率页面置换算法 (PFF)
上述算法的窗口大小是固定的,而在PFF算法中,窗口大小是可以变化的。在每个进程运行开始时,先根据程序大小分配一定数目的物理页面,在运行过程中再根据缺页率来调整窗口大小。缺页率过低说明需要的物理页面足够,需要减小工作集,过低则表示分配的物理页不够需要增大工作集,来进行动态地调整工作集窗口大小。
缺页率 = 缺页次数 /内存访问次数 , 也是 缺页次数关于程序执行时间的导数。
在下例中,Window size 代表缺页中断的时间间隔。
此方法相比工作集算法更灵活,但是实现起来会复杂些。
三、抖动问题
如果操作系统分配给进程的物理页面太少,则不能包含整个工作集,随着驻留内存的进程数目增加,分配给进程的页面数减少,容易发生频繁的缺页中断,这个现象称之为“抖动”,所以操作系统需要选择一个适当的进程数目和进程需要的帧数,以便在并发水平和缺页率中保持一个平衡。 例如当计算机刚开机时,CPU的利用率很高,随着操作系统运行的时间越来越久,进程的数量越来越多,如果缺页率高CPU可能在频繁地做页的换入换出操作,使CPU的系统利用率低,造成在运行的程序效率低。 如何量化都动问题呢?在性能测试中,需要计算 平均的缺页时间,即大概多久会平均产生一次缺页 ,需要计算出缺页时换入换出时间。 当 平均的缺页时间 接近 缺页时换入换出时间 时,CPU能够高效且高并发的为系统所利用。
操作系统原理:全局页面置换算法、工作集页置换、常驻集页置换、抖动问题相关推荐
- Linux 操作系统原理 — 内存 — 内存分配算法
目录 文章目录 目录 前文列表 内存碎片 伙伴(Buddy)分配算法 Slab 算法 虚拟内存的分配 内核态内存分配 vmalloc 函数 kmalloc 用户态内存分配 malloc 申请内存 用户 ...
- 常见页面置换算法模拟实验实验报告_广州置换
广州置换,地龙服务惠万家,自公司成立以来,培养了一大批从事市政管道工作行业的技术人才;特别是在管道非开挖领域,公司董事长陈小波长期置身于作业现场一线,靠着不断创新的精神和坚持不懈的良好的工作作风,已经 ...
- 实验三银行家算法linux,操作系统原理与linux_银行家算法实验报告.doc
. . . PAGE 成 绩 评 阅 人 评阅日期 计算机科学与技术系 实 验 报 告 课程名称: 操作系统原理与linux 实验名称: 银行家算法 2011年 04 月 实验三 银行家算法 一.实验 ...
- 2020-11-22(操作系统——页面置换算法)
当内存中的页面满了之后,需要的数据又在磁盘虚拟内存中,可以使用页面置换算法将需要的页置换到物理内存中.下面先介绍几种局部页面置换算法,其针对一个进程而言的页面置换. 一.局部页面置换算法 1.最优页面 ...
- 8虚拟内存9页面置换算法
8.1虚拟存储的需求背景 虚拟内存是非连续内存分配的一个延续,非连续内存分配在存储空间内可以连续也可以不连续.虚拟内存是在非连续内存分配基础上,可以把一部分内容放到外存中去,让应用程序有更大的空间使用 ...
- 操作系统中的全局页面置换算法
1 全局页面置换算法 以上页面置换算法都是针对单一的应用程序的页面置换算法, 且有一个前提, 就是给单一应用程序分配的物理页帧数量是一定的. 现实中, 给一个应用程序分配的物理页帧数, 该程序产生的缺 ...
- 【清华大学】操作系统 陈渝——Part6 全局页面置换算法
[清华大学]操作系统 陈渝--Part6 局部页面置换算法 6.8 局部页面替换算法的问题,工作集模型 局部页面替换算法的问题 工作集模型 6.9 全局页面置换算法 1. 工作集页置换算法 2. 可变 ...
- 操作系统:基于页面置换算法的缓存原理详解(下)
概述: 在上一篇<操作系统:基于页面置换算法的缓存原理详解(上)>中,我们主要阐述了FIFO.LRU和Clock页面置换算法.接着上一篇说到的,本文也有三个核心算法要讲解.分别是LFU(L ...
- 操作系统:虚拟页式存储管理(缺页中断、页面置换算法)
1.基本工作原理 1.基本工作原理 在进程开始运行之前,不是全部装入页面,而是装入一个或者零个页面,之后根据进程运行的需要,动态装入其他页面:当内存已满,而又需要装入 新的页面时,则根据某种算法淘汰某 ...
最新文章
- lab_2 Selenium
- 清华人工智能研究院成立,张钹姚期智分别任院长和主任
- “国际软件自由日”介绍
- js 将时间戳转为日期格式
- Flutter开发之《头条 Flutter iOS 混合工程实践》笔记(54)
- web login do.php,dologin.php
- python自学书籍顺序-【经验分享】自学Python的学习顺序!附学习资料
- php编译自己库文件,php编译后追加库模块-gd库
- 一个代码托管平台居然公开拒招中国人,谁给了你歧视中国程序员的勇气?
- 关于Redis缓存,这三个问题一定要知道!
- OpenShift 4 之Istio-Tutorial (11) 控制Egress访问
- SpringSecurity简单教程(源码开源免费提供)
- zemax中非序列添加相位面_zemax非序列照明技巧汇编
- highcharts.js:61 Error: text attribute y: Expected length, NaNNaN.错误的解决
- 4484: [Jsoi2015]最小表示 bitset+拓扑序
- Sentry 前端日志上报使用
- Python 在线免费批量美颜,不比某秀秀方便好用一些吗!
- 全波形反演的深度学习方法: 第 4 章 基于正演的 FWI
- android gradle 多渠道打包小结
- 【halcon机器视觉教程】黑洞是什么洞?我来给你拍个照,黑洞成像系统
热门文章
- 溢出键盘程序漏洞 得到管理员权限
- CentOS下Apache环境支持GBK编码解决网页乱码问题
- Spread for Windows Forms 7新功能使用指南
- cmake--gccxml
- pomelo 分布式聊天入门客户端demo(c#)
- 如何在 Windows XP 中设置、查看、更改或删除文件和文件夹的特殊权限
- linux shell只读变量、删除变量
- reactjs组件的生命周期函数:getSnapshotBeforeUpdate更新之前获取快照
- js基于lodash实现前端防抖与节流
- arthas案例:哪个controller处理了请求?每个请求的调用参数和返回值是多少?