linux进程地址空间mm_struct结构体中mm_user和mm_count的疑问

在mm_struct结构体中有两个用来技术的成员变量,mm_user和mm_count,它们代表不同的层次。

mm_user主要用来记录共用此命名空间的线程数量,在linux创建线程时,会有如下操作,代码中仅仅更新了mm_user的值,并使子进程和父进程共享mm_struct结构体(如果不是创建线程,则子进程会重新申请mm_struct结构体)

atomic_inc(&curent->mm->mm_users);

tsk->mm=current->mm;

mm_count则主要记录对此mm_struct结构体的引用情况,比如在内核线程调度进来的时候,它会借用上一个进程的地址空间(虽然它不会对该地址空间操作),此时mm_count就会增加1。从另一个层面来理解的话,可以理解为mm_count是以进程为单位的,而mm_users则是以线程为单位的。

 

 

参考: http://blog.csdn.net/green_shine/article/details/7398902 

http://bbs.chinaunix.net/thread-1991118-1-1.html 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值