Mac操作系统XNU内核(三)进程线程结构

 
(XNU,是苹果操作系统OS X的内核)
 
task结构
  1. mach层,没有进程概念,只有与进程对应的task
  2. mach task可以看作一个机器无关的thread执行环境的抽象;或者一个包括虚拟地址空间、IPC空间、处理器资源、调度控制、thread的容器。

 

proc结构

 

  1. 这是BSD层的进程结构,扩展了mach层的task结构
  2. 也就是说,task结构是proc结构的一部分

 

 

uthread结构

  1. 这是BSD层的uthread结构,扩展了mach层的thread结构
  2. thread结构是uthread结构的一部分

thread结构

mach thread可以看作mach task的独立可调度单元,task中使用多个thread可以显著提高性能;thread结构包括下面信息:
1.调度优先级、调度策略和相关信息
2.处理器使用率统计
3.thread级port(ports实现信息传送),比如内核port和异常port
4.机器状态(thread状态依赖机器状态)
 

附赠

这个截图来自权威著作《OS X Internal: A System Approach》

原文地址:https://www.cnblogs.com/andypeker/p/4360540.html