操作系统原理 第4章 存储管理-段式存储管理
段页式作业地址空间和地址结构示意图
页面大小为4KB
0 4K 8K 1 2K 1 5K 1 6K
主程 序段
0 4K 8K
子程 序段
0 4K 8K 1 0K 1 2K
数据 段
(a ) 段 号 (S) 段 内 页 号 (P) (b )
改为:页内地址
4.4.3 信息共享
论点:分段技术中信息共享比分页技术中的信息共享更 方便有效。
信息共享举例:
有一多用户系统,可同时接纳40个用户,他们都执行一 个文本编辑程序(Text Editor)。假设文本编辑程序有 160KB的指令代码和另外40KB的数据区。
假设文本编辑程序代码是可重入的,试以分页和分段存 储管理方式探讨文本编辑程序的共享问题。假设分页系 统页的大小为4K。具体见下图。
授课内容与重难点
基本分段存储管理方式:理解相关概念,掌握实现 原理(重)和地址变换过程(难); 段页式存储管理方式:理解基本概念,掌握实现原 理(重)和地址变换过程(难); 虚拟存储器的基本概念:理解虚拟存储器的基本概
念与实现思想(重点);
4.4 基本分段存储管理方式
固定分区
知识回忆
动态分区
③ 然后,由块号与页内地址(偏移)构成实际的物理 地址; ④ 最后根据物理地址获取实际信息数据。
注意:在段页式存储系统中,获取一条指令或数据需要 访问三次内存:段表、页表和实际数据。
段页式系统中的地址变换机构与过程示意图
段表寄存器 段表始址 + 段表 0 1 2
第一次访问内存
S≥TL
> 段超长
逻辑地址(注意:是二维的, 后两个构成段内偏移量)
分页存储管理 提高内存利用率
4.4.1 分段存储管理方式的引入 分段存储 管 理引入原 因
方便 编程 分段 共享
满足用户(程序员) 在编程和使用上多 方面的需要
动态 链接 分段 保护 动态 增长
4.4.2 分段系统的基本原理
1 基本分段存储管理的基本思想:
作业地址空间按逻辑分段,物理内存空间按段的实 际大小分配,所有逻辑段运行前需要全部装入
4.4.4 段页式存储管理方式
段页式存储管理方式是将分段存储管理方式与分 页存储管理方式相结合而形成的一种存储管理方 式; 段页式存储管理方式具有分段和分页方式的共同 优点;
1. 基本原理:先将用户程序分成若干段,每个段有 其段名/号;然后再将每个段分成若干页,段内 各页顺序编号(从0开始相对编号);
1 2 3
20K 15K 10K
段表示意图
80K 120K 150K
段表的存储和隶属关系:
存储:段表一般存放在内存中,由段表始址和
段表长度唯一确定;
归属:每个进程拥有一个段表;并在进程 PCB 记录段表的始址和段表长度;
目的:实现段的地址映射。
0
作业空间 (MAIN)=0 段表
内存空间
0
3 0K 0 2 0K 0 1 5K 0
段 内 地 址 (W)
2. 段页式存储管理系统地址变换过程
段页式地址变换机构:每一进程拥有段表(置于
内存);各段拥有自己的一个段内页表(置于内 存);段表寄存器;物理地址寄存器等;
段表与段内页表的组成:段表由段表项组成、段
内页表由页表项组成,所含字段如下图所示;
从段表、页表实现地址映射的结构示意图
8292
not
W<500
8k+100
+
8292 物理地址
8k 8691
段表
主存
段式系统地址变换过程示意图
段地址变换过程描述
① 从段逻辑地址寄存器中取得段号S和段内位移量W;
② 将 S 与段表寄存器中的段表长度 TL 比较,若S≥TL, 越界异常处理; ③ 否则,根据段表始址和段号在段表中查找段号为S的 表项,得到该段的内存空间首地址;
4.5.2 虚拟存储器的实现方法
1. 请求分页系统 实现方法是在分页系统的基础上,增加了请求调页功 能和页面置换功能所形成的页式虚拟存储系统。 1)需要硬件支持: ① 请求分页的页表机制:用于请求分页的数据结构;
② 缺页中断机构:产生缺页中断,以请求OS将所缺的页调 入内存;
③ 地址变换机构:实现逻辑地址到物理地址的变换(类似
0 15K-1 0 7K-1 0 8K-1
主程序段 0 子程序段 1 数据段 2 作业地址空间
一个作业被划分为分若干个段; 一个段拥有一个段名或段号; 一个段标识一个完整的信息单位 段号从0开始,依次编号到n; 每一段段内从0开始连续编址; 作业的地址空间为二维的; LOAD 1,[A]|<D> STORE 1,[B]|<C>
2. 虚拟性 :从逻辑上扩充内存。
小结
分段系统的逻辑特征与物理实现; 分段系统的优点和缺点; 段页式系统的基本实现原理及优缺点; 虚拟存储系统的基本概念与实现原理;
④ 把段首地址与段内位移相加,形成内存地址送入物 理地址寄存器中,并以此地址访问内存取出指令或 数据。
地址变换特点: 同页式地址变换一样,在段地址变换过程
中,也有两次访问内存的问题。为了加快访
问内存的速度,也可采用联想存储器组成快 表。
4 分页和分段的比较
相同点:离散分配方式; 不同点如下:
① 段是依据程序的逻辑结构划分的,页是按线性地址空 间顺序分割的; ② 分段中程序地址空间是二维的,分页中程序地址空间 是一维的; ③ 段是面向用户的(用户决定),页对用户是透明的; ④ 段长由用户决定,且各段的大小一般不相等(最大长 度限制);面页长是由系统决定的,各页的长度必须 相等; ⑤ 段的共享比页的共享更容易;
段表寄存器段表大小 段来自始址页号 状态 0 1 1 1 页表始址 2 3 4 1 0 1 存储块#
操作系统
段号 状态 0 1 2 3 4 1 1 1 0 1
页表大小
段表
页表
主存
段页式系统地址变换过程
具体变换过程(如下图所示):
① 从逻辑地址中取得段号S,并与段表寄存器中的段表 长度TL比较,若S>=TL,越界处理;否则,由段表寄存 器中的段表始址访问段表,并找到本段的段表项; ② 由段表项指定的本段页表起始地址访问本段的页表, 并根据逻辑地址的页号找到本页所在的存储块;
3 地址变换
地址变换机构:段地址变换机构由段表、段表寄存
器、物理地址寄存器等硬件设施以及相关软件
组成; 段表寄存器:存放段表始址和段表长度; 地址变换过程如下图所示:
段表寄存器
段表始址 段表长度TL
越界中断 段号S
位移量W 100 逻辑地址
≤
2
+
段号 段长 始址 0 1k 6k 1 600 4k 2 500 3 200 8k 9200
分段地址结构: 段号
31
段内地址
16 15 0
内存分配思想: 以段为单位,为每个段分配一片连续的内存空间依次存 放段的全部信息; 每个段分配的内存空间由其起始地址和段长度确定; 段之间为离散分配,即各段之间地址可以不连续;
分段存储分配的算法与特点:
动态分区分配:采用空闲分区表或链表管理可
用内存空间;分配策略可采用首次适应、循环
首次适应或最佳适应算法。
段内连续,段间离散:分段式管理以段为单位 为一个段分配一片连续存储空间;各段之间的 内存分配可以是连续的,即段间离散。 缺点:同样不可避免碎片问题。
2 段表:为了实现段的逻辑地址到物理地址的转换,必须 为每个进程建立一个段表,用于记录各段的内存 分配信息。 段号 段长 基址 0 30K 40K
2.
局部性原理:
早在 1968 年, Denning.P 就曾指出:程序在执行时将 呈现局部性原理,即在一较短时间内,程序的执行仅局限 于某个部分;相应地,它所访问的存储空间也局限于某个 区域。 关于局限性的论证参考书上说明,请自学。
3. 虚拟存储器定义
虚拟存储器:是指以软件的方法从逻辑上(非物理)
上扩充内存的容量。
实现思想:根据局部性原理,作业在运行前,没有必 要将其程序(数据)调入内存,而是把当前要执行的部
分(或页或段)调入内存便开始执行;在执行过程中, 陆续将要执行但又不在内存的部分程序(数据)调入 内存;若内存不够时,也可陆续将暂时不运行的程序 调出内存,以腾出内存空间。
功能要求:实现虚拟存储器的核心是存储管理系统必 须具备调入和换出功能。
段号S 页号P 页内地址
段表长度
页表 0 1 2 + 3 b 块号 b 块内地址
第二次访问内存
3
页表长度
页表始址
第三次访问内存
4.5 虚拟存储器的基本概念
4.5.1
1. ① 一次性:作业在运行前必须一次性将程序、数据 装入内存(包括运行期间不执行的部分)才能运 行; ② 驻留性:作业装入内存后,便一直驻留于内存, 直到作业运行结束 。 缺点:作业在运行过程中,不运行或暂时不运行 的程序(数据)将一直呆在内存中。
② 缺段中断机构:产生缺段中断,以请求OS将所缺段调入 内存;
③ 地址变换机构:实现段逻辑地址到物理地址的变换 2)实现请求分段的软件:在硬件的支持下,还需实现请求 调段功能的软件和实现分段置换功能的软件。
4.5.3
虚拟存储器的特征
1. 多次性:一个作业被多次调入;
2. 对换性:作业在运行期间可换进、换出;
分页系统)
2)实现请求分页的软件:在硬件的支持下,还需实现请求 调页功能的软件和实现页面置换功能的软件。
4.5.2 虚拟存储器的实现方法
2. 请求分段系统 请求分段系统是在分段系统的基础上,增加了请求调 段和分段置换功能所形成的段式虚拟存储系统。 1)需要硬件支持: ① 请求分段的段表机制:用于请求分段的段表数据结构;
操作系统-存储管理(4)段页式虚拟存储
操作系统-存储管理(4)段页式虚拟存储物理地址:⼜称绝对地址,即程序执⾏所使⽤的地址空间(处理器执⾏指令时按照物理地址进⾏)逻辑地址:⼜称相对地址,即⽤户编程所使⽤的地址空间,从0开始编号,有两种形式:⼀维逻辑地址(地址)⼆维逻辑地址(段号:段内地址)主存储器空间的分配与去配:分配:进程装⼊主存时,存储管理软件进⾏具体的主存分配操作,并设置⼀个表格记录主存空间的分配情况去配:当某个进程撤离或主动归还主存资源时,存储管理软件要收回它所占⽤的全部或者部分存储空间,调整主存分配表信息主存储器空间的共享:多个进程共享主存储器资源:多道程序设计技术使若⼲个程序同时进⼊主存储器,各⾃占⽤⼀定数量的存储空间,共同使⽤⼀个主存储器多个进程共享主存储器的某些区域:若⼲个协作进程有共同的主存程序块或者主存数据块多道程序设计需要复⽤主存:按照分区复⽤:主存划分为多个固定/可变尺⼨的分区,⼀个程序/程序段占⽤⼀个分区按照页架复⽤:主存划分成多个固定⼤⼩的页架,⼀个程序/程序段占⽤多个页架装载程序/加载器(loader)把可执⾏程序装⼊内存的⽅式有:绝对装载可重定位装载动态运⾏时装载地址转换:⼜称重定位,即把可执⾏程序逻辑地址转换成绝对地址,可分为:静态地址重定位:由装载程序实现装载代码模块的加载和地址转换(⽆需硬件⽀持),把它装⼊分配给进程的内存指定区域,其中所有指令代码和数据的逻辑地址在执⾏前⼀次全部修改为内存物理地址。
早期单任务单⽤户OS使⽤。
动态地址重地位:由装载程序实现装载代码模块的加载,把它装⼊进程的内存在指定区域,但对链接程序处理过的应⽤程序逻辑地址不做修改,程序内存起始地址被置⼊重定位寄存器(基址寄存器)。
程序执⾏过程中每当CPU访问程序和数据引⽤内存地址时,由硬件地址转换机构截取此逻辑地址并加上重定位寄存器的值。
运⾏时链接地址重定位存储保护:为避免主存中的多个进程相互⼲扰,必须对主存中的程序和数据进⾏保护。
计算机操作系统第四章存储器管理复习资料
第四章存储器管理第一部分教材习题(P159)15、在具有快表的段页式存储管理方式中,如何实现地址变换?答:在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址和段长TL。
进行地址变换时,首先利用段号S,将它与段长TL进行比较。
若S<TL,表示未越界,利用段表始址和段号来求出该段所对应的段表项在段表中的位置,从中得到该段的页表始址,并利用逻辑地址中的段内页号P来获得对应页的页表项位置,从中读出该页所在的物理块号b,再利用块号b和页内地址来构成物理地址。
在段页式系统中,为了获得一条指令或数据,须三次访问内存。
第一次访问内存中的段表,从中取得页表始址;第二次访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址;第三次访问才是真正从第二次访问所得的地址中,取出指令或数据。
显然,这使访问内存的次数增加了近两倍。
为了提高执行速度,在地址变换机构中增设一个高速缓冲寄存器。
每次访问它时,都须同时利用段号和页号去检索高速缓存,若找到匹配的表项,便可从中得到相应页的物理块号,用来与页内地址一起形成物理地址;若未找到匹配表项,则仍须再三次访问内存。
19、虚拟存储器有哪些特征?其中最本质的特征是什么?答:虚拟存储器有以下特征:多次性:一个作业被分成多次调入内存运行,亦即在作业运行时没有必要将其全部装入,只需将当前要运行的那部分程序和数据装入内存即可;以后每当要运行到尚未调入的那部分程序时,再将它调入。
多次性是虚拟存储器最重要的特征,任何其他的存储器管理方式都不具有这一特征。
因此,认为虚拟存储器是具有多次性特征的存储器系统。
对换性:允许在作业的运行过程中进行换进、换出,也即,在进程运行期间,允许将那些暂不使用的程序和数据,从内存调至外存的对换区(换出),待以后需要时再将它们从外存调至内存(换进);甚至还允许将暂不运行的进程调至外存,待它们重又具备运行条件时再调入内存。
《操作系统》第4章教材习题解答
第4章存储管理“练习与思考”解答1.基本概念和术语逻辑地址、物理地址、逻辑地址空间、内存空间、重定位、静态重定位、动态重定位、碎片、碎片紧缩、虚拟存储器、快表、页面抖动用户程序经编译之后的每个目标模块都以0为基地址顺序编址,这种地址称为相对地址或逻辑地址。
内存中各物理存储单元的地址是从统一的基地址开始顺序编址的,这种地址称为绝对地址或物理地址。
由程序中逻辑地址组成的地址范围叫做逻辑地址空间,或简称为地址空间。
由内存中一系列存储单元所限定的地址范围称作内存空间,也称物理空间或绝对空间。
程序和数据装入内存时,需对目标程序中的地址进行修改。
这种把逻辑地址转变为内存物理地址的过程称作重定位。
静态重定位是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即把程序的逻辑地址都改成实际的内存地址。
动态重定位是在程序执行期间,每次访问内存之前进行重定位。
这种变换是靠硬件地址转换机构实现的。
内存中这种容量太小、无法被利用的小分区称作“碎片”或“零头”。
为解决碎片问题,移动某些已分配区的内容,使所有进程的分区紧挨在一起,而把空闲区留在另一端。
这种技术称为紧缩(或叫拼凑)。
虚拟存储器是用户能作为可编址内存对待的虚拟存储空间,它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间。
为了解决在内存中放置页表带来存取速度下降的矛盾,可以使用专用的、高速小容量的联想存储器,也称作快表。
若采用的置换算法不合适,可能出现这样的现象:刚被换出的页,很快又被访问,为把它调入而换出另一页,之后又访问刚被换出的页,……如此频繁地更换页面,以致系统的大部分时间花费在页面的调度和传输上。
此时,系统好像很忙,但实际效率却很低。
这种现象称为“抖动”。
2.基本原理和技术(1)存储器一般分为哪些层次?各有何特性?存储器一般分为寄存器、高速缓存、内存、磁盘和磁带。
CPU内部寄存器,其速度与CPU一样快,但它的成本高,容量小。
操作系统原理知识点总结
第一章绪论1、操作系统是一组控制和管理计算机硬件和软件资源、合理的对各类作业进行调度以方便用户的程序集合※2、操作系统的目标:方便性、有效性、可扩展性、开发性※3、操作系统的作用:作为计算机硬件和用户间的接口、作为计算机系统资源的管理者、作为扩充机器4、单批道处理系统:作业处理成批进行,内存中始终保持一道作业(自动性、顺序性、单道性)5、多批道处理系统:系统中同时驻留多个作业,优点:提高CPU利用率、提高I/O设备和内存利用率、提高系统吞吐量(多道性、无序性、调度性)6、分时技术特性:多路性、交互性、独立性、及时性,目标:对用户响应的及时性7、实时系统:及时响应外部请求,在规定时间内完成事件处理,任务类型:周期性、非周期性或硬实时任务、软实时任务※8、操作系统基本特性:并发、共享、虚拟、异步性并行是指两或多个事件在同一时刻发生。
并发是两或多个事件在同一时间间隔内发生。
互斥共享:一段时间只允许一个进程访问该资源同时访问:微观上仍是互斥的虚拟是指通过某种技术把一个物理实体变为若干个逻辑上的对应物。
异步是指运行进度不可预知。
共享性和并发性是操作系统两个最基本的特征※9、操作系统主要功能:处理机管理、存储器管理、设备管理、文件管理、用户管理第二章进程的描述和控制※1、程序顺序执行特征:顺序性、封闭性、可再现性※2、程序并发执行特征:间断性、失去封闭性、不可再现性3、前趋图:有向无循环图,用于描述进程之间执行的前后关系表示方式:(1)p1--->p2(2)--->={(p1,p2)| p1 必须在p2开始前完成}节点表示:一条语句,一个程序段,一进程。
(详见书P32)※4、进程的定义:(1)是程序的一次执行过程,由程序段、数据段、程序控制块(PBC)三部分构成,总称“进程映像”(2)是一个程序及其数据在处理机上顺序执行时所发生的活动(3)是程序在一个数据集合上的运行过程(4)进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位进程特征:动态性、并发性、独立性、异步性由“创建”而产生,由“调度”而执行;由得不到资源而“阻塞”,由“撤消”而消亡※5、进程与程序关系※6、进程的三种状态:就绪、阻塞、执行转换:增加挂起:7、进程控制块(PCB)的作用:进程存在的唯一标志。
基本分段存储管理方式
基本分段存储管理方式基本分段存储管理方式是计算机操作系统用来管理内存的一种方法。
通常将内存分成固定大小的若干段,每个段都有一个起始地址和一个长度,随着程序的运行,可以动态地将不同大小的进程加载到这些段中,从而优化内存使用,提高系统性能。
基本分段存储管理方式的实现过程大致分为三个步骤:操作系统将物理内存划分成若干固定大小的段,这些段称为物理段或实际段。
接着,操作系统为每个进程分配虚拟地址空间,并用一组相同的大小将其划分为若干虚拟段。
每个虚拟段的起始地址和长度都与实际段相对应,但它们不一定在物理空间上是连续的。
操作系统将进程的虚拟地址映射到实际的物理地址,以便进程能够访问内存。
基本分段存储管理方式有以下几个优点:1. 灵活性:基本分段存储管理方式可以用相对较少的内存空间来持久存储多个进程,这增加了系统的灵活性,使得操作系统能够同时运行多个进程,而不会导致内存溢出。
2. 内存利用率:基本分段存储管理方式允许操作系统根据每个进程的需求动态分配内存,从而提高内存利用率。
如果一个进程只需要几百KB的内存,而系统中的物理内存大大小于这个需求,那么只需要分配给它一个相应的虚拟段就可以了,这样就避免了浪费内存的情况。
3. 保护:基本分段存储管理方式可以通过在每个虚拟段中设置访问权限进行内存保护。
只允许进程访问它被授权访问的虚拟地址范围,而禁止它访问其他虚拟地址空间,从而增强系统的安全性。
基本分段存储管理方式也有以下几个缺点:1. 内部碎片:由于每个分段的大小是固定的,使得当进程只需要使用部分段时,其中未使用的部分会变成内部碎片。
这会浪费一些内存,降低内存利用率。
2. 外部碎片:当系统中有大量的小进程时,这些小进程可能会被分配到不同的分段中。
当一些分段中的进程被撤销时,这些空闲的小空间难以合并在一起,从而导致外部碎片的产生。
3. 上下文切换:由于每个进程的虚拟空间不一定是连续的,因此在进程切换时需要进行频繁的虚拟地址到物理地址的映射操作,这会增加系统的开销。
天大《操作系统原理》学习笔记三
主 题题: 《操作系统原理》学习笔记内 容容:《操作系统原理操作系统原理》》学习笔记学习笔记三三————存储管理存储管理存储管理主存储器又称为内存储器,它是处理机可以直接访问的存储器。
主存速度快,但容量有限。
存储管理主要是对主存的管理,同时也涉及到主存和外存交换信息。
一、存储管理的目的与功能计算机的系统结构是以内存储器为中心。
受系统地址总线的限制,内存空间并不能做的很大。
16位地址总线,内存最大64KB 。
32位地址总线,内存最大4GB 。
在多道系统中,多个用户作业要同时使用有限的内存空间。
内存储器成为系统的“瓶颈”资源。
如何充分利用和有效管理内存空间,是操作系统必须完成的主要任务。
在多道系统中,存储管理的目的是为系统中并发运行的多道作业提供相互独立的存储空间,并为用户使用存储器提供方便。
主存储器的存储空间分为两个部分:系统区:用于存放操作系统的程序和数据。
用户区:存放系统应用程序和用户的程序和数据。
存储管理主要是对用户区的存储空间进行管理。
操作系统中存储管理的功能主要有五个方面:存储分配。
为进入系统的多个作业合理地分配存储空间每个作业的程序及其数据存放在内存空间的什么区域。
使用连续的内存区域,还是把它分成若干块来占用不连续的存储空间。
合理组织作业占用的空间,以达到既便于程序运行时存取信息,又能够最大限度地减小空间的浪费,使内存空间得到充分的利用地址变换。
用户作业调入内存空间时所处的位置是根据内存空间当时的状况决定的。
一般情况下,同一个程序在每次调入内存时所占用的位置是完全不同的。
为了保证程序在使用内存的不同区域时仍能正确地执行,必须把在程序执行时要访问的存储单元的位置,由用户在编制程序时所定的地址变换成它们在内存的实际地址。
地址变换又称为地址重定位。
存储保护。
在整个内存空间中既存放着系统的程序和数据,又有多个用户的程序和数据。
保证系统的程序和数据不被用户非法访问和破坏。
保证每一个用户信息的安全。
第四章 内存管理
2022/12/21
1
第四章 内存管理
4.0 问题导入
在现代操作系统中同时有多个进程在运行,每 个进程的程序和数据都需要放在内存中,那么 程序员在编写程序时是否需要知道程序和数据 的存放位置呢?
如果不知道,那么多个进程同时在内存中运 行,每个进程应占用哪些空间呢,
如何保证各个进程占用的空间不冲突呢? 内存空间如何进行分配和管理呢?
2022/12/21
2
第四章 内存管理
4.1 内存管理概述 4.2 内存管理的基础 4.3 连续内存分配存储方式 4.4 虚拟存储
2022/12/21
2
4.1 内存管理概述
4.1.1 存储结构
存储层次
➢ CPU寄存器
➢ 辅存:固定磁盘、可移动 介质
层次越高,访问速度越快,
价格也越高,存储容量也
最小
7
4.1 内存管理概述
4.1.3 操作系统在内存中的位置
图4-2 仅有RAM时操作系统与用户程序的内存分配
2022/12/21
8
4.1 内存管理概述
4.1.3 操作系统在内存中的位置
图4-3 备有ROM时操作系统和用户程序之内存分配
2022/12/21
9
4.1 内存管理概述
4.1.3 操作系统在内存中的位置
多个小分区 适量中分区 少量大分区
34
内存分配例子
分区号 大小(K) 起始地址(K) 状态
1
12
20
已分配
2
32
32
已分配
3
64
64
已分配
4
128
128
未分配
固定分区使用表
操作系统课后答案——第四章
第四章存储器管理1. 为什么要配置层次式存储器?这是因为:a.设置多个存储器可以使存储器两端的硬件能并行工作。
b.采用多级存储系统,特别是Cache技术,这是一种减轻存储器带宽对系统性能影响的最佳结构方案。
c.在微处理机内部设置各种缓冲存储器,以减轻对存储器存取的压力。
增加CPU中寄存器的数量,也可大大缓解对存储器的压力。
2. 可采用哪几种方式将程序装入内存?它们分别适用于何种场合?将程序装入内存可采用的方式有:绝对装入方式、重定位装入方式、动态运行时装入方式;绝对装入方式适用于单道程序环境中,重定位装入方式和动态运行时装入方式适用于多道程序环境中。
3. 何为静态链接?何谓装入时动态链接和运行时动态链接?a.静态链接是指在程序运行之前,先将各自目标模块及它们所需的库函数,链接成一个完整的装配模块,以后不再拆开的链接方式。
b.装入时动态链接是指将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的一种链接方式,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找相应的外部目标模块,把它装入内存中,并修改目标模块中的相对地址。
c.运行时动态链接是将对某些模块的链接推迟到程序执行时才进行链接,也就是,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。
4. 在进行程序链接时,应完成哪些工作?a.对相对地址进行修改b.变换外部调用符号6. 为什么要引入动态重定位?如何实现?a.程序在运行过程中经常要在内存中移动位置,为了保证这些被移动了的程序还能正常执行,必须对程序和数据的地址加以修改,即重定位。
引入重定位的目的就是为了满足程序的这种需要。
b.要在不影响指令执行速度的同时实现地址变换,必须有硬件地址变换机构的支持,即须在系统中增设一个重定位寄存器,用它来存放程序在内存中的起始地址。
程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的。
ch4-4.3分页和4.4分段式存储管理
可执行程序 主存
调用DLL中的函数
Windows动态链接
24/51
共享信息的保护问题 标志位保护方法 键保护方法
25/51
4.3.5 多级页表
多级页表的概念 多级页表的具体做法 逻辑地址结构 逻辑地址到物理地址转 换过程
26/51
页表存储开销太大
CPU具有32位地址时 ,使用232逻 辑地址空间的分页系统,规定页面 4KB时,每个进程页表的表项有1兆 (220)个,若表项占用4个字节,则每 个进程需要占用4MB连续 连续内存空 连续 间存放页表。
28/51
系统为每个进程建一张页目录表, 它的每个表项对应一个页表页,而页 表页的每个表项给出了页面和页框 的对应关系,页目录表是一级页表, 页表页是二级页表。 逻辑地址结构有三部分组成:页目 录、页表页和位移。
29/51
多级页表地址转换过程
页目录表控制寄存器指出当前运行进 程的页目录表内存所在地址,由页目录 表起址加上dir作索引,可找到某个页表 页在内存页框的地址, 以page作索引,找到页表页的页表项, 而该表项中包含了页面对应的页框号 页框号和位移offset便可生成物理地址
偏移(12) 偏移
第一级
第二级
第三级
4K页面 页面
4095
页表
36/51
多级页表结构的本质
多级不连续导致多级索引。 以二级页表为例,用户程序的页面不连续 存放,要有页面地址索引,该索引是进程 页表;进程页表又是不连续存放的多个页 表页,故页表页也要页表页地址索引,该 索引就是页目录。 页目录项是页表页的索引,而页表页项是 进程程序的页面索引。
5/51
0 1 2 3 4 5 6 作业的 地址空间
页框 页 (物理块) 物理块) 号 0 1 2 3 4 5 6
段页式存储管理
管理(续)
空闲块管理 空闲块表 内存分配算法(三种)
思考:与可变分区存储管理方案的相同点 与不同点?
3. 硬件支持
系统设置一对寄存器 段表始址寄存器: 用于保存正在运行进程的段表的始址 段表长度寄存器: 用于保存正在运行进程的段表的长度 相联存储器——快表 快表项目:段号;段始址;段长度;标识(状 态)位;访问位(淘汰位)
2. 管理
结合所学的分区和页式管理方 请设计如何实现段式管理? 式,请设计如何实现段式管理?
段表 记录了段号,段的首(地)址和长度之 间的关系 每一个程序设置一个段表,放在内存系统区 属于进程的现场信息 段表的项目:
逻辑段号 物理段起始地址(段首址) 物理段长度 段号 段首址 0 1 2
58K 100K 260K 段长度 20K 110K 140K
段页式存储管理方案(续2)
4. 硬件支持
基于所学的理论,试分析硬件支持? 基于所学的理论,试分析硬件支持?
段表始址寄存器 段表长度寄存器 相联存储器(快表)
试设计: 利用段表和页表实现地址映射
段表寄存器 段表大小 段表始址 操作系统 页号 状态 存储块# 0 1 1 1 2 1 3 0 4 1
段号 状态 页表大小 页表始址 0 1 1 1 2 1 3 0 4 1 段表
分页系统中共享editor的示意图
进程1 ed 1 ed 2 ed 40 data 1 data 10 进子2 ed 1 ed 2 ed 40 data 1 data 10 … … … … 页表 21 22 60 61 70 页表 21 22 60 71 80 … … … …
主存 0 ed 1 ed 2 ed 40 data 1 data 10 data 1 data 10 … … … … 21 22 60 61 70 71 80
