帮帮我 页式存储和段式存储的定义和为什么要这些功能?
发布网友
发布时间:2022-04-29 22:28
我来回答
共1个回答
热心网友
时间:2022-04-23 09:29
页式存储分配
页式存储分配是基于这样一种概念,把到来的作业分成相等大小的页。一些操作系统选择页的大小,是根据存储块的大小和作业所存储的磁盘的一些区域的大小来分配的,一般它们是相等的。
磁盘上的一些区域叫做扇区(或者有时候叫块),主存中的这些区域叫做页面。当页面、扇区和主存中的页面都一样大小的时候,上述策略可以很有效的工作。页面的精确大小(每个页面所存储的字节数)通常由磁盘扇区的大小来决定。所以,一个扇区将保存一页作业指令,和内存的一个页面相匹配。
在执行一个程序之前,内存管理器需要的准备工作:
1. 确定程序的页数
2. 在主存中留出足够的空闲页面
3. 将程序的所有页面载入主存里。(静态的分页,页面无需连续)
当程序准备好载入,其页面是一个逻辑序列——第一页保存了程序的第一部分指令,最后一页是最后的一部分指令。为此我们可以假设程序的指令是一行一行的代码,也可以想象成是一些字节。
载入的过程和我们在第二章所学习到的策略是不同的,这是因为页面不用保存在相邻的存储块。实际上,每一页可以保存在主存页面的任何有效的位置(Madnick& Donovan,1974)。
不连续存储方法的首要优点是主存可以更有效的使用,因为一个空闲页面可以被任何作业的任何页使用。另外,用于重新定位的压缩策略可以被消除了,因为页面之间没有外部碎片了。(在很多页中也没有内部碎片)
然而,新的方法会带来新的问题。因为一个作业的页可以保存在主存的任何位置,内存管理需要一个机制来保存它们的情况——这意味着必须增加操作系统软件的大小和复杂度,也就是增加了开支。
段式存储分配
分段的概念是建立在最通常被程序员结构化他们的程序所用的模块的基础上的——逻辑上的一组代码。用段式存储分配方法,每一个作业被分为很多个不同尺寸的段,每一个模块都包含很多相关的功能。一个子分支程序就是这样一个逻辑组的例子。这是和分页策略的本质上的不同,分页策略把作业分成了很多页,都是一样的尺寸,都包含了程序模块的一些部分。
第二个重要的不同是主存不需要再分成页面了,因为每个段的大小都不一样——有的大,有的小。所以,和第二章中讨论的动态分区一样,内存也是动态模式下分配的。
当一个程序被编译后,段就根据程序的结构模块所建立起来。每一个段都编了号并且生成了一个段映射表(SMT);它包含了段序号,它的长度,访问权限,状态和(如果在内存中)内存中的位置。图3-11和图3-12给出了同一个作业,作业1,有一个主程序和两个分支程序组成,还有它的段映射表和实际的主存分配。
就像请求页式一样,引用,分段里也使用页修改和状态位,但是图3-11和图3-12没有给出。
内存管理器需要跟踪段在内存中的情况。这是通过将动态分区和请求页式存储管理都有的3个表格的合并来实现的:
1. 作业表,列出了处理的每一个作业(整个系统一个表)
2. 段映射表列出了每个段的具体情况(每个作业一个表)
3. 内存映射表监视了主存的分配情况(整个系统一个表)
就像请求页式,每个段中的指令顺序排列,但是在内存中段不用连续存储。我们只要知道每个段保存在哪里了。每一个段里的内容是连续的。
http://teach.ycit.cn:8070/kj/jsj/jsjczxt/main/study/xx/kcxx-3-4.htm
http://teach.ycit.cn:8070/kj/jsj/jsjczxt/main/study/xx/kcxx-3-1.htm
上面有更为详细的解释和图例
参考资料:http://teach.ycit.cn
页式存储管理和段式存储管理的区别是什么
分页是用来从虚拟内存到物理内存映射的,每页是最小的内存管理单元。分段这个是用来区别代码,数据之类的,举例来讲代码段、数据段,比如因为代码和数据可以用不同的缓存策略,还有多进程可以共享代码段,但是数据不同,所以分开来管理。
页式存储管理和段式存储管理的区别是什么
内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。1.连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。(1)单一连续...
内存管理页式管理和段式管理、段页式管理的区别
总之,因为段页式管理是段式管理的页式管理方案结合而成的,所以具有它们二者的优点。但反过来说,由于管理软件的增加,复杂性和开销也就随之增加了。另外,需要的硬件以及占用的内存也有所增加。更重要的是,如果不采用联想寄存器的方式提高CPU的访内速度,将会使得执行速度大大下降。
页式存储管理和段式存储管理的区别
段式 页式 分段由用户设计划分,每段对应一个相应的的程序模块,有完整的逻辑意义。分页用户看不见,由操作系统为内存管理划分。段面是信息的逻辑单位 页面是信息的物理单位 便于段的共享,执行时按需动态链接装入。页一般不能共享 段长不等,可动态增长,有利于新数据增长。页面大小相同,位置不能动态...
什么是段式管理?它与页式管理有何区别
段式管理是指把一个程序分成若干个段进行存储,每个段都是一个逻辑实体,程序员需要知道并使用它。它的产生是与程序的模块化直接有关的。段式管理是通过段表进行的,它包括段号或段名、段起点、装入位、段的长度等。此外还需要主存占用区域表、主存可用区域表。页式管理是将各进程的虚拟空间划分成...
页面虚拟存储器与段式虚拟存储器的区别
2、段式虚拟存储器 段式虚拟存储器是按程序的逻辑结构划分地址空间,段的长度是随意的,并且允许伸长,它的优点是消除了内存零头,易于实现存储保护,便于程序动态装配;缺点是调入操作复杂。将这两种方法结合起来便构成段页式调度。在段页式调度中把物理空间分成页,程序按模块分段,每个段再分成与物理空间...
段页式管理与段式管理有什么区别?
段式和页式存储管理的地址结构很类似,但是它们之间有实质上的不同,表现为页式的逻辑地址是连续的,段式的逻辑地址可以不连续、页式的地址是一维的,段式的地址是二维的、分页是操作系统进行,分段是用户确定、各页可以分散存放在主存,每段必须占用连续的主存空间 拓展:各页可以分散存放在主存,每段...
深入理解Linux内核——内存管理
而从2.6.11版本开始,采用了四级分页模型。分页结构由页全局目录、页上级目录、页中间目录和页表组成,线性地址被分成五个部分。总结,本文深入解析了Linux内核中的内存寻址机制、段式存储和页式存储的基本原理,以及64位系统中的分页系统。通过了解这些内容,我们可以更好地理解Linux内核的内存管理机制。
为什么说页式存储地址是一维的,而段式存储是二维的?
页式存储地址 只需一个标识符即可表示一地址 所以是一维 而段式除了要求找段号,还需找其在该段号内的段内地址 所以是二维
主存管理 | 段页式存储管理方式
页式存储管理是高效率利用存储空间的存储管理方式。段式存储管理从程序角度管理内存,便于程序的共享和保护。为了结合这两者的优点,产生了段页式存储管理方式。段页式存储管理通过在分段内划分页面,形成段页式存储管理。需要扩充段表的功能。段页式地址结构的程序地址空间,将代码段和数据段等划分为页面,进行...