【操作系统】分段存储管理方式
分段存储管理方式的引入
分段存储管理方式的引入是为了满足用户的要求。
- 方便编程:通常一个作业是由多个程序段和数据段组成的,一般情况下,用户希望按逻辑关系对作业分段,并能根据名字来访问程序段和数据段。
信息共享:
- 共享是以信息的逻辑单位为基础的。页是存储信息的物理单位,段却是信息的逻辑单位。
- 页式管理中地址空间是一维的,主程序,子程序都顺序排列,共享公用子程序比较困难,一个共享过程可能需要几十个页面。
信息保护:
- 页式管理中,一个页面中可能装有 2 个不同的子程序段的指令代码,不能通过页面共享实现共享一个逻辑上完整的子程序或数据块。
- 段式管理中,可以以信息的逻辑单位进行保护。
- 动态增长:实际应用中,某些段(数据段)会不断增长,前面的存储管理方法均难以实现。
- 动态链接:动态链接在程序运行时才把主程序和要用到的目标程序(程序段)链接起来。
分段系统的空间划分
将用户作业的逻辑地址空间划分成若干个大小不等的段(由用户根据逻辑信息的相对完整来划分) 。各段有段名(常用段号代替) ,首地址为 0。
利用段表实现地址映射
段表
段表记录了段与内存位置的对应关系。
段表保存在内存中。
段表的基址及长度由段表寄存器给出。
访问一个字节的数据/指令需访问内存两次 (段表一次,内存一次)。
逻辑地址由段和段内地址组成。
在为作业分配内存时以段为单位,分配一段连续的物理地址空间,段间不必连续。
分页管理中,作业地址空间是一维的,逻辑地址是的线性地址。
分段管理中,整个作业的地址空间由于是分成多个段,因而是二维的,其逻辑地址由段号和段内地址所组成。
地址变换机构
系统将逻辑地址中的段号 S 与段表长度 TL 进行比较。
- 若 S>TL,表示段号太大,是访问越界,于是产生越界中断信号。
- 若未越界,则根据段表的始址和该段的段号,计算出该段对应段表项的位置,从中读出该段在内存的始址。
再检查段内地址 d,是否超过该段的段长 SL。
- 若超过,即 d >SL,同样发出越界中断信号。
- 若未越界,则将该段的基址与段内地址 d 相加,即可得到要访问的内存物理地址。
信息共享
分段系统的一个突出优点,是易于实现段的共享,对段的保护也十分简单。
例:一个多用户系统,可同时接纳 40 个用户,都执行一个文本编辑程序 (Text Editor)。如果文本编辑程序有 160KB 的代码和另外 40 KB 的数据区,如果不共享,则总共需有 8 MB 的内存空间来支持 40 个用户。
可重入代码(Reentrant Code) 又称为“纯代码”(PureCode),是一种允许多个进程同时访问的代码。为使各个进程所执行的代码完全相同,绝对不允许可重入代码在执行中有任何改变。因此,可重入代码是一种不允许任何进程对它进行修改的代码。
如果 160 KB 的代码是可重入的,则无论是在分页系统还是在分段系统中,该代码都能被共享。
在内存中只需保留一份文本编辑程序的副本,此时所需的内存空间仅为 1760 KB(40×40+160),而不是(160+40)×40= 8000 KB 。
分页系统的共享
分段系统的共享
在分段系统中,实现共享容易得多,只需在每个进程的段表中为文本编辑程序设置一个段表项。
分页与分段的主要区别
- 页是信息的物理单位,分页仅仅是由于系统管理的需要,对用户透明的。段是信息的逻辑单位,分段的目的是为了能更好的满足用户的需要。
- 页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分。段的长度却不固定,决定于用户所编写的程序。
- 分页的作业地址空间是一维的,分段的作业地址空间是二维的。
- 页和段都有存储保护机制。但存取权限不同:段有读、写和执行三种权限;而页只有读和写两种权限。
二者优点的结合:段页式存储管理
段页式存储管理的基本原理
- 段页式存储管理是分段和分页原理的结合,即先将用户程序分成若干个段(段式) ,并为每一个段赋一个段名,再把每个段分成若干个页(页式) 。
- 其地址结构由段号、段内页号、及页内位移三部分所组成。
- 系统中设段表和页表,均存放于内存中。读一字节的指令或数据须访问内存三次。为提高执行速度可增设高速缓冲寄存器。
- 每个进程一张段表,每个段一张页表。
- 段表含段号、页表始址和页表长度。页表含页号和块号。
利用段表和页表实现地址映射
段页式存储管理的地址变换
- 从 PCB 中取出段表始址和段表长度,装入段表寄存器。
- 将段号与段表长度进行比较,若段号大于或等于段表长度,产生越界中断。
- 利用段表始址与段号得到该段表项在段表中的位置。取出该段的页表始址和页表长度。
- 将页号与页表长度进行比较,若页号大于或等于页表长度,产生越界中断。
- 利用页表始址与页号得到该页表项在页表中的位置。
- 取出该页的物理块号,与页内地址拼接得到实际的物理地址。
【操作系统】分段存储管理方式相关推荐
- 操作系统基本分段存储管理方式
1.分段存储管理方式的引入 ---- 引入分段存储管理方式,主要是为了满足用户和程序员的下述一系列需要: 1)方便编程 通常,用户把自己的作业按照逻辑关系划分为若干个段,每个段都是从0开始编址,并有自 ...
- 操作系统:基本分段存储管理方式
虚拟内存采用的是分页技术,也就是将地址空间划分成固定大小的页,每一页再与内存进行映射. 下图为一个编译器在编译过程中建立的多个表,有 4 个表是动态增长的,如果使用分页系统的一维地址空间,动态增长的特 ...
- 基本分段存储管理方式详解
4.4 基本分段存储管理方式 一.分段存储管理方式的引入 二.分段系统的基本原理 三.信息共享 四.段页式存储管理方式 一.分段存储管理方式的引入 分页存储管理方式存在的问题: 段间离散,段内连续! ...
- 操作系统 请求分页存储管理方式(含页面置换算法)
1. 请求分页存储管理方式 请求分页系统是建立在基本分页基础上的,为了能支持虚拟存储器功能,而增加了请求调页功能和页面置换功能. 相应地,每次调入和换出的基本单位都是长度固定的页面.因此,请求分页便称 ...
- 分页和分段存储管理方式例题
分页存储管理 1. 有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7.9.A.5块,试将虚地址0AFEH转换成内存地址.如果虚地址为3412D呢? (1)虚地址为0A ...
- 三十三、基本分段存储管理方式
一.知识总览 二.分段 三.地址变换 四.分段.分页管理的对比 分段比分页更容易实现信息的共享和保护 不能被修改的代码成为纯代码或可重入代码(不属于临界资源),这样的代码是可以共享的.可修改的代码是不 ...
- 3.1.10 基本分段存储管理方式
目录 思维导图 分段 段表 地址变换 分段 分页对比 思维导图 分段 段表 地址变换 分段 分页对比
- 12 操作系统第三章 内存管理 非连续分配管理方式 基本分页存储管理 基本分段存储管理 段页式存储管理
文章目录 1 基本分页存储管理 1.1 什么是分页存储 1.2 重要的数据结构--页表 1.3 基本地址变换机构 1.4 具有快表的地址变换机构 1.4.1 什么是快表(TLB) 1.4.2 引入快表 ...
- 操作系统:基本分页存储管理方式
1.离散分配方式 ----连续分配方式(分区存储管理)要求把作业放在一个连续的存储区中,因而会形成许多"碎片",固定分区会产生内部碎片,动态分区会产生外部碎片.虽然可通过" ...
最新文章
- Redis-20Spring缓存机制整合Redis
- JAVA16版本.JDK16即将发布,你准备好了吗?
- 2017年------阿里大神带你详解Dubbo架构设计
- Subversion(SVN)/TortoiseSVN 的分支合并方法
- 万物皆可爬系列查看翻页翻到最后是什么
- SpringBoot集成Actuator健康指示器health
- snprintf/strncpy/strlcpy速度测试
- php判断电脑还是手机浏览器打开网页,PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...
- 一个B站下载视频的网站
- aspen压缩因子_利用aspen plus进行物性参数的估算
- python计算三角形面积_【Scratch算法编程】计算三角形面积
- class ts 扩展方法_ts各种类型和用法
- 常见的百度蜘蛛IP 日志分析
- python 归一化feed-dict程序代码_深度学习-中国大学mooc-题库零氪
- 前端react+scatter钱包+EOS的对接及账户余额查询。
- 2022年江苏省职业院校技能大赛中职赛项规程
- Web 容器、HTTP 服务器 、Servlet 容器区别与联系
- 显示器3d测试软件,3D显示器专题测试看上去很美.pdf
- NTSTATUS 状态码
- html 手写签名插件jSignature