【操作系统】第三章 计算机体系结构及内存分层体系
计算机体系结构、内存分层体系
计算机体系结构



地址空间 & 地址生成
逻辑地址生成:
由应用程序对应的线程生成

指令有自己的逻辑地址,CPU在取指令的时候,会先查找指令的逻辑地址,CPU中的MMU中有一块区域表示了映射关系(逻辑地址 → 物理地址)。
- CPU 执行指令时,ALU需要指令的内容,CPU会发出带有逻辑地址的请求
- CPU中的MMU会查询映射表,从逻辑地址到物理地址的映射。如果没有查到,那么就会产生一个物理过程,去内存中Map去找对应的映射。
- 找到后,CPU的控制器会给主存发送一个请求,此时带有的是物理地址。
- 主存会将对应内容的内容通过总线传递给CPU。
- CPU接收到内容后,开始执行指令。
操作系统完成了逻辑地址到物理地址的映射关系,并且操作系统还会对地址范围进行限制,以保证每个程序可以访问的有效地址空间。

连续内存分配
内存碎片问题

分区的动态分配

第一适配、首次适配

从0地址开始找,如果当前空闲块比需求大,那么就直接分配。



最佳适配/最优适配算法


最差适配

压缩式碎片整理
紧致算法:把内存中的程序调整位置,把空闲内存块给合并为一个整体。


何时在内存中来转移程序?
可以程序阻塞的时候来完成。但这种频繁的内存中的复制是非常消耗时间的。
交换式碎片整理
把暂时在等待的程序所持有的内存数据转移到磁盘中。

把现在P3在执行并且需要更多内存,而对应的 P1、P2、P4在等待,这时可以把P4对应的内存数据转移到磁盘中,然后把转移而剩出的空闲块分配至P3。
问题:哪些程序做交换?后续课程会介绍。
