使用用户级线程,是否可以抢占低优先级线程以允许高优先级线程运行?
答案 0 :(得分:2)
我对现代操作系统中这个问题的推理是:
用户级线程由用户级进程处理。用户进程可以在其分配的时间片(量子)期间将其线程打开或关闭CPU。但是,内核无法看到用户级别的线程:它只知道特定的用户进程正在其分配的时间片中运行。
当线程进入其关键部分时,它需要系统处理的共享资源。因此,进行了系统调用。
但是,当线程进行系统调用时,父进程中的所有其他线程都将被阻止。这意味着兄弟线程不能抢占阻塞线程。
因此,虽然抢占可能发生在用户级线程上,但优先级倒置却不能。
编辑:在学习了一点之后,我发现用户级线程的抢占依赖于线程模型(即用户级线程到内核级线程的映射)及其实现。一旦获得进一步的信息,将更新。