🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
存储管理是操作系统中一个非常关键的组成部分,涉及到数据的存储、检索和管理。操作系统需要有效地管理不同类型的存储资源,包括主存(RAM)、辅助存储(如硬盘驱动器和固态硬盘)以及在某些情况下的网络存储。这一过程确保系统的高效运行和资源的最优利用。
主要目标和功能
存储管理的主要目标包括:
存储管理的主要技术
存储管理使用多种技术来实现其目标,包括:
实例:内存管理
考虑一个简单的分页系统,操作系统将程序的虚拟内存分成多个页面,这些页面可以独立地加载到物理内存的任何可用页面帧中。虚拟内存使得每个程序都认为自己在使用一个连续的内存块,而实际上它的各个部分可能散布在物理内存的不同位置。这种方法简化了内存管理,提高了内存的利用率,并允许使用更多的虚拟内存空间。
存储管理是确保操作系统稳定、高效运行的关键。随着技术的发展,存储管理的方法和技术也在不断进步,例如,现代系统中广泛使用的固态驱动器(SSD)提供了比传统硬盘更快的数据访问速度,这对存储管理策略产生了重大影响。操作系统必须不断地更新其存储管理技术,以充分利用这些新硬件的潜力。
页式存储是操作系统的一种存储管理方式。
因为我们的程序往往是远远大于内存的,所以程序在执行的时候,是不会一次性把所有内容都装入到
内存中,它会把程序分为若干个页,每个页固定大小,一般是4K,然后把这些页离散存入到内存中,
而内存是按块来划分的,所以就通过页表来进行映射程序中的页在内存中的块的存储;
逻辑地址是程序员在编写程序时使用的地址,它是由 CPU 生成的虚拟地址,逻辑地址并不一定对应物
理内存中的实际位置,而是由操作系统进行地址转换后才能访问物理内存。
物理地址是内存单元在物理内存中的实际位置。它是计算机硬件可以直接寻址的地址。
每个页分为页号和页内地址,页号用来和块号对应,代表存储的位置,大小可以代表页的数量,页内地址代表的是存储的数据内容,大小可以代表数据大小。
利用率高、碎片小(只在最后一个页中有)、分配及管理简单。缺点:增加了系统开销,可能产生抖动现象。
页面置换算法(Page Replacement Algorithm)是操作系统中用于解决内存管理中页面置换问题的一种方法。当内存不足时,操作系统需要选择一个页面将其从内存中置换出来,为新的页面腾出空间。
有时候,进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入物理块中执行完。
缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低。
常见的页面置换算法有以下几种:
页面置换算法 | 优点 | 缺点 |
---|---|---|
最优算法 (OPT) | 理论上的最佳效率,保证未来执行的页面都是即将访问的 | 无法实现,只用于比较其他算法的差距 |
先进先出算法 (FIFO) | 算法简单,易于实现 | 可能产生抖动现象,即页数越多,缺页率越高 |
最近最少使用算法 (LRU) | 基于局部性原理,效率高,不会产生抖动现象 | 需要维护额外的数据结构,计算量较大 |
不同的页面置换算法有各自的优缺点,适用于不同的场景。操作系统需要根据具体的应用需求和性能要求选择合适的页面置换算法。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。