码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 分段管理存储


    文章目录

    • 什么是分段?
    • 分段之后的逻辑地址
    • 段表
    • 地址变换
    • 分段、分页管理的对比
    • 分段实现信息共享共享
    • 为什么分页不方便实现信息共享和保护

    什么是分段?

    在这里插入图片描述

    • 进程的地址空间:按照程序的自身的逻辑关系划分成若干个段,每个段都有一个段名,每段从0开始编址
    • 内存分配规则:以段位单位进行分配,每个段需要在内存中占据连续空间,但各段之间可以不相领

    分段之后的逻辑地址

    在这里插入图片描述

    • 分段系统的逻辑地址由段号和段内地址组成
      • 段号的大小决定了每个进程最多可以分为多少段
      • 段内地址的位数决定了每个段的最大长度是多少

    段表

    在这里插入图片描述

    • 程序分为多个段,各段离散的装入内存,为了保证程序能够正常的运行就必须从物理内存中找到各个逻辑段的存放位置。所以创建一个段表
    • 段表的内容
      • 段号 :是可以隐藏的,因为段表项是连续存储的
      • 段的长度:因为不像页,段的长度是不固定的
      • 基址:这个段在物理内存中的起始位置

    地址变换

    在这里插入图片描述

    • 根据逻辑地址得到段号和段内地址
      • 根据段号和段表长度来判断是否越界,如果越界就发出一个中断
      • 根据段表始址和短号去段表中查询
    • 查询段表,根据段号找到对应的物理地址
      • 我们这里需要检查段内地址是否超过了段长,因为我们的段的长度不是统一的,不像页大小是统一的
    • 找到对应的物理地址,根据段内地址找到对应的单元

    分段、分页管理的对比

    在这里插入图片描述

    • 页是信息的物理单位,我们分页的目的是为了实现离散分配,提高内存的利用率,分页仅仅是为了系统管理的需要,完全是系统行为,对我们的用户是不可见的(用户想要连续的存储,但是系统采用了分页来实现离散存储,但是用户看起来还是连续存储的)
    • 段是信息的逻辑单位,分段的主要目的是更好的满足用户需求,一个段通常包含了一组属于一个逻辑模块的信息,分段对用户可见的,用户编程的时候需要显式的给出段名

    分段实现信息共享共享

    在这里插入图片描述

    • 不可被修改的代码称为纯代码或者可重入代码,这种代码是可以共享的,比如我们消费者和生产者进程中的进入区的代码就是可以允许所有生产者,消费者进程共享访问
    • 我们只需要让各个进程的段表项指向同一个段即可实现共享

    为什么分页不方便实现信息共享和保护

    在这里插入图片描述

  • 相关阅读:
    谈谈数字化转型成功的10个启示
    Ant vue中表单验证(动态校验、部分校验)
    理解ASP.NET Core - 全球化&本地化&多语言(Globalization and Localization)
    能源行业的数字化“新”运维
    Android native crash分析
    logrotate日志轮转
    FineBI产品简介
    付费进群搭建二维码
    c++ 11 auto、decltype比较
    基于SSH的客户关系管理系统的设计与实现(JavaWeb开发的CRM管理系统)
  • 原文地址: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号