我正在学习“线程”部分的教科书,操作系统的概念写的亚伯拉罕西尔伯沙茨,彼得,格雷格。
首先,我要在教科书上说一些与我的问题有关的话,然后再问这个问题。如果有人已经知道以下理论,请跳过我的问题。
本书定义了并行性和并发性,如下所示:
并发支持多个正在进行的任务。

并行性意味着一个系统可以同时执行多个任务。
多核系统上的

多对一模型:无法获得真正的并发性,因为内核一次只能调度一个线程。

一对一模式:提供比多对一模式更多的并发性。“

我的问题是,为什么在多对一模型中不能获得并发性,以及为什么一对一模型提供的并发性比多对一模型更多。
我认为多对一模型的性能没有提高,但我认为并发性是单线程的4倍。此外,一对一模式提供的并发性是单线程的4倍(与多对一模型相同)。此外,在多处理器体系结构中,并行性是多对一模型的4倍.
我的结论是教科书写错了。因此,应该按以下方式更改
多对一模型:并发性提高到用户线程的数量,但是性能没有得到提高,因为内核一次只能调度一个线程。
一对一模型:并发性提高到用户线程的数量,性能也提高到处理器的数量。
我的想法是对还是错?感谢您的阅读。
发布于 2015-10-26 20:28:25
你的教科书没有错,但它使用的术语“并发”有时有点松散。
并发意味着出现了同时执行多个任务的现象。
真正的并发意味着同时执行多个任务。这也被称为并行性。你的教科书似乎是交替使用这些术语,这并不是错误的,但如果你忽略了“真”这个词,就会产生误导。
在多对一模型中,您可以获得并发(任务同时运行的外观),但无法获得并行性。只有一个内核线程,不能分散在多个处理器上。
在一对一模型中,每个用户线程都有一个相应的内核线程,这为内核提供了更多的提供并发性甚至并行性的选项。
https://softwareengineering.stackexchange.com/questions/300927
复制相似问题