系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux系統(tǒng)進程管理

Linux系統(tǒng)進程管理介紹(3)

時間:2015-09-09 15:05:32 作者:zhijie 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150909/57286.html 手機查看 評論

  線程相關(guān)

  用戶線程&內(nèi)核線程

  線程從一開始誕生就有兩個分類:用戶級線程 和 內(nèi)核級線程。

  我們在Linux上常見的是內(nèi)核級線程, 即線程調(diào)度相關(guān)操作都在內(nèi)核里實現(xiàn), 不太常見的是用戶級線程。

  用戶級線程的優(yōu)勢是:

  1.線程切換成本低,不用內(nèi)核操作

  2.用戶可以自定義線程調(diào)度策略

  3.跟操作系統(tǒng)無關(guān),可以很快移植到另外一臺機器上

  但是用戶線程也有如下問題:

  1.一個線程的阻塞會影響其他線程,因為操作系統(tǒng)看不到別的線程

  2.不能很好的利用多核能力,因為操作系統(tǒng)會把一個內(nèi)核進程放到一個CPU上

  目前Linux上只使用內(nèi)核級線程, Solaris上面兩者都提供。

  線程切換

  一個進程的上下文主要有如下幾個部分的信息構(gòu)成:

  1.程序計數(shù)器

  2.寄存器信息

  3.棧信息

  一個進程切換的過程包含:

  1.保存當(dāng)前進程的上下文

  2.將當(dāng)前進程加入操作系統(tǒng)對應(yīng)隊列

  3.通過調(diào)度算法選擇另外一個進程

  4.調(diào)整虛存映射

  5.加載新進程的上下文

  但是線程切換就不一樣了,之需要切換PC寄存器指向的代碼地址就好,其他操作都不用做,所以線程切換的成本比進程切換低多了。

  互斥和同步

  簡介

  當(dāng)多個進程需要對同一個資源進行訪問的時候, 為了避免同時使用這個資源造成的混亂, 所以需要考慮進程間的互斥。

  典型的互斥實現(xiàn)方案如下:

  方案介紹

  中斷禁用

  殺敵一千, 自損八百。雖然能實現(xiàn)互斥, 但是大大降低了處理器的執(zhí)行效率。而且再多處理器體系結(jié)構(gòu)中, 他還不能達到互斥

  專用機器指令

  往往是通過一個不可中斷的指令, 用于原子修改內(nèi)存中的值, 常見的兩個指令是testset和exchange, 其對應(yīng)的demo代碼如下圖。該方案的好處是實現(xiàn)簡單, 壞處是使用了忙等待, 可能出現(xiàn)饑餓, 可能死鎖, 需要操作系統(tǒng)層進行管理和避免。

標(biāo)簽 進程管理

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄