完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Linux内存系统---走进Linux 内存
2、内存的作用 · 1)暂时存放 cpu 的运算数据 · 2)硬盘等外部存储器交换的数据 · 3)保障 cpu 计算的稳定性和高性能 1、Linux 内存地址空间 Linux 内存管理全貌 file:///C:UsersADMINI~1AppDataLocalTempksohtml9072wps8.png 2、内存地址——用户态&内核态 · 用户态:Ring3 运行于用户态的代码则要受到处理器的诸多 · 内核态:Ring0 在处理器的存储保护中,核心态 · 用户态切换到内核态的 3 种方式:系统调用、异常、外设中断 · 区别:每个进程都有完全属于自己的,独立的,不***扰的内存空间;用户态的程序就不能随意操作内核地址空间,具有一定的安全保护作用;内核态线程共享内核地址空间; 3、内存地址——MMU 地址转换 · MMU 是一种硬件电路,它包含两个部件,一个是分段部件,一个是分页部件 · 分段机制把一个逻辑地址转换为线性地址 · 分页机制把一个线性地址转换为物理地址 4、内存地址——分段机制 1) 段选择符 · 为了方便快速检索段选择符,处理器提供了 6 个分段寄存器来缓存段选择符,它们是:cs,ss,ds,es,fs 和 gs · 段的基地址(Base Address):在线性地址空间中段的起始地址 · 段的界限(Limit):在虚拟地址空间中,段内可以使用的最大偏移量 2) 分段实现 · 逻辑地址的段寄存器中的值提供段描述符,然后从段描述符中得到段基址和段界限,然后加上逻辑地址的偏移量,就得到了线性地址 · 5、内存地址——分页机制(32 位) · 分页机制是在分段机制之后进行的,它进一步将线性地址转换为物理地址 · 10 位页目录,10 位页表项, 12 位页偏移地址 · 单页的大小为 4KB 6、用户态地址空间 · TEXT:代码段可执行代码、字符串字面值、只读变量 · DATA:数据段,映射程序中已经初始化的全局变量 · BSS 段:存放程序中未初始化的全局变量 · HEAP:运行时的堆,在程序运行中使用 malloc 申请的内存区域 · MMAP:共享库及匿名文件的映射区域 · STACK:用户进程栈 7、内核态地址空间 · 直接映射区:线性空间中从 3G 开始最大 896M 的区间,为直接内存映射区 · 动态内存映射区:该区域由内核函数 vmalloc 来分配 · 永久内存映射区:该区域可访问高端内存 · 固定映射区:该区域和 4G 的顶端只有 4k 的隔离带,其每个地址项都服务于特定的用途,如:ACPI_BASE 等 8、进程内存空间 · 用户进程通常情况只能访问用户空间的虚拟地址,不能访问内核空间虚拟地址 · 内核空间是由内核负责映射,不会跟着进程变化;内核空间地址有自己对应的页表,用户进程各自有不同额页表 |
|
|
|
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
515 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
515 浏览 0 评论
780 浏览 0 评论
如何用OpenCV的相机捕捉视频进行人脸检测--基于米尔NXP i.MX93开发板
1360 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十章 YOLO2人手检测实验
572 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11759 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:56 , Processed in 0.580459 second(s), Total 65, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号