![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内存管理
文章平均质量分 93
水生| 如水人生
不甘平凡!!!
展开
-
Linux内存管理(一)——从硬件角度看内存管理
从硬件角度看内存管理①、在操作系统还没有出来之前,程序都是被存放在卡片上,计算机读取一张卡片就运行一条指令。这种从外部存储介质上直接运行指令的方法效率很低②、单道编程的内存管理所谓单道,就是整个系统只有一个用户进程和一个操作系统。在这种模式下,用户程序总是加载到同一个内存地址上运行。所以内存管理很简单,实际上不需要任何的内存管理单元,因为程序使用的地址就是物理地址,而且也不需要地址保护。缺点:无法运行比实际物理内存大的程序;其次,系统只运行一个程序,造成资源浪费;其三,无法移植到其他的计算机中运行③原创 2020-11-23 16:58:33 · 208 阅读 · 0 评论 -
内存屏障详解
1、什么是内存屏障?你可以先这么理解,在拥有多核CPU的ARM处理器中,会存在一种现象:那就是各个CPU在进行数据共享的时候(数据共享的目的是为了保证数据一致性),某种情况下CPU可能是处于阻塞的状态,也就是CPU需要等到另外一个CPU的反馈信息后才可以进行下一步的动作,这样严重影响了CPU的性能,为了优化和解决这种问题,可以从硬件和软件两个方面结合进行处理,硬件方面采用的是增加store buffer这一硬件结构,后面会介绍,软件方面采用的,就是使用内存屏障。2、为什么会出现内存屏障在进一步剖析为什原创 2021-03-08 11:50:56 · 7930 阅读 · 5 评论 -
Linux之DMA详解
Linux之DMA详解1、什么是DMA?DMA全称Direct Memory Access(直接访问存储器)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。2、为什么需要DMA?整个数据传输操作在一个称为DMA控制器的控制下进行,CPU除了在数据传输开始和结束时做一点处理外(开始和结束时候要做中断处理),在外部设备和存储器进行数据传输的过程中,CPU可也进行其他的工作(前提是未设置停止CPU访问),这样,在大部分时间里,CPU和输入输出都处于并行操作,因此,计算机系统的效率将原创 2021-02-23 10:59:56 · 8254 阅读 · 1 评论 -
Linux内存之Cache
一、 Linux内存之Cache1.1、Cache的基本介绍Cache存储器,是位于CPU和主存储器DRAM之间的一块高速缓冲存储器,规模较小,但是速度很快,通常由SRAM(静态存储器)组成。Cache的功能是提高CPU数据输入输出的速率。Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,可以让系统的性能大大改善,感觉就像是又有了主存储器的内存,又有了Cache的访问速度。1.2、程序是如何运行的?我们先思考一个问题:我们的程序是如何运行起来的?我们应该知道,程序是运行在RAM之原创 2020-12-25 15:10:43 · 8390 阅读 · 2 评论 -
Linux内核管理之分配掩码(三)
Linux内核管理之分配掩码(三)原创 2020-12-07 19:36:59 · 663 阅读 · 0 评论 -
Linux内存管理之红黑树(五)
一、什么是红黑树1.1、二叉查找树想要学习红黑树,就必须先理解一下二叉树(Binary Search Tree)[BST]左子树上所有节点的值均小于或等于它的根结点的值右子树上所有节点的值均大于或等于它的根节点的值左、右子树也分别为二叉排序树下图就是一颗典型的二叉查找树1.1.1、二叉查找树的好处比如我们想要在上面的二叉树上查找节点10,应该怎么搜索呢?a、查找根结点9b、由于10>9,查找右孩子13c、由于10<13,查找左孩子11d、由于10<11,查找左原创 2020-11-24 17:59:12 · 348 阅读 · 0 评论 -
Linux内存管理之基本概念介绍(一)
Linux内存管理之基本概念介绍(一)我们知道,在linux操作系统中,cpu在执行一个进程的时候,都会访问到内存。但是CPU并不是直接访问物理内存地址,而是通过虚拟地址空间来间接访问到物理内存。操作系统通过在虚拟地址和物理地址之间建立映射关系,来让CPU可以间接访问到物理地址。想要了解Linux内存管理,那么需要先了解一下Linux内存管理的一些基本名词。虚拟地址空间:操作系统为每一个正在执行的进程分配的一个逻辑地址页:通过将虚拟地址空间以512Byte~8K的大小作为一个单位,这个单位就被称原创 2020-11-27 11:32:34 · 499 阅读 · 1 评论 -
Linux内存管理之内存管理单元(MMU)(二)
Linux内存管理之内存管理单元(二)1.1、什么是MMU在CPU内部,有一个专门的硬件单元来负责这个虚拟页面到物理页面的转换,它被被称为内存管理单元(Memory Management Unit, MMU),是内存管理中非常重要的一个组成部分。ARM处理器的内存管理单元包括TLB和Table Walk Unit两个部件。TLB:TLB是一块高速缓存,用于缓存页表转换的结果,从而减少内存访问的时间页表查询:一个完整的页表翻译和查找的过程叫做页表查询,页表查询的过程由硬件自动完成,但是页表的维护需要原创 2020-11-24 17:30:52 · 427 阅读 · 0 评论