摘要:下面希赛小编为大家整理的软考程序员操作系统之存储管理方式,希望能帮助学友们。
>>>>>希赛网改版上线5周年庆,感恩钜惠!全场买就减,较高立减500,还有1元秒杀,5折限时抢购,众多“豪”礼等你来享,进入抢购!
下面希赛小编为大家整理的软考程序员知识点操作系统之存储管理方式,希望能帮助学友们。具体内容如下:
存储管理方式
分区存储
分区存储管理又有三种不同的方式:静态分区、可变分区、可重定位分区。
静态分区
静态分区存储管理是预先把可分配的主存储器空间分割成若干个连续区域,每个区域的大小可以相同,也可以不同。为了说明各分区的分配和使用情况,存储管理需设置一张“主存分配表”。主存分配表指出各分区的起始地址和长度,表中的占用标志位用来指示该分区是否被占用了,当占用的标志位为“0”时,表示该分区尚未被占用。进行主存分配时总是选择那些标志为“0”的分区,当某一分区分配给一个作业后,则在占用标志栏填上占用该分区的作业名。采用静态分区存储管理,主存空间的利用不高。
可变分区
可变分区方式是按作业的大小来划分分区。当要装入一个作业时,根据作业需要的主存量查看主存中是否有足够的空间,若有,则按需要量分割一个分区分配给该作业;若无,则令该作业等待主存空间。由于分区的大小是按作业的实际需要量来定的,且分区的个数也是随机的,所以可以克服固定分区方式中的主存空间的浪费。
随着作业的装入、撤离,主存空间被分成许多个分区,有的分区被作业占用,而有的分区是空闲的。当一个新的作业要求装入时,必须找一个足够大的空闲区,把作业装入该区,如果找到的空闲区大于作业需要量,则作业装入后又把原来的空闲区分成两部分,一部分给作业占用了;另一部分又分成为一个较小的空闲区。当一作主行结束撤离时,它归还的区域如果与其它空闲区相邻,则可合成一个较大的空闲区,以利大作业的装入。
可变分区调度算法
1)首次适应算法。每次分配时,总是顺序查找未分配表,找到第一个能满足长度要求的空闲区为止。分割这个找到的未分配区,一部分分配给作业,另一部分仍为空闲区。这种分配算法可能将大的空间分割成小区,造成较多的主存“碎片”。
2)最佳适应算法。从空闲区中挑选一个能满足作业要求的最小分区,这样可保证不去分割一个更大的区域,使装入大作业时比较容易得到满足。采用这种分配算法时可把空闲区按大小以递增顺利排列,查找时总是从最小的一个区开始,直到找到一个满足要求的区为止。
3)最坏适应算法。挑选一个最大的空闲区分割给作业使用,这样可使剩下的空闲区不至于太小,这种算法对中、小作业是有利的。采用这种分配算法时可把空闲区按大小以递减顺利排列,查找时总是从最大的一个区开始。按这种方法,在收回一个分区时也必须对表格重新排列。
分页存储
分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页加以编号,从0开始,如第0页、第1页等。相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame),也同样为它们加以编号,如0#块、1#块等等。在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。
分段存储
在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。例如,有主程序段MAIN、子程序段X、数据段D及栈段S等。每个段都有自己的名字。为了实现简单起见,通常可用一个段号来代替段名,每个段都从0开始编址,并采用一段连续的地址空间。段的长度由相应的逻辑信息组的长度决定,因而各段长度不等。整个作业的地址空间由于是分成多个段,因而是二维的,亦即,其逻辑地址由段号(段名)和段内地址所组成。
段页存储
段页式系统的基本原理,是基本分段存储管理方式和基本分页存储管理方式原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。
虚拟存储
当程序的存储空间要求大于实际的内存空间时,就使得程序难以运行了.虚拟存储技术就是利用实际内存空间和相对大的多的外部储存器存储空间相结合构成一个远远大于实际内存空间的虚拟存储空间,程序就运行在这个虚拟存储空间中.能够实现虚拟存储的依据是程序的局部性原理,即程序在运行过程中经常体现出运行在某个局部范围之内的特点.在时间上,经常运行相同的指令段和数据(称为时间局部性),在空间上,经常运行与某一局部存储空间的指令和数据(称为空间局部性),有些程序段不能同时运行或根本得不到运行。虚拟存储是把一个程序所需要的存储空间分成若干页或段,程序运行用到页和段就放在内存里,暂时不用就放在外存中.当用到外存中的页和段时,就把它们调到内存,反之就把它们送到外存中.装入内存中的页或段可以分散存放.
功能编辑
虚拟内存技术不仅仅可让我们可以使用更多的内存,它还提供了以下功能:
寻址空间
操作系统让系统看上去有比实际内存大得多的内存空间。虚拟内存可以是系统中实际物理空间的许多倍。每个进程运行在其独立的虚拟地址空间中。这些虚拟空间相互之间都完全隔离开来,所以进程间不会互相影响。同时,硬件虚拟内存机构可以将内存的某些区域设置成不可写。这样可以保护代码与数据不会受恶意程序的干扰。
内存映射
内存映射技术可以将映象文件和数据文件直接映射到进程的地址空间。在内存映射中,文件的内容被直接连接到进程虚拟地址空间上。
物理内存分配
内存管理子系统允许系统中每个运行的进程公平地共享系统中的物理内存。
共享虚拟内存
尽管虚拟内存允许进程有其独立的虚拟地址空间,但有时也需要在进程之间共享内存。例如有可能系统中有几个进程同时运行BASH命令外壳程序。为了避免在每个进程的虚拟内存空间内都存在BASH程序的拷贝,较好的解决办法是系统物理内存中只存在一份BASH的拷贝并在多个进程间共享。动态库则是另外一种进程间共享执行代码的方式。共享内存可用来作为进程间通讯(IPC)的手段,多个进程通过共享内存来交换信息。Linux支持SYSTEM V的共享内存IPC机制。
希赛软考网,拥有十四年软考培训经验,希赛网一直坚持自主研发,将丰富的软考培训经验有效融入教程研发过程,自成体系的软考在线题库(软考历年真题)、软考培训教材和软考视频教程,多样的培训方式包括在线辅导、面授、和,使考生的学习更具系统性,辅导更具针对性。采用全程督学机制,,软考平均通过率在全国。
软考备考资料免费领取
去领取