Linux内核原理之进程管理

进程管理

进程

进程:处于执行期的程序以及相关资源(打开的文件、挂起的信号、内核内部数据、处理器状态等)的总称

线程:是在进程中活动的对象,每个线程都拥有一个独立的程序计数器、进程栈和一组进程寄存器。内核调度的对象是线程,不是进程

Linux不区分进程和线程,对它来说,线程只不过是一种特殊的进程而已

现代操作系统的两种虚拟机制

  • 虚拟处理器:给进程一种假象,让它觉得自己在独享处理器
  • 虚拟内存:让进程在分配和管理内存时觉得自己拥有整个系统的内存资源

注意:线程之间可以共享虚拟内存,但是都拥有自己的虚拟处理器

进程描述

内核把进程的列表存放在叫做任务队列的双向循环链表中。链表中的每一项类型为task_struct,称为进程描述符的结构,描述了一个具体进程的所有信息

分配进程描述符

Linux通过slab分配器分配task_struct结构,这样能够对象复用缓存着色

每个任务的thread_info结构在它的内核栈尾端分配,其中task域存放的是指向该任务实际task_struct的指针

struct thread_info {
   
	struct task_struct *task;
    struct exec_domain *exec_domain;
    
    ...
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值