CPU中關于GPU靖苇,進程鼓寺,線程的概念闡釋


目錄

  • CPU
  • 核心
  • 超線程技術
  • 進程
  • 線程
  • 并行與并行
  • 進程與線程的區(qū)別
  • 操作系統(tǒng)如何切換進程
  • 多線程中的概念
  • 守護進程概念

CPU

一個馮·諾伊曼結構的計算機主要硬件有主板,CPU法梯,內存苔货,外存,顯卡立哑,網卡夜惭,聲卡,電源铛绰,鍵盤诈茧,鼠標,顯示器等

image

CPU是一塊超大規(guī)模的集成電路捂掰,h是計算機的運算核心和控制核心敢会。
由三大部分組成運算器,寄存器这嚣,寄存器鸥昏。
CPU的個數很容易得到,多CPU通過主板上的總線進行連接疤苹。

核心

核心又稱內核(后文在習慣上講核心稱為內核)互广,是CPU的組成部分,用來完成所有的計算,儲存等任務惫皱,由單晶硅制成

超線程技術

這里需要知道的是在一個CPU中可能存在多個核心像樊,這些核心是相對獨立的CPU核心單元組

超線程技術則是利用代碼手段在一個物理核上模擬兩個邏輯核,兩個邏輯核會有各自獨立的寄存器和APIC旅敷,但是共享物理核的執(zhí)行資源

i7-9750H

可以看到這一個CPU是只有六個物理內核生棍,但是由于超線程技術OS認為它有12個內核

進程

進程是OS進行資源(CPU,內存媳谁,磁盤涂滴,IO,帶寬等)分配的最小單位

  • 進程的特征:
    • 動態(tài)性:進程是程序的一次執(zhí)行過程晴音,是臨時的柔纵,有生命期的,是動態(tài)產生锤躁,動態(tài)消亡的搁料;
    • 并發(fā)性:任何進程都可以同其他進程一起并發(fā)執(zhí)行;
    • 獨立性:進程是系統(tǒng)進行資源分配和調度的一個獨立單位
    • 結構性:進程由程序系羞、數據和進程控制塊三部分組成郭计。

線程

值得一提的是,在早期的操作系統(tǒng)中并沒有線程的概念 椒振,進程是能擁有資源和獨立運行的最小單位昭伸,也是程序執(zhí)行的最小方式。任務調度采用的是時間片輪轉的搶占式調度方式澎迎,而進程是任務調度的最小單位,每個進程都有各自獨立的一塊內存,使得各個進程之間內存地址相互隔離庐杨。

隨著時代改變,由于進程與進程之間消耗過大嗡善,不在能滿足人們的需要辑莫,線程的概念就由此誕生:
線程是程序執(zhí)行中一個單一的順序控制流程,是程序執(zhí)行流的最小單元罩引,是處理器調度和分派的最小單位。

并發(fā)與并行

  • 并發(fā):當有多個線程在操作時枝笨,且只有一個CPU時(由于只有一個CPU所有它不能同時運行一個以上的線程)袁铐,所以人們采取的方法是把CPU運行時間分為若干個時間段,將時間段分配給各個線程執(zhí)行横浑,在一個時間段的線程代碼運行時剔桨,其他線程處于掛起狀,這種方式稱為并發(fā)徙融。
  • 并行當一個系統(tǒng)有一個以上CPU時洒缀,則線程的操作有可能并發(fā)。當一個CPU執(zhí)行一個線程時,另一個CPU可以執(zhí)行另一個線程树绩,兩個線程不搶占CPU資源同時進行萨脑,這種方式稱為并行。

由于CPU上的線程切換很快饺饭,所以并發(fā)看起來像是時運行

進程與線程的區(qū)別

  • 線程是程序執(zhí)行的最小單位渤早,而進程是操作系統(tǒng)分配資源的最小單位;
  • 一個進程可以由一個或多個多個線程組成瘫俊;
  • 進程之間是相互獨立的鹊杖,而同一進程下的各個線程之間共享程序的內存空間(包括代碼段、數據集扛芽、堆等)及一些進程級的資源(如打開文件和信號)骂蓖;
  • 線程上下文切換要比進程快得多

操作系統(tǒng)如何切換進程

調度選擇下一個進程,得到下一個進程的PCB(Process Control Block)川尖,把上一個進程的執(zhí)行現場保存起來涯竟,把下一個進程的現場覆蓋到CPU對應的寄存器中去。多進程如何交替空厌?如何切換庐船?把上一個進程的執(zhí)行現場保存起來,把當前CPU中的寄存器信息等保存到上一個進程的PCB中嘲更,把選好的要執(zhí)行的進程(由進程調度確定)的PCB中的各寄存器信息恢復到當前CPU的寄存器中筐钟。

多進程中的概念

由于在同一時間只能運行一個線程,在多線程環(huán)境下線程的搶占式運行容易出現線程安全問題
人們因此想出了互斥機制來解決線程不安全的問題

而互斥機制的實現是通過互斥鎖實現的赋朦,基本步驟為:

  1. 加鎖
  2. 執(zhí)行臨界區(qū)代碼
  3. 釋放鎖

互斥鎖又叫掛起等待鎖篓冲,當線程取鎖失敗就會使其進入系統(tǒng)的等待隊列中

死鎖在多道程序環(huán)境中,多個進程可以競爭有限數量的資源宠哄。當一個進程申請資源時壹将,如果這時沒有可用資源,那么這個進程進入等待狀態(tài)毛嫉。有時诽俯,如果所申請的資源被其他等待進程占有,那么該等待進程有可能再也無法改變狀態(tài)承粤。在代碼中的體現為一個進程重復加鎖暴区。

守護進程概念

守護進程(Deamon)是運行在后臺的一種特殊進程,是進程的一種。它在后臺運行并且不受任何終端控制,獨立于控制終端并且周期性地執(zhí)行某種任務或等待處理某些發(fā)生的事件辛臊,常常在系統(tǒng)引導裝入時啟動仙粱,在系統(tǒng)關閉時停止。

代碼

#include<stdio.h>
#include<pthread.h>

#define THRAD_NUM 2

pthread_mutex_t mutex;

int g_count = 0;

void* ThreadEntry(void* arg){
    (void)arg;
    int i;
    for(i=0;i<10;i++){
        //如果鎖已經被其他線程獲取到了彻舰,當線程在想獲取伐割,就會在lock 函數阻塞
        
        pthread_mutex_lock(&mutex);//上鎖
        printf("            %d這是新線程輸出\n",g_count);
        g_count++;
        pthread_mutex_unlock(&mutex); //開鎖      
    }
    
    return NULL; 
}

int main(){
    pthread_t tid[THRAD_NUM];//線程ID
    
    pthread_mutex_init(&mutex,NULL);//互斥鎖初始化
    
    int i;
    for(i=0;i<THRAD_NUM;i++) {
        pthread_create(&tid[i], NULL, ThreadEntry, NULL);
    }
    
    for(i=0;i<10;i++){
        printf("%d這是主線程輸出\n",g_count);
        g_count++;
    } 
    
    for (i = 0; i < THRAD_NUM; ++i) {  //釋放新線程
        pthread_join(tid[i], NULL);
    }
    
    printf("%d", g_count);
 
//  pthread_mutex_destory(&mutex);//互斥鎖釋放函數   ????這個函數用不了我也不知道什么情況 
 
    return 0;   
} 

程序截圖


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末候味,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子隔心,更是在濱河造成了極大的恐慌白群,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件济炎,死亡現場離奇詭異川抡,居然都是意外死亡,警方通過查閱死者的電腦和手機须尚,發(fā)現死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門崖堤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人耐床,你說我怎么就攤上這事密幔。” “怎么了撩轰?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵胯甩,是天一觀的道長。 經常有香客問我堪嫂,道長偎箫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任皆串,我火速辦了婚禮淹办,結果婚禮上,老公的妹妹穿的比我還像新娘恶复。我一直安慰自己怜森,他們只是感情好,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布谤牡。 她就那樣靜靜地躺著副硅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翅萤。 梳的紋絲不亂的頭發(fā)上恐疲,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天,我揣著相機與錄音断序,去河邊找鬼流纹。 笑死,一個胖子當著我的面吹牛违诗,可吹牛的內容都是我干的。 我是一名探鬼主播疮蹦,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼诸迟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起阵苇,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤壁公,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后绅项,有當地人在樹林里發(fā)現了一具尸體紊册,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年快耿,在試婚紗的時候發(fā)現自己被綠了囊陡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡掀亥,死狀恐怖撞反,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情搪花,我是刑警寧澤遏片,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站撮竿,受9級特大地震影響吮便,放射性物質發(fā)生泄漏。R本人自食惡果不足惜幢踏,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一髓需、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧惑折,春花似錦授账、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粗卜,卻和暖如春屋确,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背续扔。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工攻臀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纱昧。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓刨啸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親识脆。 傳聞我的和親對象是個殘疾皇子设联,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容