内存管理
2016-05-28 13:11:02 10 举报
AI智能生成
登录查看完整内容
为你推荐
查看更多
关于操作系统“内存管理"部分的思维导图。
作者其他创作
大纲/内容
\u00A0虚拟内存/内存管理
\u00A0需求
\u00A0\u00A0重定位:进程换出后换入内存可以位于内存的任何位置
\u00A0保护: 其它进程不能未经授权访问其它进程的内存空间.
\u00A0由处理器实现
\u00A0共享: \u00A0多个进程共享内存区域.
\u00A0物理组织: \u00A0存储管理的本质:os负责在内外存之间信息流的组织和交换.
\u00A0内存分区
固定分区:
\u00A01:程序过大需要覆盖技术
\u00A02:内存利用率低
\u00A03:会产生内部碎片
动态分区:分区长度和数目可变
\u00A0会产生外部碎片
\u00A0可以用压缩解决:耗时
\u00A0放置算法:best-fit; first-fit(效果较好); next-fit
\u00A0伙伴系统
1:利用二分法找到大小最接近的内存快.
\u00A0重定位:
\u00A0相对地址: 相对于某些已知点
\u00A0物理地址
\u00A0加载
\u00A0库例可被合并到程序中或作为运行时提供给程序的共享代码
\u00A0绝对加载:总是加载到内存同一位置
\u00A0可重定位加载:所有内存访问以相对地址表示.
\u00A0动态运行时加载:在一个指令被运行时再计算绝对地址;以便于虚拟地址方案中的换入换出.
\u00A0链接
\u00A0将多个目标模块组织成一个加载模块.
动态链接:
静态链接
\u00A0页框:内存中一个固定长度的块
\u00A0页表:OS为每个进程维护一个页表.包含:页和页框的对应关系.\u00A0
\u00A0逻辑地址=页号+偏移量
\u00A0逻辑地址 = 段号+偏移量
\u00A0段表:包含起始地址和段的长度
\u00A0可以作为组织程序和数据的一种手段.
\u00A0安全问题
\u00A0缓冲区溢出攻击:数据超过缓冲区容量会覆盖内存中其它部分的数据
虚拟内存
\u00A0大小受到计算机系统寻址机制和可备用内存量的限制.
硬件和控制结构
常驻集: 一个进程运行时只需要部分在内存中.
\u00A0在内存中保留更多的进程
\u00A0进程可以比比内存的全部还大
\u00A0系统抖动:cpu大部分时间用于数据交换而非指令运行
\u00A0推测将来可能用到的页
\u00A0局部性原理
\u00A0空间局部性:
\u00A0时间局部性
\u00A0分页
\u00A0倒排页表
\u00A0TLB转换检测缓冲区:包含最近使用过的页表项
页尺寸:太小以为更大的页表;太大成为了固定分区。可以使用多种尺寸。
页尺寸影响缺页中断发生概率
\u00A0分段
大小不等,动态。--〉 可以简化对不断增长的数据结构的处理等。
\u00A0有助于实现保护和共享机制。因为基址寄存器和界限寄存器。
\u00A0段页式
\u00A0用户地址空间被划分为多个段,每个段又被分为多个页。
\u00A0每个段使用一个页表
\u00A0OS软件
\u00A0原则:尽量减少缺页中断。因为缺页中断带来大量开销。(如IO)
措施
\u00A0读取策略:确定一页何时读入内存
\u00A0请求分页:用时在取
\u00A0预先分页:一次读取多个连续页
\u00A0放置策略。由于逻辑地址,所以放哪都一样。
\u00A0置换策略:换出哪一页
\u00A0目的:换出最近最不可能用到的页---据局部性原理
\u00A0页框锁定:被锁定的页框无法置换
各种方法
\u00A0最佳(无法实现,作为衡量标准): 选择下次访问距当前最远的页。
\u00A0LRU最近最少使用:换掉上次使用距当前最远的页
\u00A0先进先出:循环队列(效果差)
\u00A0时钟策略:在FIFO的基础上给每个页框关联一个“使用位”
\u00A0页缓冲
\u00A0被置换出的页分配到空闲页链表和修改页链表
\u00A0被置换的页仍在内存中。
\u00A0如:在内存中开辟一个缓冲区,暂时存放被置换的页。
\u00A0驻留集管理
\u00A0分配策略
\u00A0固定分配策略:给每个进程初始分配固定数量页框
\u00A0缺页中断时,只能置换资金及的页
\u00A0可变分配策略:允许一个进程的页框数在其lifetime中变化
\u00A0OS需要评估该进程的行为
\u00A0置换范围
\u00A0局部:只能换自己的
\u00A0全局:非加锁的都能换。实现简单,开销小
\u00A03种组合
\u00A0固定局部:缺页率高(分配框数多)或进程数少(分配框数少)。
\u00A0可变全局:难点:置换的选择。解决:使用页缓冲。
\u00A0可变,局部
\u00A0:不时地评估进程的页框分配情况,增加或减少其页框数。
\u00A0评估策略:关键在于确定其驻留集大小的原则和驻留集大小变化的时间安排
\u00A0工作集策略:时间通过内存访问来衡量
\u00A0W(t,derta):表示该进程在过去个derta个虚拟时间单位中“被访问到的页的集合”
\u00A0工作集指导驻留集
\u00A0通过监视缺页率来指导。如缺页中断频率算法
\u00A0清除策略:确定何时将一个被修改过的页写回辅存。
\u00A0请求式清除:被置换时写回。
\u00A0预约式清除:多个页在需要被置换时成匹写回。
\u00A0这两种策略单独使用都不好。最好结合页缓冲使用。
\u00A0加载控制:影响系统并发度:影响内存中驻留的进程数目
\u00A0工作集或PFF; L=S准则。
\u00A0一种全局策略。根据时钟算法的指针扫描速度反映系统当前的并发度的好坏。
0 条评论
回复 删除
下一页