操作系统笔记六 内存管理内存管理基础

Posted Lora青蛙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统笔记六 内存管理内存管理基础相关的知识,希望对你有一定的参考价值。

(笔记来源:百度百科、王道操作系统书和视频)


内存(Memory)是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。
内存的运行也决定计算机整体运行快慢的程度。

内存管理的基本原理和要求

内存管理的概念:内存管理是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
内存管理的功能有:


进程运行的基本原理

1.程序装入和链接

程序的链接有三种方式:

程序的装入也有三种方式:

2.逻辑地址空间与物理地址空间

3.内存保护
内存保护是为了防止一个作业有意或无意地破坏操作系统或其他作业。

连续分配管理方式

1、单一连续分配

最简单的一种存储管理方式,只能用于单用户、单任务的操作系统中。
优点:简单、易于管理、无外部碎片。
缺点:只能用于单用户、单任务的操作系统,内存中只装入一道作业运行,有内部碎片,存储器的利用效率极低。

2、固定分区分配

把内存分为一些大小相等或不等的分区,每个应用进程占用一个分区。操作系统占用其中一个分区。支持多个程序并发执行,适用于多道程序系统和分时系统。最早的多道程序存储管理方式。
优点:可用于多道程序系统最简单的存储分配。
缺点:划分为几个分区,便只允许几道作业并发,分区总数固定,限制并发执行的程序数目,会产生内部碎片。

3、动态分区分配

分区的大小不固定:在装入程序时根据进程实际需要,动态分配内存空间,即——需要多少划分多少。
空闲分区表项:从1项到n项:内存会从初始的一个大分区不断被划分、回收从而形成内存中的多个分区。
优点:并发进程数没有固定数的限制,不产生内部碎片。
缺点:有外部碎片(分区间无法利用的空间)。

非连续分配管理方式

基本分页存储管理方式

在存储器管理中,连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大块空间,但须为之付出很大开销。
如果允许将一个进程直接分散地装入到许多不相邻的分区中,则无须再进行“紧凑”。基于这一思想而产生了离散分配方式。如果离散分配的基本单位是页,则称为分页存储管理方式。

分页存储的基本概念:
进程会被固定单位的空间划分成块,一个块称之为页(Page),内存也被这个单位划分成块,一个块称之为页框(Page Frame),外存也以同样单位划分成块,称之为块(Block)。进程在执行时需要申请主存空间,也就是为每个页面分配主存中可用的页框,这就产生了页和页框一一对应的关系。于是为了方便在内存中找到进程的每个页面所对应的物理块号,系统为每个进程建立一张页表,记录页面在内存中对应的物理块号,页表一般存放在内存中。


基本地址变换机构



基本分段存储管理模式

段式管理方式按照用户进程中的自然段划分逻辑空间,如一用户进程由主程序,两个子程序,桟和一段数据组成,可以分为5段,每段从0开始编址,并分配一段连续连续地址空间(段内要求连续,段间不要求连续)。每个进程都有一张逻辑空间与内存映射的段表。段号和段内偏移都必须有由用户显示提供,高级语言中由编译程序完成这个操作。

段页式存储管理方式

作业的地址空间首先被分成若干个逻辑段,每段都有自己的段号,然后再将每一段分成若干个大小固定的页。

以上是关于操作系统笔记六 内存管理内存管理基础的主要内容,如果未能解决你的问题,请参考以下文章

小林coding阅读笔记:操作系统篇之内存管理基础,虚拟内存分段分页

小林coding阅读笔记:操作系统篇之内存管理基础,虚拟内存分段分页

Linux内存从0到1学习笔记(六,物理内存初始化之三 --- 物理内存管理数据结构)

操作系统笔记七 内存管理虚拟内存管理(重点:页面置换算法)

操作系统学习笔记 windows内存管理

【我的笔记】内存管理(二)分区方法(静态、动态、伙伴、Slab)