内存架构
【Android 逆向】ARM CPU 架构体系 ( ARM 内存模型 | ARM 架构堆的实现 | ARM 架构栈的实现 )
文章目录一、ARM 内存模型二、ARM 架构堆的实现三、ARM 架构栈的实现一、ARM 内存模型ARM 架构体系中 , CPU 直接访问内存 , 控制内存中的状态和数据 , 内存中映射外部设备 , 外设通过内存中的状态数据改变外设内部的情况 ; 如 : CPU 读取硬盘数据 , 首先访问内存中的对应内存块 A , 内存块向硬盘控制器发送命令 , 硬盘控制器将数据取出放到另外一块内存 B 中 ,
日期 2023-06-12 10:48:40【Android 逆向】函数拦截 ( 修改内存页属性 | x86 架构插桩拦截 )
文章目录一、修改内存页属性二、x86 架构下的插桩拦截一、修改内存页属性实际函数 的 函数指针为 unsigned char* pFunc , 拦截函数 的函数指针为 unsigned char* pStub , 在执行 pFunc 函数时 , 无条件跳转到 pStub 函数中 ;要修改 pFunc 函数 , 要先设置该函数所在的内存页的访问 属性 , 否则如果用户没有相关内存访问权限 , 强行修
日期 2023-06-12 10:48:40【Linux 内核】NUMA 非一致内存访问结构 ( NUMA 概念介绍 | NUMA 架构优势分析 | SMP、NUMA、MPP 架构 )
文章目录一、NUMA 非一致内存访问结构二、NUMA 架构优势分析二、SMP、NUMA、MPP 架构一、NUMA 非一致内存访问结构非一致内存访问结构 , 英文名称 Non Uniform Memory Access , 简称 NUMA ;" 非一致内存访问结 " 的 系统 , 有 多个 CPU 处理器 , 每个 处理器 都有 自己的 独立的本地内存 , 每个 CPU 处理器只
日期 2023-06-12 10:48:40【Linux 内核 内存管理】RCU 机制 ⑤ ( RCU 层次架构概念 | RCU 层次架构源码解析 | RCU 层次架构每层最多叶子数 | RCU 层次架构每个叶子 CPU 数量 )
文章目录一、RCU 层次架构概念及源码二、RCU 层次架构源码解析1、RCU 层次架构每层最多叶子数2、RCU 层次架构每个叶子 CPU 数量一、RCU 层次架构概念及源码RCU 机制 中 , 会 根据 CPU 数量 , 按照 " 树形结构 “ 组成 RCU 层次架构 , 称为 ” RCU Hierarchy " ;在 Linux 源码 linux-5.6.18\include
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ① ( 虚拟地址空间布局架构 | 用户虚拟地址空间划分 )
文章目录一、虚拟地址空间布局架构二、用户虚拟地址空间划分一、虚拟地址空间布局架构在 64 位的 Linux 操作系统中 , " ARM64 架构 " 并 不支持 64 位的虚拟地址 , 最大只支持 48 位的虚拟地址 , 64 位地址太大 , 并不需要那么大的内存空间 ;" ARM64 架构 " 中 , Linux 系统的 " 内核虚拟地址 “ 与
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ② ( 用户虚拟地址空间组成 | 内存描述符 mm_struct 结构体源码 )
文章目录一、用户虚拟地址空间组成二、内存描述符 mm_struct 结构体源码一、用户虚拟地址空间组成" 用户虚拟地址空间 " 包括以下区域 :① 代码段② 数据段③ 未初始化数据段④ 动态库 代码段 , 数据段 , 未初始化数据段 ;⑤ 堆内存 : 通过 malloc brk vmalloc 等函数 申请的 动态分配 的内存 ;⑥ 栈内存 : 存放 局部变量 和 函数调用栈
日期 2023-06-12 10:48:40【Linux 内核 内存管理】memblock 分配器 ⑤ ( Linux 内核中定义 memblock 分配器的位置 | ARM64体系架构下 Linux内核初始化 memblock 分配器流程 )
文章目录一、Linux 内核中定义 memblock 分配器的位置二、ARM64 体系架构下 Linux 内核初始化 memblock 分配器流程三、arm64_memblock_init 函数完整源码一、Linux 内核中定义 memblock 分配器的位置Linux 内核 定义 memblock 分配器 位置 :Linux 内核源码 linux-4.12\mm\memblock.c#34 位置
日期 2023-06-12 10:48:40Java内存溢出的常见情况和处理方式总结详解架构师
java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程序不严密,产生了过多的垃圾。 导致OutOfMemoryError异常的常见原因有以下几种: 内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 代码中存在死循环或循环产生过多重复的对象
日期 2023-06-12 10:48:40深入了解Oracle的内存架构,掌握数据库性能优化技巧(oracle内存架构)
Oracle 是一种世界上最受欢迎的关系数据库管理系统,它实现了高可用性,可靠性和性能等高级数据库特性,以满足各种业务流程所需的稳定,可靠,及时的数据管理。为了掌握Oracle数据库的性能优化技巧,我们需要先了解Oracle的内存架构。 Oracle内存架构分为几个不同的内存区域,其中最重要的两个是System Global Area(SGA)和Program Global Area(PGA)
日期 2023-06-12 10:48:40探究Oracle数据库内存架构一探究竟(oracle内存架构分析)
探究Oracle数据库内存架构一探究竟 Oracle数据库是一种非常广泛使用的关系型数据库管理系统,它的内存架构设计是关键的因素之一,直接影响了数据库的性能和稳定性。本文将从内存架构的角度对Oracle数据库进行探究。 Oracle数据库的内存架构主要包括缓冲池(Buffer Cache)、共享池(Shared Pool)、Java池(Java Pool)、Large Pool和SGA(Ta
日期 2023-06-12 10:48:40Oracle12c引入新一代内存数据库架构(oracle12c内存库)
Oracle12c引入新一代内存数据库架构 在大数据时代,数据的处理速度和效率成为了企业发展的关键指标之一。Oracle12c作为世界领先的关系型数据库管理系统,不断推陈出新,不断发挥其在计算机行业的领导地位。 近日,Oracle引入了新一代内存数据库架构,在性能、可伸缩性和可靠性方面实现了巨大的突破。这项新技术被命名为Oracle In-Memory Database。 Oracle I
日期 2023-06-12 10:48:40PMEM内存驱动架构
【Linux 内核 内存管理】memblock 分配器 ⑤ ( Linux 内核中定义 memblock 分配器的位置 | ARM64体系架构下 Linux内核初始化 memblock 分配器流程 )
文章目录 一、Linux 内核中定义 memblock 分配器的位置二、ARM64 体系架构下 Linux 内核初始化 memblock 分配器流程三、arm64_memblock_init 函数完整源码
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ④ ( 内存描述符 mm_struct 结构体成员分析 | hiwater_rss | start_code | start_brk )
文章目录 一、mm_struct 结构体成员分析1、hiwater_rss 成员2、hiwater_vm 成员3、total_vm 成员4、locked_vm 成员5、start_code、end_code、
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ③ ( 内存描述符 mm_struct 结构体成员分析 | mmap | mm_rb | task_size | pgd | mm_users )
文章目录 一、mm_struct 结构体成员分析1、mmap 成员2、mm_rb 成员3、get_unmapped_area 函数指针4、task_size 成员5、pgd 成员6、mm_users 成员7、m
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ① ( 虚拟地址空间布局架构 | 用户虚拟地址空间划分 )
文章目录 一、虚拟地址空间布局架构二、用户虚拟地址空间划分 一、虚拟地址空间布局架构 在 64
日期 2023-06-12 10:48:40【Linux 内核 内存管理】内存管理架构 ② ( 用户空间内存管理 | malloc | ptmalloc | 内核空间内存管理 | sys_brk | sys_mmap | sys_munmap)
文章目录 一、用户空间内存管理 ( malloc / free / ptmalloc / jemalloc / tcmalloc )二、内核空间内存管理1、内核内存管理系统调用 ( sys_brk | sys_
日期 2023-06-12 10:48:40【Linux 内核 内存管理】Linux 内核内存布局 ④ ( ARM64 架构体系内存分布 | 内核启动源码 start_kernel | 内存初始化 mm_init | mem_init )
文章目录 一、ARM64 架构体系内存分布二、Linux 内核启动源码 start_kernel三、内存初始化源码 mm_init四、内存初始化源码 mem_init 一、ARM64
日期 2023-06-12 10:48:40【Linux 内核 内存管理】Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )
文章目录 一、查看 x86_64 架构体系内存分布二、/proc/meminfo 重要字段解析 一、查看 x86_64 架构体系内存分布 执行 cat /proc/memi
日期 2023-06-12 10:48:40【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )
文章目录 一、Linux 内核特性1、Linux 内核组织形式2、Linux 进程调度3、Linux 内核线程4、Linux 内核多平台虚拟内存管理5、Linux 虚拟文件系统6、Linux 内核模块机制7、L
日期 2023-06-12 10:48:40Java 内存架构
a) 执行。main()作为该程序的初始线的起点。无论由线程开始在其他线程。JVM有两个内螺纹:守护线程和非守护线程,main()它是一个非守护线程。常由JVM自己使用。java程序也能够标明自己创建的线程是守护线程 b) &nb
日期 2023-06-12 10:48:40