【问题标题】:Relationship between Threads and Processes线程和进程的关系
【发布时间】:2015-11-27 23:08:53
【问题描述】:

我在一些操作系统书籍中阅读了有关线程的内容,但我对以下内容感到困惑:

A.一些书当谈:

  1. 多对一关系意味着:用户空间中的许多线程映射到内核中的一个线程。
  2. 一对一关系意味着:用户空间中的一个线程映射到内核中的一个线程
  3. 多对多关系意味着:用户空间中的某些线程在内核空间中较低或相等的线程中复用。

B.另一方面,有些书谈到了线程和进程之间的 4 种关系

  1. 多对一,意思是:一个进程定义了一个地址空间和动态资源所有权。可以在该进程中创建和执行多个线程。
  2. 一对一,意思是:每个执行线程都是一个唯一的进程 自己的地址空间和资源。
  3. 一对多,意思是:线程可以从一个进程环境迁移 给另一个。这允许线程在不同的系统之间轻松移动。
  4. many to many ,mean:结合(多对一)和(一对多)案例的属性。

A 的情况很清楚,但 B 的情况我不明白第 3 点,请您解释一下吗? 谢谢。

【问题讨论】:

  • 我认为您的意思是 B 节中的第 3 种情况,对吗?这来自“操作系统:内部和设计原则,7ed,作者:William Stallings)第 170 页。

标签: multithreading operating-system


【解决方案1】:

我不知道你在看哪本书,但它似乎是很久以前写的,现在没有任何实际用途。例如,我所知道的没有允许线程迁移的系统。我怀疑是否有实际使用过。

至于用户空间线程,现代系统不使用它们。我知道的所有平台都使用由内核管理的线程(即内核线程)。同一进程内的所有线程都可以访问此进程内存,但不能超出此内存。

【讨论】:

  • "操作系统:内部结构和设计原理,第 7 版,作者:William Stallings) 第 170 页
  • 我同意你的想法,+1。顺便说一句,Stallings 的书可能也是一本著名的书!该模型可能只是理论上的......
  • 我想知道该页面是否在 70 年代第一版出版后被修改过......(我只是猜测 70 年代)。
【解决方案2】:

线程是进程的一部分;而进程是处于执行模式的程序,需要资源。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 2014-02-18
  • 1970-01-01
相关资源
最近更新 更多