Linux复习之内存部分

1、操作系统内存管理模块

1. 内存管理方案
        分区
        分页
        分段
        伙伴系统
        段页式
        交换分区
  1)分区:程序加载时,将程序整体加载到一块分区上;
          固定分区: 内存碎片(大小相等/不等的固定分区)
          动态分区:外部碎片
  2)分页:类似于大小相等的固定分区,
           系统初始化时,将内存划分为大小相等的页帧(4K),程序在磁盘上的存储也是按照4K的页面进行存储,
           程序加载时,操作系统为每一个进程维护一个页表; 一个进程可以不连续的在内存上占据多个页帧;
  3)分段:程序加载时,根据程序的段,将程序加载到内存上,
           操作系统为每一个进程维护一个段表, 一个进程可以不连续的在内存上占据多个段;
           每个页帧的大小是固定的,而每个段是根据程序的段分大小,大小不固定;
  4)伙伴系统:分配时,根据请求的大小将内存空间不断的折半,直到以最小的空间分配给请求的进程,
              回收空间时,如果左或右有和他相等的空闲区块,则合并为一个大的区块(不是一次合并)二叉树
  5)交换分区:(在磁盘上扩展的内存空间)
              在磁盘上开辟一块空间以管理内存的方式管理这块磁盘空间,作为对内存的补充;
                 在内存空间不足时,才将内存上的部分数据交换(MMU)到交换分区上,
                  1.可以在内存上驻留更多的进程;
                  2.可以执行比内存大的进程;

2、x86下的地址映射

 1.实地址模式
     8085:8位芯片,16的地址总线,64K,在芯片中集成16位的汇编指令;
     8086:16位芯片,20位的地址总线,1M;
     80386:32位CPU;
     
     
     DS  CS  SS(ES)  16位寄存器基地址
     权限: 00 最高权限      
            11 最低权限
     13位:下标,段选择子
     系统初始12页,  8180
     每个段的大小必须是16的倍数,段基址也就是16的倍数,2进程数据上,后四位肯定为0;
     16位的IP寄存器,偏移量,段的大小  16byte --64k
     实模式下的地址映射:
     DS << 4   +               IP         =  物理地址
      段基址       逻辑地址/偏移地址/偏移量
       IPE:32位寄存器
       GDTR:全局段描述符表寄存器;
       GDT:全局段描述符表:段基址,段大小,权限;
       20段大小:2^20 = 1M
       G: 0 字节  1M ,
           1 页面   4K * 1M = 4G
       LDTR:局部段描述符表寄存器;
       LDT:局部段描述符表;

2.保护地址模式
GDTR[DS>>3].BaseAddr + IPE(IPE<Length)  ==  线程地址-->
        段基址             逻辑地址
                        分段的地址映射
 CRO未开分页机制-->物理地址
 CRO开启了分页机制-->虚拟地址  -- 2级页面映射-- 物理地址
                              分页的地址映射
 虚拟地址:10        10        12
         下标       下标     偏移量
        PD页目录    PT页表  
        (4G/4K = 2^20)
    P位:0:则对应的页面不在物理内存上,触发缺页中断,然后MMU模块将页面置换到内存上;
         1:则在物理内存上;
    M位:0:数据未被修改;
         1:数据被修改了;
   (MMU:内存管理单元的简称,作用:地址翻译、内存保护)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值