为什么在多核计算机上无法接受用户模式线程处理



我的理解是,用户模式下的线程通常更便宜,并且不需要系统调用。为什么在多核机上不可接受?

线程不需要系统调用,但这并不意味着他们无法拨打系统调用。

在用户模式库中实现线程的两个基本问题:

  • 当系统调用块
  • 时会发生什么

如果用户模式线程发出阻止的系统调用(例如打开或读取(,则该过程被阻止,直到该操作完成为止。这 意味着当线程块时,所有线程(在该过程中( 停止执行。由于线程是在用户模式中实现的 操作系统不知道它们,也不知道其他 线程(在此过程中(仍然可以运行。

  • 利用多处理器

如果CPU具有多个执行核,则操作系统可以安排每个操作系统以并行运行。但是如果运行 系统不知道一个过程由多个线程组成, 这些线程无法在可用的内核上并行执行。

如果操作系统而不是用用户模式线程库实现线程,则可以解决这两个问题。

从这里取。

最新更新