我有一个正在运行的进程创建了多个用户模式线程。如果内核将进程的状态更改为TASK_UNINTERRUPTIBLE
(或TASK_INTERRUPTIBLE
),那么进程创建的线程是否会自动挂起?TASK_UNINTERRUPTIBLE和在Linux内核开发中使用C处理线程
这不是一个家庭作业问题。我正在阅读描述信号量如何实现的操作系统手册。在它们的实现中,信号量结构维护一个当前正在等待信号量的进程的链表。从我迄今为止所了解到的情况来看,这样的信号量只能用于同步进程,而不能用于线程。正确?链接列表中的线程被置于TASK_INTERRUPTIBLE
状态,直到信号可用,此时通过将其状态设置为TASK_RUNNING
来唤醒一个进程。
现在它是有道理的。我猜在本书的实现中,它们的链接进程列表可能是task_struct的链接列表,它将对进程和线程进行说明。我希望他们能够做得更清楚。谢谢。 –