【我的笔记】内存管理(一)物理内存管理

1、

操作系统将物理内存抽象成一个字节数组,每个字节有一个物理地址。

根据物理地址可以访问到物理内存中的任意一个字节。

最小管理单位是字节,将物理上连续多个字节看成一个内存块,以块为单位分配、释放、回收物理内存。

操作系统的内核可以驻留在物理内存中,也可以驻留在 ROM 中。


2、Intel 系列的机器可以向 BIOS 查询物理地址空间的布局。(ARM 处理器没有 BIOS,但有其他机制)

BIOS 提供的 int 0x15 的 0xe820功能,可以获得一种内存布局表,由多个区间(开始地址、大小、属性)组成。

ucore 在 bootasn.S 中探测内存布局,将探测结果保存在物理内存 0x8000处。


3、BIOS 将系统的物理内存分为四大类:可用 RAM;保留 RAM,OS 不可用;ACPI 描述表使用;ACPI 非易失数据

物理内存管理只有可用 RAM 类。有些已经被引导程序、内核用掉了。

内核在内存中的开始位置是知道的,终止位置只有连接程序知道,可在连接脚本中定义,由连接程序提供。

连接脚本中 “.” 代表当前位置:var = . 该值便为连接程序确定的当前地址


4、内存管理的单位为内存块,内存块由多个物理上连续的字节组成。

描述内存块:位图、链表、数组等

最简单的物理内存管理方法是不管理,改进:分区管理(连续内存管理方法)

将内存划分为区,以区为单位分配内存,由使用者自己管理区内内存的使用。不允许跨区使用内存。

分区方法:静态分区法,动态分区法,伙伴算法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 14,185评论 2 33
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,818评论 9 468
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 如果八年一辈子,过了好几辈子了! 道理懂的越多,想明白的越少,能做到的更少。 认识的人越多,留在心里的越少。 话说...
    Sunny萍七阅读 1,118评论 2 1
  • 时光如流水,转眼间,初中的生活已过了一半,不知道自己是否满意现在的我,分析一下吧! 似乎在别人的眼里,我不认真吧,...
    铭豪阅读 2,828评论 0 0