1.2 操做系統的第二個功能——併發功能 -《zobolの操做系統學習札記》

1.2 操做系統的第二個功能——併發功能

  • 1.什麼是併發功能?併發功能是必要的嗎?
  • 2.併發功能必需要求擁有多核CPU嗎?
  • 3.多核CPU和單核CPU對併發功能的實現,有影響嗎?
  • 4.併發功能的併發性是絕對的,仍是相對的
  • 5.GPU顯卡的併發性是如何實現的?

在虛擬化技術的基礎上,咱們能夠實現併發功能。html

問1:什麼是併發功能?併發功能是必要的嗎?

粗略地講,併發功能就是同時作多件事情的能力。git

現實中咱們遇到的不少問題,都是能夠同時計算的,若是咱們的計算機操做系統有併發功能那麼就能夠節省時間,好比GPU的誕生。此外不少操做都是有時間限制要求,這就要求咱們必須在作一件事情的同時,也要不斷地記錄運行時間。最多見的就是計時器功能github

沒有併發功能,不少實時性的任務,計算機系統都將沒法完成。
咱們也沒法實現一邊聽歌,一邊上網。
複製代碼


問2:併發功能必需要求擁有多核CPU嗎?

不是,併發功能是創建在虛擬化技術的基礎上的,併發的進程數和線程數跟CPU的數量無關。就算只有一個單核CPU,操做系統依然能夠使用併發功能,實現多線程同步操做。markdown


問3:多核CPU和單核CPU對併發功能的實現,有影響嗎?

可是若是計算機系統有多核CPU,操做系統能夠擁有更多的線程數量,從而更好地實現並行同步上網聽歌功能。此外多核CPU能夠實現絕對的並行計算。多線程

好比假若有兩個任務,A須要3分鐘,B須要5分鐘。操做系統均可以實現讓用戶感受這兩個任務是同時運行的。可是單核CPU的總運行時間必定是大於等於8分鐘的,多核CPU卻能夠實現大於等於5分鐘。併發

畢竟雖然實現了將硬件資源虛擬化,但硬件資源的總量仍是固定不變的,單核CPU的計算力未必小於多核CPU,可是底層沒法實現真正的多核計算,確定實際上仍是單行計算的。app


問4:併發功能的併發性是絕對的,仍是相對的?

大多數狀況下都是相對於咱們人類感知來說的並行,也有少部分狀況下,是絕對的。ide

假如是單核CPU,那麼從硬件層面必定是單向的,沒法進行並行計算操做。可是操做系統經過不斷的切換線程,能夠實現一種僞並行,讓用戶感受好像是在同時運行多個線程。其實底層仍是計算一會A,停下來,計算一會B,只是間隔短人類感覺不到。oop

假如是多核CPU,那麼操做系統能夠將兩個任務分配個兩個計算核心,這樣硬件層就實現了絕對的併發性。不過,操做系統的線程數通常都是遠大於CPU核心數,因此大多數狀況多核也是操做系統提供的相對併發性。學習

是否可否實現真併發,取決於硬件層可否支持並行計算。硬件的並行計算典型就是GPU
複製代碼

問5:GPU顯卡的併發性是如何實現的?

GPU就是咱們日常使用的顯卡,用來進行圖形計算或矩陣計算。咱們通常買的CPU上都會贈送一個集成顯卡,沒有顯卡,咱們的計算機屏幕會一片漆黑。

GPU就是特異化的CPU,是矩陣化數量核數的CPU。

圖形現實自己是要消耗必定計算能力的(實際佔比還不小),早期黑框框的DOS界面通常CPU本身的線性計算能力就能承擔。可是隨着現代的界面可視化和各類三維遊戲的出現致使對新的並行圖形計算能力的需求出現。

每個二維圖像均可以看做是一個矩陣,若是咱們每個矩陣元素都用一個CPU去並行計算,就能夠花費計算一個像素的時間,計算出整個圖像的數據。

GPU能夠看做是由矩陣化數量(好比300×500個)CPU核心的集成,每個核心的計算能力有限,專門爲圖形矩陣計算作了硬件優化。

GPU是並行,併發性的最典型例子。操做系統的併發性主要是靠複用思想,時間片輪轉思想,線程進程思想、
虛擬內存思想以及多核CPU等技術共同實現的。
複製代碼

歡迎訪問:我的博客-zobolの計算機操做系統學習札記

相關文章
相關標籤/搜索