【问题标题】:What is exactly it mean that associating a number of user threads to kernel level threads?将多个用户线程与内核级线程相关联到底意味着什么?
【发布时间】:2015-08-12 15:17:56
【问题描述】:

我正在阅读 Galvin 的操作系统概念。那里说用户级线程和内核级之间必须存在某种关系,然后他们解释了广泛使用的各种关系。但他们没有明确提到什么是“关联”。 从他们使用该术语的上下文来看,我猜想一组线程可以进行的并发系统调用数量(可能都属于特定进程)。我的猜测正确吗? 通过将用户级线程与内核级线程相关联,我们将实现什么目标?

【问题讨论】:

    标签: multithreading process scheduling


    【解决方案1】:

    您是指“线程”一章中的“多线程模型”部分吗?

    如果是这样,那么很快就会解释清楚:

    线程要么由操作系统(内核)管理,要么由非内核进程模拟。今天,(本机)程序中的一个线程恰好对应一个内核管理的线程。这些线程是操作系统已知的,可以由操作系统的调度程序根据需要进行调度。

    一些程序选择自己实现类似线程的功能。其中一个突出的例子是 Python 解释器:虽然 Python 语言提供了对多线程的支持,但解释器只会在单个操作系统/内核线程上运行,并且会注意在不同 Python 线程本身的代码之间切换执行;这就是“多对一”映射:多个 Python 线程在单个 OS 线程上运行。 Java VM 的早期版本进行了类似的仿真,但我似乎不记得是“多对一”还是“多对多”样式。

    【讨论】:

      猜你喜欢
      • 2022-08-15
      • 1970-01-01
      • 2011-03-08
      • 2022-10-07
      • 2017-05-14
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 2012-11-01
      相关资源
      最近更新 更多