操作系统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进行寻址)