操作系統(tǒng)--線程

多線程的由來(lái)

多進(jìn)程存在進(jìn)程之間通訊與共享數(shù)據(jù)的問(wèn)題,與進(jìn)程設(shè)計(jì)相悖
多進(jìn)程系統(tǒng)開(kāi)銷大,包含創(chuàng)建進(jìn)程,進(jìn)程結(jié)束和進(jìn)程之間的切換
需要在進(jìn)程內(nèi)部增加一類實(shí)體滿足實(shí)體之間可以并發(fā)執(zhí)行實(shí)體之間可以共享相同的地址空間

線程的概念

線程是進(jìn)程的一部分,描述指令流執(zhí)行狀態(tài).它是進(jìn)程中指令流的最小單元,是CPU調(diào)度的基本單位。

優(yōu)點(diǎn):

一個(gè)進(jìn)程中可以同時(shí)存在多個(gè)線程
各個(gè)線程之間可以并發(fā)執(zhí)行
各個(gè)線程之間可以共享地址空間和文件資源

缺點(diǎn):

一個(gè)線程崩潰,會(huì)導(dǎo)致所屬進(jìn)程全線崩潰

線程的實(shí)現(xiàn)

用戶線程

有一組用戶級(jí)的線程庫(kù)函數(shù)來(lái)完成線程的管理,包括線程的創(chuàng)建 終止 同步和調(diào)度

特征

不依賴與操作系統(tǒng)的內(nèi)核 內(nèi)核不了解用戶線程的存在
可用于不支持線程的多進(jìn)程操作系統(tǒng)
每個(gè)進(jìn)程有私有的線程控制塊(TCB)列表
TCB由線程庫(kù)函數(shù)維護(hù)
同一進(jìn)程內(nèi)用戶線程切換速度快 無(wú)需用戶態(tài)與內(nèi)核態(tài)切換
允許每個(gè)進(jìn)程擁有自己的線程調(diào)度算法

缺點(diǎn)

線程發(fā)起系統(tǒng)調(diào)用而阻塞時(shí),則整個(gè)進(jìn)程進(jìn)入等待
不支持基于線程的處理機(jī)搶占 除非當(dāng)前運(yùn)行的線程主動(dòng)放棄,它所在的進(jìn)程的其他線程無(wú)法搶占CPU
只能按進(jìn)程分配CPU時(shí)間 多個(gè)線程進(jìn)程中,每個(gè)線程分配的時(shí)間片比較少

內(nèi)核線程

由內(nèi)核通過(guò)系統(tǒng)調(diào)用實(shí)現(xiàn)的線程機(jī)制,由內(nèi)核完成線程的創(chuàng)建 終止和管理

特征

由內(nèi)核維護(hù)PCB和TCB
線程執(zhí)行系統(tǒng)調(diào)用而被阻塞不影響其他線程
以線程為單位進(jìn)行CPU時(shí)間分配 多線程的進(jìn)程可獲得更多CPU時(shí)間片

缺點(diǎn)

線程的創(chuàng)建 終止 切換通過(guò)系統(tǒng)調(diào)用在內(nèi)核種實(shí)現(xiàn)所以開(kāi)銷較大

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 線程的實(shí)現(xiàn)方式 線程已在許多系統(tǒng)中實(shí)現(xiàn),但各系統(tǒng)的實(shí)現(xiàn)方式并不完全相同,有的系統(tǒng),特別是一些數(shù)據(jù)庫(kù)管理系統(tǒng),如in...
    我永遠(yuǎn)愛(ài)02閱讀 2,023評(píng)論 0 1
  • 傳統(tǒng)進(jìn)程的缺點(diǎn) fork一個(gè)子進(jìn)程的消耗是很大的,fork是一個(gè)昂貴的系統(tǒng)調(diào)用,即使使用現(xiàn)代的寫(xiě)時(shí)復(fù)制(copy-...
    tracy_668閱讀 8,035評(píng)論 1 13
  • 1 硬件 三個(gè)部件最為關(guān)鍵:CPU、內(nèi)存、I/O控制芯片北橋芯片:協(xié)調(diào)CPU、內(nèi)存和高速的圖形設(shè)備(高速交換數(shù)據(jù))...
    王偵閱讀 1,078評(píng)論 0 1
  • 前言 什么是線程 引入線程的原因 線程的概念 線程和進(jìn)程的關(guān)系 線程結(jié)構(gòu) 線程有點(diǎn) 多線程模型 用戶線程和內(nèi)核線程...
    ZhengYaWei閱讀 1,253評(píng)論 1 2
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,427評(píng)論 2 7

友情鏈接更多精彩內(nèi)容