内存管理---非连续存储分配
来源:互联网 发布:知乎客服电话是多少 编辑:程序博客网 时间:2024/05/22 06:25
连续分配缺点:必须连续,外碎片和内碎片,动态修改困难,内存利用效率低。
非连续目标:调高内存利用率和管理灵活性
(1)允许程序使用非连续地址空间
(2)允许共享代码与数据
(3)支持动态加载和动态链接
方法:段式存储管理(segmentation):同一段在内存中是连续的,段之间可以不连续。页式存储管理(paging):页与页之间是不连续的。
段式存储管理:进程的段地址空间由多个段组成,包括 主代码段,子模块 代码段,公用库代码段,堆栈段(stack),堆数据(heap),初始化数据段,符号表等。实现更好的分离与共享。
段的概念:表示访问方式和存储数据等属性相同的一段地址空间。
段访问:逻辑地址二元组(s,addr)表示 s—段号, addr—段内偏移
页式存储管理:页帧(帧—物理页面,frame,page frame)—把物理地址空间划分成大小相同的基本分配单元,2的n次幂,如512,4096,8192(机器比较好处理)。页面(页—逻辑页面,page):把逻辑地址空间划分成大小相同的基本分配单元。 注:帧和页的大小必须是相同的。
页面到页帧的转换:逻辑地址到物理地址的转换—–页表和MMU/TLB(存储管理单元/快表)。
帧:物理内存被划分成大小相等的帧,内存物理地址的表示:二元组(f,o) f–帧号(F位,共有2^F个帧),o—帧内偏移(S位,每帧有2^S字节)。物理地址 = f*2^S + o.
页:
页表结构:每一个进程都有一个页表—每一个页面对应一个页表项,随进程运行状态而动态变化,页表基址寄存器(PTBR)
页表项组成:帧号:f 和 页表项标志:存在位(resident bit),修改位(dirty bit),引用位(clock/reference bit)
问题:内存访问性能问题(访问两次内存–页表项和数据),页表大小问题。
解决:缓存(caching)—快表,间接访问(indirection)—多级页表,反置页表。
页寄存器和反置页表:让页表与物理地址空间的大小相对应。
页寄存器:每一帧与一个页寄存器关联,
- 内存管理---非连续存储分配
- 4.内存非连续分配管理方式
- 内存管理之非连续分配管理方式
- 操作系统之非连续分配存储管理方式
- linux内存管理之非连续物理地址分配(vmalloc
- linux内存管理之非连续物理地址分配(vmalloc)
- inux内存管理之非连续物理地址分配(vmalloc)
- 存储管理技术--连续分配
- linux高端内存管理之非连续内存区(分配和释放)
- 操作系统的学习(3)——物理内存管理:非连续内存分配
- 非连续内存区管理
- 内核非连续内存分配(Vmalloc)
- 【操作系统】连续分配存储管理方式
- 3.内存连续分配管理方式
- linux 高端内存页框管理:永久内核映射、临时内核映射以及非连续内存分配
- linux高端内存页框管理:永久内核映射、临时内核映射以及非连续内存分配
- 操作系统:存储管理技术:连续技术、非连续技术
- 操作系统--内存管理之连续分配管理方式
- pre标签中内容超出时换行
- python周期性定时器
- ==和equals的区别
- java中public,private,protect,default区别
- Keras笔记(一)关于Keras模型
- 内存管理---非连续存储分配
- java权限管理知识总结
- 判断某一年是否是闰年
- Java 用重载的一些建议
- POJ 2619 Delta-wave 笔记
- leetcode之Best Time to Buy and Sell Stock III 问题
- 2.SpringMVC_RequesMapping
- Linux下ffmpeg的安装过程
- Java面试-关于线程方面的知识迷惑