<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ī)操作系統(tǒng)“進(jìn)程”與“線程”的通俗解析

          共 1317字,需瀏覽 3分鐘

           ·

          2020-05-10 23:22

          97778805e9c582bf0e2ccb75b4e413a0.webpdda40b3e5e88fbffeaa2152c6646ab3b.webp


          點(diǎn)擊「閱讀原文」查看良許原創(chuàng)精品視頻。

          來自:網(wǎng)絡(luò)

          整理:strongerHuang

          進(jìn)程:進(jìn)程是系統(tǒng)進(jìn)行資源分配和調(diào)度的一個獨(dú)立單位。


          線程:線程是進(jìn)程的一個實體,是CPU調(diào)度和分派的基本單位,線程自己基本上不擁有系統(tǒng)資源,只擁有一點(diǎn)在系統(tǒng)運(yùn)行中必不可少的資源,但是它可與同屬一個進(jìn)程的其他線程共享進(jìn)程所擁有的全部資源。


          進(jìn)程(process)和線程(thread)是操作系統(tǒng)的基本概念,但是它們比較抽象,不容易掌握。


          今天看到一篇材料,發(fā)現(xiàn)有一個很好的類比,可以把它們解釋地清晰易懂。

          1、計算機(jī)的核心是CPU,它承擔(dān)了所有的計算任務(wù)。它就像一座工廠,時刻在運(yùn)行。

          1f8f50635f7edd0fdd826e40c610621e.webp


          2、假定工廠的電力有限,一次只能供給一個車間使用。也就是說,一個車間開工的時候,其他車間都必須停工。背后的含義就是,單個CPU一次只能運(yùn)行一個任務(wù)。

          11537d8091d23f2d5c6cc58f556414f7.webp


          3、進(jìn)程就好比工廠的車間,它代表CPU所能處理的單個任務(wù)。任一時刻,CPU總是運(yùn)行一個進(jìn)程,其他進(jìn)程處于非運(yùn)行狀態(tài)。

          ec1add037f3c09ee0d8131fad13aabed.webp


          4、一個車間里,可以有很多工人。他們協(xié)同完成一個任務(wù)。

          18b535a0fca3ffaf7e1d0de3fadf37cd.webp


          5、線程就好比車間里的工人。一個進(jìn)程可以包括多個線程。

          1929384c0f46d7425116ff5bb9312270.webp


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

          a744e3eba5b8cd731270240bd895efef.webp


          7、可是,每間房間的大小不同,有些房間最多只能容納一個人,比如廁所。里面有人的時候,其他人就不能進(jìn)去了。這代表一個線程使用某些共享內(nèi)存時,其他線程必須等它結(jié)束,才能使用這一塊內(nèi)存。

          e8cf4cd1d1b6326e6b7380252d3d5758.webp


          8、一個防止他人進(jìn)入的簡單方法,就是門口加一把鎖。先到的人鎖上門,后到的人看到上鎖,就在門口排隊,等鎖打開再進(jìn)去。這就叫“互斥鎖”(Mutual exclusion,縮寫 Mutex),防止多個線程同時讀寫某一塊內(nèi)存區(qū)域。

          e3d37b62862490c4931736344967ae4e.webp


          9、還有些房間,可以同時容納n個人,比如廚房。也就是說,如果人數(shù)大于n,多出來的人只能在外面等著。這好比某些內(nèi)存區(qū)域,只能供給固定數(shù)目的線程使用。

          6f06d853d8fb619f5545e27f8d9cbb19.webp


          10、這時的解決方法,就是在門口掛n把鑰匙。進(jìn)去的人就取一把鑰匙,出來時再把鑰匙掛回原處。后到的人發(fā)現(xiàn)鑰匙架空了,就知道必須在門口排隊等著了。這種做法叫做“信號量”(Semaphore),用來保證多個線程不會互相沖突。

          38315c2454c482cdb3e47742b0157de9.webp


          不難看出,mutex是semaphore的一種特殊情況(n=1時)。也就是說,完全可以用后者替代前者。但是,因為mutex較為簡單,且效率高,所以在必須保證資源獨(dú)占的情況下,還是采用這種設(shè)計。


          11、操作系統(tǒng)的設(shè)計,因此可以歸結(jié)為三點(diǎn):

          • 以多進(jìn)程形式,允許多個任務(wù)同時運(yùn)行;

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

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


          efa66bebbdd61d12d1871950568be04f.webp


          --END--



          本公眾號全部博文已整理成一個目錄,請在公眾號里回復(fù)「m」獲取!

          推薦閱讀:

          我的電腦不聯(lián)網(wǎng),很安全,黑客:你還有風(fēng)扇呢

          Linux下3種常用的網(wǎng)絡(luò)測速工具

          微信查看被誰刪除好友的4種方法


          5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機(jī),樹莓派,等等。在公眾號內(nèi)回復(fù)「1024」,即可免費(fèi)獲取!!


          瀏覽 85
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  亚洲xxxx护士 | 成人三级啪 | 国产麻豆精品免费 | 美女操逼网站免费 | 国产九九九 |