中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      Solaris線程模型詳解

      時間:2024-10-03 00:47:48 計算機應用 我要投稿
      • 相關(guān)推薦

      Solaris線程模型詳解

        Solaris是Sun公司開發(fā)和發(fā)布的一種現(xiàn)代操作系統(tǒng),是UNIX系統(tǒng)的一個重要分支,今天小編為大家?guī)淼氖荢olaris線程模型詳解,希望對大家會有幫助,有需要的朋友一起去看看

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

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

        Solaris線程模型的設(shè)計目標:

        主要有四個方面:

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

        ②.支持代價盡可能小的線程

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

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

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

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

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

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

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

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

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

        Solaris對線程的控制與同步:

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

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

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

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

        總結(jié):

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

      [Solaris線程模型詳解]相關(guān)文章:

      1.Linux文件查找命令find和xargs詳解

      2.2017計算機應用基礎(chǔ)試題詳解

      【Solaris線程模型詳解】相關(guān)文章:

      Solaris iostat命令詳解10-17

      PHP Curl多線程原理詳解09-11

      sun認證考試經(jīng)驗:多線程的幾種實現(xiàn)方法詳解07-24

      詳解CSS3盒模型display:box08-04

      Solaris網(wǎng)絡管理認證考試須知09-26

      如何查看solaris系統(tǒng)的版本和位數(shù)09-23

      Solaris系統(tǒng)管理認證考試10-03

      Java線程同步的方法10-25

      Sun Solaris 國際認證考試流程表10-04

      Java多線程的實現(xiàn)方式07-08

      主站蜘蛛池模板: 2021亚洲色中文字幕| 美腿丝袜av在线播放| 国产精品美女黑丝流水| 镇安县| 日本专区一区二区三区在线 | 国产精品18久久久久久首页| 南通市| 丽江市| 亚洲av黄片一区二区| 久久HEZYO色综合| 亚洲区精选网址| 亚洲无码激情视频在线观看| a午夜国产一级黄片| 龙南县| 宣恩县| 新和县| 札达县| 吉木萨尔县| 日韩在线视频不卡一区二区三区| 人妻中出精品久久久一区二| 蜜桃av区一区二区三| 内射毛片内射国产夫妻| 亚洲国产成人aⅴ毛片大全| 国产视频在线一区二区三区四区 | 中文字幕人妻丝袜成熟乱| 精品一区二区三区中文字幕在线| 日本伦理一区二区三区| 蜜桃视频色版在线观看| 老肥熟女老女人野外免费区| 人妻少妇久久精品一区二区 | 国产在线视频h| 香港三级欧美国产精品| 亚洲日本精品一区久久精品| 谁有在线观看av中文| 人妻少妇av中文字幕乱码免费| 久久亚洲国产精品123区| 偷拍精品一区二区三区| 日韩熟女一区二区三区| 精品国产亚洲av麻豆尤物| 亚洲欧美日韩中文综合在线不卡 | 科技|