首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混合线程模型(M:N)的实现

混合线程模型(M:N)的实现
EN

Stack Overflow用户
提问于 2010-11-22 18:57:39
回答 1查看 8.7K关注 0票数 10

在通常由OS内核完成的线程调度实现中使用的是three线程模型。其中之一是混合(M:N)模型,其中一些N应用程序线程被映射到M内核线程,以便它们可以使用到M处理器。这种模式有利有弊。其中一个优点是,基于该模型的语言将引入一个语言级调度器实现,负责管理和调度应用程序级别的线程。

我在想,是否有人知道已经这样做过的任何努力或工作,以便语言或库可以利用it?

  • Considering --例如,内核2.6.23+使用一种名为CFS的算法来调度,您认为这种混合模型是否是投资的明智方法?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-11-22 19:09:56

首先阅读以下内容:http://www.kegel.com/c10k.html#1:1

Linux使用从内核2.6开始的1:1线程模型(NPTL原生Posix线程库),今天几乎所有的OSes都转向这个模型:

从7.0开始的mistaken.

  • Solaris

  • FreeBSD,如果我不是从某个版本开始的,也移到了1:1 --我不记得是哪一个了。

一旦Linux有了M:N模型(这是在2.4NGPT中),但是1:1通常更好。

M:N模型的最大问题是:

使用阻塞系统调用implement

  • When
  1. ,您实际上需要通知内核只阻塞一个用户空间线程,而不是内核一个
  2. ,在多核时代,您希望拥有尽可能多的内核线程。

之一是混合(M:N)模型,其中一个应用程序的一些线程被映射到一些M可用的处理器。

小更正-N个应用程序线程映射到M内核线程,以便他们可以使用最多M处理器。

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

https://stackoverflow.com/questions/4249124

复制
相关文章

相似问题

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