執行緒 程序(2) 從計算機物理層面分析

2022-06-06 22:30:14 字數 1747 閱讀 3954

輸入乙個指令,輸出乙個結果

攢成一大波輸入(批處理指令),然後順序計算 

開發出多道程式設計,將記憶體分為幾個部分,每一部分存放不同的作業,如圖所示。當乙個作業等待io完成時,另乙個作業可以 使用cpu,記憶體中放足夠的作業,則cpu的利用率能接近100%。(併發)

大規模積體電路時代,實現了多執行緒,多核心,進入個人pc時代。

第三代計算機中,每乙個程序處理乙個程式,(單核+多道)實際上實現了多程序的併發處理,。

程序的定義:

程序就是乙個程式在乙個資料集上的一次動態執行過程。 程序一般由程式資料集程序控制塊三部分組成。(程式,是一組指令的有序集合,可以理解成第二代計算機中的批處理指令)

這樣做法雖然說程序之間是並行的,但是程序內部還是序列的,也就是說,如果程序內部一條指令發生阻塞(阻塞),那麼同樣會導致這個程序進行不下去,那麼為了解決這個問題,就引入了執行緒這個概念,就是把程序進一步的細分為乙個個執行緒,執行緒之間來回切換執行,這樣我們系統排程的最小單位就變為了執行緒。

執行緒的出現:

① 是為了降低上下文切換的消耗,

② 提高系統的併發性,並突破乙個程序只能幹一樣事的缺陷, 使到程序內併發成為可能。

① 乙個程式至少有乙個程序,乙個程序至少有乙個執行緒.(程序可以理解成執行緒的容器);

② 程序在執行過程中擁有獨立的記憶體單元,而多個執行緒共享記憶體,各個執行緒共享資源;

③ 程序是資源分配和排程的最小單位,執行緒是是cpu排程和分派的基本單位,是程序的乙個實體;

-----  示例程式:python併發複習2 - 多執行緒模組threading的《生產者消費者模型》的多執行緒、多程序兩種實現方式。

在單核時代實際上只能實現併發處理,即:

採取分時的方式,即把cpu的時間分成很多片段,某個時間片只能執行某個執行緒,雖然說從作業系統和cpu的角度來說還是序列處理的,但是由於cpu的處理速度很快,從使用者的角度感覺是並行的。

隨著計算機的發展,出現了多核cpu,實現了並行處理,如下圖,多個執行緒之間不存在對cpu的搶占關係,而是微觀上同時執行。

此處補充一下cpu核心數執行緒數的概念:

綜上分析,對於我們常見的cpu(多核心), 結論如下:

計算機網路 2 物理層

機械特性 電氣特性 功能特性 過程特性 usb universal serial bus 通用序列匯流排 rj45 registered jack 註冊的插座 常用於網線口 8根引線 xdsl 數字使用者線 線 網 fttx lan 光纖 數字網 hfc 光纖同軸混合網 電視網 1 導向型 同軸電纜...

計算機網路2 物理層

物理層考慮的是怎樣才能在連線各種計算機的傳輸 上傳輸資料位元流,而不是指具體的傳輸 物理層的作用是要盡可能地遮蔽掉不同傳輸 和通訊手段的差異。主要任務 確定與傳輸 的介面的一些特性。乙個資料通訊系統包括三大部分 源系統 或傳送端 傳送方 傳輸系統 或傳輸網路 和目的系統 或接收端 接收方 調頻,調幅...

計算機網路 物理層

一,物理層的作用 遮蔽掉各種傳輸 的區別。物理層的主要任務是描述為確定與傳輸 有關的一些特性 1 機械特性 指明介面所用接線器的形狀和尺寸,引腳數目和排列,固定和鎖定裝置等。2 電氣特性 指明介面電纜的各條線上出現的電壓的範圍 3 功能特性 指明某條線上出現的某一電平的電壓表示何種意義。4 過程特性...