五、操作系统之存储管理
2017-09-11 13:47
316 查看
五、存储管理
![](http://upload-images.jianshu.io/upload_images/2015908-91c6ddc51ad3d534.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
存储管理的功能
![](http://upload-images.jianshu.io/upload_images/2015908-97453f3723416142.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
存储分配的方式
![](http://upload-images.jianshu.io/upload_images/2015908-e1cc6fdae1a34bec.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
重定位(地址映射):在可执行文件装入时需要解决可执行文件中地址(包含指令和数据的地址)和内存地址的对应。
1.
![](http://upload-images.jianshu.io/upload_images/2015908-d8822c498fc6e0cc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2.
![](http://upload-images.jianshu.io/upload_images/2015908-fbfbdc615eaf9977.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3.
![](http://upload-images.jianshu.io/upload_images/2015908-184098b9cb0abfb4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
内存信息的共享和保护
1.
![](http://upload-images.jianshu.io/upload_images/2015908-72551ad6e4bf0ef4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 界限保护:
![](http://upload-images.jianshu.io/upload_images/2015908-d87283ac46c4d163.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 访问方式保护:
![](http://upload-images.jianshu.io/upload_images/2015908-241eb81a57ab2393.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
虚拟存储器:为用户提供一种不受物理存储器结构和容量限制的存储技术。
1. 使得用户编程时不需要考虑物理内存的结构和容量;每个进程都拥有自己的虚存,且虚存大小不受实际物理存储器的限制。
2. 虚拟存储器的物质基础:两级存储结构(内存和外存);地址变换机构(实现逻辑地址到物理地址的转换)。
3. 虚拟存储器的原理:
![](http://upload-images.jianshu.io/upload_images/2015908-ec6ec064be4fb890.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 根据地址空间结构的不同将虚拟存储技术分为三类:页式管理;段式管理;段页式管理。
内外存数据传输的控制
![](http://upload-images.jianshu.io/upload_images/2015908-c56b1bedf817cbed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
1. 覆盖:
![](http://upload-images.jianshu.io/upload_images/2015908-4dfe055e297986d1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 交换:
![](http://upload-images.jianshu.io/upload_images/2015908-1c6c89e1910b33b7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 虚拟存储:
![](http://upload-images.jianshu.io/upload_images/2015908-292aac2ff39a4fe9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
分区存储管理
1. 原理:把内存分为一些大小相等或不等的分区,除操作系统占用一个分区外,其余分区用来存放进程的程序和数据。
![](http://upload-images.jianshu.io/upload_images/2015908-d828c88b518ccd2f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 分区管理——固定分区法:作业执行前把内存固定地划分区域。缺点:存在大量碎片,主存利用率低。
![](http://upload-images.jianshu.io/upload_images/2015908-a9d5a36ed3b19f09.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-4806cf24b7210c09.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 分区管理——动态分区法:在作业的处理过程中划分区域。
![](http://upload-images.jianshu.io/upload_images/2015908-bd2699aa88ca0289.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-d4277af24f46244e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 固定分区的分配与回收:存储管理程序根据请求表查询分 区说明表,从中找出一个满足要求的空闲分 区,并将其分配给申请者。
5. 动态分区的分配与回收:最先匹配法(按分区起始地址的递增次 序,从头查找,找到符合要求的第一个分区);最佳匹配法(按分区大小的递增次序, 查找,找到符合要求的第一个分区);最坏匹配法(按分区大小的递减次 序,从头查找,找到符合要求的第一个分区)。
![](http://upload-images.jianshu.io/upload_images/2015908-ef9e60fb45cc51f0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-e6ce6ac11b7dc883.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-c1639d1a5079c6c1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-58ed52d3d9c44da2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6. 分区存储管理的主要优缺点
![](http://upload-images.jianshu.io/upload_images/2015908-4d56d76164ac2314.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
页式存储管理
1. 基本原理
![](http://upload-images.jianshu.io/upload_images/2015908-11251874469d78c4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 逻辑地址的表示
![](http://upload-images.jianshu.io/upload_images/2015908-208c4afcb17cc9dd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 页表:页式存储管理的数据结构,它包括用户程序空间的页面与内存块的对应关系、页面的存储保护和存取控制方面的信息。
![](http://upload-images.jianshu.io/upload_images/2015908-2b99ddeef7801295.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-dfdcc69b8a59a352.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 页式地址映射
![](http://upload-images.jianshu.io/upload_images/2015908-bcee3141d06072cf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-af3d2ec271625683.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-b394f8895e2436f5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
请求页式存储管理——纯页式(静态)存储管理提高了内存的利用效 率,但并不为用户提供虚存。为此,提出了请求分页(动态)存储管理技术。
1. 实现思想:
![](http://upload-images.jianshu.io/upload_images/2015908-b3ffc53d4188904c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 请求分页要解决的问题:如何发现执行的程序或访问的数据不在内存;调入策略,程序或数据什么时候调入内存;淘汰策略,当一些页调入内存时,内存没有空闲内存,将淘汰哪些页。
3. 调入策略:
![](http://upload-images.jianshu.io/upload_images/2015908-258fd64f570c4895.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 淘汰策略的评价指标:缺页次数和缺页率(缺页率为缺页次数与总访问次数之比)。
5. 置换算法
![](http://upload-images.jianshu.io/upload_images/2015908-3120047fdc0f8f90.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-62ffc83c72d769ed.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-6f28893d003c8e28.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
当要完全实现LRU算法需花费巨大的系统开销(必须对每一个页面都设置有关的访问记录 项,而且每一次访问都必须更新这些记录)。实际系统中往往使用LRU的近似算法
![](http://upload-images.jianshu.io/upload_images/2015908-1dd3c06fa1b45622.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-ad9aed838cae8e99.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-6bafc5b6f54c2f41.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6. 存储保护
![](http://upload-images.jianshu.io/upload_images/2015908-55b9e87f265ba2d5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
7.
![](http://upload-images.jianshu.io/upload_images/2015908-c90dca96fa2d1b4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
段式存储管理——基本概念
1. 段式管理的由来
![](http://upload-images.jianshu.io/upload_images/2015908-798c435ad70a8452.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 分段
![](http://upload-images.jianshu.io/upload_images/2015908-3b6201e3442eca5d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 段式管理的程序地址结构
![](http://upload-images.jianshu.io/upload_images/2015908-20dd4a7954aa3536.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 段式管理的内存分配思想
![](http://upload-images.jianshu.io/upload_images/2015908-8dea79639aa4c837.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
5. 段表和段表地址寄存器
![](http://upload-images.jianshu.io/upload_images/2015908-b6f0547f30dfdba7.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-9aff5f9af467db13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6. 分页和分段的异同之处
![](http://upload-images.jianshu.io/upload_images/2015908-9deba52659e8d892.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
段式存储管理——实现原理
1. 段式管理的内存分配与释放
![](http://upload-images.jianshu.io/upload_images/2015908-6c05cd6c4fcf373a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 段式管理程序进行地址变换的步骤
![](http://upload-images.jianshu.io/upload_images/2015908-a2668dd1e696eb9f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 段的共享
![](http://upload-images.jianshu.io/upload_images/2015908-12397a1757aa407a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/2015908-e03526f752e43dd1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
段式存储管理——优缺点
1. 优点
![](http://upload-images.jianshu.io/upload_images/2015908-2dac8ee2c3eecbd2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 缺点
![](http://upload-images.jianshu.io/upload_images/2015908-b2ae921b856ebe19.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
段页式存储管理——基本概念
1. 段页式管理的基本思想
![](http://upload-images.jianshu.io/upload_images/2015908-3a56772cf9c1d89c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 等分内存:把整个内存分成大小相等的内存块(内存被划分成 若干个页),内存块从0开始依次编号。
3. 地址空间分段:把用户程序分成若干段,每段有段名。
4. 段内分页:段内页面的大小与内存块相同,每段都分别从0开始 依次编号。虚空间的最小单位是页而不是段,分段大小不再受内 存可用区的限制(每段所拥有的程序和数据在内存中 可以按页分开存放)。
5. 逻辑地址的构成
![](http://upload-images.jianshu.io/upload_images/2015908-b41501f4060ca798.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
6.
![](http://upload-images.jianshu.io/upload_images/2015908-974a37bcbcaa29fa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
各种存储方法比较
![](http://upload-images.jianshu.io/upload_images/2015908-174f8c94d5badc2c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
作者:龙猫小爷
链接:http://www.jianshu.com/p/a59fb35a3146
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐