第五讲 计算机体系结构 内存层次

总算搞完Lab1
1054453-20180502223948051-778110104.png
管理存储介质的东西
1054453-20180502224039547-300670616.png
cpu 内存 io 设备
1054453-20180502224057156-718528973.png
内存一次最小单位 8 bit
计算机 总线32bit

有大量的数据要读写,CPU内有高速缓存
内存层次,两级缓存

1054453-20180502224627311-112528791.png

1054453-20180502224645837-1266117889.png

操作系统的内存管理

内存 以字节为单位进行访问
磁盘 扇区编号 每一个扇区512 字节最小单位

1054453-20180502225007447-1360552066.png

1054453-20180502225034614-704108925.png

内存管理系统的要求
1054453-20180502225140044-1156891649.png
抽象,保护,共享,虚拟化

内存管理机制:
+ 重定位:(relocation)
+ 分段 : (segmentation)
+ 分页 : (paging)
+ 虚拟储存(virtual memory)
多数系统 按 需页式虚拟储存
1054453-20180502225728328-31149548.png

地址空间 & 地址生成

从写出来的符号 到总线上的物理地址

地址空间 :
物理地址空间 硬件支持的地址空间 起始是0 知道 MAXsys
逻辑地址空间 CPU运行时 进程看到的地址 0- MAX prog

逻辑地址根据方法转换成物理地址

逻辑地址的生成

1054453-20180502230445012-2124789238.png

编译时:
假设起始地址已知
如果起始地址改变,必须重新编译

加载时:
编译时起始位置位置,编译器徐生成可重定位的代码(reloctable code)
加载时,生成绝对地址

执行时:
执行时代码可移动
需地址转换(映射)硬件支持
1054453-20180502230713747-1333491901.png

地址的生成过程:

1054453-20180502230954629-602722082.png
逻辑地址到物理地址的传唤

地址检查

1054453-20180502231021183-830333391.png

1054453-20180502231145023-1692028005.png

连续内存分配

1054453-20180502231304901-1145061468.png

连续内存分配和内存碎片

1054453-20180502231511867-915676566.png

你要分配510字节 结果分配了512字节 剩下几个字节就是内碎片
取决于分配单元大小是否要取整。

动态分区分配
1054453-20180502231921737-1110088362.png

最先匹配策略

1054453-20180502231946445-42198223.png
1054453-20180502232000196-1733101161.png

空闲分区链表
First Fit Allocation
1054453-20180502232139029-268306311.png

Best Fit Allocation
1054453-20180502232231731-1735123414.png

1054453-20180502232433685-1150231757.png
合并还慢 因为要找地址临近 但是却是按照大小排序的

Wrost Fit Allocation
1054453-20180502232519218-1771160231.png

1054453-20180502232743956-729557148.png

碎片整理

1054453-20180503182518026-118208417.png
紧凑(ompaction)
碎片紧凑: 否有应用程序都是可以动态重定位
1054453-20180503182658846-1054124079.png

分区对换
Swapping in/out
对换到对换区内

1054453-20180503182836203-147055776.png

处于等待状态的程序搬到外存区
有一个对换区

1054453-20180503183006774-592750946.png
1054453-20180503183034230-1461599049.png

伙伴系统

1054453-20180503183211520-1024041854.png

伙伴系统的实现 Buddy System

整个可分配的分区大小 的策咯
1054453-20180503183416656-820961220.png

数据结构

空闲块的二维数组
第一维 由小到大 排成第一位
同大小就按地址排序

1054453-20180503183617527-1295192840.png
1054453-20180503184020208-1902674818.png

1054453-20180503184130450-388543061.png

u core 中的物理内存管理

1054453-20180503184246774-86952509.png

ucore 已经实现了

转载于:https://www.cnblogs.com/sfzyk/p/8983209.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值