Linux进程和轻量级进程(LWP)

1.父子进程可以共享含有程序代码的页,但是他们各自有独立的数据拷贝(堆和栈)。

2.进程描述符

 3.进程的TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE区别

 

TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE差不多,但是TASK_UNINTERRUPTIBLE状态的进程不会(在某些特定场景下,等待特定事件的进程不能被中断)被中断。

4、 thread_info结构和进程内核栈存放在连续两个页框中

分别获取当前进程thread_info和task_struct首地址的两个宏定义如下:

(1)current_thread_info()

 movl $0xffffe000,%ecx /* or 0xfffff000 for 4KB stacks */
 andl %esp,%ecx
 movl %ecx,p

(2)current

 movl $0xffffe000,%ecx /* or 0xfffff000 for 4KB stacks */
 andl %esp,%ecx
 movl (%ecx),p

用栈存放进程描述符的另外一个优点体现在SMP系统上:对于每个处理器,仅通过检查栈就可以获得当前正确的进程。早先的Linux版本没有把内核栈与进程描述符存放在一起,而是强制引入全局静态变量current来标识正在运行进程的描述符。在SMP系统上,就需要把current定义为一个数组,每个元素对应一个可用CPU,这无疑增加了复杂度,降低了软件效率

 4、 进程链表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

denglin12315

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值