首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程:多对一模型和一对一模型的并发性的差异。

线程:多对一模型和一对一模型的并发性的差异。
EN

Software Engineering用户
提问于 2015-10-26 19:15:35
回答 1查看 5.1K关注 0票数 6

我正在学习“线程”部分的教科书,操作系统的概念写的亚伯拉罕西尔伯沙茨,彼得,格雷格。

首先,我要在教科书上说一些与我的问题有关的话,然后再问这个问题。如果有人已经知道以下理论,请跳过我的问题。

本书定义了并行性和并发性,如下所示:

并发支持多个正在进行的任务。

在单核系统上的并发执行:

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

多核系统上的

并行性:

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

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

我的问题是,为什么在多对一模型中不能获得并发性,以及为什么一对一模型提供的并发性比多对一模型更多。

我认为多对一模型的性能没有提高,但我认为并发性是单线程的4倍。此外,一对一模式提供的并发性是单线程的4倍(与多对一模型相同)。此外,在多处理器体系结构中,并行性是多对一模型的4倍.

我的结论是教科书写错了。因此,应该按以下方式更改

多对一模型:并发性提高到用户线程的数量,但是性能没有得到提高,因为内核一次只能调度一个线程。

一对一模型:并发性提高到用户线程的数量,性能也提高到处理器的数量。

我的想法是对还是错?感谢您的阅读。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2015-10-26 20:28:25

你的教科书没有错,但它使用的术语“并发”有时有点松散。

并发意味着出现了同时执行多个任务的现象。

真正的并发意味着同时执行多个任务。这也被称为并行性。你的教科书似乎是交替使用这些术语,这并不是错误的,但如果你忽略了“真”这个词,就会产生误导。

在多对一模型中,您可以获得并发(任务同时运行的外观),但无法获得并行性。只有一个内核线程,不能分散在多个处理器上。

在一对一模型中,每个用户线程都有一个相应的内核线程,这为内核提供了更多的提供并发性甚至并行性的选项。

票数 10
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/300927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档