前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】软考高级-架构设计师 018-存储管理(页式存储)

【愚公系列】软考高级-架构设计师 018-存储管理(页式存储)

原创
作者头像
愚公搬代码
发布2024-06-10 16:07:59
1060
发布2024-06-10 16:07:59
举报
文章被收录于专栏:愚公系列-考试考证

🏆 作者简介,愚公搬代码 🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。 🏆《近期荣誉》:2022年度博客之星TOP2,2023年度博客之星TOP2,2022年华为云十佳博主,2023年华为云十佳博主等。

🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。

🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

存储管理是操作系统中一个非常关键的组成部分,涉及到数据的存储、检索和管理。操作系统需要有效地管理不同类型的存储资源,包括主存(RAM)、辅助存储(如硬盘驱动器和固态硬盘)以及在某些情况下的网络存储。这一过程确保系统的高效运行和资源的最优利用。

主要目标和功能

存储管理的主要目标包括:

  1. 抽象化:为程序员提供简单且一致的视图来隐藏底层的硬件复杂性。
  2. 保护:确保一个进程的数据不会被其他进程非法访问。
  3. 共享:允许多个进程安全地共享存储资源。
  4. 虚拟化:提供比物理内存更大的地址空间,允许程序使用比实际可用内存更多的存储空间。
  5. 持久性:确保数据在电源关闭后仍然存在。

存储管理的主要技术

存储管理使用多种技术来实现其目标,包括:

  1. 内存管理
    • 连续内存分配:早期操作系统使用,如固定分区、可变分区。
    • 分页(Paging):将内存分割为固定大小的页,内存管理单元(MMU)将虚拟地址转换为物理地址。
    • 分段(Segmentation):将程序的不同部分分割为逻辑上的段,每个段都可以独立地被放置和保护。
  2. 虚拟内存
    • 通过使用磁盘作为额外的存储空间来扩展物理内存。
    • 使用页面置换算法,如最近最少使用(LRU)、先进先出(FIFO)等,来管理哪些数据应保留在内存中,哪些应被移至磁盘。
  3. 辅助存储管理
    • 管理硬盘和其他非易失性存储设备的数据。
    • 包括格式化、分区、文件系统实现等。
  4. 文件系统
    • 提供一个组织存储数据的方法,包括文件的创建、删除、读取和写入。
    • 实现文件的安全和保护,确保文件系统的完整性和可靠性。

实例:内存管理

考虑一个简单的分页系统,操作系统将程序的虚拟内存分成多个页面,这些页面可以独立地加载到物理内存的任何可用页面帧中。虚拟内存使得每个程序都认为自己在使用一个连续的内存块,而实际上它的各个部分可能散布在物理内存的不同位置。这种方法简化了内存管理,提高了内存的利用率,并允许使用更多的虚拟内存空间。

存储管理是确保操作系统稳定、高效运行的关键。随着技术的发展,存储管理的方法和技术也在不断进步,例如,现代系统中广泛使用的固态驱动器(SSD)提供了比传统硬盘更快的数据访问速度,这对存储管理策略产生了重大影响。操作系统必须不断地更新其存储管理技术,以充分利用这些新硬件的潜力。

🚀一、存储管理

🔎1.页式存储

🦋1.1 概念

页式存储是操作系统的一种存储管理方式。

因为我们的程序往往是远远大于内存的,所以程序在执行的时候,是不会一次性把所有内容都装入到

内存中,它会把程序分为若干个页,每个页固定大小,一般是4K,然后把这些页离散存入到内存中,

而内存是按块来划分的,所以就通过页表来进行映射程序中的页在内存中的块的存储;

逻辑地址是程序员在编写程序时使用的地址,它是由 CPU 生成的虚拟地址,逻辑地址并不一定对应物

理内存中的实际位置,而是由操作系统进行地址转换后才能访问物理内存。

物理地址是内存单元在物理内存中的实际位置。它是计算机硬件可以直接寻址的地址。

每个页分为页号和页内地址,页号用来和块号对应,代表存储的位置,大小可以代表页的数量,页内地址代表的是存储的数据内容,大小可以代表数据大小。

🦋1.2 优点

利用率高、碎片小(只在最后一个页中有)、分配及管理简单。缺点:增加了系统开销,可能产生抖动现象。

🦋1.3 练习

🔎2.页面置换算法

🦋2.1 概念

页面置换算法(Page Replacement Algorithm)是操作系统中用于解决内存管理中页面置换问题的一种方法。当内存不足时,操作系统需要选择一个页面将其从内存中置换出来,为新的页面腾出空间。

有时候,进程空间分为100个页面,而系统内存只有10个物理块,无法全部满足分配,就需要将马上要执行的页面先分配进去,而后根据算法进行淘汰,使100个页面能够按执行顺序调入物理块中执行完。

缺页表示需要执行的页不在内存物理块中,需要从外部调入内存,会增加执行时间,因此,缺页数越多,系统效率越低。

常见的页面置换算法有以下几种:

页面置换算法

优点

缺点

最优算法 (OPT)

理论上的最佳效率,保证未来执行的页面都是即将访问的

无法实现,只用于比较其他算法的差距

先进先出算法 (FIFO)

算法简单,易于实现

可能产生抖动现象,即页数越多,缺页率越高

最近最少使用算法 (LRU)

基于局部性原理,效率高,不会产生抖动现象

需要维护额外的数据结构,计算量较大

不同的页面置换算法有各自的优缺点,适用于不同的场景。操作系统需要根据具体的应用需求和性能要求选择合适的页面置换算法。

🦋2.2 练习


我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 🚀前言
  • 🚀一、存储管理
    • 🔎1.页式存储
      • 🦋1.1 概念
      • 🦋1.2 优点
      • 🦋1.3 练习
    • 🔎2.页面置换算法
      • 🦋2.1 概念
      • 🦋2.2 练习
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档