<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          進(jìn)程和線(xiàn)程的深入理解

          共 1466字,需瀏覽 3分鐘

           ·

          2021-08-07 10:39


          下面是抽象類(lèi)比:


          1、單CPU:一臺(tái)單核處理器計(jì)算機(jī) = 一個(gè)車(chē)間;

          2、多CPU:一臺(tái)多核處理器計(jì)算機(jī) = 一座工廠(chǎng);


          1、進(jìn)程:一個(gè)車(chē)間 = 一個(gè)進(jìn)程;(即一個(gè)運(yùn)行的程序)

          2、多進(jìn)程:一座工廠(chǎng)可以同時(shí)運(yùn)行多個(gè)車(chē)間;


          CPU和進(jìn)程:?jiǎn)蜟PU只能同時(shí)運(yùn)行單個(gè)進(jìn)程,多CPU可以同時(shí)運(yùn)行多個(gè)進(jìn)程。


          1、線(xiàn)程:車(chē)間內(nèi)一個(gè)工人 = 一個(gè)線(xiàn)程;

          2、進(jìn)程與線(xiàn)程:一個(gè)進(jìn)程可以包括多個(gè)線(xiàn)程。


          線(xiàn)程間內(nèi)存共享:車(chē)間的空間是工人們共享的,比如許多房間是每個(gè)工人都可以進(jìn)出的。一個(gè)進(jìn)程的內(nèi)存空間是共享的,每個(gè)線(xiàn)程都可以使用這些共享內(nèi)存。


          內(nèi)存安全:可是,每個(gè)車(chē)間容納大小不同,有的最多只能容納一個(gè)人。車(chē)間人滿(mǎn)的時(shí)候,其他人就進(jìn)不去了。


          一個(gè)線(xiàn)程使用某些共享內(nèi)存時(shí),其他線(xiàn)程必須等它結(jié)束,才能使用這一塊內(nèi)存。


          互斥鎖:一個(gè)防止他人進(jìn)入的簡(jiǎn)單方法,就是門(mén)口加一把鎖。先到的人鎖上門(mén),后到的人看到上鎖,就在門(mén)口排隊(duì),等鎖打開(kāi)再進(jìn)去。


          這就叫"互斥鎖"–Mutex,防止兩個(gè)線(xiàn)程同時(shí)讀寫(xiě)某一塊內(nèi)存區(qū)域。


          信號(hào)量:這時(shí)的解決方法,就是在門(mén)口掛n把鑰匙。進(jìn)去的人就取一把鑰匙,出來(lái)時(shí)再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了,就知道必須在門(mén)口排隊(duì)等著了。


          這種做法叫做"信號(hào)量"(Semaphore),用來(lái)保證多個(gè)線(xiàn)程不會(huì)互相沖突。


          鎖和信號(hào)量:不難看出,互斥鎖是信號(hào)量的一種特殊情況(n=1時(shí))。也就是說(shuō),完全可以用后者替代前者。但是,因?yàn)閙utex較為簡(jiǎn)單,且效率高,所以在必須保證資源獨(dú)占的情況下,還是采用這種設(shè)計(jì)。


          操作系統(tǒng)的資源分配與調(diào)度邏輯

          1、以多進(jìn)程形式,允許多個(gè)任務(wù)同時(shí)運(yùn)行;

          2、以多線(xiàn)程形式,允許單個(gè)任務(wù)分成不同的部分運(yùn)行;

          3、提供協(xié)調(diào)機(jī)制,一方面防止進(jìn)程之間和線(xiàn)程之間產(chǎn)生沖突,另一方面允許進(jìn)程之間和線(xiàn)程之間共享資源。


          下面是嚴(yán)謹(jǐn)?shù)慕忉專(zhuān)?/p>


          進(jìn)程

          進(jìn)程是程序的一次執(zhí)行過(guò)程,是一個(gè)動(dòng)態(tài)概念,是程序在執(zhí)行過(guò)程中分配和管理資源的基本單位,每一個(gè)進(jìn)程都有一個(gè)自己的地址空間,至少有 5 種基本狀態(tài),它們是:初始態(tài),執(zhí)行態(tài),等待狀態(tài),就緒狀態(tài),終止?fàn)顟B(tài)。


          線(xiàn)程

          線(xiàn)程是CPU調(diào)度和分派的基本單位,它可與同屬一個(gè)進(jìn)程的其他的線(xiàn)程共享進(jìn)程所擁有的全部資源。


          進(jìn)程和線(xiàn)程的關(guān)系

          1、線(xiàn)程是進(jìn)程的一部分

          2、一個(gè)線(xiàn)程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線(xiàn)程,但至少有一個(gè)線(xiàn)程


          進(jìn)程和線(xiàn)程的區(qū)別

          理解它們的差別,我從資源使用的角度出發(fā)。(所謂的資源就是計(jì)算機(jī)里的中央處理器,內(nèi)存,文件,網(wǎng)絡(luò)等等)


          1、根本區(qū)別:進(jìn)程是操作系統(tǒng)資源分配的基本單位,而線(xiàn)程是任務(wù)調(diào)度和執(zhí)行的基本單位


          2、開(kāi)銷(xiāo)方面:每個(gè)進(jìn)程都有獨(dú)立的代碼和數(shù)據(jù)空間(程序上下文),進(jìn)程之間切換開(kāi)銷(xiāo)大;線(xiàn)程可以看做輕量級(jí)的進(jìn)程,同一類(lèi)線(xiàn)程共享代碼和數(shù)據(jù)空間,每個(gè)線(xiàn)程都有自己獨(dú)立的運(yùn)行棧和程序計(jì)數(shù)器(PC),線(xiàn)程之間切換的開(kāi)銷(xiāo)小


          3、所處環(huán)境:在操作系統(tǒng)中能同時(shí)運(yùn)行多個(gè)進(jìn)程(程序);而在同一個(gè)進(jìn)程(程序)中有多個(gè)線(xiàn)程同時(shí)執(zhí)行(通過(guò)CPU調(diào)度,在每個(gè)時(shí)間片中只有一個(gè)線(xiàn)程執(zhí)行)


          4、內(nèi)存分配:系統(tǒng)為每個(gè)進(jìn)程分配不同的內(nèi)存空間;而對(duì)線(xiàn)程而言,除了CPU外,系統(tǒng)不會(huì)為線(xiàn)程分配內(nèi)存(線(xiàn)程所使用的資源來(lái)自其所屬進(jìn)程的資源),線(xiàn)程組之間只能共享資源


          5、包含關(guān)系:線(xiàn)程是進(jìn)程的一部分,所以線(xiàn)程也被稱(chēng)為輕權(quán)進(jìn)程或者輕量級(jí)進(jìn)程


          瀏覽 31
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人欧美视频 | 视频久久久仓井空 | 爱福利一区二区三区 | 骚逼看片 | 亚洲视频高清无码 |