fbpx
维基百科

Native POSIX Thread Library

Native POSIX Thread LibraryNPTL)是Linux内核中實踐POSIX Threads標準的函式庫。

测试表明,NPTL能够成功地在IA-32平台上在两秒鐘内生成100,000个线程;相应的没有NPTL的内核将耗费15分钟左右。[1][2]

历史 编辑

Linux内核2.6出现之前进程是(最小)可调度的对象,当时的Linux不真正支持线程。但是Linux内核有一个系统调用指令clone(),这个指令产生一个呼叫调用的進程的复件,而且这个复件与原進程使用同一地址空间。LinuxThreads计划使用这个系统调用来提供一个内核级的线程支持。但是这个解决方法与真正的POSIX标准有一些不相容的地方,尤其是在信号处理、进程调度和进程间同步原语方面。

要提高LinuxThreads的效应很明显需要提供内核支持以及必须重写线程函式库。为了解决这个问题出现了两个互相竞争的项目:一个IBM的组的项目叫做NGPTNext Generation POSIX Threads,下一代POSIX线程),另一个组是由Red Hat程序员组成的。2003年中NGPT被放弃,几乎与此同时NPTL公布了。

NPTL首次是随Red Hat Linux 9发表的。此前老式的Linux POSIX线程偶尔会发生系统无法产生线程的毛病,这个毛病的原因是因为在新线程开始的时候系统没有借机先占。当时的Windows系统对这个问题的解决比较好。Red Hat在关于Red Hat Linux 9上的Java的网页上发表了一篇文章称NPTL解决了这个问题[3]

从第3版开始NPTLRed Hat Enterprise Linux的一部分,从Linux内核2.6开始它被纳入内核。目前它完全被结合入GNU C 函式庫

设计 编辑

NPTL的解决方法与LinuxThreads类似,内核看到的首要抽象依然是一个進程,新线程是通过clone()系统调用产生的。但是NPTL需要特殊的内核支持来解决同步的原始类型之间互相竞争的状况。在这种情况下线程必须能够入眠和再复苏。用来完成这个任务的原始类型叫做futex

NPTL是一个所谓的1×1线程函式库。用户产生的线程与内核能够分配的物件之间的联系是一对一的。这是所有线程程式中最简单的。

参考资料 编辑

  1. ^ 引入2.6内核. [2008-08-12]. (原始内容存档于2012-01-21). 
  2. ^ The Native POSIX Thread Library for Linux (PDF). [2008-08-12]. (原始内容存档 (PDF)于2012-01-21). 
  3. ^ Red Hat Linux 9 and Java 2 Platform, Standard Edition 1.4.2: A Winning Combination. [2008-12-13]. (原始内容于2009-02-08). 

外部链接 编辑

  • NPTL设计论文(页面存档备份,存于互联网档案馆
  • NPTL跟踪工具(页面存档备份,存于互联网档案馆) 可以同来跟踪和调试NPTL程式的开源工具

native, posix, thread, library, nptl, 是linux内核中實踐posix, threads標準的函式庫, 测试表明, nptl能够成功地在ia, 32平台上在两秒鐘内生成100, 000个线程, 相应的没有nptl, 的内核将耗费15分钟左右, 目录, 历史, 设计, 参考资料, 外部链接历史, 编辑在linux, 内核2, 6出现之前进程是, 最小, 可调度的对象, 当时的linux, 不真正支持线程, 但是linux, 内核有一个系统调用指令clone, 这个指令产生一个呼叫. Native POSIX Thread Library NPTL 是Linux内核中實踐POSIX Threads標準的函式庫 测试表明 NPTL能够成功地在IA 32平台上在两秒鐘内生成100 000个线程 相应的没有NPTL 的内核将耗费15分钟左右 1 2 目录 1 历史 2 设计 3 参考资料 4 外部链接历史 编辑在Linux 内核2 6出现之前进程是 最小 可调度的对象 当时的Linux 不真正支持线程 但是Linux 内核有一个系统调用指令clone 这个指令产生一个呼叫调用的進程的复件 而且这个复件与原進程使用同一地址空间 LinuxThreads 计划使用这个系统调用来提供一个内核级的线程支持 但是这个解决方法与真正的POSIX 标准有一些不相容的地方 尤其是在信号处理 进程调度和进程间同步原语方面 要提高LinuxThreads 的效应很明显需要提供内核支持以及必须重写线程函式库 为了解决这个问题出现了两个互相竞争的项目 一个IBM 的组的项目叫做NGPT Next Generation POSIX Threads 下一代POSIX 线程 另一个组是由Red Hat 程序员组成的 2003年中NGPT 被放弃 几乎与此同时NPTL 公布了 NPTL 首次是随Red Hat Linux 9 发表的 此前老式的Linux POSIX 线程偶尔会发生系统无法产生线程的毛病 这个毛病的原因是因为在新线程开始的时候系统没有借机先占 当时的Windows 系统对这个问题的解决比较好 Red Hat 在关于Red Hat Linux 9 上的Java 的网页上发表了一篇文章称NPTL 解决了这个问题 3 从第3版开始NPTL 是Red Hat Enterprise Linux 的一部分 从Linux 内核2 6开始它被纳入内核 目前它完全被结合入GNU C 函式庫 设计 编辑NPTL 的解决方法与LinuxThreads 类似 内核看到的首要抽象依然是一个進程 新线程是通过clone 系统调用产生的 但是NPTL 需要特殊的内核支持来解决同步的原始类型之间互相竞争的状况 在这种情况下线程必须能够入眠和再复苏 用来完成这个任务的原始类型叫做futex NPTL 是一个所谓的1 1线程函式库 用户产生的线程与内核能够分配的物件之间的联系是一对一的 这是所有线程程式中最简单的 参考资料 编辑 引入2 6内核 2008 08 12 原始内容存档于2012 01 21 The Native POSIX Thread Library for Linux PDF 2008 08 12 原始内容存档 PDF 于2012 01 21 Red Hat Linux 9 and Java 2 Platform Standard Edition 1 4 2 A Winning Combination 2008 12 13 原始内容存档于2009 02 08 外部链接 编辑NPTL设计论文 页面存档备份 存于互联网档案馆 NPTL跟踪工具 页面存档备份 存于互联网档案馆 可以同来跟踪和调试NPTL程式的开源工具 取自 https zh wikipedia org w index php title Native POSIX Thread Library amp oldid 80170301, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。