zoukankan      html  css  js  c++  java
  • 计算机操作系统学习笔记(2)

    连续内存分配:压缩式与交换式碎片整理

    • 压缩式碎片整理:调整内存中程序的位置
    • 交换式碎片整理:从主存放入硬盘

    非连续内存空间份分配

    优点:

    • 支持共享代码和数据
    • 支持动态加载和动态链接
    • 更好内存利用和管理
    • 一个程序物理地址空间是飞连续的

    缺点:

    • 虚拟内存与物理内存转换的开销(硬件方法、软件方法)

    两种硬件方案

    • 分段
      段号+段内地址

    • 分页
      划分物理内存至固定大小的帧:帧号+帧内偏移
      划分逻辑地址空间至相同大小的页
      建立页表快表

    • 页寻址机制:

    1. 页映射到帧
    2. 页是连续的虚拟内存
    3. 帧是非连续的物理内存
    4. 不是所有的页都有对应的帧

    物理地址计算:

    逻辑地址计算:

    地址转换实例:

    TLB快表

    缓存近期访问的页帧转换表项

    • TLB使用关联内存实现,具备访问性能
    • 如果TLB命中,物理页号可以很快被获取
    • 如果TLB未命中,对应的表项被更新到TLB中

    多级页表:

    • 将逻辑地址分块,每块对应二级页表
    • 同样推广出多级页表
    • 优点:逻辑地址对应的物理地址不存在的话不必占用空间
    • 缺点:时间换空间,查找效率低,但由于TLB存在可以一定程度缓解

    反向页表

    • 只与物理内存大小相关,与逻辑地址大小无关
    • 与页表相反,物理地址帧号作为索引,逻辑地址页号作为值

    虚拟内存

    覆盖技术:

    DOS时程序内存不足常采用技术

    • 将程序必要或常用部分代码或数据常驻内存
    • 可选部分或不常用部分放在特他程序模块,平时放在外存中需要时才装入内存
    • 不存在调用关系的模块不必同事装入内存

    交换技术:

    操作系统透明完成,以程序为单位

    虚存技术:

    像覆盖技术一样,不是把程序所有内容都放入内存,但由操作系统来完成无需程序员干涉
    像交换技术一样,由操作系统自动进行内存外存数据交换

    程序的局部性原理:

    • 时间局部性:一条指令的一次执行和下一次执行,一个数据的一次访问和下一次访问都集中在一个较短的时间时期内
    • 空间局部性:当前指令和邻近的几条指令,当前访问的数据和邻近的几个数据都集中在一个较小的区域内

    程序的局部性可以使操作系统虚存的效果更好

    缺页异常:

    当程序访问已转入外存的内存数据时会产生却也异常,将通知操作系统导入内存并重新执行

    虚拟内存基本特征:

    • 大的用户空间
    • 部分交换
    • 不连续性

    虚拟页式内存管理

    • 驻留位:表示该页是在内存还是在外存,1表示在内存,0表示在外存
    • 保护位:表示允许对该页做何种类型访问,只读 可读写 可执行等
    • 修改位:表示此页在内存中是否被修改过,被写(修改)过置1,被写过表示内存与虚存不同,决定是否被倒回硬盘虚存
    • 访问位:如果该页面是否被访问过,包括读和写操作,用于页面置换算法


    平均访问时间:

  • 相关阅读:
    C++高精度乘法
    经典的7种排序算法 原理C++实现
    c++ STL
    二分查找c++
    洛谷P1111 修复公路
    01背包写法
    c++编码规范
    github教程
    windows10锁定屏幕聚焦图片导出
    week 6 Spring history and design philosophy
  • 原文地址:https://www.cnblogs.com/zbqhc/p/7568619.html
Copyright © 2011-2022 走看看