内存的存储管理--段式和页式管理的区别
- 格式:doc
- 大小:1.10 MB
- 文档页数:7
计算机操作系统存储管理计算机操作系统存储管理是指操作系统在运行过程中管理和控制计算机的存储资源的一种机制。
它负责分配和回收内存,以及保护和管理进程的内存访问权限。
存储管理是操作系统中的一个重要子系统,对系统的性能和稳定性具有重要影响。
本文将介绍计算机操作系统存储管理的基本原理、常见的存储管理技术以及其在实际应用中的作用。
一、存储管理的基本原理在计算机系统中,存储器扮演着重要的角色,它用于存储程序、数据和系统状态。
计算机操作系统存储管理的基本原理是将物理内存划分为多个逻辑区域,每个区域被分配给不同的程序或进程使用。
操作系统维护一个内存分配表,记录每个逻辑区域的使用情况,并根据请求进行内存分配与回收。
当进程创建时,操作系统将为其分配一定大小的内存,当进程终止时,操作系统会回收这些内存资源。
同时,存储管理还负责处理内存碎片问题,通过内存的动态分配与合并来最大化利用内存资源。
二、常见的存储管理技术1. 基于固定分区的存储管理技术基于固定分区的存储管理技术是最早的一种存储管理方法。
它将物理内存划分为若干固定大小的分区,每个分区只能分配给一个进程使用。
该方法简单直观,但由于分区的固定大小,会产生很多内存碎片,不利于内存的高效利用。
2. 基于可变分区的存储管理技术为了解决内存碎片问题,出现了基于可变分区的存储管理技术。
这种技术允许每个进程动态地申请和释放内存空间,分区的大小可以根据进程的需要进行调整。
它相对于固定分区的方法更加灵活,能够提高内存利用率,但也存在内存碎片问题。
3. 页式存储管理技术页式存储管理技术将物理内存和逻辑内存划分为固定大小的页块,进程的地址空间也被划分为相同大小的页。
通过将逻辑地址转换为物理地址,实现了逻辑内存与物理内存的映射。
该技术可以很好地解决内存碎片问题,并且方便创建和销毁进程,但需要额外的地址转换开销。
4. 段式存储管理技术段式存储管理技术将进程的逻辑地址空间划分为若干段,每个段具有不同的长度和属性。
linux段页机制
Linux操作系统中的段页机制是一种内存管理机制,用于将物
理内存映射到进程的虚拟地址空间。
段页机制结合了段式存储管理
和页式存储管理两种技术,以提供更灵活和高效的内存管理方式。
在Linux中,段页机制的实现主要包括以下几个方面:
1. 段式存储管理,Linux使用段式存储管理来管理进程的地址
空间。
每个进程都有自己的地址空间,被划分为多个段,如代码段、数据段、堆栈段等。
每个段都有自己的基地址和限长,这样可以更
灵活地管理内存空间。
2. 页式存储管理,Linux使用页式存储管理来将进程的虚拟地
址空间映射到物理内存。
虚拟地址空间被划分为固定大小的页,通
常为4KB。
操作系统负责将进程的页映射到物理内存中,并进行页
面置换等管理操作。
3. 虚拟内存管理,Linux通过段页机制实现了虚拟内存管理,
允许多个进程共享物理内存,并提供了一种虚拟内存空间,使得每
个进程都认为自己拥有整个地址空间。
4. 内存保护,段页机制可以实现内存保护,通过设置段的访问权限和页的访问权限,可以保护进程的地址空间不被非法访问。
总的来说,Linux中的段页机制通过段式存储管理和页式存储管理相结合,实现了对进程地址空间的灵活管理和对物理内存的高效利用,从而提高了系统的性能和安全性。
页式、段式、段页式存储优缺点总结内存管理⽅式主要分为:页式管理、段式管理和段页式管理。
页式管理的基本原理是将各进程的虚拟空间划分为若⼲个长度相等的页。
把内存空间按页的⼤⼩划分为⽚或者页⾯,然后把页式虚拟地址与内存地址建⽴⼀⼀对应的页表,并⽤相应的硬件地址转换机构来解决离散地址变换问题。
页式管理采⽤请求调页和预调页技术来实现内外存存储器的统⼀管理。
优点:没有外碎⽚,每个内碎⽚不超过页的⼤⼩。
缺点:程序全部装⼊内存,要求有相应的硬件⽀持,如地址变换机构缺页中断的产⽣和选择淘汰页⾯等都要求有相应的硬件⽀持。
增加了机器成本和系统开销。
段式管理的基本思想是把程序按内容或过程函数关系分成段,每段有⾃⼰的名字。
⼀个⽤户作业或者进程所包含的段对应⼀个⼆维线性虚拟空间,也就是⼀个⼆维虚拟存储器。
段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换为实际内存物理地址。
优点:可以分别编写和编译,可以针对不同类型的段采取不同的保护,可以按段为单位来进⾏共享,包括通过动态链接进⾏代码共享。
缺点:会产⽣碎⽚。
段页式管理,系统必须为每个作业或者进程建⽴⼀张段表以管理内存分配与释放、缺段处理等。
另外由于⼀个段⼜被划分为若⼲个页,每个段必须建⽴⼀张页表以把段中的虚页变换为内存中的实际页⾯。
显然与页式管理时相同,页表也要有相应的实现缺页中断处理和页⾯保护等功能的表项。
段页式管理是段式管理和页式管理相结合⽽成,具有两者的优点。
由于管理软件的增加,复杂性和开销也增加。
另外需要的硬件以及占⽤的内存也有所增加,使得执⾏速度下降。
————————————————————————————————————————————————⾸先看⼀下“基本的存储分配⽅式”种类:1. 离散分配⽅式的出现 由于连续分配⽅式会形成许多内存碎⽚,虽可通过“紧凑”功能将碎⽚合并,但会付出很⼤开销。
于是出现离散分配⽅式:将⼀个进程直接分散地装⼊到许多不相邻的内存分区中。
1.什么是操作系统?⑴计算机硬件与用户软件之间的中间件程序集合(2)OS是一个资源管理程序(3)OS是一个控制调度程序(4)OS 一般有一个内核(kernel)程序,开机后一直运行⑸提供用户和计算机之间的接口2.现代操作系统的五大组成部分:处理器管理,内存管理,设备管理,文件管理,用户接口3.操作系统的四个基本特征:并发性,共享性,虚拟性,异步性4.分时操作系统的基本特征:交互性、多用户同时性、独立性5.操作系统的三种基本类型:批处理系统,分时系统和实时系统6.实时操作系统的特点:可靠性高、响应及时但资源利用率低7.多道程序设计的特点:多道,宏观上并行,微观上串行8.批处理操作系统的特点:用户脱机使用计算机,成批处理,多道程序运行9.进程定义,进程组成部分,进程的基本特征:定义:一个被调入内存正在执行的程序。
一个具有独立功能的程序对某个数据集在CPU处理器上的执行过程。
独立分配资源的基本单位。
进程包括:代码段,堆栈段,数据段进程具有5个特征:(1)动态性:进程是程序的执行过程,它由创建而产生,由调度而执行,因得不到资源而暂停,并由撤销而死亡。
(2)并行性:多个进程实体同存于内存中,能在一段时间内同时运行。
(3)独立性:进程是一个独立获得资源和独立调度的单位。
(4)异步性:进程按各自独立的不可预知的速度向前推进。
(5)结构特征:从结构上看,进程实体由程序段、数据段和进程控制块3部分组成10.进程和程序的区别:11.进程的状态周期:初始态,执行状态,等待状态,就绪状态,终止状态12.什么是进程控制块PCB?进程控制块PCB:用来描述进程的一切静态和动态的特征,操作系统只能通过它来感知和管理进程。
每个进程都有且仅有一个进程控制块。
13.通常将处理器的执行状态分为哪两种状态?系统态(管理状态),用户态(目标状态)14.什么是线程?线程的类型有哪三种?线程定义:一个进程内的基本调度单位,也称为轻权进程。
线程既可以由操作系统内核调度,也可以由用户程序控制线程分为三种类型:内核线程、轻量级进程和用户线程15.进程调度常用的四个指标:周转时间,吞吐量,响应时间,设备利用率16.CPU调度的三级调度:高级调度(作业)、中级调度(交换)和低级调度(进程)17.作业调度和进程调度的区别。
《操作系统原理》试题一填空:1.操作系统为用户提供三种类型的使用接口,它们是命令方式和系统调用和图形用户界面。
2.主存储器与外围设备之间的数据传送控制方式有程序直接控制、中断驱动方式、DMA方式和通道控制方式。
3.在响应比最高者优先的作业调度算法中,当各个作业等待时间相同时,运行时间短的作业将得到优先调度;当各个作业要求运行的时间相同时,等待时间长的作业得到优先调度。
4.当一个进程独占处理器顺序执行时,具有两个特性:封闭性和可再现性。
5.程序经编译或汇编以后形成目标程序,其指令的顺序都是以零作为参考地址,这些地址称为逻辑地址。
6.文件的逻辑结构分流式文件和记录式文件二种。
7.进程由程度、数据和FCB组成。
8.对信号量S的操作只能通过原语操作进行,对应每一个信号量设置了一个等待队列。
9.操作系统是运行在计算机裸机系统上的最基本的系统软件。
10.虚拟设备是指采用SPOOLING技术,将某个独享设备改进为供多个用户使用的的共享设备。
11.文件系统中,用于文件的描述和控制并与文件一一对应的是文件控制块。
12.段式管理中,以段为单位,每段分配一个连续区。
由于各段长度不同,所以这些存储区的大小不一,而且同一进程的各段之间不要求连续。
13.逻辑设备表(LUT)的主要功能是实现设备独立性。
14在采用请求分页式存储管理的系统中,地址变换过程可能会因为缺页和越界等原因而产生中断。
16. 段的共享是通过共享段表实现的。
17.文件的物理结构分为顺序文件、索引文件和索引顺序文件。
18.所谓设备控制器,是一块能控制一台或多台外围设备与CPU并行工作的硬件。
19. UNIX的文件系统空闲空间的管理是采用成组链接法。
20分页管理储管理方式能使存储碎片尽可能少,而且使内存利用率较高,管理开销小。
20.计算机操作系统是方便用户、管理和控制计算机软硬件资源的系统软件。
21.操作系统目前有五大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
操作系统的分段和分页机制
分段和分页是操作系统中用于存储和管理内存的两种常用机制。
分段机制是将程序分为多个段,每个段的大小可以不同,每个段的地址空间都是独立的。
每个段都有一个段表,记录了该段在内存中的起始地址和长度等信息。
程序在执行过程中,通过段表来实现地址转换,从而访问到对应的内存段。
这种机制可以实现共享内存,保护内存等功能。
分页机制是将内存划分为若干等大小的页,每个页的大小固定,通常为4KB。
程序的地址被分为页号和页内偏移两部分,通过页表来实现地址转换。
页表记录了每个页的状态和所在的物理地址。
由于页的大小是固定的,因此不同的程序可以共享同一个物理页,这种机制可以提高系统的内存利用率。
两种机制的组合可以更好地管理内存。
操作系统可以先将程序分为若干个段,再将每个段分配到一组连续的页中,然后通过同时使用段表和页表来实现地址转换。
这种机制称为分段页式存储管理机制。
存储管理的基本模式存储管理是操作系统中重要的组成部分,负责管理计算机系统中的内存和外部存储器。
存储管理的基本模式主要有以下几种:1. 固定分区固定分区是一种简单的存储管理方式,它将内存分为若干个固定大小的区域,每个区域对应一个进程或任务。
每个进程只能在自己的区域中运行,不能访问其他区域的内存。
这种方式在一定程度上限制了进程的自由度,但由于实现简单,在一些简单系统中仍然被采用。
优点:实现简单,安全可靠。
缺点:分区数量固定,造成内存浪费,且不利于大内存程序的运行。
适用场景:适用于内存较小、任务数量固定的系统。
2. 动态分区动态分区是一种更为灵活的存储管理方式,它根据进程或任务的实际需要,动态地分配内存空间。
这种方式能够更好地利用内存资源,提高内存利用率。
优点:内存利用率高,适用于大内存程序。
缺点:实现相对复杂,需要操作系统进行更多的管理操作。
适用场景:适用于内存较大、任务数量不确定的系统。
3. 页式管理页式管理是一种将内存分为若干个页(page)的存储管理方式。
每个页的大小固定,可以存放一个进程或任务的一部分。
页式管理通过将程序分割成多个页面,实现了内存的离散分配。
优点:内存利用率高,可以实现多道程序运行。
缺点:实现相对复杂,需要处理页面置换和缺页等问题。
适用场景:适用于内存较大、任务数量不确定的系统。
4. 段式管理段式管理将内存分为若干个段(segment),每个段的大小不固定,可以存放一个进程或任务的一部分。
段式管理通过将程序分割成多个段,实现了内存的逻辑分段。
优点:便于多道程序运行,可以实现分段保护和分段共享。
缺点:实现相对复杂,需要处理段之间的地址映射和保护等问题。
适用场景:适用于内存较大、任务数量不确定的系统。
5. 段页式管理段页式管理结合了页式管理和段式管理的优点,将内存分为若干个段,每个段又包含若干个页。
这种方式可以实现内存的逻辑分段和离散分配,同时提高了内存的利用率和多道程序运行能力。
分页和分段有什么区别(内存管理)?
分页和分段有什么区别(内存管理)?
段式存储管理是⼀种符合⽤户视⾓的内存分配管理⽅案。
在段式存储管理中,将程序的地址空间划分为若⼲段(segment),如代码段,数据段,堆栈段;这样每个进程有⼀个⼆维地址空间,相互独⽴,互不⼲扰。
段式管理的优点是:没有内碎⽚(因为段⼤⼩可变,改变段⼤⼩来消除内碎⽚)。
但段换⼊换出时,会产⽣外碎⽚(⽐如4k的段换5k的段,会产⽣1k的外碎⽚)
页式存储管理⽅案是⼀种⽤户视⾓内存与物理内存相分离的内存分配管理⽅案。
在页式存储管理中,将程序的逻辑地址划分为固定⼤⼩的页(page),⽽物理内存划分为同样⼤⼩的帧,程序加载时,可以将任意⼀页放⼊内存中任意⼀个帧,这些帧不必连续,从⽽实现了离散分离。
页式存储管理的优点是:没有外碎⽚(因为页的⼤⼩固定),但会产⽣内碎⽚(⼀个页可能填充不满)。
两者的不同点:
⽬的不同:分页是由于系统管理的需要⽽不是⽤户的需要,它是信息的物理单位;分段的⽬的是为了能更好地满⾜⽤户的需要,它是信息的逻辑单位,它含有⼀组其意义相对完整的信息;
⼤⼩不同:页的⼤⼩固定且由系统决定,⽽段的长度却不固定,由其所完成的功能决定;
地址空间不同:段向⽤户提供⼆维地址空间;页向⽤户提供的是⼀维地址空间;
信息共享:段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制;
内存碎⽚:页式存储管理的优点是没有外碎⽚(因为页的⼤⼩固定),但会产⽣内碎⽚(⼀个页可能填充不满);⽽段式管理的优点是没有内碎⽚(因为段⼤⼩可变,改变段⼤⼩来消除内碎⽚)。
但段换⼊换出时,会产⽣外碎⽚(⽐如4k的段换5k的段,会产⽣1k的外碎⽚)。
分页式和段式存储管理在操作系统引入分页和分段管理之前,操作系统采用的是分区管理,就是将内存分成多个连续的地址空间,如果允许将一个进程分散到许多不连续的空间,就可以避免内存紧缩,减少碎片。
基于这一思想,通过引入进程的逻辑地址,把进程地址空间与实际存储空间分离,增加存储管理的灵活性。
再说明分页管理和分段管理之前介绍下两个概念:地址空间:将源程序经过编译后得到的目标程序,存在于它所限定的地址范围内,这个范围称为地址空间。
地址空间是逻辑地址的集合。
存储空间:指主存中一系列存储信息的物理单元的集合,这些单元的编号称为物理地址存储空间是物理地址的集合。
分页其实就是将物理内在分为多个大小相同的页框,然后每个进程根据映射表可以映射到物理地址中的任意一个页框中,而分段是从程序代码的角度出发,将程序地址分为若干个段,然后根据映射表映射到相应的内存。
页式存储管理基本原理将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(page frame)。
程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。
该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。
在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内陆址w(位移量),如图4所示:页式管理方式的优点是:1)没有外碎片,每个内碎片不超过页大比前面所讨论的几种管理方式的最大进步是,2)一个程序不必连续存放。
3)便于改变程序占用空间的大小(主要指随着程序运行,动态生成的数据增多,所要求的地址空间相应增长)。
缺点是:要求程序全部装入内存,没有足够的内存,程序就不能执行。
页式管理的数据结构在页式系统中进程建立时,操作系统为进程中所有的页分配页框。
当进程撤销时收回所有分配给它的页框。
在程序的运行期间,如果允许进程动态地申请空间,操作系统还要为进程申请的空间分配物理页框。
操作系统为了完成这些功能,必须记录系统内存中实际的页框使用情况。
1.LRU页面调度算法总是选择在主存驻留时间最长的页面被淘汰。
()2.磁盘是共享设备,所以每一时刻可有若干个进程同时与它交换信息。
()3.分时系统中,时间片设置得越小,则平均响应时间越短。
()4.多个进程可以对应于同一个程序,且一个进程也可能会执行多个程序。
()5.设备独立性是指系统具有使用不同设备的能力。
()6.进程A、B共享变量x,需要互斥执行;进程B、C共享变量y,B、C也需要互斥执行,因此,进程A、C必须互斥执行。
()7.为了提高系统资源的利用率,在作业调度的优先级算法中应该规定,计算型作业的优先级较高,I/O型作业的优先级较低。
()8.I/0交通管理程序的主要功能是管理主存控制器和通道。
()9.引入缓冲区能使CPU和I/O设备之间速度不匹配的情况得到改善,但并不能减少设备中断CPU的次数。
()10.由于设备驱动程序与硬件紧密相关,因此,系统中配备多少个设备就必须配置同样数量的设备驱动程序。
()11.可以将操作系统看作是一个资源分配器,用来控制I/O设备和用户的程序。
()12.死锁的形成只与资源分配策略有关,而与并发进程的执行速度无关。
()13.在引入线程的操作系统中,线程是资源分配和调度的基本单位。
()14.分页存储管理方案易于实现用户使用内存空间的动态扩充。
()15.对临界资源应采取互斥访问方式来实现共享。
()1.错,原因:是选择最长时间没有被用的页面被淘汰。
2.错,原因:每一时刻只有一个进程与它交换信息。
3.错,原因:平均响应时间不但与时间片的大小有关,还与其他因素有关。
4.对5.错,原因:设备独立性,可使应用程序独立于具体的物理设备和独立于设备的类型6.错,原因:不传递。
7.错,原因:I/O型作业的优先级高。
8.错,原因:I/O交通管理程序的主要功能是管理设备、控制器和通道。
9.错,减少设备中断CPU的次数。
10.错,一类一种。
11.对12.错,原因:与进程执行速度有关。
13.错,线程是调度的基本单位,进程是资源分配的基本单位14.错,原因:分段存储管理易于实现用户使用内存空间的动态扩充。
操作系统分页和分段区别是什么学习操作系统的朋友们可能有人操作系统中分页和分段中卡壳了,相对比较抽象,那么他们的区别是什么呢。
下面由店铺为大家整理了操作系统中分页和分段的区别之处,希望对大家有帮助。
一分段存储管理介绍1.基本思想将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。
存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。
2. 分段存储方式的引入方便编程分段共享分段保护动态链接动态增长3. 分段地址结构作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。
例程序段、数据段等。
每个段都从0开始编址,并采用一段连续的地址空间。
段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。
整个作业的地址空间是二维的。
15 12 11 0段号段内位移量段号4位,每个作业最多24=16段,表示段号从0000~1111(24-1);段内位移量12位,212=4k,表示每段的段内地址最大为4K(各段长度不同),从000000000000~1111111111114. 段表段号段长起始地址存取控制0 1K 40961 4K 175002 2K 81925. 地址变换(1). 程序执行时,从PCB中取出段表始址和段表长度(3),装入段表寄存器。
(2). 由分段地址变换机构将逻辑地址自动分成段号和段内地址。
例:7310D=0001|110010001110B=1C8EH段号为1,位移量为C8EH=3214D(3). 将段号与段表长度进行比较(1<3),若段号大于或等于段表长度,则表示本次访问的地址已超越进程的地址空间,产生越界中断。
(4). 将段表始址与段号和段表项长度的乘积相加,便得到该段表项在段表中的位置。
(5). 取出段描述子得到该段的起始物理地址。
1 4K 17500(6). 检查段内位移量是否超出该段的段长(3214<4K),若超过,产生越界中断。
第四章存储管理习题一、选择题1、存储分配解决多道作业(A)的划分问题。
为了解决静态和动态存储分配,需采用地址重定位,即把(B)变换成(C),静态重定位由(D)实现,动态重定位由(E)实现。
A:①地址空间②符号名空间③主存空间④虚拟空间B、C:①页面地址②段地址③逻辑地址④物理地址⑤外存地址⑥设备地址D~E:①硬件地址变换机构②执行程序③汇编程序④连接装入程序⑤调试程序⑥编译程序⑦解释程序2、提高主存利用率主要是通过(A)功能实现的。
(A)的基本任务是为每道程序做(B);使每道程序能在不受干扰的环境下运行,主要是通过(C)功能实现的。
A、C:①主存分配②主存保护③地址映射④主存扩充B:①逻辑地址到物理地址的变换;②内存与外存间的交换;③允许用户程序的地址空间大于内存空间;④分配内存3、由固定分区方式发展为分页存储管理方式的主要推动力是(A);由分页系统发展为分段系统,进而以发展为段页式系统的主要动力分别是(B)。
A~B:①提高主存的利用率;②提高系统的吞吐量;③满足用户需要;④更好地满足多道程序运行的需要;⑤既满足用户要求,又提高主存利用率。
4、静态重定位是在作业的(A)中进行的,动态重定位是在作业的(B)中进行的。
A、B:①编译过程;②装入过程;③修改过程;④执行过程5、对外存对换区的管理应以(A)为主要目标,对外存文件区的管理应以(B)为主要目标。
A、B:①提高系统吞吐量;②提高存储空间的利用率;③降低存储费用;④提高换入换出速度。
6、从下列关于虚拟存储器的论述中,选出一条正确的论述。
①要求作业运行前,必须全部装入内存,且在运行中必须常驻内存;②要求作业运行前,不必全部装入内存,且在运行中不必常驻内存;③要求作业运行前,不必全部装入内存,但在运行中必须常驻内存;④要求作业运行前,必须全部装入内存,且在运行中不必常驻内存;7、在请求分页系统中有着多种置换算法:⑴选择最先进入内存的页面予以淘汰的算法称为(A);⑵选择在以后不再使用的页面予以淘汰的算法称为(B);⑶选择自上次访问以来所经历时间最长的页面予淘汰的算法称为(C);A~D:①FIFO算法;②OPT算法;③LRU 算法;④NRN算法;⑤LFU算法。
习题5参考答案Ⅰ问答题1. 存储管理的主要功能是什么?答:(1)主存空间的分配与回收。
系统按照一定的算法把某一空闲的存储空间分配给作业或进程;用户不需要时,及时回收,以供其它用户程序使用。
(2)地址转换(地址重定位)。
把作业地址空间中使用的逻辑地址转换成存空间中的物理地址。
(3)主存空间的共享和保护。
可用的主存空间可由两个或多个进程共享。
同时要保护系统程序区不被用户有意或无意的侵犯,不允许用户程序读写不属于自己地址空间的数据,避免各道程序间相互干扰。
特别是当一道程序发生错误时,不至于影响其它程序的运行。
(4)主存空间的扩充。
使用虚拟存储或自动覆盖技术提供比实际存更大的空间。
2. 指出逻辑地址与物理地址的不同点。
答:用户的源程序一旦编译之后,每个目标模块都以0为基地址进行编址,这种地址称为逻辑地址或相对地址。
为了便于CPU访问,存中的每个物理存储单元都有一个编号,这个编号称为存地址,即物理地址(也称绝对地址)。
3. 何谓地址转换(重定位)?有哪些方法可以实现地址转换?答:当作业运行时,不能用逻辑地址在存中读取信息,必须把作业地址空间中使用的逻辑地址转换成存空间中的物理地址,这种转换称为地址转换。
实现地址转换的方法有:静态地址转换和动态地址转换。
4. 简述什么是覆盖?什么是交换?覆盖和交换的区别是什么?答:覆盖技术主要是指同一主存区可以被不同的程序段重复使用。
交换,就是系统根据需要把主存中暂时不运行的某个(或某些)作业部分或全部移到外存,而把外存中的某个(或某些)作业移到相应的主存区,并使其投入运行。
交换是由操作系统完成,用户并不知道。
操作系统按一定的策略采用“强占”和“礼让”的方法,把存部分容暂时放到硬盘交换区中。
覆盖是由用户控制,操作系统提供覆盖机制,用户给出该程序的覆盖结构。
覆盖机构将整个作业分为常驻和覆盖两部分。
子程序不会同时调入存。
用户只要将最大的子程序作为覆盖区告诉系统即可。
5. 简述固定分区存储管理和可变分区存储管理的区别。
内存管理的五种方式
内存管理是计算机系统中非常重要的一部分,它负责管理计算机系统中的内存资源,以确保系统能够高效地运行。
在内存管理中,有五种常见的方式,它们分别是静态分配、动态分配、分页、分段和虚拟内存。
静态分配是最简单的内存管理方式之一,它是在程序编译时就将内存分配好。
这种方式的优点是简单易懂,但缺点是浪费内存资源,因为程序在运行时可能不需要使用所有的内存。
动态分配是一种更加灵活的内存管理方式,它是在程序运行时根据需要动态地分配内存。
这种方式的优点是可以更好地利用内存资源,但缺点是需要更多的计算和管理工作。
分页是一种将内存分成固定大小的块的方式,每个块称为一页。
这种方式的优点是可以更好地利用内存资源,但缺点是需要更多的管理工作。
分段是一种将内存分成不同大小的块的方式,每个块称为一个段。
这种方式的优点是可以更好地适应不同大小的程序,但缺点是需要更多的管理工作。
虚拟内存是一种将硬盘空间作为内存扩展的方式,它可以让程序使用比实际内存更多的内存。
这种方式的优点是可以更好地适应大型程序,但缺点是需要更多的计算和管理工作。
总的来说,内存管理是计算机系统中非常重要的一部分,它可以影响系统的性能和稳定性。
不同的内存管理方式有不同的优缺点,需要根据具体情况选择合适的方式。
内存的存储管理段式和页式管理的区别页和分段系统有许多相似之处,但在概念上两者完全不同,主要表现在:1、页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。
段是信息的逻辑单位,它含有一组其意义相对完整的信息。
分段的目的是为了能更好的满足用户的需要。
2、页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。
段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。
3、分页的作业地址空间是维一的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。
分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。
参考资料:/ctsn/os/skja4.htm添加评论炎炎1981|2009-08-2618:28:33有0人认为这个回答不错|有0人认为这个回答没有帮助一页式管理1页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(pageframe),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。
页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。
它分为1静态页式管理。
静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。
系统通过存储页面表、请求表以及页表来完成内存的分配工作。
静态页式管理解决了分区管理时的碎片问题。
但是,由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,该作业或进程只好等待。
而且作业和进程的大小仍受内存可用页面数的限制。
2动态页式管理。
动态页式管理是在静态页式管理的基础上发展起来的。
它分为请求页式管理和预调入页式管理。
存储管理的基本原理内存管理方法内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。
下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。
1.连续分配存储管理方式连续分配是指为一个用户程序分配连续的内存空间。
连续分配有单一连续存储管理和分区式储管理两种方式。
(1)单一连续存储管理在这种管理方式中,内存被分为两个区域:系统区和用户区。
应用程序装入到用户区,可使用用户区全部空间。
其特点是,最简单,适用于单用户、单任务的操作系统。
CP/M和DOS 2.0以下就是采用此种方式。
这种方式的最大优点就是易于管理。
但也存在着一些问题和不足之处,例如对要求内存空间少的程序,造成内存浪费;程序全部装入,使得很少使用的程序部分也占用—定数量的内存。
(2)分区式存储管理为了支持多道程序系统和分时系统,支持多个程序并发执行,引入了分区式存储管理。
分区式存储管理是把内存分为一些大小相等或不等的分区,操作系统占用其中一个分区,其余的分区由应用程序使用,每个应用程序占用一个或几个分区。
分区式存储管理虽然可以支持并发,但难以进行内存分区的共享。
分区式存储管理引人了两个新的问题:内碎片和外碎片。
前者是占用分区内未被利用的空间,后者是占用分区之间难以利用的空闲分区(通常是小空闲分区)。
为实现分区式存储管理,操作系统应维护的数据结构为分区表或分区链表。
表中各表项一般包括每个分区的起始地址、大小及状态(是否已分配)。
分区式存储管理常采用的一项技术就是内存紧缩(compaction):将各个占用分区向内存一端移动,然后将各个空闲分区合并成为一个空闲分区。
这种技术在提供了某种程度上的灵活性的同时,也存在着一些弊端,例如:对占用分区进行内存数据搬移占用CPU~t寸间;如果对占用分区中的程序进行“浮动”,则其重定位需要硬件支持。
1)固定分区(nxedpartitioning)。
固定式分区的特点是把内存划分为若干个固定大小的连续分区。
分区大小可以相等:这种作法只适合于多个相同程序的并发执行(处理多个类型相同的对象)。
分区大小也可以不等:有多个小分区、适量的中等分区以及少量的大分区。
根据程序的大小,分配当前空闲的、适当大小的分区。
这种技术的优点在于,易于实现,开销小。
缺点主要有两个:内碎片造成浪费;分区总数固定,限制了并发执行的程序数目。
2)动态分区(dynamic partitioning)。
动态分区的特点是动态创建分区:在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小。
与固定分区相比较其优点是:没有内碎片。
但它却引入了另一种碎片——外碎片。
动态分区的分区分配就是寻找某个空闲分区,其大小需大于或等于程序的要求。
若是大于要求,则将该分区分割成两个分区,其中一个分区为要求的大小并标记为“占用”,而另一个分区为余下部分并标记为“空闲”。
分区分配的先后次序通常是从内存低端到高端。
动态分区的分区释放过程中有一个要注意的问题是,将相邻的空闲分区合并成一个大的空闲分区。
下面列出了几种常用的分区分配算法:首先适配法(nrst-fit):按分区在内存的先后次序从头查找,找到符合要求的第一个分区进行分配。
该算法的分配和释放的时间性能较好,较大的空闲分区可以被保留在内存高端。
但随着低端分区不断划分会产生较多小分区,每次分配时查找时间开销便会增大。
下次适配法(next-fit):按分区在内存的先后次序,从上次分配的分区起查找(到最后{区时再从头开始},找到符合要求的第一个分区进行分配。
该算法的分配和释放的时间性能较好,使空闲分区分布得更均匀,但较大空闲分区不易保留。
最佳适配法(best-fit):按分区在内存的先后次序从头查找,找到其大小与要求相差最小的空闲分区进行分配。
从个别来看,外碎片较小;但从整体来看,会形成较多外碎片优点是较大的空闲分区可以被保留。
最坏适配法(worst- fit):按分区在内存的先后次序从头查找,找到最大的空闲分区进行分配。
基本不留下小空闲分区,不易形成外碎片。
但由于较大的空闲分区不被保留,当对内存需求较大的进程需要运行时,其要求不易被满足。
2.覆盖和交换技术引入覆盖(overlay)技术的目标是在较小的可用内存中运行较大的程序。
这种技术常用于多道程序系统之中,与分区式存储管理配合使用。
覆盖技术的原理很简单,一个程序的几个代码段或数据段,按照时间先后来占用公共的内存空间。
将程序必要部分(常用功能)的代码和数据常驻内存;可选部分(不常用功能)平时存放在外存(覆盖文件)中,在需要时才装入内存。
不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。
覆盖技术的缺点是编程时必须划分程序模块和确定程序模块之间的覆盖关系,增加编程复杂度;从外存装入覆盖文件,以时间延长换取空间节省。
覆盖的实现方式有两种:以函数库方式实现或操作系统支持。
交换(swapping)技术在多个程序并发执行时,可以将暂时不能执行的程序送到外存中,从而获得空闲内存空间来装入新程序,或读人保存在外存中而处于就绪状态的程序。
交换单位为整个进程的地址空间。
交换技术常用于多道程序系统或小型分时系统中,与分区式存储管理配合使用又称作“对换”或“滚进/滚出” (roll-in/roll-out)。
其优点之一是增加并发运行的程序数目,并给用户提供适当的响应时间;与覆盖技术相比交换技术另一个显著的优点是不影响程序结构。
交换技术本身也存在着不足,例如:对换人和换出的控制增加处理器开销;程序整个地址空间都进行对换,没有考虑执行过程中地址访问的统计特性。
3.页式和段式存储管理在前面的几种存储管理方法中,为进程分配的空间是连续的,使用的地址都是物理地址。
如果允许将一个进程分散到许多不连续的空间,就可以避免内存紧缩,减少碎片。
基于这一思想,通过引入进程的逻辑地址,把进程地址空间与实际存储空间分离,增加存储管理的灵活性。
地址空间和存储空间两个基本概念的定义如下:地址空间:将源程序经过编译后得到的目标程序,存在于它所限定的地址范围内,这个范围称为地址空间。
地址空间是逻辑地址的集合。
存储空间:指主存中一系列存储信息的物理单元的集合,这些单元的编号称为物理地址存储空间是物理地址的集合。
根据分配时所采用的基本单位不同,可将离散分配的管理方式分为以下三种段式存储管理和段页式存储管理。
其中段页式存储管理是前两种结合的产物。
(1)页式存储管理1)基本原理。
将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(pageframe)。
程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。
该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。
在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址,如图4-2所示。
这种管理方式的优点是,没有外碎片,每个内碎片不超过页大比前面所讨论的几种管理方式的最大进步是,一个程序不必连续存放。
这样就便于改变程序占用空间的大小(主要指随着程序运行,动态生成的数据增多,所要求的地址空间相应增长)。
缺点是仍旧要求程序全部装入内存,没有足够的内存,程序就不能执行。
2)页式管理的数据结构。
在页式系统中进程建立时,操作系统为进程中所有的页分配页框。
当进程撤销时收回所有分配给它的页框。
在程序的运行期间,如果允许进程动态地申请空间,操作系统还要为进程申请的空间分配物理页框。
操作系统为了完成这些功能,必须记录系统内存中实际的页框使用情况。
操作系统还要在进程切换时,正确地切换两个不同的进程地址空间到物理内存空间的映射。
这就要求操作系统要记录每个进程页表的相关信息。
为了完成上述的功能,—个页式系统中,一般要采用如下的数据结构。
进程页表:完成逻辑页号(本进程的地址空间)到物理页面号(实际内存空间)的映射。
每个进程有一个页表,描述该进程占用的物理页面及逻辑排列顺序。
物理页面表:整个系统有一个物理页面表,描述物理内存空间的分配使用状况,其数据结构可采用位示图和空闲页链表。
请求表:整个系统有一个请求表,描述系统内各个进程页表的位置和大小,用于地址转换也可以结合到各进程的PCB(进程控制块)里。
3)页式管理地址变换在页式系统中,指令所给出的地址分为两部分:逻辑页号和页内地址。
CPU中的内存管理单元(MMU)按逻辑页号通过查进程页表得到物理页框号,将物理页框号与页内地址相加形成物理地址(见图4-3)。
上述过程通常由处理器的硬件直接完成,不需要软件参与。
通常,操作系统只需在进程切换时,把进程页表的首地址装入处理器特定的寄存器中即可。
一般来说,页表存储在主存之中。
这样处理器每访问一个在内存中的操作数,就要访问两次内存。
第一次用来查找页表将操作数的逻辑地址变换为物理地址;第二次完成真正的读写操作。
这样做时间上耗费严重。
为缩短查找时间,可以将页表从内存装入CPU内部的关联存储器(例如,快表) 中,实现按内容查找。
此时的地址变换过程是:在CPU给出有效地址后,由地址变换机构自动将页号送人快表,并将此页号与快表中的所有页号进行比较,而且这种比较是同时进行的。
若其中有与此相匹配的页号,表示要访问的页的页表项在快表中。
于是可直接读出该页所对应的物理页号,这样就无需访问内存中的页表。
由于关联存储器的访问速度比内存的访问速度快得多。
(2)段式存储管理1)基本原理。
在段式存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。
在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。
而在段式存储管理系统中,则为每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。
程序加载时,操作系统为所有段分配其所需内存,这些段不必连续,物理内存的管理采用动态分区的管理方法。
在为某个段分配物理内存时,可以采用首先适配法、下次适配法、最佳适配法等方法。
在回收某个段所占用的空间时,要注意将收回的空间与其相邻的空间合并。
段式存储管理也需要硬件支持,实现逻辑地址到物理地址的映射。
程序通过分段划分为多个模块,如代码段、数据段、共享段。
这样做的优点是:可以分别编写和编译源程序的一个文件,并且可以针对不同类型的段采取不同的保护,也可以按段为单位来进行共享。
总的来说,段式存储管理的优点是:没有内碎片,外碎片可以通过内存紧缩来消除;便于实现内存共享。
缺点与页式存储管理的缺点相同,进程必须全部装入内存。
2)段式管理的数据结构。
为了实现段式管理,操作系统需要如下的数据结构来实现进程的地址空间到物理内存空间的映射,并跟踪物理内存的使用情况,以便在装入新的段的时候,合理地分配内存空间。