段式存储管理

进程分段

把进程按逻辑意义划分为多个,每段有段名,长度不定,进程由多段组成

例:一个具有代码段、数据段和堆栈段的进程

段式内存管理系统的内存分配

  • 以段为的单位装入,每段分配连续的内存
  • 到那时段和段之间不要求响铃

段式系统的虚拟地址

  • 段式虚拟地址VA包含段号S和段内偏移W

  • VA:(S, W)

段式地址的映射基址

段表(SMT,Segment Memory Table)

记录每段在内存中映射的位置

段号S:段的编号(唯一的)

段长L:该段的长度

基地址B:该段在内存中的首地址

段式地址映射过程

  1. 由逻辑地址VA分离出(S, W)

  2. 查询段表

    • 检索段号S, 查询该段及地址B和长度L
  3. 物理地址MA = B + W

段表的扩充

基本字段:段号,长度,基址

扩展字段:中断位,访问位,修改位,R/W/X

段的共享

  • 共享段在内存中只有一份存储
  • 共享段被多个进程映射到各自段表
  • 需要共享的模块可以设置为段都的段

段式系统的缺点

  • 段需要连续的存储空间
  • 段的最大尺寸收到内存大小的限制
  • 在辅存中管理可变尺寸的段的比较困难

段式系统vs页式系统

地址空间的区别

  • 页式系统:一维地址空间
  • 段式系统:二位地址空间

段与页的区别

  • 段长可变,页面大小固定
  • 段的划分有意义,页面无意义
  • 段方便共享,页面不方便共享
  • 段用户可见,页面用户不可见
  • 段偏移有一处,页面偏移无溢出

段页式存储管理

在段式存储管理中结合页式存储管理计时

在段中划分页面

段页式系统的地址构成:段号 页号 页内偏移

  • 逻辑地址:段号S,页号P和页内偏移W
  • 内存按页划分,按页装入

段页式地址的映射机构

同时采用段表和页表实现地址映射

  • 系统为每个进程建立一个段表
  • 系统为每个段建立一个页表
  • 段表给出每段的页表及地址以及页表长度(段长)
  • 页表给出每页对应的页框

【av68676164(p54)】段式和段页式虚拟存储的更多相关文章

  1. Linux段式管理与页式管理

    内存管理有2种机制:1.段式管理:2.页式管理 在80386CPU中增加了2个寄存器:1.全局性的段描述表寄存器GDTR 2.局部性的段描述表寄存器LDTR 段寄存器的高13位用于在全局或局部描述表项 ...

  2. linux内核源码——内存管理:段页式内存及swap

    os的内存管理大概可以分成两块:1.段页式管理(虚存)2.swap in 和 swap out 段页式管理 段式管理的图像:运行时重定位 多级页表的管理图像  块表加速 用户(程序员)希望用段,物理内 ...

  3. [转载]linux段页式内存管理技术

    原始博客地址: http://blog.csdn.net/qq_26626709/article/details/52742470 一.概述 1.虚拟地址空间 内存是通过指针寻址的,因而CPU的字长决 ...

  4. 【Linux】浅谈段页式内存管理

    让我们来回顾一下历史,在早期的计算机中,程序是直接运行在物理内存上的.换句话说,就是程序在运行的过程中访问的都是物理地址.如果这个系统只运行一个程序,那么只要这个程序所需的内存不要超过该机器的物理内存 ...

  5. linux 段页式内存管理

    http://blog.chinaunix.net/uid-24227137-id-3723898.html 页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率从:或 ...

  6. 操作系统之cache、伙伴系统、内存碎片、段式页式存储管理

    存储管理是操作系统非常重要的功能之一,本文主要介绍操作系统存储管理的基础知识,包括缓存相关知识.连续内存分配.伙伴系统.非连续内存分配.内存碎片等,并结合linux系统对这些知识进行简单的验证.文章内 ...

  7. 寄存器,cache、伙伴系统、内存碎片、段式页式存储管理

    cache.伙伴系统.内存碎片.段式页式存储管理 目录 分层的存储管理 cache 局部性原理 置换算法 写回策略 linux环境下的cache 连续内存分配与内存碎片 内部碎片与外部碎片 动态分区分 ...

  8. 【转帖】linux内存管理原理深入理解段式页式

    linux内存管理原理深入理解段式页式 https://blog.csdn.net/h674174380/article/details/75453750 其实一直没弄明白 linux 到底是 段页式 ...

  9. Vue单页式应用(Hash模式下)实现微信分享

    前端微信分享的基本步骤: 一.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".这个不多说,微信开发 ...

随机推荐

  1. linux专题(一):小白的开始以及相关的学习链接

    转载自:https://www.cnblogs.com/ggjucheng/archive/2011/12/16/2290158.html 学习Linux也有一阵子了,这过程中磕磕撞撞的,遇到了问题, ...

  2. Django框架07 /cookie和session

    Django框架07 /cookie和session 目录 Django框架07 /cookie和session 1. django请求生命周期 2. cookie 3. session 4. 总结 ...

  3. hihoCoder 1051 补提交卡 最详细的解题报告

    题目来源:补提交卡 解题思路:假设未提交程序的天数为:a1,a2,....,an,补交的张数为M.依次从a1,a2,....,an中去掉连续的 K 天(0<=K<=M),然后再来计算剩余数 ...

  4. bzoj2295【POJ Challenge】我爱你啊*

    bzoj2295[POJ Challenge]我爱你啊 题意: 求一个字符串中有多少个"luvletter"(不包括引号).字符串长度≤100000. 题解: 连kmp都不用…… ...

  5. Ethical Hacking - POST EXPLOITATION(1)

    METERPRETER BASICS >help - shows help >background - backgrounds current session >sessions - ...

  6. RAC环境上搭建DG

    首先RAC要确实是开归档的状态archive log list;如果是非归档状态,需要执行下面几步srvctl stop database -d +数据库实例名 关闭数据库--节点1(要做DG主库的) ...

  7. .Net微服务实战之负载均衡(上)

    系列文章 .Net微服务实战之技术选型篇 .Net微服务实战之技术架构分层篇 .Net微服务实战之DevOps篇 相关源码:https://github.com/SkyChenSky/Sikiro P ...

  8. Spring RestTemplate 的介绍和使用-入门

    RestTemplate是什么? 传统情况下在java代码里访问restful服务,一般使用Apache的HttpClient.不过此种方法使用起来太过繁琐.spring提供了一种简单便捷的模板类来进 ...

  9. canvas学习01

    canvas 必须指定宽高,确定可绘图区域的大小 canvas标签里写的是浏览器不支持canvas时展示的内容 <canvas id="drawing" width=&quo ...

  10. docker-compose安装zabbix

    在网上的很多帖子,我亲自试过,多数不行,启动后zabbix_server是退出状态,所以觉得自己亲自写一篇帖子,以作记录 1.安装docker和docker-compose yum install - ...