精华内容
下载资源
问答
  • 内存管理方式

    2016-01-17 10:24:19
    内存管理方式:块、段、页、段页 页式管理:页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址...

    内存管理方式:块、段、页、段页

    页式管理:页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。 其优点是没有外碎片,每个内碎片不超过页大小(空间浪费小)。一个程序不必连续存放。便于改变程序 用空间的大小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用完成而不是操作系统自动完成)。 缺点程序全部装入内存,要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增 了机器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生抖动现象。 虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用,如果页面较大,则这一部分的损失仍然较大。 
    
      段式管理:基本思想就是把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。 程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。其优点是:可以分别编写和编译。 可以针对不同类型的段采取不同的保护(存储保护容易)。 可以按段为单位来进行共享(存储共享容易),包括通过动态链接进行代码共享(能动态连接)。 
    
      段页式管理(最常用):为了实现段页式管理,系统必须为每个作业或进程建立一个段表以管理内存分配与释放、缺段处理、存储保护及地址变换等。另外,由于一个段又被划分成了若干页,每个段又必须建立一个页表以把段中的虚页变换成内存中的实际页面。显然,与页式管理时相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。另外,由于在段页式管理中,页表不再是属于进程而是属于某个段, 此,段表中应有专项指出该段所对应页表的页表始址和页表长度。  为段页式管理是段式管理的页式管理方案结合而成的,所以具有它们二者的优点。但反过来说,由于管理软件的增 ,复杂性和开销也就随之增 了。另外,需要的硬件以及 用的内存也有所增 。更重要的是,如果不采用联想寄存器的方式提高CPU的访内速度,将会使得执行速度大大下降。
    
    
    • 页式存储管理:

              a.内存空间划分 : 内存空间被静态的划分为若干个等长的区域。每个区域被称为一个物理页框。

                  b.进程空间划分 : 进程空间也被静态的划分为若干个等长的区域,每个区域称为一个逻辑页面,其长度与页框的长度相等。

                 c.进程空间与内存空间的对应关系:当进程运行时,需要将它的各个逻辑页面保存到存储空间的物理页框中,即需要确定逻辑页面与页框的对应关系,进程的逻辑页面是连续的,但是物理页面却不一定是连续的。

                 d.特点:允许一个进程占用内存空间中多个连续的区域,而这些区域的长度相等,因而采用静态等长存储分配的方法,不会产生碎片。

    • 段式存储管理:

             a.内存空间划分 : 内存空间被动态的划分为若干个长度各异的区域,每个区域称为一个物理段

                 b.进程空间划分 : 进程空间被静态的划分为若干个长度各异的区域,每个区域称为一个逻辑段。一个逻辑段通常对应一个程序段,各个程序断的长度使不等的。

                c.进程空间与内存空间的对应关系:进程的一个逻辑段与内存的一个物理段相对应。一个进程的多个逻辑段可存放在内存的若干个不相连的物理段中。

                d.特点:会产生碎片,但是便于实现共享。

    • 断页式存储管理:

                     a.内存空间划分 : 与页式存储管理相同。

                b.进程空间划分 :与段式存储管理相同。

                c.进程空进与内存空间的对应关系:进程空间的一个逻辑页面对应内存空间的一个页框。同一段内的逻辑地址是连续的,而对应的页框却未必是连续。

                d.特点:既不会产生碎片,又便于共享。

    展开全文
  • python内存管理方式

    2018-08-09 00:13:22
    python内存管理方式 引用计数,待编辑

    python内存管理方式

    引用计数,待编辑

    展开全文
  • 内存管理方式之间的比较 1.3种离散分配方式的比较 2.几种内存管理方式之间的比较

    内存管理方式之间的比较

    1.3种离散分配方式的比较
    在这里插入图片描述
    2.几种内存管理方式之间的比较
    在这里插入图片描述

    展开全文
  • 操作系统-内存管理-基本分段内存管理方式1.基本分段内存管理的引入引入分页内存管理方式的目的是提高内存空间利用率,而引入分段内存管理的目的是满足程序员在编程和使用上的多方面要求: 方便编程:用户可以把自己...

    操作系统-内存管理-基本分段内存管理方式


    1.基本分段内存管理的引入

    引入分页内存管理方式的目的是提高内存空间利用率,而引入分段内存管理的目的是满足程序员在编程和使用上的多方面要求:

    1. 方便编程:用户可以把自己的作业按照逻辑关系划分为若干个段,而且每一个段的地址都是从0开始编址的,并且具有自己的段名和长度。逻辑地址是由段名(段号)和段内偏移量(段内地址)组成的。
    2. 信息共享:在实现对程序和数据的共享时,是以信息的逻辑单位为基础的,而段恰恰是这样的逻辑单位(页只是存放信息的物理块,并无实际的含义)。
    3. 信息保护:在实现对信息的保护时,也是以信息的逻辑单位为基础的。
    4. 动态增长:在实际的应用中,有些段(数据段)会随着程序的运行而不断的动态增长,而且事前不知道数据段会增长到多大。
    5. 在运行时动态链接中,主程序会在运行过程中调用某段时才将该段调入内存并进行链接。可见运行时动态链接也要求以段作为内存管理单位。

    2.基本分段内存管理

    • 在分段内存管理中,作业的地址空间被划分成若干个段,每个段定义了一组逻辑信息(即对每个段的数据进行分类,比如主程序段MAIN,子程序段X,数据段D,堆栈S)。
    • 每个段都有自己的段名,段名对应着一个段号,并且每个段都从0开始编址。
    • 每个段都有一段连续的地址空间。
    • 每个段的长度由相应的逻辑信息组决定,因而每个段的长度不同。
    • 整个逻辑地址空间有多个从0开始编址的段,所以逻辑地址空间是二维的。
    • 逻辑地址=段号(段名)+段内地址。
    • 很多的编译程序会自动的按照源程序的情况产生若干个段。
    • 装入程序会装入这些段并未每个段赋予段号。 -

    2.1.段表

    • 为了能在物理内存中找到各个逻辑段的位置,需要为每一个进程建立一张段表。
    • 每一个段表中的表项记录了该段在内存中的起始地址和段的长度。
    • 段表相当于页表,可以实现逻辑地址到物理地址的转换。

    2.2.地址变换

    • 段表页可以使用TLB存储来提高地址转化的速度。
    • 段一般比页大,所以段表项的数目会比页表项的数目少很多,所需要的TLB的存储空间也会少很多。
    • 地址变换步骤:
    (1)地址变换机构自动将逻辑地址分为段号和段内地址。
    (2)将段号与段表长度进行比较,若段号大于等于段表长度,则触发越界中断。
    (3)以段号为索引检索段表获取段表项。段表项的位置 = 段表始址+(段号*段表项长度)。
    (4)从获取的段表项中得到分段基址和分段的段长。
    (5)将段内地址与段长进行比较,若段内地址大于段长,则触发越界中断。
    (6)将段基址与段内地址相加即可得到物理地址。

    2.3.分页和分段的区别

    1. 页是信息的物理单位,分页的目的是为了消除零头(碎片),进而提高内存空间利用率。分页仅仅系统管理内存的需要,而不是用户的需要;段是信息的逻辑单位,它能够更好的满足用户的需求。
    2. 页的大小是由系统决定的;而段的大小取决于用户编写的程序。
    3. 分页的逻辑地址空间是一维的,程序员在程序设计时只需利用一个记忆符(这个记忆符是啥我暂时不太了解)即可表示一个地址;段的逻辑地址空间是二维的,程序员在程序设计时需利用段名和段内地址才可表示一个地址。
    展开全文
  • 操作系统-内存管理-基本分页内存管理方式1.分页管理方式的引入 连续分配方式会形成大量的碎片(零头),虽然可以通过拼接(紧凑)的方式将碎片(零头)拼接成大的分区(一段连续的内存空间),但是拼接(紧凑)技术...
  • 【C++】内存管理方式

    千次阅读 2017-03-18 22:44:37
    本篇博文旨在介绍C++的内存管理方式,并和C语言中的内存管理方式作出对比;说明了C语言中的malloc/free和C++中的new/delete的区别 C中的内存管理方式 堆上创建空间 栈上创建空间 C语言中常见的几种内存泄漏 C++中...
  • WINDOWS内存管理方式

    2014-03-25 21:51:30
    ">WINDOWS内存管理方式主要分为:段式管理、页式管理、段页式管理。 "COLOR: #ff0000;"> 页式管理:页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分...
  • iOS的内存管理,程序员只需要管理内存的堆区,堆区存放的是对象;内存中的栈区(存放基本数据类型,局部变量),...OC的内存管理方式有两种:MRR(Manual Retain - Release)手动保持与释放,由程序员调用方法加1、减1。
  • objc使用什么机制管理对象内存(内存管理方式有哪些) 1).MRC(manual retain-release)手动内存管理2).ARC(automatic reference counting)自动引用计数3).Garbage collection (垃圾回收)但是iOS不支持垃圾回收, ARC...
  • Linux中的虚拟地址、物理地址和内存管理方式 详见以下网址(比较详细地介绍):Linux中的虚拟地址、物理地址和内存管理方式(一)Linux中的虚拟地址、物理地址和内存管理方式(二)
  • C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过new和delete操作符进行动态内存管理。 并且,C语言对内存的3个操作都是库函数,而C++...
  • 本文旨在向大家完整综合的进行C语言和C++的内存管理方式,涉及到的内容也会比较全面。在自己梳理回顾的过程中也想与大家一起分享。如有 不足之处,欢迎大家指正。 c/c++内存分布 C语言中动态内存管理方式:malloc/...
  • windows 内存管理方式及其优缺点

    千次阅读 2016-03-17 19:37:57
    windows 内存管理方式主要分为:页式管理,段式管理,段页式管理。页式管理基本原理是将各进程的虚拟空间划分为若干个长度相等的页;页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地址与内存地址...
  • 这篇文章主要介绍了Python内存管理方式和垃圾回收算法解析,介绍了传统的垃圾回收机制,其工作方法,finalizer的问题等相关内容,具有一定参考价值,需要的朋友可以了解下。 概要 在列表,元组,实例,类,字典和...
  • Window内存管理方式主要分为:页式管理、段式管理、段页式管理。 1、页式管理 用户程序的逻辑地址空间被划分成若干固定大小的页,相应地,内存物理空间也分成相对应的若干个物理块,页和块的大小相等。可将用户...
  • Objective-C提供了三种内存管理方式: manual retain-release(MRR,手动管理),automatic reference counting(ARC,自动引用计数),garbage collection(垃圾回收)。 iOS不支持垃圾回收;ARC
  • 内存管理方式:页存储、段存储、段页存储非连续分配管理方式允许一个程序分散地装入到不相邻的内存分区,根据分区的大小是否固定分为分页式存储管理方式和分段式存储管理方式。分页存储管理方式中,又根据运行作业时...
  • 三种内存管理方式: 1、栈 2、堆 3、数据管理区(包括代码段、数据段(.data)、bss段) 不同内存管理方式使用区别: 栈:只有一个出口呈现出先进后出方式。使用时是自动的,完全有编译器和运行环境提供服务,不用...
  • Windows内存管理方式主要分为:页式管理、段式管理和段页式管理 首先看一下“基本的存储分配方式”种类:   1. 离散分配方式的出现  由于连续分配方式会形成许多内存碎片,虽可通过“紧凑”功能...
  • linux的内存管理方式

    2017-07-24 16:35:00
    mmu:内存管理单元,管理内存的并把虚拟地址转换为物理地址的硬件,以页为单位处理,并进行内存访问权限保护等。进行虚拟地址和物理地址的检查(常见的段错误) linux内存最小管理单位为页,为4kb ****************...
  • 特点:分页管理方式是从计算机的角度考虑设计的,以提高内存的利用率,提升计算机的性能, 且分页通过硬件机制实现,对用户完全透明 管理方式:页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页;将...
  • C/C++内存管理——C/C++内存分布、new和delete的实现原理一、C/C++内存分布 一、C/C++内存分布 对于C/C++孔家 首先来看一下这段代码
  • 关键字:教你认识Linux内存管理方式,分析Swap被程序占用情况 一、先了解一下linux对内存的管理方式: 在Linux里(别的系统也差不多),内存有物理内存和虚拟内存之说,物理内存是什么自然无需解释,虚拟内存...
  • oc中有两种内存管理方式: 1.MRC 2.ARC 一. MRC (Menual Reference Count : 手动引用计数)  内存的开辟和释放都有代码控制.  优点: 对内存的管理更加灵活, 可以在需要释放内存空间的时候及时释放内存.  对...
  • void Test() { // 动态申请一个int类型的空间 int* ptr4 = new int; // 动态申请一个int类型的空间并初始化为10 int* ptr5 = new int(10); // 动态申请10个int类型的空间 int* ptr6 = new int[10];...
  • C/C++内存管理方式

    千次阅读 2018-08-14 20:09:01
    内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享内存,做进程间通信。 3.堆用于程序运行时动态内存分配,堆是向上增长的 4.数据段———存储全局数据和静态数据 5....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,992
精华内容 7,196
关键字:

内存管理方式