IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 操作系统连续内存分配和非连续内存分配 -> 正文阅读

[系统运维]操作系统连续内存分配和非连续内存分配

目录

一、连续内存分配

1、内存碎片问题

2、分区的动态分配

3、连续内存分配策略

二、非连续内存分配

1、优缺点

2、分段

3、分页


一、连续内存分配

1、内存碎片问题

内存碎片指的是空闲内存不能被利用。内存碎片又分外部碎片和内部碎片,外部碎片是指在分配单元之间的未使用内存,而内部碎片是指在分配单元中的未使用内存。

2、分区的动态分配

分区的动态分配就是简单的内存管理方法,当一个程序准许运行在内存中时,就会给这个程序分配一个连续的区间,当一个程序需要更多的空间时,也会分配一个连续的内存区间给运行的程序以访问数据。

3、连续内存分配策略

一、首次适配

首次适配就是当一个程序需要分配n字节大小的空间时,使用第一个比n大的可用空闲块

优点:简单,易于产生更大的空闲块

缺点:容易产生外碎片

二、最优适配

最优适配就是当一个程序需要分配n字节大小的空间时,使用比n大的最小的可用空闲块

优点:当大部分分配是小尺寸时,非常有效,避免分割大空闲块,比较简单

缺点:容易产生外碎片和很多没用的微小碎片

三、最差适配

最差适配就是当一个程序需要分配n字节大小的空间时,使用比n大的最大的可用空闲块

优点:如果分配是中等尺寸效果最好

缺点:重分配慢,易产生外碎片,容易破坏大的空闲块以致大分区无法被分配

四、压缩式碎片整理

如下图,目前有四个程序占据着内存空间,当现在有一个需要5个块空间大小的程序也要运行,而如果采用上述三种连续分配策略,显然是无法做到的,因为内存中已经不具有连续的5个块大小的空间,但是我们发现,内存中有着5个不连续的块空间,如果对P1,P2,P3,P4四个程序进行压缩,那么我们将得到一个连续的5个大小的块空间,而这正好能够满足了另一个程序的需求,这就是压缩式碎片整理的思路。

压缩式碎片整理要注意几点,要求所有程序是动态可重置的,当程序在运行的时候,肯定是不能重置的。如果不停的对程序进行压缩,重置,会导致开销很大。

五、交换式碎片整理

程序P1、P2、P3、P4都处于内存中,P1、P2、P4处于等待状态,P3处于运行状态,当P3运行到某时刻还需要3个内存块的空间大小,而这时内存空间已经满了,不能够给P3分配更多的空间了,就可以采用交换式碎片整理的方法,可以把P4这个程序放到磁盘上去,也就是虚拟内存上,这样主存就可以提供3个内存块的空间供P3使用,虽然P4放到了磁盘中,但是它的数据并没有丢失,也是保存在磁盘中。

二、非连续内存分配

1、优缺点

优点:一个程序的物理地址空间是非连续的,可以使用非连续内存分配;更好的内存利用和管理;

允许共享代码与数据;支持动态加载和动态链接

缺点:建立虚拟地址和物理地址之间的转换,开销很大,所以要和硬件结合一起来管理

2、分段

程序的分段地址空间,把程序的逻辑地址空间分散到多个物理地址空间。

?一、分段寻址方案

首先段访问机制有两种,一种是段寄存器+地址寄存器实现方案,另一种是单地址实现方案。

应用程序的逻辑地址空间是一个连续的地址空间,通过分段有效的隔离开来,程序可以把它的堆栈段分离开来,放到某一特定的地址,这样能更有效的进行管理和分配,同时也能够让这种有效的保护机制的实现。如下图,左边是一些连续的逻辑地址,右边是一些非连续的物理地址,逻辑地址有段号和段偏移,程序访问内存地址需要段号和段偏移,段表里的内容是段的起始地址和段的长度限制,而段的起始地址又包括逻辑地址段号和对应的物理地址段号,段的长度限制就是段偏移。每次寻址时,先在段表里查询逻辑地址段号对应的物理地址段号,然后再加上段的长度限制,就可以得到了物理地址。

?

3、分页

一个程序的逻辑地址空间被划分为大小相等的页,而物理内存被分割为大小相等的帧,页帧包括页帧号和帧内偏移。

一、页寻址机制

页寻址机制就是页映射到帧,页是连续的虚拟内存,帧是非连续的物理内存,不是所有的页都有对应的帧。页表保存了逻辑地址和物理地址之间的映射关系,页表的索引是页号,所对应的内容是帧号。操作系统建立了页表,页表里有个驻留位,0表示没有这个页帧映射,1表示会有这个页帧映射。

性能问题:页表可能非常大,因为一个程序就需要一个页表;访问一个内存单元需要两次访问内存,一次用于获取页表项,一次用于访问数据。

如何处理这些性能问题?

通过缓存,把页表放到离CPU比较近的地方,或者通过间接访问。具体点从速度上解决,就是把经常访问内存地址的页帧映射存放到CPU中的TLB表中。从空间上解决就是采用多级页表。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:31:17  更:2021-08-26 12:31:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 12:20:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码