linux bx是什么意思?

linux bx是什么意思?,第1张

你好。

AX BX CX DX是CPU内部的通用寄存器中的数据寄存器,数据寄存器一般用于存放参与运算的数据或运算的结果。

AX 称为累加器,常用于存放算术逻辑运算中的 *** 作数,另外所有的I/O指令都使用累加器与外设接口传送信息;

BX 称为基址寄存器,常用来存放访问内在时的基地址;

CX 称为计数寄存器,在循环和串 *** 作指令中用作计数器;

DX 称为数据寄存器,在寄存器间接寻址中的I/O指令中存放I/O端口的地址。

obj-m :这个变量是指定你要声称哪些模块模块的格式为 obj-m := <模块名>.o

modules-objs :这个变量是说明声称模块modules需要的目标文件 格式要求 <模块名>-objs := <目标文件>

切记:模块的名字不能取与目标文件相同的名字。如在这里模块名不能取成 mymod;

KDIR :这是我们正在运行的 *** 作系统内核编译目录。也就是编译模块需要的环境

M= :指定我们源文件的位置

PWD :这是当前工作路径$(shell )是make的一个内置函数。用来执行shell命令。

一个用户空间的进程,究竟消耗了多少内存

首先要名确,一个application消耗的内存,一定指得是用户空间的内存。

3g - 4g 的kernal space是共享的,每个进程都有自己用户空间0 - 3G,只要通过系统调用就可以陷入kernal space, 就会从x86的3 rings升级到0 rings, 即陷入到内核空间。

app 调driver的iocrtrl, dirver 的ioctrl 内部通过调用kmalloc/vmalloc申请的内存并不计算在内,因为是通过内核的api申请的,属于内核消耗的。

vss、rss、pss、uss

pidof a.out

pmap a.out

vma的来源

在linux铁三角(二)有过叙述,这里不再赘述。这里直接上图把

MMU给CPU发送page fault的时候,在硬件中有2个寄存器

是否RSS就代表一个进程真正的内存消耗呢?

三个进程,其中2个Bash, 1 个 cat.

那么对应三张页表,每当切换进程,存储页表的 基地址就会却换,从而切换到不同的地址空间中。

中间的是内存条,通过三张页表瓜分物理内存。

104进程内存消耗:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7342147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存