這是我很早就下載下傳的一個pdf文檔,具體哪裡下的忘了,特向作者緻謝,這文檔真的不錯!題目我保留了,需要全文的朋友可以自己google,這篇文章我隻翻譯部分,略了很多,主要加上自己的想法。強烈建議閱讀原文!
作者資訊:
Andrew Borg
University of Malta
June 26, 2001
摘要
smp近來大規模應用于并行計算,多線程被證明非常适合smp。程式員利用線程庫編寫多線程程式。線程庫要麼自己排程線程要麼把排程任務交給作業系統核心。但是這兩種方法都會引起一些問題。本文描述了兩個使用者級别的排程器,一個适于單cpu,一個适于smp。這些機制會使在執行阻塞系統調用時不會在核心 阻塞。為了實作這個目的,我們利用系統擴充裡面一個叫做“排程激活”的機制。避免阻塞在那些需要同時處理很多用戶端的伺服器程式裡非常有用。一個提供靜态頁面的web伺服器也将從中受益。
1.引言
老版本的unix及類unix系統對多線程并發程式設計支援的很不讓人滿意。這些使得設計并行應用非常困難。多線程在很多并行程式設計中是同時協同過程的容器。
傳統意義的線程被分為核心線程和使用者線程。使用者線程的主要優勢就是高效,它的排程核心在使用者空間實作。核心線程就不那麼高效了,它需要核心來提供排程機制。這篇論文裡面,我們提供一個排程激活機制來對使用者線程提供核心級别的支援。通過這種犯法,使用者線程保持着它的高效,并且排程核心仍然在使用者空間。
2.背景
2.1.從程序到核心線程
線程的概念在1965年就有了。在那時它們不叫線程,而叫程序。
本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1274179