第三章 进程管理

  1. 内核把进程存放在叫做任务队列的双向循环链表中。链表中的每一项都是类型为task_struct称为进程描述符的结构
  2. 通过current宏查找到当前正在运行进程的进程描述符
  3. 每个进程必然处于五种状态中的一种:
    1. TASK_RUNNING(运行)。正在执行或者在运行队列中等在执行
    2. TASK_INTERRUPTIBLE(可中断)。进程正在睡眠,等待某些条件达成,可变为运行状态
    3. TASK_UNINTERRUPTIBLE(不可中断)。不会因为接收到信号而被唤醒进入运行状态,其他与可中断状态一样。
    4. TASK_ZOMBIE(僵死)。进程已经结束,但保留描述符,等待父进程调用wait获取消息。
    5. TASK_STOPPED(停止)。进程没有投入运行也不能投入运行,通常发生在接收到SIGSTOP、SIGTSTP、SIGTTIN、SIGTTOU等信号的时候。
  4. 每个task_struct都包含一个指向其父进程叫做parent的指针,还包含一个称为children的子进程链表。
  5. for_each_process宏提供了依次访问整个任务队列的能力
  6. 内核把所有的线程都当做进程来实现。线程仅仅被视为一个与其他进程共享某些资源的进程
  7. 内核线程和普通的进程间的区别在于内核线程没有独立的地址空间。它们只在内核空间运行,从来不切换到用户空间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值