zoukankan      html  css  js  c++  java
  • 操作系统Day1地址空间与地址生成

    1.地址空间
    分成(1)物理地址空间 (2)逻辑地址空间
    二者之间的关系:
    *逻辑地址空间的生成:程序——》汇编--》linker——》loader
    *物理地址的生成:内存的逻辑地址空间会有一个到物理地址的映射,cpu的mmu表示了一个逻辑地址对应的物理地址,操作系统最重要的功能使在其中做了一个对应地址的安全检测。

    **连续内存的分配
    内存碎片问题 (1)外部碎片 (2)内部碎片
    内存分配算法:(1)首次适配 (2)最优适配 (3)最差适配
    (1)首次适配:按地址排序的空间列表,容易产生外部碎片
    (2)最优适配算法:选择差值最小的空闲块,容易产生很多没使用的微小碎片。
    (3) 最差分配算法,选择差值最大的空闲块,破碎了大块的空闲块以至于无法被分配

    **进一步处理使得内存碎片消失的办法
    (1)压缩碎片整理:重置所有程序以合并空块,要求所有的程序是动态可以重置的,缺陷:重复拷贝,内存开销比较大
    (2)交换式碎片整理:抢占等待的程序


    **非连续物理内存的分配
    (1)分段
    (2)分页
    (3)页表
    连续内存分配的缺点:
    (1)内存利用率低
    (2)有外碎片和内碎片对的问题
    非连续内存的分配优点:
    (1)允许共享代码和数据
    (2)支持动态链接和动态加载
    缺点:从虚拟内存到物理地址之间转换的开销比较大

    分段:(1)分段的寻址 (2)如何实现寻址
    分段:分割成堆、栈、程序数据、库
    分段寻址对方案: 段号+偏移(cpu MMU进行寻址)

  • 相关阅读:
    一天进步一点点
    Flask
    Sqlalchemy 设置表编码及引擎
    threading.local
    xshell配置密码公钥登录
    linux 系统优化+定时任务
    linux命令
    xshell连接及优化
    linux前奏
    Vue Devtools--vue调式工具
  • 原文地址:https://www.cnblogs.com/malixian/p/8858974.html
Copyright © 2011-2022 走看看