国产精品2022不卡在线观看|青草国产福利视频免费观看|亚洲天堂日韩在线|日日摸夜夜添夜夜添97|亚洲伊人久久大香线蕉av|午夜性爽快免费视频播放

聯(lián)系我們

銷(xiāo)售直撥
     025-85550202;
     025-85550520;


master@csch.com.cn

技術(shù)咨詢(xún):
     025-85550520

duan@csch.com.cn

售后服務(wù)專(zhuān)線(xiàn):

     15251851604    

wu_yuyang@csch.com.cn

傳 真:025-85550303


深圳市中霍電子技術(shù)有限公司
地址:深圳市龍華新區龍華街道牛地埔村美滿(mǎn)圓小區
聯(lián)系人:顏安軍/副總
Mobile:18038070895
E-mail: szyanaj@csch.com.cn  
 

進(jìn)程與線(xiàn)程的區別

線(xiàn)程輕量級進(jìn)程,那么線(xiàn)程到底是什么呢?
還記得我們前面在說(shuō)進(jìn)程時(shí)提到過(guò)PCB嗎?其實(shí)在linux下PCB是對線(xiàn)程的描述。線(xiàn)程是輕量級進(jìn)程,是一個(gè)進(jìn)程內部的一條執行流。確切的說(shuō),linux下線(xiàn)程是以進(jìn)程PCB來(lái)模擬的,所以前面說(shuō)linux PCB其實(shí)是對線(xiàn)程的描述,那么Linux下的進(jìn)程又是什么呢?linux下的進(jìn)程在此時(shí)就是一個(gè)線(xiàn)程組,因此線(xiàn)程是一個(gè)輕量級進(jìn)程。
一個(gè)進(jìn)程內可能有多個(gè)線(xiàn)程,這些線(xiàn)程多使用相同的虛擬地址空間,因此線(xiàn)程的調度切換是在進(jìn)程的地址空間里切換的,因此相較于進(jìn)程切換的成本低一點(diǎn)。
一個(gè)進(jìn)程中的多個(gè)線(xiàn)程共享相同的虛擬地址空間,那么相較于進(jìn)程的創(chuàng )建與銷(xiāo)毀,線(xiàn)程的成本要低一點(diǎn)
線(xiàn)程之間共享虛擬地址空間也使得線(xiàn)程間的通信變得方便。

  • 畫(huà)一幅圖理解線(xiàn)程與進(jìn)程間的關(guān)系,同時(shí)也能加深的線(xiàn)程理解:

    • 進(jìn)程與線(xiàn)程:
      進(jìn)程是操作系統資源分配的zui小單位,線(xiàn)程是進(jìn)程內部的一條執行流也是因為這個(gè)原由,這同時(shí)也是多個(gè)線(xiàn)程之間共享相同虛擬內存空間的原因。線(xiàn)程是CPU調度和分配的基本單位,它是比進(jìn)程更小的可以多帶帶運行的基本單位。
      進(jìn)程間通信我們有前面提到過(guò)的幾種方式,但我們可以想到多個(gè)線(xiàn)程之間共享虛擬內存空間,那么他們之間的通信是不是會(huì )變得方便呢?答案是:是的。
      上面這幅圖可以看出多個(gè)線(xiàn)程之間共享虛擬內存空間,進(jìn)程數據段的數據在線(xiàn)程之間也是共享的,存儲在代碼段的內容是共享的,全局變量也是共享的;那么除此之外線(xiàn)程之間到底還共享了那些內容呢?
      • 文件表述符
      • 每種信號的處理方式
      • 當前用戶(hù)工作目錄
      • 用戶(hù)ID和組ID
      除了線(xiàn)程之間共享的數據,它們也是具有一定的“個(gè)性”的,也就是擁有它們自己的一部分:
      • 線(xiàn)程ID
      • 上下文信息,各種寄存器的值,程序計數器和棧指針。(由于線(xiàn)程間是并發(fā)運行的,每個(gè)線(xiàn)程有自己不同的運行線(xiàn)索,當從一個(gè)線(xiàn)程切換到另一個(gè)線(xiàn)程上時(shí),必須將原有的線(xiàn)程的寄存器集合的狀態(tài)保存,以便將來(lái)該線(xiàn)程再被切換到時(shí)能夠恢復之前運行的現場(chǎng))。
      • 信號屏蔽字
      • errno值
    • 總結:
      進(jìn)程與線(xiàn)程的區別
      • 進(jìn)程是系統分配資源的zui小單位;線(xiàn)程是CPU調度的基本單位。
      • 進(jìn)程擁有自己獨立進(jìn)程地址空間,而線(xiàn)程是在進(jìn)程地址空間之上存在,故同一進(jìn)程中多個(gè)線(xiàn)程共享資源。
      • 創(chuàng )建進(jìn)程的開(kāi)銷(xiāo)是比較大的,需要為進(jìn)程創(chuàng )建PCB,為進(jìn)程分配資源,而線(xiàn)程的創(chuàng )建只需要在進(jìn)程內部將一部分線(xiàn)程獨享的資源分配給線(xiàn)程。
      • 進(jìn)程具有獨立的進(jìn)程虛擬空間使得多進(jìn)程程序的健壯性更好;由于多線(xiàn)程之間共享資源,導致一個(gè)線(xiàn)程出錯會(huì )是整個(gè)程序(進(jìn)程)出錯。
      • 進(jìn)程間的切換比線(xiàn)程間的切換代價(jià)大,進(jìn)程間切換需要切換頁(yè)表和進(jìn)程的上下問(wèn)切換,而線(xiàn)程間的切換實(shí)質(zhì)上實(shí)在同一份頁(yè)表上進(jìn)行的,只需要在進(jìn)程內部進(jìn)行線(xiàn)程的上下文切換。
      • 因為線(xiàn)程之間共享資源(進(jìn)程間地址空間)也導致了線(xiàn)程**變的尤為重要;同時(shí)也使得線(xiàn)程間通信變的簡(jiǎn)單,但也帶來(lái)了多線(xiàn)程編碼難度增大問(wèn)題。
      多線(xiàn)程與多進(jìn)程的應用場(chǎng)景:
      • 多線(xiàn)程:高響應(即像服務(wù)器這樣的程序,需要快速為客戶(hù)提供服務(wù)時(shí)選擇多線(xiàn)程,因為線(xiàn)程的創(chuàng )建與銷(xiāo)毀成本低)、用戶(hù)訪(fǎng)問(wèn)量多、對程序的健壯性要求并不是很高的程序。
      • 多進(jìn)程:對程序的健壯性要求高(一個(gè)服務(wù)的進(jìn)程掛掉,其它今后進(jìn)程仍然可以正常工作),創(chuàng )建與銷(xiāo)毀并不是很頻繁的程序。
    用戶(hù)線(xiàn)程和內核線(xiàn)程的理解:
    線(xiàn)程可分為兩種:用戶(hù)態(tài)線(xiàn)程和內核態(tài)線(xiàn)程。內核態(tài)線(xiàn)程,在有的系統上也稱(chēng)為L(cháng)WP(light weight process 輕量級進(jìn)程),運行在內核空間,有內核cpu調度。當進(jìn)程的一個(gè)內核線(xiàn)程獲取cpu的使用權時(shí),它就加載并運行用戶(hù)態(tài)線(xiàn)程??梢钥醋鳎河脩?hù)態(tài)線(xiàn)程是在內核態(tài)這個(gè)“容器”上運行的,即用戶(hù)態(tài)線(xiàn)程依托于內核態(tài)線(xiàn)程(這個(gè)內核態(tài)線(xiàn)程即就是進(jìn)程本身),一個(gè)進(jìn)程可以擁有M個(gè)內核線(xiàn)程和N個(gè)用戶(hù)態(tài)線(xiàn)程,其中M 線(xiàn)程模型的實(shí)現可分為三種,分別為:1.完全用空間線(xiàn)程 2.完全內核調度線(xiàn)程 3.雙層調度
    完全在用戶(hù)空間:
    1.無(wú)需內核支持,內核根本不知道這些線(xiàn)程的存在,由線(xiàn)程庫管理所有線(xiàn)程的(創(chuàng )建,調度,銷(xiāo)毀),如:時(shí)間片、優(yōu)先級。
    2.線(xiàn)程庫切換線(xiàn)程,使他們看起來(lái)像“并發(fā)”執行的,但實(shí)際上內核仍然是把整個(gè)進(jìn)程作為zui小單位來(lái)調度的,所有線(xiàn)程共享該進(jìn)程的時(shí)間片(此時(shí)線(xiàn)程調度有進(jìn)程自定義),它們對外表現相同的優(yōu)先級,即M個(gè)用戶(hù)態(tài)線(xiàn)程對應1個(gè)內核線(xiàn)程,而這個(gè)內核線(xiàn)程實(shí)際上是進(jìn)程本身。
    優(yōu)點(diǎn):
    1.用戶(hù)線(xiàn)程可以在不支持線(xiàn)程的操作系統上實(shí)現。
    2.線(xiàn)程切換比內核切換要快。
    3.允許每個(gè)進(jìn)程有自己定制的調度算法
    缺點(diǎn):
    1.用戶(hù)線(xiàn)程發(fā)生I/O或頁(yè)面故障引起的阻塞時(shí),如果調用阻塞系統調用,則整個(gè)進(jìn)程都會(huì )陷入阻塞狀態(tài)。
    2.對于多處理器系統,一個(gè)進(jìn)程的多個(gè)用戶(hù)線(xiàn)程無(wú)法運形在不同的cpu上,因為內核是按照起zui小調度單位來(lái)分配cpu的。(無(wú)法充分利用多處理器資源)。
    內核態(tài)線(xiàn)程:
    1.完全有內核調度的模式創(chuàng )建、調度線(xiàn)程的任務(wù)交給內核,運行在用戶(hù)空間的線(xiàn)程無(wú)需執行管理任務(wù)。
    2.它們相較于用戶(hù)態(tài)線(xiàn)程開(kāi)銷(xiāo)較大。
    優(yōu)點(diǎn):
    1.當線(xiàn)程中的某個(gè)發(fā)生阻塞時(shí),其它線(xiàn)程仍然可以正常工作,不會(huì )影響正常整個(gè)進(jìn)程。
    2.多處理器系統中,能夠充分利用處理器資源。
    缺點(diǎn):
    線(xiàn)程的切換相較于用戶(hù)線(xiàn)程開(kāi)銷(xiāo)較大(原因:從內核態(tài)切換到用戶(hù)態(tài)需要耗費較多的時(shí)間)。
    雙層模型:
    結合用戶(hù)態(tài)線(xiàn)程和內核態(tài)線(xiàn)程的優(yōu)缺點(diǎn),采用內核態(tài)調度M個(gè)內核線(xiàn)程,線(xiàn)程庫調度N個(gè)用戶(hù)線(xiàn)程,這樣不但不會(huì )消耗過(guò)多的內核資源,而且線(xiàn)程切換速度也較快,同時(shí)能夠充分利用多處理器的優(yōu)勢。

Copyright@ 2003-2025  南京信瑞譜傳感技術(shù)有限公司版權所有     

熱門(mén)導航電壓傳感器  霍爾電流傳感器  互感器  高精度電流傳感器  直流漏電流傳感器  直流電流變送器  霍爾傳感器工作原理 傳感器資料下載

           

        在線(xiàn)購買(mǎi)-直達淘寶店

     具體購買(mǎi)產(chǎn)品請聯(lián)系淘寶客服

(淘寶店拍買(mǎi)請聯(lián)系淘寶在線(xiàn)服務(wù),告知型號或在線(xiàn)經(jīng)理的姓名即可)

国产精品2022不卡在线观看|青草国产福利视频免费观看|亚洲天堂日韩在线|日日摸夜夜添夜夜添97|亚洲伊人久久大香线蕉av|午夜性爽快免费视频播放