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

无人久伴 提交于 2020-12-29 05:23:17

总算搞完Lab1 管理存储介质的东西 cpu 内存 io 设备 内存一次最小单位 8 bit 计算机 总线32bit

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

##操作系统的内存管理## 内存 以字节为单位进行访问 磁盘 扇区编号 每一个扇区512 字节最小单位

内存管理系统的要求 抽象,保护,共享,虚拟化

内存管理机制: + 重定位:(relocation) + 分段 : (segmentation) + 分页 : (paging) + 虚拟储存(virtual memory) 多数系统 按 需页式虚拟储存 ##地址空间 & 地址生成## 从写出来的符号 到总线上的物理地址

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

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

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

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

执行时: 执行时代码可移动 需地址转换(映射)硬件支持

地址的生成过程:

逻辑地址到物理地址的传唤

##地址检查##

##连续内存分配## ###连续内存分配和内存碎片###

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

动态分区分配

###最先匹配策略###

空闲分区链表 First Fit Allocation

Best Fit Allocation

合并还慢 因为要找地址临近 但是却是按照大小排序的

Wrost Fit Allocation

##碎片整理## 紧凑(ompaction) 碎片紧凑: 否有应用程序都是可以动态重定位

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

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

##伙伴系统## ##伙伴系统的实现 Buddy System## 整个可分配的分区大小 的策咯 ##数据结构## 空闲块的二维数组 第一维 由小到大 排成第一位 同大小就按地址排序

##u core 中的物理内存管理##

ucore 已经实现了

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!