栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

5.0 linux内存管理-内存映射

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

5.0 linux内存管理-内存映射

1. 信息

linux 0.11

2. 目的
    了解内存的管理机制了解虚拟内存和物理内存的映射方式了解操作系统内存和磁盘的交互(分页机制->缺页重读机制,用时拷贝机制)应用程序如何搞笑使用内存和高级程序的设计方式
3. linux系统中内存映射图

linux 0.11 默认支持16M

虚拟盘:用来模拟磁盘

4. 专有名词

逻辑地址:程序员看到的地址,linux操作系统分配给每一个进程的独立地址(例如0.11中每个进程认为的自己的空间 64M的地址)
线性地址:总线地址ARM CPU采用分段机制(线性地址 = 逻辑地址 + 段基地址)
物理地址:CPU总线的物理地址

虚拟地址:每个进程的分配空间。虚拟地址中具体的地址是逻辑地址
内存管理 来进行逻辑地址–>物理内存 之间的映射
虚拟内存优点:

可以分配超过实际内存大小的空间可以把离散的内存映射成一个连续的空间给虚拟内存来使用 5. 内存映射

虚拟内存如何映射到物理内存的方式:分段,分页

5.1 分段机制

GDT:全局描述符。 系统中有一个
LDT:具体描述符。每个进程有一个

逻辑地址是段内的偏移,段基地址没每个段的起始地址。 段基址 + 逻辑地址 得到线性地址

GDT一块256项 减去 4段内核的 = 252项 (则最大进程数为 252 / 2 = 126个)
一个进程的分配的虚拟地址为64M。则可分最大空间64M* 126 = 8G
但是0.11 内核规定最大进行为64个进程 则可以分别的最大空间64M * 64 = 4G

则每个进程(pid)的线性地址 pid * 64 到 (pid + 1) * 64

分段机制:逻辑地址 -> 线程地址 的映射
分页机制:线性地址 -> 物理内存 的映射

5.2 分页机制

页目录表:一级页表
页表:二级页表

下图中每个内存页是4K

线程地址变换示意图
页目录项 1024 项 为 2 ^10 所以占10位 (31 - 22)
每个页表项也是1024 项,也占10位 (21 - 12)
每个页占4K 4096 占 12位 (11 - 0)

在操作系统中有多个页目录项,但是当前使用的只有一个,并且这个页目录表存储地址在CR3寄存器中。
表在head.S 中被创建

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/718323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号