linux中的“task_struct”相当于什么适用于 Mac 操作系统?

linux中的“task_struct”相当于什么适用于 Mac 操作系统?

我想了解 Mac OS 和 Linux 的进程控制块。对于 Lionux 来说,这非常简单,这里有一篇文章询问了同样的事情,有人回复说去看看 <linux/sched.h> 中的“task_struct”。然而,我发现找到 Mac OS 的等效信息更加困难,苹果开发者论坛中的某人提出了类似的问题,并被告知查看 proc_info.h 和 proc.h,但我不知道我应该是哪个结构看着。 Mac OS 中有等效的 task_struct 吗?

答案1

我对 Mac 操作系统一无所知,但……对 FreeBSD 有一些了解。希望它能匹配。

Linux 中的是正确的,task_struct因为它是 Linux 中调度的基本单位。

FreeBSD 中调度的基本单位是thread.

Linux 通过task_struct结构体来表示进程(和线程)。
Linux 中的单线程进程有一个task_struct.

FreeBSD 中的单线程进程有一个proc结构体、一个thread结构体和一个ksegrp结构体。
(这ksegrp是一个“内核调度实体组”。)

归根结底,两个操作系统都会调度线程,其中线程是threadFreeBSD 中的一个结构,而task_structLinux 中的线程是一个结构。

因此,确实如此,请遵循建议并首先查看 proc.h

相关内容