操作系统二轮复习二(第3章续---非连续分配)

非连续分配管理方式

非连续分配管理方式,根据分区的大小是否固定,分为分页存储管理方式分段存储管理方式
分页存储管理方式中,根据是否需要把作业的所有页面都装入内存才能运行,分为基本分页存储管理方式请求分页存储管理方式
在这里插入图片描述

注意分页存储也有可能产生内部碎片,但是不会产生外部碎片

在这里插入图片描述

页表项连续存放,因此页号可以是隐含的,不占存储空间(类比数组)

在这里插入图片描述

在这里插入图片描述

基本地址变换机构

在这里插入图片描述
页表寄存器只需要有一个就行了!
在这里插入图片描述
在这里插入图片描述

快表(TLB)又称:相联存储器

主存中的页表称为慢表

在这里插入图片描述
在这里插入图片描述

多级页表

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

分段存储管理方式

在这里插入图片描述

  1. 先根据段号与段表寄存器的段表长度判断是否发生越界
  2. 没有越界,就用段表始址和段号确定这个段号在段表中相对应的段表项
  3. 找到了相应的段表项,由于每个段的长度不一样,因此用段长与段内偏移量(段内地址)进行对比,必须保证段内的偏移量没有尝过段长的长度
  4. 用基址与偏移量组合
    段表由段长和基址两部分组成
    每一个段表项长度相同!

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

段页式存储管理方式

在这里插入图片描述

一个进程对应一张段表,
每个段表项中存放页表长度(即这个页表中有几个页)和对应页表在内存中的起始地址
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

虚拟内存

在这里插入图片描述在基本分页系统中,将整个进程全部调入内存
而在请求分页系统中,只调入一部分

快表解决的是在整个程序都存放在内存中的情况下,为了实现逻辑地址与物理地址的映射,需要用到页表,而有些页面会频繁地被访问,所以设置快表。
二级页表也是同理,由于一个单独的页表可能会很大,需要多个物理块来保存,这时,就设计一张二级页表,只把二级页表保存到内存中,二级页表其实就是将一级页表中的页表项进行分组,组成一个新的二级页表。地址访问的时候,先访问二级页表,确定对应的一级页表的存放地址,再找到一级页表(个人认为,这些一级页表应该是存放在外出中的,需要的时候才将他们调入内存),再根据页号找到实际的物理地址

在这里插入图片描述注意:要使用虚拟存储技术,必须要用到缺页中断机构
在这里插入图片描述请求分页存储管理方式下的地址访问流程!
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

注意:请求分页存储管理方式中的页表(一定要看!!!!)

在这里插入图片描述

关于中断的总结

在这里插入图片描述在这里插入图片描述
对于一般的外中断,都是CPU执行完一条指令之后,也就是在指令周期的末尾才检查此时是否有外部中断信号需要处理
指令有单地址指令、双地址指令、三地址指令,比如双地址指令就是一条指令在执行过程中可能会访问两个不同的地址,如果两个地址属于不同的页面,并且都不在内存中,就会发生两次缺页中断

页面置换算法

贝拉迪异常!在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对于改进的时钟置换算法,只有第二轮需要将访问位置为0

  1. 第一轮:找最近未访问&未修改的页面
  2. 第二轮:找最近未访问,但是修改了的页面,并且将所有访问过的页面访问位由1置为0
  3. 第三轮:如果第1、2轮都没有找到,说明内存中的页面只有(1,0)和(1,1)两种状态。这时第三轮就应该找(0,0)【即原本访问过,但是为修改的】
  4. 找(0,1)【即原本访问过且被修改过的页面】
    在这里插入图片描述
    在这里插入图片描述

内存映射文件

在这里插入图片描述

在这里插入图片描述

如果没有内存映射文件
我们需要open打开这个文件,在这个open调用中,需要把文件的存储路径和目录信息传递进去,这个open调用会返回一个文件描述符。
接下来通过这个文件描述符就可以读or写这个文件,我们打开这个文件之后,会有一个读写指针指向文件的起始地址
如果我们要读一个文件,调用Read(fd,100B)【读fd这个文件,读100B】,那么在读完100个B后,读写指针就会移动到第101个字节处
如果要读取已经读过的文件内容,就需要用seek来找到这个地址,再通过read进行读
用传统的方式读写磁盘,写代码不方便,而且每一次读写都需要启动磁盘IO,
在这里插入图片描述

页面分配策略

在这里插入图片描述

页面的调入调出
在这里插入图片描述在这里插入图片描述不会被修改的文件直接地调入内存,换出时直接从内存扔掉即可,
在这里插入图片描述

工作集概念

驻留集和工作集的区别
在这里插入图片描述
驻留集大于工作集,当我们要淘汰一个页面的时候,可以选择淘汰一个不在工作集的页面
个人理解:工作集是面向进程的,驻留集是面向内存块的

抖动

工作集可以处理抖动现象在这里插入图片描述增加交换区的容量,只会加快页面换入换出的速度,但是不能解决抖动问题
在这里插入图片描述

在这里插入图片描述

注意:

  1. 没有固定分配全局置换,因为如果置换了其他进程的空闲页面,那么其他进程总的页面就会变少,那么就不是固定分配了
  2. 可变分配局部置换:发生缺页中断时,优先进行局部置换,若是频繁缺页,就为该进程多分配物理块
  3. 可变分配全局置换:发生缺页中断时,优先给进程分配空闲的物理块,空闲块用完之后,才选择进行全局置换

虚拟存储器性能的影响因素及改进方式

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sparky*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值