地址空间和地址生成

Posted 豆子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了地址空间和地址生成相关的知识,希望对你有一定的参考价值。

地址空间和地址生成

内容摘要

  • 地址空间 & 地址生成

  • 地址生成

  • 地址检查

一、地址空间定义

    • 物理地址空间 -- 硬件支持的地址空间

      • 起始地址0,直到?

    • 逻辑地址空间 -- 在CPU运行的进程看到的地址

      • 起始地址0,直到?

二、逻辑地址生成

  • 地址生成时机和限制

    • 编译时

      • 假设起始地址已知

      • 如果起始地址改变,必须重新编译

    • 加载时

      • 编译时起始位置未知,编译器需生成可重新定位的代码(relocatable code)

      • 加载时,生成绝对地址

    • 执行时

      • 执行时代码可移动

      • 需地址转换(映射)硬件支持

  • 地址生成过程

    • CPU

      • ALU : 需要逻辑地址的内存内容

      • MMU: 进行逻辑地址和物理地址的转换

      • CPU控制逻辑: 给总线发送物理地址请求

    • 内存 (识别总线上的地址和控制信号)

      根据控制型号决定读还是写

      • 发送物理地址的内存给CPU

      • 或接收CPU数据到物理地址

    • 操作系统

      • 建立逻辑地址LA和物理地址PA的映射

  • 地址检查

    • 每次访问时,检查你的段的长度和偏移量

      • no : 内存异常

      • yes: 加段长度寄存器 -> 对应的段基址

 

以上是关于地址空间和地址生成的主要内容,如果未能解决你的问题,请参考以下文章

操作系统Day1地址空间与地址生成

操作系统学习

内核逻辑地址空间、内核虚拟地址空间和用户虚拟地址空间有啥区别?

new和delete

何时创建逻辑地址?

物理内存管理:连续内存分配