国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Solaris線程模型詳解

瀏覽:102日期:2022-06-07 11:31:12

計(jì)算機(jī)中正在執(zhí)行的程序稱(chēng)為進(jìn)程,進(jìn)程中單一順序的控制流叫做線程,進(jìn)程是資源管理的最小單位,線程是程序執(zhí)行的最小單位。在操作系統(tǒng)設(shè)計(jì)上,從進(jìn)程演化出線程,最主要的目的就是利用線程共享同一地址空間的特點(diǎn),更好的支持對(duì)稱(chēng)多處理(SMP)以及減小(進(jìn)程/線程)上下文切換開(kāi)銷(xiāo)。

Solaris是Sun公司開(kāi)發(fā)和發(fā)布的一種現(xiàn)代操作系統(tǒng),是UNIX系統(tǒng)的一個(gè)重要分支,下面就其內(nèi)部的線程模型做一些介紹和討論。

Solaris線程模型的設(shè)計(jì)目標(biāo):

主要有四個(gè)方面:

①.能夠描述各種情況下的線程間工作機(jī)制

②.支持代價(jià)盡可能小的線程

③.既支持單CPU實(shí)現(xiàn),又支持多CPU實(shí)現(xiàn)

④.保持對(duì)現(xiàn)有UNIX版本的兼容性

Solaris線程模型的實(shí)現(xiàn)方法:

線程庫(kù)的高級(jí)內(nèi)核具有多處理及多線程特性,因此Solaris提供了大量的用戶(hù)級(jí)線程庫(kù),其使用了一種兩層的線程庫(kù)模型:在高層是用戶(hù)線程,而底層則是輕量級(jí)進(jìn)程(LWP)。

LWP其實(shí)就是內(nèi)核線程,是Solaris中真正的可調(diào)度實(shí)體。內(nèi)核只關(guān)心LWP,而不關(guān)心用戶(hù)線程。

用戶(hù)線程由線程庫(kù)管理,線程庫(kù)支持用戶(hù)線程及LWP之間的一到一、多到多、多到一映射,并且用線程庫(kù)管理用戶(hù)線程與LWP池之間的映射關(guān)系及用戶(hù)線程的調(diào)度。

Solaris有兩種用戶(hù)線程: 綁定線程(bound threads)和未綁定線程(unbound threads)。一個(gè)綁定線程就是用戶(hù)線程與LWP之間的一一映射,一個(gè)未綁定線程則沒(méi)有一個(gè)固定對(duì)應(yīng)的LWP。在一個(gè)進(jìn)程中,線程庫(kù)在LWP池上對(duì)用戶(hù)線程進(jìn)行調(diào)度。其結(jié)構(gòu)圖如下:

對(duì)以上兩者進(jìn)行比較,未綁定進(jìn)程由線程庫(kù)來(lái)實(shí)現(xiàn)用戶(hù)線程獲得LWP的調(diào)度,而不需要內(nèi)核的參與,這種方式的線程上下文切換比較快,并且更節(jié)省內(nèi)核資源,solaris根據(jù)一定的策略提供一個(gè)LWP池,供上面更多的線程分享。

綁定線程和LWP是一對(duì)一關(guān)系,因此實(shí)時(shí)調(diào)度性要好,但是由于內(nèi)核的加入,比較浪費(fèi)資源。綁定線程比起非綁定線程的開(kāi)銷(xiāo)要大。因?yàn)榻壎ň€程可以改變它所在的LWP的屬性,LWP在綁定線程退出后不會(huì)被緩存,在新的綁定線程生成時(shí),操作系統(tǒng)將提供一個(gè)新的LWP。僅僅在線程需要只有在所在的LWP內(nèi)可用的資源時(shí)(例如虛擬的定時(shí)器或者一個(gè)指定的堆棧),或者為了實(shí)現(xiàn)實(shí)時(shí)調(diào)度而必須使線程對(duì)于內(nèi)核可見(jiàn)的場(chǎng)合下,才需要使用綁定線程。

Solaris對(duì)線程的控制與同步:

內(nèi)核根據(jù)LWP的調(diào)度類(lèi)型和優(yōu)先級(jí)對(duì)它們進(jìn)行調(diào)度。進(jìn)程建立時(shí)有一個(gè)初始LWP被建立,并且繼承父進(jìn)程的調(diào)度類(lèi)型和優(yōu)先級(jí)。一般來(lái)說(shuō),綁定的用戶(hù)線程繼承底層的LWP調(diào)度類(lèi)型和優(yōu)先級(jí),而未綁定的則繼承父進(jìn)程的調(diào)度類(lèi)型和優(yōu)先級(jí)。

Solaris內(nèi)核使用一種搶先的基于優(yōu)先級(jí)的調(diào)度機(jī)制,高優(yōu)先級(jí)的LWP比低優(yōu)先級(jí)的LWP先執(zhí)行。Solaris線程庫(kù)使用優(yōu)先級(jí)對(duì)用戶(hù)線程在LWP池上進(jìn)行調(diào)度,每次選擇一個(gè)LWP執(zhí)行已經(jīng)就緒的用戶(hù)線程。如果某LWP因無(wú)限等待而阻塞,線程庫(kù)則將其對(duì)應(yīng)的用戶(hù)線程的上下文保存起來(lái),并分派另一個(gè)用戶(hù)線程到該LWP上執(zhí)行。線程庫(kù)通常建立足夠多的LWP,以保證進(jìn)程不發(fā)生”饑餓”。

線程的同步用于共享數(shù)據(jù),轉(zhuǎn)換和控制線程執(zhí)行,保證程序安全。Solaris支持4種線程的同步原語(yǔ),分別是互斥鎖,信號(hào)量,多讀進(jìn)程單寫(xiě)進(jìn)程鎖,條件變量。

內(nèi)核級(jí)線程和用戶(hù)級(jí)線程都具有這些原語(yǔ)操作。一條原語(yǔ)執(zhí)行時(shí)創(chuàng)建一個(gè)包含線程信息的數(shù)據(jù)結(jié)構(gòu),對(duì)每個(gè)同步對(duì)象只能執(zhí)行加鎖和解鎖兩項(xiàng)操作,但內(nèi)核和線程庫(kù)沒(méi)有提供防死鎖機(jī)制。

總結(jié):

Solaris作為多線程,多進(jìn)程型的操作系統(tǒng),其關(guān)于線程實(shí)現(xiàn)機(jī)制方面一直是業(yè)界領(lǐng)先的,了解solaris的多線程實(shí)現(xiàn)機(jī)制不但能夠幫助我們充分理解操作系統(tǒng)對(duì)多線程的控制原理,而且對(duì)多線程程序的編寫(xiě)技巧的提高也有很大啟發(fā)。

相關(guān)文章:
主站蜘蛛池模板: 久久久精品久久久久三级 | 国产一区亚洲二区三区 | 国产高清一区二区 | 欧美一级毛片黄 | 中文字幕中文字幕在线 | 美女视频黄的免费看网站 | 免费高清毛片在线播放视频 | 欧美一级手机免费观看片 | 久久久久久久久网站 | 成人午夜久久精品 | 国产成人艳妇在线观看 | 一级a毛片免费观看久久精品 | 国产女女视屏免费 | 成人交性视频免费看 | 国产成人精品在线观看 | 手机在线播放视频 | 色黄网站aaaaaa级毛片 | 久久精品亚洲精品一区 | 国产精品线在线精品国语 | 黄色网网址| 在线看欧美日韩中文字幕 | 扒开双腿猛进入喷水免费视频 | 亚洲高清成人欧美动作片 | 亚洲一区二区在线成人 | 欧美一区二 | 久久zyz| 在线观看国产一区 | 亚洲精品在线免费 | 91资源在线 | 精品国产美女福到在线不卡f | 免费特黄级夫费生活片 | 中文久久 | 亚洲综色 | 中文字幕亚洲区 | 97国产成人精品免费视频 | 国产自产v一区二区三区c | 香港激情三级做爰小说 | 国产成人精品高清免费 | 久草在线观看福利 | 一级美国片免费看 | 美女黄视频网站 |