自学自用 = B站(操作系统_清华大学(向勇、陈渝)) 未完待续。。 (5)

例图:

image


image

解决:LRU算法

FIFO、LRU、Clock三者比较?

FIFO、LRU都有先进先出思想,但LRU对于访问算作一次新的进入,有局部性思想。

FIFO、LRU相比,LRU性能虽好,但开销较大;而FIFO有Belady现象

LRU、Clock很相似,但Clock加入访问位模拟LRU的访问顺序,而不用动态维护顺序链表,开销更小,但性能较LRU略有不足

局部页面置换算法的问题:

对应用分配了固定的物理页帧,一定程度上限制了系统灵活性,比如同时运行多个程序,但高峰期正好交错开。所以可以根据应用运行的不同阶段,调整分配的物理页帧,最大化利用系统资源。

4.5.8 工作集和常驻集

工作集:一个进程p当前执行时刻t前,在之前的定长的页面访问工作集窗口△阶段,使用的逻辑页面集合,用二元函数 W(t, △) 表示;随时刻t变化,集合也在变化。 | W(t, △) |表示集合大小,即页面数目。(一段时间内访问的页面集合)

常驻集:一个进程p在当前时刻t实际驻留在内存中(物理页面)的页面集合。(某时刻访问的页面集合)
常驻集 <= 工作集。

缺页率:“缺页次数” / “内存访问次数”,影响因素:

页面置换算法

分配的物理页帧数(常驻集大小)

页面本身大小

编写的程序(是否符合局部性)

4.5.9 工作集页面置换算法

基本思路:类似LRU最久未用被淘汰,但不同的是触发事件不同,当时刻改变时(而非缺页时)就会清理物理页面,准备物理页帧。

例图:

image

4.5.10 缺页率页面置换算法(PFF)

基本思路:在工作集页面置换算法基础上,动态改变时刻窗口(△)大小,即常驻集大小。当缺页率上升时,提高常驻集大小,反之减少。(淘汰的触发时间是缺页时,一次可能淘汰多个页面)

评价:性能好,开销大。

例图:

image

4.5.11 抖动问题

什么是抖动?
当分配的常驻集小于工作集,使进程产生很多缺页中断,频繁进行换进换出,从而使运行速度变慢的现象叫做抖动问题。

产生原因?
随着驻留内存中应用的增加,分配给每个应用的物理页帧(常驻集)持续减少,缺页率随之提高。所以OS要选择运行适当的进程数量,及每个进程所需页帧数,使并发水平和缺页率达到一定平衡。

五、进程管理 5.1 进程描述(静) 5.1.1 进程的定义

一个具有一定独立功能的程序在一个数据集合上的一次动态执行。(将程序加载到内存并运行的过程)

5.1.2 进程的组成

程序代码

程序处理的数据

运行指令的计数器

一组通用的寄存器中保存的当前值,堆、栈、、、

一组系统资源(打开的文件,连接的服务)

5.1.3 程序和进程的关系

程序是产生进程的基础。(程序是永久的,是类模板;进程是临时的,是实例)

进程是程序运行的体现。(程序是静态的、进程是动态的)

每次运行相同程序会产生不同的进程。(进程号,输入数据,启动时间)

程序的一次运行可能产生多个进程。(相互依赖和调用)

graph LR A>程序] -.-> B[食谱] C>CPU] -.-> D[厨师] E>数据] -.-> F[原料] G>进程] -.-> H[制作蛋糕] B ==> D F ==> D D ==> H 5.1.4 进程的特点

动态性:动态创建,终止进程

并发:看上去多个进程同时执行

并行:真的在同时执行

独立性:非共享情况下,不同进程工作不互相影响(页表的功劳)

制约性:多个进程同时访问共享数据或同步是相互制约

5.1.5 进程控制结构 进程控制块

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywswg.html