Solaris線程模型詳解大綱
Solaris是Sun公司開發和發佈的一種現代操作系統,是UNIX系統的一個重要分支,今天小編爲大家帶來的是Solaris線程模型詳解,希望對大家會有幫助,有需要的朋友一起去看看
計算機中正在執行的程序稱爲進程,進程中單一順序的控制流叫做線程,進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是利用線程共享同一地址空間的特點,更好的支持對稱多處理(SMP)以及減小(進程/線程)上下文切換開銷。
Solaris是Sun公司開發和發佈的一種現代操作系統,是UNIX系統的一個重要分支,下面就其內部的線程模型做一些介紹和討論。
Solaris線程模型的設計目標:
主要有四個方面:
①.能夠描述各種情況下的線程間工作機制
②.支持代價儘可能小的線程
③.既支持單CPU實現,又支持多CPU實現
④.保持對現有UNIX版本的兼容性
Solaris線程模型的實現方法:
線程庫的高級內核具有多處理及多線程特性,因此Solaris提供了大量的用戶級線程庫,其使用了一種兩層的線程庫模型:在高層是用戶線程,而底層則是輕量級進程(LWP)。
LWP其實就是內核線程,是Solaris中真正的可調度實體。內核只關心LWP,而不關心用戶線程。
用戶線程由線程庫管理,線程庫支持用戶線程及LWP之間的一到一、多到多、多到一映射,並且用線程庫管理用戶線程與LWP池之間的映射關係及用戶線程的調度。
Solaris有兩種用戶線程: 綁定線程(bound threads)和未綁定線程(unbound threads)。一個綁定線程就是用戶線程與LWP之間的一一映射,一個未綁定線程則沒有一個固定對應的LWP。在一個進程中,線程庫在LWP池上對用戶線程進行調度。其結構圖如下:
對以上兩者進行比較,未綁定進程由線程庫來實現用戶線程獲得LWP的調度,而不需要內核的參與,這種方式的線程上下文切換比較快,並且更節省內核資源,solaris根據一定的策略提供一個LWP池,供上面更多的線程分享。
綁定線程和LWP是一對一關係,因此實時調度性要好,但是由於內核的加入,比較浪費資源。綁定線程比起非綁定線程的開銷要大。因爲綁定線程可以改變它所在的LWP的屬性,LWP在綁定線程退出後不會被緩存,在新的綁定線程生成時,操作系統將提供一個新的LWP。僅僅在線程需要只有在所在的LWP內可用的資源時(例如虛擬的定時器或者一個指定的堆棧),或者爲了實現實時調度而必須使線程對於內核可見的場合下,才需要使用綁定線程。
Solaris對線程的控制與同步:
內核根據LWP的調度類型和優先級對它們進行調度。進程建立時有一個初始LWP被建立,並且繼承父進程的`調度類型和優先級。一般來說,綁定的用戶線程繼承底層的LWP調度類型和優先級,而未綁定的則繼承父進程的調度類型和優先級。
Solaris內核使用一種搶先的基於優先級的調度機制,高優先級的LWP比低優先級的LWP先執行。Solaris線程庫使用優先級對用戶線程在LWP池上進行調度,每次選擇一個LWP執行已經就緒的用戶線程。如果某LWP因無限等待而阻塞,線程庫則將其對應的用戶線程的上下文保存起來,並分派另一個用戶線程到該LWP上執行。線程庫通常建立足夠多的LWP,以保證進程不發生”飢餓”。
線程的同步用於共享數據,轉換和控制線程執行,保證程序安全。Solaris支持4種線程的同步原語,分別是互斥鎖,信號量,多讀進程單寫進程鎖,條件變量。
內核級線程和用戶級線程都具有這些原語操作。一條原語執行時創建一個包含線程信息的數據結構,對每個同步對象只能執行加鎖和解鎖兩項操作,但內核和線程庫沒有提供防死鎖機制。
總結:
Solaris作爲多線程,多進程型的操作系統,其關於線程實現機制方面一直是業界領先的,瞭解solaris的多線程實現機制不但能夠幫助我們充分理解操作系統對多線程的控制原理,而且對多線程程序的編寫技巧的提高也有很大啓發。
相關文章
-
Solaris線程模型詳解
計算機中正在執行的程序稱爲進程,進程中單一順序的控制流叫做線程,進程是資源管理的最小單位,線程是程序執行的最小單位。在操作系統設計上,從進程演化出線程,最主要的目的就是利用線程共享同一地址空間的特點,更好的支持對 -
詳解CSS3盒模型display:box
display:box;box-flex是css3新添加的盒子模型屬性,它的出現可以解決我們通過N多結構、css實現的佈局方式。經典的一個佈局應用就是佈局的垂直等高、水平均分、按比例劃分。下面小編就來談談CSS3盒模型display:box。 -
Solaris iostat命令詳解
XX年,在街道黨工委的正確領導和同事的大力支持下,我以團結務實的態度帶領社區班子圍繞加強社區黨建、促進社區服務這一中心工作,以創建和諧泉塘、宜居景星爲總體目標,認真履行職責,大膽開展工作,積極探索服務創新,社區各項工 -
Adobe認證Illustrator CS3考試大綱
在平時的學習、工作或生活中,大家都寫過作文,肯定對各類作文都很熟悉吧,作文是通過文字來表達一個主題意義的記敘方法。相信許多人會覺得作文很難寫吧,下面是小編收集整理的我的朋友作文,歡迎閱讀,希望大家能夠喜歡。我的朋 -
Adobe認證Illustrator CS2考試大綱
Adobe Illustrator CS2是出版、多媒體和在線圖像的工業標準矢量插畫軟件。無論是生產印刷出版線稿的設計者和專業插畫家、生產多媒體圖像的藝術家、還是互聯網頁或在線內容的製作者。下面小編準備了關於Illustrator C -
Adobe Illustrator CS5考試大綱
作爲全球最著名的圖形軟件Adobe Illustrator,以其強大的功能和體貼用戶的界面已經佔據了全球矢量編輯軟件中的大部分份額。下面小編爲大家整理了關於Adobe Illustrator CS5考試大綱,一起來看看吧: 試題說明考題數量:共 -
Messi Wins Ballon dOr award Again大學英語作文
在日常學習、工作或生活中,大家都寫過作文吧,寫作文可以鍛鍊我們的`獨處習慣,讓自己的心靜下來,思考自己未來的方向。爲了讓您在寫作文時更加簡單方便,以下是小編整理的Messi Wins Ballon dOr award Again大學英語作文,歡迎 -
2016最新java classloader詳解
xx縣教師進修學校,創辦於1956年3月,1986年經四川省教育廳驗收合格、省政府審批備案的中等專業學校,地處川東北大巴山麓,座落在佛頭山下,位於江口鎮新平街西段92號。佔地8.5畝,建築面積4380平方米。學校成立初期,以中師學歷補 -
Some words for this special occasion英文美文欣賞
2006 has come, and here we are again speculating what the New Year is going to bring along. Some of us are hustling around doing our last minute shopping; others phoning to their much loved parents li -
英語報紙解讀:Data may disrupt a peculiar business大綱
原本想做精緻些,整理出一週閱讀素材的處理方法,每日一篇,留日後反思。現在就跟着小編一起來了解一下《時尚玄學或遭數據瓦解》吧。In the film The Devil Wears Prada, the character of Miranda Priestly, whose role i