Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】软考中级-软件设计师 029-操作系统(段式存储和段页式存储)

【愚公系列】软考中级-软件设计师 029-操作系统(段式存储和段页式存储)

原创
作者头像
愚公搬代码
发布于 2024-02-10 03:23:28
发布于 2024-02-10 03:23:28
3720
举报

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

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

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

🚀前言

操作系统的存储管理是指操作系统对计算机内存的管理和分配。内存是计算机中用于存储程序和数据的部分,因此它的管理对于计算机的运行和性能至关重要。

操作系统的存储管理可以进行以下几个方面的工作:

1.内存分配:操作系统负责将可用的内存空间划分给正在运行的程序。常用的内存分配方法有分区分配和页式分配两种。在分区分配中,内存被划分为多个固定大小的分区,每个分区用于存储一个程序。在页式分配中,内存被划分为固定大小的页框,程序被划分为多个页,每个页可以被放置到不同的页框中。

2.内存保护:操作系统通过内存保护机制,防止程序越界访问其他程序或操作系统的内存空间。常用的内存保护方法有内存分段和内存分页两种。

3.内存回收:当一个程序完成运行或者被终止时,操作系统需要回收该程序占用的内存空间。回收内存的方法有释放分区和清除页框两种。

4.内存交换:当内存不足时,操作系统可以将部分不常用的程序或数据交换到磁盘上,以释放出更多的内存空间。这个过程称为内存交换。

5.虚拟内存:操作系统可以使用虚拟内存技术来扩展计算机的内存容量。虚拟内存将磁盘空间作为辅助存储器,将部分程序和数据存储在磁盘上,提供了比实际物理内存更大的地址空间。

🚀一、段式存储和段页式存储

🔎1.段式存储

段式存储是操作系统中的一种存储管理技术,它将程序的逻辑地址空间划分为多个不同大小的段,每个段包含了一组相关的逻辑地址。段式存储的主要目的是提供更灵活的内存分配和管理方式,以满足不同程序的需求。

在段式存储中,每个段都有自己的基址和长度信息。逻辑地址由两部分组成:段号和段内偏移量。段号用于标识所在的段,而段内偏移量用于表示在该段内的偏移位置。

段式存储的优点是:

  1. 灵活性:可以根据程序的需要划分不同大小的段,从而更好地适应各种程序的内存需求。
  2. 安全性:通过段的保护机制,可以限制程序对其他段的访问,从而提高系统的安全性。
  3. 共享性:可以实现段的共享,多个程序可以共享同一个段,减少内存占用。

然而,段式存储也存在一些问题:

  1. 内碎片:由于段的大小不一致,可能会导致某些段内部存在未被充分利用的空间,从而产生内碎片。
  2. 外碎片:由于段的分配和释放是离散进行的,可能会导致内存中存在大量不连续的空闲空间,从而产生外碎片。

🔎2.段页式存储

段页式存储是一种结合了段式存储和页式存储的存储管理方式,主要用于操作系统的存储管理。

在段页式存储中,内存被划分为若干个大小不等的段(Segment),每个段是一个逻辑上相关的程序或数据单元。而每个段又被划分为若干个大小相等的页(Page),每个页的大小是固定的。段和页都有一个唯一的标识符(Segment ID和Page ID),用于访问和管理。

段页式存储通过段表(Segment Table)和页表(Page Table)来实现地址映射。段表中存储了每个段的基地址(Base Address)和段限长(Segment Length),而页表中存储了每个页的物理地址(Physical Address)。在进行地址转换时,首先根据段表找到对应的段的基地址,然后再根据页表找到对应的页的物理地址。

段页式存储的优点是可以更好地管理和保护程序和数据,同时也更灵活地分配和共享内存。它可以将整个程序或数据分为多个段,每个段都可以有不同的访问权限和保护级别。同时,页式存储可以将每个段分为多个页,实现了分页和虚拟内存的管理,可以更高效地利用内存空间。


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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
封装方法,获取url地址上的参数
https://jiangsihan.cn/?id=123&name=hhh getQueryVariable(variable) { var query = window
江一铭
2022/06/17
1.5K0
封装方法,获取url地址上的参数
Js BOM
所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。
hss
2022/02/25
8690
N1BOOK-XSS的魔力writeup
需要在Linux系统上安装docker,参考前一篇文章kali Linux上安装docker。
Andromeda
2023/10/21
2320
N1BOOK-XSS的魔力writeup
盘点操作URL中常用的几个高效API
通常在实际项目中,无论操作数据、或是dom,我们需要熟悉一些浏览器的API,或是js原生给我们扩展的API,我们熟悉了这些API,某种意义上来说,一些高效的API和方法常常会解惑你项目中遇到的很多疑难杂症。
Maic
2022/07/28
1.1K0
盘点操作URL中常用的几个高效API
js获取URL参数
要在浏览器内访问查询的值,使用JavaScript,我们有一个特殊的API,称为URLSearchParam,它受到所有现代浏览器的支持:
IT工作者
2022/01/15
48.7K0
JavaScript 常用自定义功能函数
站长源码网 1. 获取url地址中的参数值 2. 验证手机号格式是否正确 1. 获取url地址中的参数值 ---- /** * 获取URL地址中的参数值 * 没有该参数时返回 false * 有参数时返回对应的参数值 */ function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i = 0; i < vars.le
很酷的站长
2023/01/16
3330
Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果
  使用Layui-admin做后台管理框架有很长的一段时间了,但是一直没有对框架内iframe菜单栏切换跳转做深入的了解。今天有一个这样的需求就是通过获取超链接中传递过来的跳转地址和对应的tabs的title名称参数,在layui-admin-iframe中自动打开一个新的tabs页面,不需要点击左边的菜单栏,实现一个单页面的效果。
追逐时光者
2020/06/19
5.4K0
Layui-admin-iframe通过页面链接直接在iframe内打开一个新的页面,实现单页面的效果
[javascript] js获取url中的get参数
调用数组的map函数 , map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
唯一Chat
2021/05/17
11.5K0
javascript获取url参数_正在获取网络参数一直不出来
在做项目过程中,经常会遇到获取URL参数的问题。每次都是百度一下,找许久才找到能用的方法。
全栈程序员站长
2022/09/20
5090
javascript获取url参数_正在获取网络参数一直不出来
301跳转
嗯对,爷不是换域名了吗 xiaolfeng.cn 。告别了 .xyz 的国际域名,转向 .cn 国内域名。 至于我为什么换域名呢,可能是因为 .cn 比 .xyz 高级(可能只是在国内是这样,国际上不一定) 反正我认为就行了,这是我的Blog~
筱锋xiao_lfeng
2022/03/16
1.9K0
301跳转
jquery get 参数转 json
在使用 jQuery 进行 AJAX 请求时,有时候我们需要将 GET 请求中的参数转换为 JSON 格式。这样可以更方便地处理参数,并与后端服务进行交互。本篇技术博客将介绍如何使用 jQuery 将 GET 请求参数转换为 JSON 格式。
大盘鸡拌面
2024/04/29
3270
js获取当前地址的参数值
用户6948990
2025/04/03
2720
Js获取当前页面url参数
<script type="text/javascript"> function getUrlParams(url) { const _url = url ||
lyudev
2022/08/04
22.8K0
Java web实现video播放
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156372.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/08
9700
Java web实现video播放
jQ获取url地址栏的参数
要获取URL地址栏中的参数,可以使用JavaScript的URLSearchParams对象或手动解析URL字符串的方式。 以下是两种常用的方法:
王小婷
2023/08/25
1.4K0
获取URL参数的最佳实践:兼容Hash模式的TypeScript实现
在现代Web开发中,获取URL中的参数是一项常见且重要的需求。这些参数常用于传递状态、配置以及用户数据等。然而,随着单页面应用(SPA)的兴起,URL结构变得更加多样化,特别是引入了Hash路由模式(如使用#符号的URL)。为了确保在各种模式下都能准确获取参数,本文将介绍一个兼容Hash模式的TypeScript函数getUrlQuery,并详细解析其实现原理及使用方法。
訾博ZiBo
2025/01/06
2350
vue.js客服系统实时聊天项目开发(六)获取URL中的GET参数(支持/#/?单页锚点hash模式)
封装一个函数获取URL中的GET参数 需要支持锚点链接例如:http://localhost:8080/#/chatApp?ent_id=5 具体来说 var query = window.l
唯一Chat
2023/02/02
2K0
N1BOOK writeup
Nu1L Team写的<<从0到1:CTFer成长之路>>的题目在BUUOJ上都有了复现环境,简单看了看发现WEB的题目wp和环境都比较齐全,决定做一下并且写博客记录一下。
ek1ng
2022/08/10
6000
N1BOOK writeup
第130天:移动端-rem布局
当拿到设计师给的UI设计图,前端的首要任务就是布局和样式,相信这对于大部分前端工程师来说已经不是什么难题了。移动端的布局相对PC较为简单,关键在于对不同设备的适配。之前介绍了一篇关于移动端rem布局方案,这大致是网易H5的适配方案。不过实践中发现淘宝开源的可伸缩布局方案效果更好且更容易使用。
半指温柔乐
2018/09/11
1.6K0
第130天:移动端-rem布局
移动端H5多页开发拍门砖经验
2016年刚接触移动端开发,刚开始比较疑惑,每次遇到问题都是到社区里提问或者吸取前辈的经验分享,感谢热衷于分享的开发者为前端社区带来欣欣向上的生命力。本文结合先前写的文章和开发经验分享给大家,希望也能帮助刚步入移动端开发的新人解惑。以下会以其中一个以公积金页面开发项目作为例子,介绍移动端的一些常见问题和使用Vuejs作为lib进行多页开发的经验。
D2
2020/06/23
1.1K0
移动端H5多页开发拍门砖经验
相关推荐
封装方法,获取url地址上的参数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档