`
yu06206
  • 浏览: 111520 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

操作系统—存储管理

阅读更多
     突然发现自己好久没写博客了,前段时间忙着实习的笔试,看了很多方面的书,感觉有点凌乱,这几天再重新温习一下,写一下博客就当是做做笔记,记录一下学习的过程吧!下面本上是属于知识点的归纳,基本上本博客里面的概念很多都是来自于其他博客,在这里只是个自己做一个归纳和总结:
1.http://blog.csdn.net/lwlliang/article/details/6212262
2.http://blog.csdn.net/gaoxiaohong2010/article/details/5956065
3.http://blog.csdn.net/lwlliang/article/details/6212262
4.http://blog.csdn.net/wushuai1346/article/details/7245414

一、存储管理的基本概念
1)逻辑地址与物理地址
在具有地址变换机构的计算机中,允许程序中编排的地址和信息实际存放在内存中的地址有所不同。前者叫逻辑(相对)地址,后者叫物理(绝对)地址。
2)重定位:为了保证作业的正确执行,必须根据分配给作业的主存区域对作业中指令和数据的存放进行重定位,这种 把逻辑地址转换成绝对地址 的工作称为重定位或地址转换。重定位的方式有静态重定位和动态重定位两种
(1)静态重定位
在装入一个作业时,把作业中的指令地址和数据地址全部转换成绝对地址。这种转换工作是在作业开始前集中完成的,在作业执行过程中无需再进行地址转换。所以称为“静态重定位”。
(2)动态重定位
在装入一个作业时,不进行地址转换,而是直接把作业装到分配的主区域中。在作业执行过程中,每当执行一条指令时都由硬件的地址转换机构转换成绝对地址。这种方式的地址转换是在 作业执行时动态完成 的,所以称为动态重定位。
二、固定分区存储管理
分区存储管理是把存储器中的用户区作为一个连续区或分成若干连续区进行管理。早先使用一个分区的存储管理,后发展成多分区的存储管理。多个分区的管理可采用固定分区方式和可变分区方式。
1、固定分区存储管理的原理
固定分区的意思就是指主存空间划分成若干连续区后,这些分区的大小和个数就 固定不变。
固定分区管理利用一张“ 主存分配表 ”说明各分区的情况。装入和结束作业均通过这个分区表来记录分区使用的变化情况。
2、如何实现存储保护
固定分区管理可采用静态重定位的方式装入作业。装入程序把作业中的逻辑地址转换为绝对地址。并检查绝对地址是否在指定(装入)的分区内,如果是,就装入这个作业。否则就不能装入。如果装入主存分区的作业占用处理器时(注意,是运行时),进程调度程序(不是装入程序了)必须把作业所在分区的上下限地址存入“下限寄存器”和“上限寄存器”中,这样可以在指令执行中判断其所用到的绝对地址是否越界,达到存储保护的目的。
3、怎样提高主存空间的利用率这里有几种办法:
(1)分区按大小顺序排列,这样可以使作业总是先使用满足要求的最小分区。
(2)根据经常出现的作业大小和频率划分分区。
(3)按作业的对主存空间的需求量排成多个队列,规定队列与分区的对应关系。也就是说多大的作业只能放在多大的分区里,就算有更大的分区空着,也不许他进入。
三、可变分区的管理
可变就是指分区的 大小和位置不是固定 的,而是根据作业要求的主存量来分配分区的大小。
1、主存的分配和回收
在系统初始化时,主存除了操作系统所占部分外,整个用户区是一个大的空闲区,可以按作业需要的空间大小顺序分配空闲区直到不够时为止。
当作业结束时,它的占用分区被收回。这个空闲区又可以根据新作业的大小重新用于分配,所以主存中的已占分区和空闲区的数目和大小都是在变化的。可以用两张表“已分配区表”和“空闲区表”来记录和管理。
2、常用的分配算法
最先适应分配算法 :简单地说,就是在分区表中顺序查找,找到够大的空闲区就分配。但是这样的分配算法可能形成许多不连续的空闲区,造成许多“碎片”,使主存空间利用率降低。
最优适应分配算法 :这种算法总是挑选一个能满足作业要求的最小空闲区。但是这种算法可能形成一些极小的空闲区,以致无法使用,这也会影响主存利用率。
最坏适应分配算法 :这种算法和上面的正好相反,它总是挑一个最大的空闲区分给作业使用,使剩下的空间不至于太小。
3、地址转换与存储保护
采用可变分区方式管理时,一般均采用动态重定位方式装入作业。也就是每读一条指令,都要变换一次地址。变换要靠硬件支持,主要是两个寄存器 :基址寄存器和限长寄存器,限长寄存器存放作业所占分区的长度,基址寄存器则存放作业所占分区的起始地址,这两个值确定了一个分区的位置和大小。转换时根据逻辑地址与限长值比较,如果不有超过这个值,表示访问地址合法,再加上基址寄存器中的值就得到了绝对地址了,否则形成“地址越界”中断。达到存储保护的目的。
对于共享程序,则硬件提供两组限长寄存器和基址寄存器。访问时对访问区享区和作业区的地址分别进行转换。
4、移动技术的应用
移动技术要“移动”的东东就是主存空间中的作业。把某个作业移到另一处主存空间去(在磁盘整理中我们应用的也是类似的移动技术),这样的最大好处就是可以合并一些空闲区。
但是移动技术的应用也要注意以下问题。
移动会增加系统开销。所以要尽量减少移动。
移动是有条件的,如果作业在执行过程中正等待与外围设备传输信息,就不能移动。因此在移动时首先要判定该作业是否与外设交换信息。
四、页式存储管理
1、如何分页和分块
页式存储管理中有两个名词:“ 页 ”和“ 块 ”,其中的“块”是针对硬件来说的,就是把存储器分成若干相等大小的区,每个区就称为一个块。对应的,在程序中,逻辑地址进行“分页”,其大小和每个块相一致。
事实上,页面的大小是由块的大小自然决定的。对于程序来说,其逻辑地址还是和原来一样采用连续的地址。只是 按照块的位数取其前面数位做为页号 .
分配空间时,根据作业长度可以确定它的页面数,根据这个页面数在主存中分配相应的块数,只要是空闲块就可以放入,即使不是相邻的。并把分配情况记在“页表”中,根据页表可以找到相对应的页号与块号,就得出绝对地址了。
2、采用页式管理,使主存空间充分利用,页不必为了得到连续空间而进行移动。 可以提高系统效率。
3、页表的构造与作用

每个被装入主存的作业都有一张 页表 ,指出该作业逻辑地址中的页号与所占用的主存块号之间的对应关系。页表的长度由作页拥有的页面数决定,行号对应为页号,行中记录的是主存中的块号。
页表是硬件进行地址转换的依据,每执行一条指令时按逻辑地址中的页号查找页表并转换成绝对地址。
在多道程序设计系统中,进入主存的每个作业都有一张页表,由一个硬件“页表控制寄存器”来记录每个作业的页表所在位置和长度以便作业转换时同时转换页表。
4、快表的构造与作用
快表 就是页表的一部分克隆,每行中有页号及其对应的块号,整个快表存放在一个小容量的高速缓存中,访问时快表和内存同时进行查找,因为快表速度很快,而常用的页都登记在快表中,因此可以大大加快执行速度。
5、利用位示图实现页式存储空间的分配和回收
页式存储管理把主存空间分成大小固定的许多块,在装业作业时,如何知道主存中哪些块已使用,哪些还未用,可以用位示图来表示。
五、段式存储管理
1、段式存储中段的划分
段式管理 是根据人们对 程序 中需要 分段编制 的要求出发而提供的。它提供给用户编程时使用的逻辑地址由“段号”和“段内地址”两部分组成,其形式和页式管理相同。
但是实际上是不同的:页式存储管理提供连续逻辑地址由系统自动分页,段式存储管理中的作业分段是由用户决定的,每段独立编程,因此段间的逻辑地址是不连续的。
2、段式存储空间的分配
这种分配方法和可变分区管理方式的分配方法相同,所不同的是:可变分区管理方式中是为每个作业分一个区,而段式管理是为一个作业中的每个段分一个连续的空间。(段式管理更细)。
3、段表的构造与作用
段表由段号,本段限长和起始地址三部分组成,由于每一行记录的行号可以对应程序的段号,因此段号实际上被省略,不占存储空间。
与其他管理方式一样,段表记录的信息用于地址转换和存储保护。段表的表目起到了基址/限长寄存器的作用。
4、段式存储管理的地址转换
这个转换过程如同可变分区方式的地址转换,但是由段表的表目替代了基址/限长寄存器。
绝对地址=根据段号找到段表中的起始地址+段内地址 (如果段内地址超过限长则产生“地址越界”程序性中断事件达到存储保护)
多道程序设计系统中,每个进入主存的作业都建立了段表,因此还有一个硬件“段表控制寄存器”来记录每个作业的段表在主存中的位置和长度。
六、虚拟存储器
1、什么是虚拟存储器
虚拟存储器 是为“扩大”主存容量而采用的一种设计技巧,它利用作业在只装入部分信息时就可以执行的特性和程序执行中表现出来的局部性特性,借助于大容量的辅助存储器实现小主存空间容纳大逻辑地址空间的作业。
2、虚拟存储器的实现原理
它的工作原理如下:首先把作业信息保留在磁盘上,当作业请求装入时,只将其中一部分先装入主存,作业执行中若要访问的信息不在主存中,则再设法将这些信息装入主存。
3、分页式虚拟存储器的实现
页式虚拟存储管理 是在 页式存储管理 的基础上实现的。首先把作业信息作为副本存放在磁盘上,作业执行时,把作业信息的部分页面装入主存储器,作业执行时若所访问的页面已经在主存中,则进行地址转换,得到绝对地址,否则产生“缺页中断”由操作系统把当前所需的页面装入主存。
4、常用的页面调度算法
当主页中无空闲块时,为了装入一个页面,就必须按某种算法将主存中某个页调出,调入所需装入的页面。这就是页面调度。常用的算法有:先进先出调度算法,最近最少使用调度算法和最近最不常用调度算法
5、缺页中断率
如果作页执行中访问页面的总次数为A,其中有F次访问的页面尚未装入主存,则有F次缺页中断,f=F/A,这里的f就称为缺页中断率。
6、段式虚拟存储器的实现
段式虚拟存储管理 以 段式存储管理 为基础,在磁盘上保留作业的各个分段信息,作业执行时把需要执行的一段或几段装入主存。在实际使用中,也要进行查表和地址转换以及“缺段中断” 和调度(包括调出、装入、移动等)工作
七、下面是我在网上看到的一个关于操作系统存储管理的比喻,我觉得挺好的,我们可以根据这个例子对存储管理有个更好的认识
操作系统的存储管理如同一个大地主,管着一个大庄园,当有农户需要租用田地时,地主就给分配一块地让他种(用户区分配)。等到地里长出了果实(结果出来后,地主还得来收回这块地(去配)。为了管好这片田地,地主还要管好庄园的门,凡是要进去种地的,都得由地主根据他的需要让他到位置确定实际的田地上去干活。(把逻辑地址转换成物理地址),庄园里还有一些大家共同可以使用的地方,比如地主的花园,工具房等,大家可以进去,也可以使用,但是不许改变任何现有的东东,还有,每个农户只能在自己的地里刨食吃,如果有人胆敢到别人地里或地主的花园里摘花偷食,可要当心他们养的狼狗跳出来哦。(共享和保护),当然,再大的地也是不够多的,地主为了多赚些钱,当所有的地都租出去的时候,他想办法把有些种田人暂时不种的那块地里的东东连地皮一起挖出来放到仓库里先堆着。把地腾出来租给别人种(这一招可够绝的,不过地主说啦,这就是“虚拟存储”。)
分享到:
评论

相关推荐

    操作系统存储管理实验报告(c/c++)

    操作系统存储管理实验报告主要关注的是虚拟存储管理和页面替换算法的模拟。实验的目的是通过编程实践来深入理解存储管理方案,特别是虚拟内存中的页面淘汰策略,以及地址转换的过程。实验涉及了三种基本操作: 1. *...

    操作系统-存储管理c++源程序和实训报告

    通过这样的实训,学生能够加深对操作系统存储管理理论的理解,并具备实际编程实现这些概念的能力。同时,这也有助于培养问题解决和分析能力,为未来在操作系统设计或系统编程领域的进一步研究打下坚实基础。

    操作系统存储管理实验

    操作系统存储管理是计算机科学中的核心领域,它负责有效地管理和分配系统的内存资源,以确保多个进程的高效运行。在这个实验中,我们将重点探讨可变式分区分配的存储管理方案,并通过编程实现来理解三种不同的分区...

    操作系统 储存管理

    操作系统 储存管理简单实现。~

    操作系统课程设计 存储管理系统设计

    操作系统 存储管理系统设计院涉及文件操作、数组以及指针

    操作系统 存储管理实验报告

    在操作系统中,存储管理是一项至关重要的任务,它确保了多个进程的有效、高效和安全执行。本实验报告将深入探讨存储管理的相关知识,包括内存分配、地址映射、内存保护以及页面替换算法等核心概念。 首先,内存分配...

    操作系统存储管理.pptx

    "操作系统存储管理" 操作系统存储管理是操作系统的重要组成部分,负责管理计算机系统的重要资源——主存储器。存储管理主要针对主存储器中用户区域进行管理,同时,也包括对辅存储器的管理。存储管理的主要功能包括...

    操作系统存储管理

    操作系统实验,实现对内存的管理,vc源码

    操作系统存储管理视频.rar

    这些内容在李雄飞教授的视频中将通过具体的例子和实际操作进行演示,帮助观众理解并掌握操作系统存储管理的理论与实践。通过学习这部分视频,不仅可以深化对操作系统原理的理解,也有助于提升解决实际问题的能力。

    2022年操作系统存储管理习题完整.ppt

    "操作系统存储管理习题大全" 本文将对操作系统存储管理领域中的各种概念和技术进行讲解和分析。首先,我们将讨论动态分区存储管理技术,并通过一个具体的例子来说明如何使用首次适应法和最佳适应法来管理内存。然后...

    操作系统作业 存储管理

    操作系统中的存储管理是确保计算机系统高效运行的关键环节。在DOS和Windows操作系统中,内存管理主要涉及以下几个方面:内存分配、虚拟内存、分页机制、缺页中断和快表技术。 1. **DOS环境下的内存管理**: 在DOS...

    操作系统 存储管理

    本资源主要讲解操作系统中最重要的存储管理部分

    操作系统存储管理习题.ppt

    "操作系统存储管理习题" 本资源摘要信息是关于操作系统存储管理的习题,涵盖了动态分区存储管理、分页存储管理、虚拟存储器管理等多方面的内容。 习题1 某系统采用动态分区存储管理技术,某时刻内存中有三个空闲...

    操作系统存储管理(2).pptx

    操作系统存储管理是操作系统核心功能之一,它负责有效地管理和分配计算机系统的主存储器资源,以及处理存储保护、地址变换、存储共享和存储扩充等问题。本章主要讨论了四种不同的存储管理方式:分区式、分页式、分段...

    操作系统课程设计--存储管理 源代码及完整报告

    存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本设计的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。...

    操作系统 存储管理+设计文档

    10. **设计文档**:对于操作系统存储管理的设计,通常包含详细的算法描述、数据结构选择、性能分析和优化策略等内容,是理解操作系统内存管理机制的重要资料。 以上只是操作系统存储管理的一部分核心概念,实际的...

    操作系统存储管理课件

    综上所述,操作系统存储管理涉及的内容广泛且复杂,包括存储分配策略、地址映射技术、存储保护以及虚拟存储的实现和优化,这些知识点对于理解和设计高效的操作系统至关重要。通过深入学习这部分内容,可以更好地理解...

    操作系统实验三存储管理

    操作系统实验三:存储管理 在计算机科学中,操作系统(OS)是管理计算机硬件与软件资源的核心程序,其中存储管理是一项至关重要的任务。本实验旨在帮助我们深入理解存储管理的概念、原理以及其实现方法。我们将通过...

    计算机操作系统储存管理实验报告.doc

    计算机操作系统储存管理实验报告是计算机科学与技术学院软件学院的实验报告,旨在通过请求页式存储管理中页面置换算法模拟程序,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。实验报告包括实验目的...

Global site tag (gtag.js) - Google Analytics