欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談linux線程切換問(wèn)題

 更新時(shí)間:2017年01月05日 08:35:15   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇淺談linux線程切換問(wèn)題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

處理器總處于以下狀態(tài)中的一種:

1、內(nèi)核態(tài),運(yùn)行于進(jìn)程上下文,內(nèi)核代表進(jìn)程運(yùn)行于內(nèi)核空間;

2、內(nèi)核態(tài),運(yùn)行于中斷上下文,內(nèi)核代表硬件運(yùn)行于內(nèi)核空間;

3、用戶態(tài),運(yùn)行于用戶空間;

一個(gè)進(jìn)程的上下文可以分為三個(gè)部分:用戶級(jí)上下文、寄存器上下文以及系統(tǒng)級(jí)上下文。

用戶級(jí)上下文:  正文、數(shù)據(jù)、用戶堆棧以及共享存儲(chǔ)區(qū);

寄存器上下文:  通用寄存器、程序寄存器(IP)、處理器狀態(tài)寄存器(EFLAGS)、棧指針(ESP);

系統(tǒng)級(jí)上下文:  進(jìn)程控制塊task_struct、內(nèi)存管理信息(mm_struct、vm_area_struct、pgd、pte)、內(nèi)核棧。

當(dāng)發(fā)生進(jìn)程調(diào)度時(shí),進(jìn)行進(jìn)程切換就是上下文切換(context switch).操作系統(tǒng)必須對(duì)上面提到的全部信息進(jìn)行切換,新調(diào)度的進(jìn)程才能運(yùn)行。而系統(tǒng)調(diào)用進(jìn)行的模式切換(mode switch)。模式切換與進(jìn)程切換比較起來(lái),容易很多,而且節(jié)省時(shí)間,因?yàn)槟J角袚Q最主要的任務(wù)只是切換進(jìn)程寄存器上下文的切換。系統(tǒng)中的每一個(gè)進(jìn)程都有自己的上下文。一個(gè)正在使用處理器運(yùn)行的進(jìn)程稱為當(dāng)前進(jìn)程(current)。當(dāng)前進(jìn)程因時(shí)間片用完或者因等待某個(gè)事件而阻塞時(shí),進(jìn)程調(diào)度需要把處理器的使用權(quán)從當(dāng)前進(jìn)程交給另一個(gè)進(jìn)程,這個(gè)過(guò)程叫做進(jìn)程切換。此時(shí),被調(diào)用進(jìn)程成為當(dāng)前進(jìn)程。在進(jìn)程切換時(shí)系統(tǒng)要把當(dāng)前進(jìn)程的上下文保存在指定的內(nèi)存區(qū)域(該進(jìn)程的任務(wù)狀態(tài)段TSS中),然后把下一個(gè)使用處理器運(yùn)行的進(jìn)程的上下文設(shè)置成當(dāng)前進(jìn)程的上下文。當(dāng)一個(gè)進(jìn)程經(jīng)過(guò)調(diào)度再次使用CPU運(yùn)行時(shí),系統(tǒng)要恢復(fù)該進(jìn)程保存的上下文。所以,進(jìn)程的切換也就是上下文切換。在系統(tǒng)內(nèi)核為用戶進(jìn)程服務(wù)時(shí),通常是進(jìn)程通過(guò)系統(tǒng)調(diào)用執(zhí)行內(nèi)核代碼,這時(shí)進(jìn)程的執(zhí)行狀態(tài)由用戶態(tài)轉(zhuǎn)換為內(nèi)核態(tài)。但是,此時(shí)內(nèi)核的運(yùn)行是為用戶進(jìn)程服務(wù),也可以說(shuō)內(nèi)核在代替當(dāng)前進(jìn)程執(zhí)行某種服務(wù)功能。在這種情況下,內(nèi)核的運(yùn)行仍是進(jìn)程運(yùn)行的一部分,所以說(shuō)這時(shí)內(nèi)核是運(yùn)行在進(jìn)程上下文中。內(nèi)核運(yùn)行在進(jìn)程上下文中時(shí)可以訪問(wèn)和修改進(jìn)程的系統(tǒng)數(shù)據(jù)。此外,若內(nèi)核運(yùn)行在進(jìn)程上下文中需要等待資源和設(shè)備時(shí),系統(tǒng)可以阻塞當(dāng)前進(jìn)程。

Linux下的線程實(shí)質(zhì)上是輕量級(jí)進(jìn)程(light weighted process),線程生成時(shí)會(huì)生成對(duì)應(yīng)的進(jìn)程控制結(jié)構(gòu),只是該結(jié)構(gòu)與父線程的進(jìn)程控制結(jié)構(gòu)共享了同一個(gè)進(jìn)程內(nèi)存空間。 同時(shí)新線程的進(jìn)程控制結(jié)構(gòu)將從父線程(進(jìn)程)處復(fù)制得到同樣的進(jìn)程信息,如打開文件列表和信號(hào)阻塞掩碼等。創(chuàng)建線程比創(chuàng)建新進(jìn)程成本低,因?yàn)樾聞?chuàng)建的線程使用的是當(dāng)前進(jìn)程的地址空間。相對(duì)于在進(jìn)程之間切換,在線程之間進(jìn)行切換所需的時(shí)間更少,因?yàn)楹笳卟话ǖ刂房臻g之間的切換。

線程切換上下文切換的原理與此類似,只是線程在同一地址空間中,不需要MMU等切換,只需要切換必要的CPU寄存器,因此,線程切換比進(jìn)程切換快的多。

以上就是小編為大家?guī)?lái)的淺談linux線程切換問(wèn)題全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • Django上線部署之Apache的方法

    Django上線部署之Apache的方法

    這篇文章主要介紹了Django上線部署之Apache的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • CentOS8 配置本地yum源的詳細(xì)教程

    CentOS8 配置本地yum源的詳細(xì)教程

    centos8發(fā)行版通過(guò) BaseOS 和應(yīng)用流 (AppStream) 倉(cāng)庫(kù)發(fā)布,這篇文章主要介紹了CentOS8 配置本地yum源的詳細(xì)教程,需要的朋友可以參考下
    2019-12-12
  • 淺談linux中的whoami與 who指令

    淺談linux中的whoami與 who指令

    下面小編就為大家?guī)?lái)一篇淺談linux中的whoami與 who指令。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • linux memcache安裝配置方法

    linux memcache安裝配置方法

    這篇文章主要介紹了linux memcache安裝配置方法,需要的朋友可以參考下
    2014-07-07
  • linux所有命令都失效顯示bash: xxxxx: command not found的解決

    linux所有命令都失效顯示bash: xxxxx: command not f

    這篇文章主要介紹了linux所有命令都失效顯示bash: xxxxx: command not found的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • CentOS6.8中/英文環(huán)境切換教程圖解

    CentOS6.8中/英文環(huán)境切換教程圖解

    這篇文章主要介紹了CentOS6.8中/英文環(huán)境切換教程,本文只以中文切換為英文為例給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Centos7添加靜態(tài)路由的方法

    Centos7添加靜態(tài)路由的方法

    本篇文章主要介紹了Centos7添加靜態(tài)路由的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Linux實(shí)現(xiàn)數(shù)據(jù)庫(kù)定時(shí)備份方式

    Linux實(shí)現(xiàn)數(shù)據(jù)庫(kù)定時(shí)備份方式

    這篇文章主要介紹了Linux實(shí)現(xiàn)數(shù)據(jù)庫(kù)定時(shí)備份方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Linux中拷貝 cp命令中拷貝所有的寫法詳解

    Linux中拷貝 cp命令中拷貝所有的寫法詳解

    本篇文章主要介紹了Linux中拷貝 cp命令中拷貝所有的寫法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • Ubuntu 20.04 開啟隱藏錄音降噪功能(推薦)

    Ubuntu 20.04 開啟隱藏錄音降噪功能(推薦)

    這篇文章主要介紹了Ubuntu 20.04 開啟隱藏錄音降噪功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論