码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
分段管理存储
文章目录
什么是分段?
分段之后的逻辑地址
段表
地址变换
分段、分页管理的对比
分段实现信息共享共享
为什么分页不方便实现信息共享和保护
什么是分段?
进程的地址空间:按照程序的
自身的逻辑关系
划分成若干个段,每个段都有一个段名,
每段从0开始编址
内存分配规则:以段位单位进行分配,
每个段需要在内存中占据连续空间,但各段之间可以不相领
分段之后的
逻辑地址
分段系统的逻辑地址由段号和段内地址组成
段号的大小决定了每个进程最多可以分为多少段
段内地址的位数决定了每个段的最大长度是多少
段表
程序分为多个段,各段离散的装入内存,为了保证程序能够正常的运行就必须从物理内存中找到各个逻辑段的存放位置。所以创建一个段表
段表的内容
段号 :是可以隐藏的,因为段表项是连续存储的
段的长度:因为不像页,段的长度是不固定的
基址:这个段在物理内存中的起始位置
地址变换
根据逻辑地址得到段号和段内地址
根据段号和段表长度来判断是否越界,如果越界就发出一个中断
根据段表始址和短号去段表中查询
查询段表,根据段号找到对应的物理地址
我们这里需要检查段内地址是否超过了段长,因为我们的段的长度不是统一的,不像页大小是统一的
找到对应的物理地址,根据段内地址找到对应的单元
分段、分页管理的对比
页是信息的物理单位
,我们分页的目的是为了实现离散分配,提高内存的利用率,分页仅仅是为了系统管理的需要,完全是系统行为,
对我们的用户是不可见的
(用户想要连续的存储,但是系统采用了分页来实现离散存储,但是用户看起来还是连续存储的)
段是信息的逻辑单位
,分段的主要目的是更好的满足用户需求,一个段通常包含了一组属于一个逻辑模块的信息,
分段对用户可见的
,用户编程的时候需要显式的给出段名
分段实现信息共享共享
不可被修改的代码称为纯代码或者可重入代码,这种代码是可以共享的,比如我们消费者和生产者进程中的进入区的代码就是可以允许所有生产者,消费者进程共享访问
我们只需要让各个进程的段表项指向同一个段即可实现共享
为什么分页不方便实现信息共享和保护
相关阅读:
wllllllll
IIC协议详解
DP4301芯片简介
ESP32设备驱动-TFT_eSPI显示中文
elasticsearch 安装
XPD977协议系列-支持 XPD-LINK™互联 USB 三端口控制器
IPv6进阶:IPv6 过渡技术之IPv6 over IPv4 手动隧道
老司机带你快速实现Python下载与安装
Python对excel文件批量加密(GUI选择)
解决Oracle SQL语句性能问题——SQL语句改写(join、集合)
原文地址:https://blog.csdn.net/qq_50985215/article/details/127667651
最新文章
攻防演习之三天拿下官网站群
数据安全治理学习——前期安全规划和安全管理体系建设
企业安全 | 企业内一次钓鱼演练准备过程
内网渗透测试 | Kerberos协议及其部分攻击手法
0day的产生 | 不懂代码的"代码审计"
安装scrcpy-client模块av模块异常,环境问题解决方案
leetcode hot100【LeetCode 279. 完全平方数】java实现
OpenWrt下安装Mosquitto
AnatoMask论文汇总
【AI日记】24.11.01 LangChain、openai api和github copilot
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
正则表达式工具
cron表达式工具
密码生成工具
京公网安备 11010502049817号