zoukankan      html  css  js  c++  java
  • 内存管理 分区?分页?分段?

    1.分区?一个作业(程序+数据+说明书)在一个分区。要求进程占用主存的一个或多个连续的存储区域。

    早期的操作系统中,是通过简单的分区技术进行内存管理的。内存分区的方式为:连续分配方式

    单一连续分配:系统区+(用户区+剩余空闲区);括号里面也称为用户区,没装满才会出现剩余空闲区,其实这部分也是用户区。

    系统区仅提供给操作系统用,通常放在内存的低址部分;用户区提供给用户程序使用。

    特点:适用于单用户、单任务的操作系统;连续分配方式主要采用静态存储分配方式;

    用户程序只有小于主存中的用户区的大小,才会装入主存。并且是一次性将用户程序所需的主存都分配给他,运行期间一直占用,直到结束才释放主存空间。

    就是对主存空间分为三个区而已。

    固定分区分配:将主存空间的用户区分为若干个固定大小的区域,这些若干个区域的大小可以相等也可以不等。只要大小是事先固定好的就行。用户程序执行过程中,不允许改变这些区域的大小。每个进程占用一个或多个区域。当一个进程需要分配存储空间时,会用到一张分区说明表(里面包括分区个数、所占空间大小、所占空间的起始地址以及是否被分配),根据这张表,找到一个足够大的且未被分配的区域,分配给这个进程,然后用静态地址重定位方式,重定位到内存。

    缺点:在已分配的区域中,由于进程的大小并不刚好等于已分配的区域,要小于等于它。因此,会产生内存碎片(内部碎片、碎片、内零头)。

    动态分区分配:主存空间的用户区不再初始化就固定了,而是依据进程所需的大小,动态分配。但会出现一个问题,就是初始动态分配时,很好,只有最后一小块甚至没有碎片(外部碎片)。但之后会导致主存空间中出现很多小的内存块(外部碎片)。这些情况,可以通过“紧凑技术”来解决。

    怎么动态分配?首次适应算法,最佳适应算法,最大适应算法,邻近适应算法。

    分区的缺点:1.连续的存储空间不能满足进程的要求时,即使系统中所有空闲区之和大于进程的要求,也不能装入进程。

          2.存储区仍然存在“碎片”现象。移动技术可以合并这些外部碎片(不是内部碎片),但需要占用CPU时间,增加系统开销。

          3.分区管理方式无法有效地实现虚拟存储技术。即:使进程的逻辑地址空间大于实际主存物理空间。

     

  • 相关阅读:
    mysql 需要掌握的重点
    Java基础知识之常见关键字以及概念总结
    abstract类中method
    java异常继承何类,运行时异常与一般异常的区别
    Java关键字final、static使用总结
    JAVA读取XML文件
    关于ApplicationContext的初始化
    web.xml配置详解
    maven javaProject打包发布成服务
    Spring Boot Actuator 配置和应用
  • 原文地址:https://www.cnblogs.com/laining/p/7642806.html
Copyright © 2011-2022 走看看