操作系统学习02

  1. 非连续内存分配:分页(主流方式),分页地址空间与分页寻址方案
    分页与分段的区别:段的大小可变,页大小不变
    建立方案,转换逻辑地址为物理地址(Pages to frames):页表,MMU/TLB
    帧(物理内存)划分物理内存至固定大小的帧(大小是2的次幂):帧号+帧内偏移在这里插入图片描述 地址计算的实例:
    在这里插入图片描述
    页(逻辑内存)划分逻辑地址空间至相同大小的页:
    页内偏移的大小=帧内偏移的大小
    在这里插入图片描述
    页寻址机制:页表由操作系统提前建立在这里插入图片描述
    在这里插入图片描述

  2. 页表概述、TLB(转换后备缓冲区)
    resident bit为0则相应的物理内存不存在,为1则对应的物理帧存在(因为不是所有页都有对应的帧)
    在这里插入图片描述
    分页机制的性能问题:
    访问一个内存单元需要两次内存访问:一次获取页表项,一次用于访问数据。
    页表可能非常大:64位的机器,每页1024字节,一个页表会很大
    因为很大,页表不能放在CPU当中,而放在内存中。

     处理方法:
     	缓存(caching)
     	间接(Indirection)访问
    
     缓存:TLB(Translation Look——aside Buffer)
     	缓存近期访问的页帧转换项。TLB使用associative memory实现,有快速访问的性能。如果TLB命中,物理页号可以很快被获取,如果未命中,对应的表项被更新到TLB中。TLB在CPU中
     	![在这里插入图片描述](https://img-blog.csdnimg.cn/680e1c456409409b9fa9ed89e2d53fc2.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56a55rSL5Y2a,size_20,color_FFFFFF,t_70,g_se,x_16)
    
  3. 非连续内存分配:页表:二级,多级页表
    二级页表:
    一级页表存放的是以及页表的起始地址,二级页表存放帧地址。
    这种方式使得不存在映射关系的页表项不需要占用内存值(若一级中不存在(resident bit==0)则二级不需要保留空间)
    在这里插入图片描述
    多级页表:
    时间换空间,时间开销增大,空间开销减小。
    时间开销可以通过之前的TLB机制缓解。

在这里插入图片描述

  1. 非连续内存分配:页表:反向页表
    大地址空间问题:前向映射页表变得繁琐。
    不是让页表与逻辑地址空间的大小相对应,而是让页表与物理地址空间的大小相对应。逻辑(虚拟)地址空间增长速度快于物理地址空间。

    基于页寄存器(Page Registers)的方案:消耗内存很小
    在这里插入图片描述
    在这里插入图片描述
    基于关联内存(associative memory)的方案:
    在这里插入图片描述
    基于哈希(hash)查找的方案:
    在这里插入图片描述

  2. 虚拟内存:
    虚拟内存的起因
    理想中的存储器:更大、更快、更便宜的非易失性储存器
    实际上的存储器:在这里插入图片描述
    程序只能在内存中执行,那么我们希望能想办法利用到磁盘的空间。

    5.1. 覆盖技术:
    在较小的可用内存中运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。
    原理:在这里插入图片描述
    例子:
    将没有相互调用关系的BC放在同一个分区在这里插入图片描述
    在这里插入图片描述只用了100k,比上图要更高效。

    缺点:
    由程序员来把大的程序划分为若干个小的功能块,并确定各模块的覆盖关系,费时费力;覆盖模块从外存装入内存,实际上是以时间延长来换取空间节省

    5.2. 交换技术:
    目标:多道程序在内存中时,让正在运行的程序或者需要运行的程序获得更多资源。
    方法:可将暂时不能运行的程序送到外存,从而获得空闲内存空间;操作系统把一个进程的整个地址空间的内容保存到外存中,而将外存中的某个进程的地址空间读到内存中。换入换出内容大小为整个程序的地址空间。
    问题:
    1. 交换时机的确定:因为交换会产生很多额外开销。只有当内存不够或者有不够危险时换出
    2. 交换区的大小:必须足够大以存放所有用户进程的所有内存映射像的拷贝,必须能对这些内存映像进行直接存取。
    3. 程序换入时的重定位:换出后再换入不一定在同一处地方。要采用动态地址映射的方法

     覆盖与交换的比较:
     ![在这里插入图片描述](https://img-blog.csdnimg.cn/f6706635ef5147a49e0615be8381445c.png)
    

    5.3. 虚存技术:
    目标:在这里插入图片描述
    程序的局部性原理:程序在执行过程中的一个较短时间,所指向的指令地址和指令的操作数地址,分别局限于一定的区域,表现为:
    时间局部性:一条指令的一次执行和下次执行,一个数据的一次访问和下次访问一个集中在一个较短的时间内
    空间局部性:当前指令和邻近的几条指令,当前访问的数据和邻近的及格数据应该集中在一个较小的区域内。
    程序的局部性原理时实现虚拟内存技术的前提。

    虚存技术基本概念:在页式或者段式内存管理的基础上实现:
    在这里插入图片描述
    虚存技术基本特征
    在这里插入图片描述

虚拟页式内存管理:

在这里插入图片描述
在这里插入图片描述
页表表项:
在这里插入图片描述
后备存储:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值