• 操作系统 chapter 7 8 存储模型


    等长:位图表

    不等长:空闲区表、已分配区表

    空闲块如果是伙伴块还要合并的记得啊

    基本内存管理方案

    32位的,虚拟内存可以达到2的32次方,即4G;64位的话,就是8G

    其他相关技术

    支持写时复制技术

     分页其实就是将物理内在分为多个大小相同的页框,然后每个进程根据映射表可以映射到物理地址中的任意一个页框中,而分段是从程序代码的角度出发,将程序地址分为若干个段,然后根据映射表映射到相应的内存

    页式存储管理

     基本原理

            将程序的逻辑地址空间划分为固定大小的页(page),而物理内存划分为同样大小的页框(page frame)。程序加载时,可将任意一页放人内存中任意一个页框,这些页框不必连续,从而实现了离散分配。该方法需要CPU的硬件支持,来实现逻辑地址和物理地址之间的映射。在页式存储管理方式中地址结构由两部构成,前一部分是页号,后一部分为页内地址w(位移量),如图4所示:

           

          页式管理方式的优点是:

           1没有外碎片,每个内碎片不超过页大比前面所讨论的几种管理方式的最大进步是,

           2)一个程序不必连续存放。

           3)便于改变程序占用空间的大小(主要指随着程序运行,动态生成的数据增多,所要求的地址空间相应增长)。

          缺点是:要求程序全部装入内存,没有足够的内存,程序就不能执行。

    段式存储管理

     基本原理

            在段式存储管理中,将程序的地址空间划分为若干个段(segment),这样每个进程有一个二维的地址空间。在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。而在段式存储管理系统中,则为每个段分配一个连续的分区,而进程中的各个段可以不连续地存放在内存的不同分区中。程序加载时,操作系统为所有段分配其所需内存,这些段不必连续,物理内存的管理采用动态分区的管理方法。

          在为某个段分配物理内存时,可以采用首先适配法、下次适配法、最佳适配法等方法。

          在回收某个段所占用的空间时,要注意将收回的空间与其相邻的空间合并。

          段式存储管理也需要硬件支持,实现逻辑地址到物理地址的映射。

          程序通过分段划分为多个模块,如代码段、数据段、共享段:

          –可以分别编写和编译

          –可以针对不同类型的段采取不同的保护

          –可以按段为单位来进行共享,包括通过动态链接进行代码共享

          这样做的优点是:可以分别编写和编译源程序的一个文件,并且可以针对不同类型的段采取不同的保护,也可以按段为单位来进行共享。

           总的来说,段式存储管理的优点是:没有内碎片,外碎片可以通过内存紧缩来消除;便于实现内存共享。缺点与页式存储管理的缺点相同,进程必须全部装入内存。

    页式和段式管理的区别

         页式和段式系统有许多相似之处。比如,两者都采用离散分配方式,且都通过地址映射机构来实现地址变换。但概念上两者也有很多区别,主要表现在:

          1)、需求:是信息的物理单位,分页是为了实现离散分配方式,以减少内存的碎片,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了更好地满足用户的需要。

        一条指令或一个操作数可能会跨越两个页的分界处,而不会跨越两个段的分界处。

         2)、大小:页大小固定且由系统决定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的。段的长度不固定,且决定于用户所编写的程序,通常由编译系统在对源程序进行编译时根据信息的性质来划分。

         3)、逻辑地址表示:页式系统地址空间是一维的,即单一的线性地址空间,程序员只需利用一个标识符,即可表示一个地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

         4)、比页大,因而段表比页表短,可以缩短查找时间,提高访问速度。

  • 相关阅读:
    一次难忘的问题定位
    Linux dmidecode 命令
    linux 查看静态库,动态库是32位还是64位
    MTK功能机按键事件时间设置
    linux控制主板蜂鸣器响起
    Linux 下控制蜂鸣器发声的程序
    Android Studio系列-签名打包
    使用git和github进行协同开发流程
    ero-configuration Web Application Debugging with Xdebug and PhpStorm
    sudo: unable to execute ./script.sh: no such file or directory
  • 原文地址:https://www.cnblogs.com/Cheryl06/p/7300280.html
Copyright © 2020-2023  润新知