• 第6章 操作系统 存储器管理(二)


    可重定位式分区

    又称浮动分区分配,是解决碎片问题的简单而有效的办法

    基本思想:移动所有被分配的分区,使之成为一个连续区域,而留下一个较大的空白区。

     

     

     动态重定位分区分配算法框图

     

     

    四、页式存储管理 

    提出原因

    分区存储管理方案:要求作业存储时必须连续存放

    页式存储管理方案:解决作业不连续存放的问题

     

     

     页面变换表

    是一种特殊的数据结构

    用途:记录每一个作业的虚页号到物理内存中页号之间的映射关系。每一个作业都拥有一个自己的页面变换表。

    结构:

     

     

     

     

     

     需要两次访问内存,第一次访问页表,第二次取数据。

    快表

    由一组联想寄存器组成。

    联想寄存器:一种按内容进行并行查找的快速寄存器,访问速度比主存快得多。

    原理:

     

     

     空闲内存页是用位示图来管理的

     

     

     0表示空闲,1表示已经分配了

    内存256M,每页4K,位示图有多大?

    256M/4K=64K,64K个物理块

    每个物理块一个比特,表的大小是64K个比特。

    化为字节,64K/8bit=8K

    所以位示图的大小是8KB,

     

    页式存储管理的优点:

      没有外碎片,每个内碎片不超过页大小

      程序不必连续存放

    主要缺点

      程序要一次全部装入内存才能执行

      采用动态地址变换机构会增加计算机的成本和降低处理机的速度。

      各种数据结构(页表,空闲页表)要占用一定的内存空间,而且系统要花费一定的时间来建立和管理这些表格。

      依然存在内碎片。

     

    两级页表机制

    每个进程的页表都连续放在内存中,这是不现实的,因为内存不够。

    为了减少页表所占用的连续的内存空间,采用了两级页表机制,基本方法是将页表进行分页,为此再建立一张页表,称为外层页表(页表目录),即第一级页表,其中的每个表目是存放某个页表的物理地址。第二级才是页表,其中的每个表目所存放的才是页的物理块号。

     

     

     

     

     五、分段存储管理

    1)分段存储管理方式的引入

    1、便于编程

    通常用户常常把自己的作业按照逻辑关系划分成若干个段,每个段都有自己的名字,且都从零开始编址,这样,用户程序在执行中可用段名和段内地址进行访问。

    2、分段共享

    在实现程序和数据的共享时,常常以信息的逻辑单位为基础,而分页系统中的每一页只是存放信息的物理单位,其本身并没有完整的意义,因而不便于实现信息的共享,而段却是信息的逻辑单位,有利于信息的共享。

    3、分段保护

    信息保护是相对完整意义的逻辑单位(段)进行保护

    4、动态连接

    通常一个源程序经过编译后所形成的若干个目标程序,还需再经过链接,形成可执行代码后才能运行,这种在装入时进行的链接称为静态链接。动态链接是指在作业运行之前,并不把几个目标程序段都链接起来,而是先将主程序对应的目标程序装入内存并启动运行,当运行过程中又需要调用某段时,再将该段(目标程序)调入内存并链接起来。所以,动态链接是以段为基础的。

    5、动态增长

    在实际系统中,往往有些数据段会不断地增长,而事先却无法知道数据段会增长到多大,分段存储管理方式可以较好地解决这个问题。

     

     

    1、 分段

    在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段是一组完整的逻辑信息,如有主程序段、子程序段、数据段及堆栈段等,每个段都有自己的名字,都是从零开始编址的一段连续的地址空间,各段长度是不等的。分段系统的地址结构如下图所示,逻辑地址由短号(名)和段内地址两部分组成。在该地址结构中,允许一个作业最多有64K个段,每个段的最大长度为64KB。

     

     

    2、段表

    在分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以离散地分配到内存中不同的分区中。在系统中为每个进程建立一张段映射表,简称为段表。每个段在表中占有一表项,在其中记录了该段在内存中的起始地址(又称基址)和段的长度,如下图所示。进程在执行中,通过查段表来找到每个段所对应的内存区。可见,段表实现了从逻辑段到物理内存区的映射。

     

     

     

    优点:

    • 没有内碎片,外碎片可以通过内存紧缩来消除

    • 便于实现共享,即允许若干个进程共享一个或者多个段。

     

    分页式管理和分段式管理的比较

    内容页式存储管理段式存储管理
    划分依据 系统管理需要 用户应用需要
    页/段大小 各页面大小相同 段的大小不固定
    逻辑地址 只有一个逻辑地址空间 每个段一个独立的逻辑地址空间
    页表/段表 页面较多,页表较长,查找费时 段表少,段表较短,查找速度快
    碎片 存在内碎片 存在外碎片
    内存共享 不支持 支持
    存储扩充 不支持 不支持

    思想

     

     

     

     

  • 相关阅读:
    Kruskal重构树学习笔记
    亚洲和欧洲的分界线是谁划分的?
    代码目录 (App_Code 目录)及namespace的理解
    Events解惑——来自MSDN
    HttpContext.Current.Response和Response有什么区别?
    Ramdisk 内存盘的使用
    MVC模式 介绍
    关于Windows Workflow Foundation 调试时的经验小解(不断添加)
    关于类成员变量的声明和实例化的时机
    软件名称备份
  • 原文地址:https://www.cnblogs.com/fate-/p/13285127.html
Copyright © 2020-2023  润新知