首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内存管理--基本概念

Linux物理内存三级架构 对于内存管理,Linux采用了与具体体系架构不相关的设计模型,实现了良好的可伸缩性。它主要由内存节点node、内存区域zone和物理页框page三级架构组成。...• 内存节点node 内存节点node是计算机系统中对物理内存的一种描述方法,一个总线主设备访问位于同一个节点中的任意内存单元所花的代价相同,而访问任意两个不同节点中的内存单元所花的代价不同...Linux内核中使用数据结构pg_data_t来表示内存节点node。如常用的ARM架构为UMA架构。...又如,由于Linux内核采用 • 物理页框page 2....Linux虚拟内存三级页表 Linux虚拟内存三级管理由以下三级组成: • PGD: Page Global Directory (页目录) • PMD: Page Middle

1.7K90

Linux】--- Linux权限概念

二、Linux权限的概念 2.1 什么是权限 现实生活中权限的例子,即vip,门禁…。其作用就是,通过一定的条件,拦住一部分人,给另一部分人权力,来访问某种资源。...2.3 Linux中的用户 Linux下有两种用户:超级管理员(root)、普通用户。 超级管理员(root):可以再linux系统下做任何事情,不受权限约束 普通用户:在linux下做有限的事情。...Linux具有组的概念,主要是在多人协作的时候,更好的进行权限管理!...而在Linux中不通过后缀区分文件类型!但并不是说Linux不用后缀。 那通过什么区分呢?即ls -l第一个属性列。 Linux文件类型: -:普通文件。...这时就引入新的概念,粘滞位。当一个目录被设置为“粘滞位”(使用chmod +t filename指令),则该目录下的文件只能由:1. 超级管理员(root)删除;2.

12011
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    3.1.1内存管理的概念

    内存管理是操作系统设计中最重要和最复杂的内容之一,虽然 计算机硬件一直在飞速发展,内存 容量也在 不断增长,但是仍然不可能将用户进程所需要的全部程序和数据放入主存中,所以操作系统必须将内存空间进行合理地划分和有效地动态分配...操作系统对内存的划分和动态分配就是内存管理的概念。 有效的内存管理在多道程序设计中非常重要,不仅方便用户使用存储器,提高内存利用率,还可以通过虚拟技术从逻辑上扩充存储器。...内存的装入模块在装入内存时,同样有以下 三种方式: 1)绝对装入。在编译时,如果知道程序将驻留在内存的某个位置,编译程序将产生绝对地址的目标代码。...静态重定位的特点是在一个程序装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存,就不能装入该作业。此外,作业一旦进入内存后,在整个运行期间不能在内存中移动,也不能再申请内存空间。...3.内存保护 内存分配前,需要保护操作系统不受用户进程的影响,同时保护用户进程不受其他用户进程的影响。

    45410

    Linux内存描述之高端内存--Linux内存管理(五)

    e=56 所以, 低端内核和高端内存是内核的概念, 跟应用程序没有直接关系. 如果Linux物理内存小于1G的空间,通常内核把物理内存与其地址空间做了线性映射,也就是一一映射,这样可以提高访问速度。...一般 128M给高端内存分配用, 因为很少, 所以不用要赶紧释放掉 64bit的时候, 就不存在低端内存和高端内存概念了, 因为空间很大都可以直接管理了. 1.5 例子 区域 大小 MemTotal...ZONE_HIGHMEM即为高端内存,这就是内存高端内存概念的由来。...引入高端内存映射这样一个概念的主要原因就是我们所安装的内存大于1G时,内核的1G线性地址空间无法建立一个完全的直接映射来触及整个物理内存空间,而对于80x86开启PAE的情况下,允许的最大物理内存可达到...__free_pages(page,order); __free_pages(addr,order); 5 常见问题 5.1 用户空间(进程)是否有高端内存概念? 用户进程没有高端内存概念

    12.5K23

    Linux线程概念

    即在完整的进程中,进程包括:若干个执行流,虚拟地址空间,页表,以及存在物理内存中属于该进程的数据和代码。 我们透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理分配给每个执行流。...线程的概念 首先我们得知道一件事:在Linux中,没有专门为线程设计的TCB,而是使用进程的PCB来模拟线程。...在教科书上面,对线程的概念是:在进程内部运行的一个执行流,属于进程的一部分,粒度要比进程更加细和轻量化。 我们可以对这句话进行解析:在进程内部运行,即线程在地址空间中运行。...看待Linux线程和接口: Linux进程是轻量级的进程,在进程中,OS创建线程,CPU调度线程。...I/O密集型应用典型的有网络下载,云盘,ssh,在线直播,看 影等等,主要使用的是内存和外设的I/O资源。 CPU+IO密集型应用:网络游戏等。

    2.5K40

    Linux】进程概念

    今日更新了Linux的进程内容 欢迎大家关注点赞收藏⭐️留言 冯诺依曼体系结构 输入设备:键盘、鼠标、话筒、磁盘、声卡... 输出设备:显示器、声卡、磁盘 .......操作系统 概念 任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。 操作系统是进行软硬件资源管理的软件。...基本概念 课本概念:程序的一个执行实例,正在执行的程序等 内核观点:担当分配系统资源(CPU时间,内存)的实体。...课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct task_struct-PCB的一种 在Linux中描述进程的结构体叫做task_struct...task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。

    11210

    Linux进程概念

    进程的概念 进程(Process)是计算机中的一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。...它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体。它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。...简单点说,进程就是一个运行起来(加载到内存)的程序 --> 进程在内存中的程序 --> 进程 PCB(process control block)的引入 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为...在Linux中描述进程的结构体叫做 task_struct。 task_struct 是Linux内核的一种数据结构,它会被装载到 RAM(内存) 里并且包含着进程的信息。...内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。

    51130

    Linux】进程概念

    进程是操作系统中的一个基本概念,它是正在运行的程序的实例。进程不仅仅是代码,还包括代码执行时所需的资源和状态信息。...简单来说进程=程序的代码和数据+内核数据结构(内核数据结构用于管理进程的资源和状态等信息) 描述进程—PCB 由于上面我们说到进程等于内核数据结构加上自己的代码和数据,这里的数据结构在Linux中叫做task_struct...首先我们知道一个程序在运行时都是要先被加载到内存中的,然后加载到内存中之后由CPU进行读取数据。...内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针 上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。...总结 本文从进程的基本概念入手,介绍了进程的组成结构,尤其是PCB(进程控制块)的作用。通过分析 task_struct 的内容,我们了解了进程在内核中的重要数据结构如何帮助管理其状态和资源。

    9410

    Linux 内核 内存管理】内存映射原理 ② ( 内存映射概念 | 文件映射 | 匿名映射 | 内存映射原理 | 分配虚拟内存页 | 产生缺页异常 | 分配物理内存页 | 共享内存 | 进程内存 )

    文章目录 一、内存映射概念 二、内存映射原理 1、分配虚拟内存页 2、产生缺页异常 3、分配物理内存页 三、共享内存 四、进程内存段的内存映射类型 一、内存映射概念 ---- 内存映射 概念 : "...内存映射 “ 就是在 进程的 ” 用户虚拟地址空间 " 中 , 创建一个 映射 , " 内存映射 " 有 2 种情况 , ① 文件映射 , ② 匿名映射 ; 文件映射 : 有 文件 支持 的 内存映射..." 物理内存空间 “ 映射到 ” 虚拟内存空间 " , 其中的数据是随机值 ; 二、内存映射原理 ---- 1、分配虚拟内存页 分配 虚拟内存页 : 在 Linux 系统中 创建 " 内存映射 “ 时..., 会在 ” 用户虚拟地址空间 “ 中 , 分配一块 ” 虚拟内存区域 " ; 2、产生缺页异常 缺页异常 : Linux 内核在分配 " 物理内存 “ 时 , 采用了 ” 延迟策略 “ , 即进程第一次访问..., 并且在 " 页表 “ 中 , 将 ” 虚拟内存页 " 映射到 ” 物理内存页 " ; 三、共享内存 ---- 内存映射 与 共享内存 关系 : 文件映射 : 在进程间的 " 共享内存 " 就是使用

    8.4K20

    Linux - Linux内存管理

    文章目录 概念 物理内存和虚拟内存 内存的监控 从内核的角度来查看内存的状态 从应用层的角度来看系统内存的使用状态 缓冲区(buffer)与缓存(cache)的异同 交换空间的使用 创建交换空间 激活和使用交换空间...移除交换空间 ---- 概念 内存管理是Linux系统重要的组成部分。...为了解决内存紧缺的问题,Linux引入了虚拟内存概念。为了解决快速存取,引入了缓存机制、交换机制等。...---- 物理内存和虚拟内存 直接从物理内存读写数据要比从硬盘读写数据要快得多,因此,我们希望所有数据的读取和写入都在内存中完成,而内存是有限的,这样就引出了物理内存与虚拟内存概念。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存

    52.4K41

    Linux内存描述之内存节点node--Linux内存管理(二)

    CPU访问本地内存的速度比访问远程内存的速度要快 Linux适用于各种不同的体系结构, 而不同体系结构在内存管理方面的差别很大....因此linux内核需要用一种体系结构无关的方式来表示内存....因此linux内核把物理内存按照CPU节点划分为不同的node, 每个node作为某个cpu结点的本地内存, 而作为其他CPU节点的远程内存, 而UMA结构下, 则任务系统中只存在一个内存node, 这样对于...UMA结构来说, 内核把内存当成只有一个内存node节点的伪NUMA 1.2 内存结点的概念 CPU被划分为多个节点(node), 内存则被分簇, 每个CPU对应一个本地物理内存, 即一个CPU-node...-3.x~4.x的实现 node_data内存节点数组 在新的linux3.x~linux4.x的内核中,内核移除了pg_data_t的pgdat_next之指针域, 同时也删除了pgdat_list链表

    7.9K21

    Linux内存描述之内存页面page--Linux内存管理(四)

    1 Linux如何描述物理内存 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU被划分为多个节点(node), 内存则被分簇, 每个CPU对应一个本地物理内存, 即一个...内存中的每个节点都是由pg_data_t描述,而pg_data_t由struct pglist_data定义而来, 该数据结构定义在include/linux/mmzone.h, line 615, 每个结点关联到系统中的一个处理器...简单来说, 页是一个数据块, 可以存放在任何页框(内存中)或者磁盘(被交换至交换分区)中 我们今天就来详细讲解一下linux下物理页帧的描述 2 页帧 内核把物理页作为内存管理的基本单位....地址空间是一个非常一般的概念. 例如, 可以用在向内存读取文件时....3.2 内存页标识pageflags 其中最后一个flag用于标识page的状态, 这些状态由枚举常量enum pageflags定义, 定义在include/linux/page-flags.h?

    8.4K11

    Linux内存描述之概述--Linux内存管理(一)

    2 (N)UMA模型中linux内存的机构 Linux适用于各种不同的体系结构, 而不同体系结构在内存管理方面的差别很大. 因此linux内核需要用一种体系结构无关的方式来表示内存....Linux内核通过插入一些兼容层, 使得不同体系结构的差异很好的被隐藏起来, 内核对一致和非一致内存访问使用相同的数据结构 2.1 (N)UMA模型中linux内存的机构 非一致存储器访问(NUMA)模式下...而内存管理的其他地方则认为他们就是在处理一个(伪)NUMA系统. 2.2 Linux物理内存的组织形式 Linux把物理内存划分为三个层次来管理 层次 描述 存储节点(Node) CPU被划分为多个节点..., 我们会在后面典型架构(x86)上内存区域划分详细讲解x86_32上的内存区域划分 因此Linux内核对不同区域的内存需要采用不同的管理方式和映射方式, 为了解决这些制约条件,Linux使用了三种区:...2.6 高端内存 由于能够被Linux内核直接访问的ZONE_NORMAL区域的内存空间也是有限的,所以LINUX提出了高端内存(High memory)的概念,并且允许对高端内存的访问

    6.9K30

    Linux内存描述之内存区域zone--Linux内存管理(三)

    因此相对于任何一个CPU访问本地内存的速度比访问远程内存的速度要快, 而Linux为了兼容NUMAJ结构, 把物理内存相依照CPU的不同node分成簇, 一个CPU-node对应一个本地内存pgdata_t..., 我们会在后面典型架构(x86)上内存区域划分详细讲解x86_32上的内存区域划分 因此Linux内核对不同区域的内存需要采用不同的管理方式和映射方式, 因此内核将物理地址或者成用zone_t表示的不同地址区域...Linux使用enum zone_type来标记内核所支持的所有内存区域 3.1 内存区域类型zone_type zone_type结构定义在include/linux/mmzone.h, 其基本信息如下所示...位系统中, Linux内核虚拟地址空间只有1G, 而0~895M这个986MB被用于DMA和直接映射, 剩余的物理内存被成为高端内存....Linux必须处理如下两种硬件存在缺陷而引起的内存寻址问题: 一些硬件只能用某些特定的内存地址来执行DMA 一些体系结构其内存的物理寻址范围比虚拟寻址范围大的多。

    9.4K31

    Linux之进程概念

    基本概念: 进程说白了其实就是一个程序的执行实例,正在执行的程序。...当我们双击这个程序让他运行起来之后,本质上是让这个程序加载到内存当中去了,因为只有加载到内存当中去CPU才能对他进行逐语句执行,而一旦将这个程序加载到内存之后,我们就不应该叫他程序了,严格意义上应该称他为进程...PCB实际上是对进程控制块的统称,在Linux中描述进程的结构体叫做task_struct task_struct是Linux中的一种数据结构,他会被装载到RAM(内存)里并包含进程的信息 task_struct...我们知道加载到内存中的数据和代码是属于父进程的,那么子进程的数据和代码又是从哪里来的呢?...僵尸进程 前面我们已经说过僵尸状态的概念,相信大家也有了一个大致的了解,而处于僵尸状态的进程,就被称为僵尸进程。

    10610

    Linux内存管理

    本篇介绍 本篇介绍下Linux内存管理,用系统角度看内存的寻址和分配机制。 内容介绍 内存管理应该是系统中最难的模块之一了,而且历史也悠久,就先来简单回顾下。...分页机制可以完全避免内存碎片问题么? 公布下答案: 的确有分页机制就可以完全不需要分段机制,目前linux是在分段的基础上实现了分页,这个也有考虑到是兼容性问题。...; /* for /proc/PID/auxv */ struct percpu_counter rss_stat[NR_MM_COUNTERS]; struct linux_binfmt...mmap流程如下: image.png 缺页异常 linux 是在不得不使用物理内存的时候才会分配物理内存。这句话该怎么理解呢?...因此看到物理可用内存不足并不表示需要换物理内存条了。

    13.8K51

    Linux进程概念(三)

    这样是可以的,但是非常不建议,因为这个程序相当于安装到了系统中,Linux下拷贝就是安装。...不过不用担心,重新登陆Linux就可以了,因为这是内存上的改变。 那么我们需要保留原来的并且再添加新的: 这样也不会影响原来的sl等。...在打开Linux的时候bash因为要处理用户的命令,这些命令也是程序,运行程序需要指定路径,所以操作系统就提前将这些指令的路径放在了专属的配置文件,在启动操作系统时将这个文件导入内存中形成一个内存级变量...首先来看看进程地址空间是什么原理: 在linux源码当中,地址空间是一个mm_struct的数据结构,大概是这样的 struct mm_struct { uint32_t code_start,code_end...程序在磁盘的时候是有地址的,逻辑地址(在linux当中也可以称为虚拟地址) 在进程指向进程地址空间的时候,CPU去读取指令,main函数,因为每一条指令都是有虚拟地址的,所以就能找到fun函数,还有a

    56400

    Linux 内存管理

    操作系统内存管理包括物理内存管理和虚拟内存管理:       我们这篇主要介绍Linux的虚拟内存管理。...下图简要描述了进程内存区域的分布: 二. 地址相关概念 ---- 在讲地址转换之前,我们先介绍地址相关概念: 1....Linux仅把可执行映像的一小部分 装入物理 内存. 当需要访问未装入的页面时 . 系统产生一个缺页中断 , 把需要的页读入 物理内存。 ...把页装入物理内存。   ·   五.swap对换空间 ----      32位Linux系统的每个进程可以有4 GB的虚拟 内存空间 ....例如:32位Linux的每个用户进程都可以访问4GB的线性地址空间, 而实际的物理内存可能远远少于4GB. 采用分页机制 ,Linux仅把可执行映像的一小部分装入物理内存

    7.7K10
    领券