作業系統發展史:
(1)計算機剛剛誕生的時候:
計算機只能接受一些特定的指令,使用者輸入乙個指令,計算機就做乙個操作。當使用者在思考或者輸入資料時,計算機就等待。顯然這樣效率很低下,因為很多時候,計算機處於等待使用者輸入的狀態。
(2)後來批處理擦作業系統誕生:
把一系列需要的指令預先寫下來,形成乙個清單,然後一次**給計算機,計算機不斷的去讀取指令來進行相應操作,然後交由計算機去讀取並逐個的執行這些程式,並將輸出結果寫到另乙個磁帶上(這裡的磁帶相當於現在的磁碟)。
缺點:任務執行只能乙個乙個執行,cpu效率低。
(3)反思批處理系統的缺點後程序,執行緒由此誕生:
程序誕生:
早之前: 每個程序對應一定的記憶體空間,並且只能使用它自己的記憶體空間,各個程序間互補相干。在早期面向程序設計的計算機結構中,程序是程式的基本執行實體。乙個程序在一定時間內只能執行乙個任務,並且程序儲存了每個時刻的執行狀態,這樣就為程序切換提供了可能。當程序暫停時,它會儲存程序的狀態,在下一次重新切換回來時,便根據之前的狀態進行恢復,然後繼續執行。在當代面向執行緒設計的計算機結構中,程序是執行緒的容器。程式是指令、資料及其組織形式的描述,程序是程式的實體。
現在:
並行:是指兩個或者多個事件在同一時刻發生;而***併發***是指在同一時刻只能有一條指令執行,但多個程序指令被快速的輪換執行,兩個或多個事件在同一時間間隔發生,乙個在任務時其他都停止任務。
我們平時所說***4核8執行緒指***的是平均1個核上有兩個執行緒(並不一定平均),單個核上的兩個執行緒是併發執行,多個核之間是並行執行。
在windows下,程序是不活躍的,可以把程序看成是執行緒的容器。活躍的是執行緒,乙個程序可以包含乙個或者多個執行緒。
乙個程序可以包含多個程式,是指有的程序需要別的程序為它提供服務,這樣就對應了多個程式。
乙個程式可以對應多個程序,是乙個程式多次執行,就對應了多個程序啦。
執行緒問題:多執行緒效能一定比單執行緒好嗎?
答:1:對於單核cpu,如果是cpu密集型任務,如解壓檔案,多執行緒的效能反而不如單執行緒效能。解壓檔案要一直占用資源,如果用多執行緒,執行緒切換的開銷反而會讓效能下降。
2:多核cpu,多執行緒肯定優於單執行緒,多個執行緒能夠充分利用每個核的資源。
3:雖然多執行緒能夠提公升效能,但是相對單執行緒來說,它的程式設計要複雜的多。要考慮安全問題。因此,在實際程式設計過程中,要根據實際情況具體選擇。
作業系統設計總結為三點:
1:以多程序的形式,允許多個任務同時進行。
2:以多執行緒的形式,允許每個任務分成不同的部分去執行。
3:提供協調機制,一方面防止程序之間和執行緒之間產生衝突,另一方面允許程序之間和執行緒之間共享資源。
基礎 2022 程序 執行緒
程序與執行緒 程序與執行緒的區別 1.執行緒是程式執行的最小單位,而程序是作業系統分配資源的最小單位 2.乙個程序由乙個或多個執行緒組成,執行緒是乙個程序中 的不同執行路線 3.程序之間相互獨立,但同一程序下的各個執行緒之間共享程式的記憶體空間 包括 段,資料集,堆等 及一些程序級的資源 如開啟檔案...
python 基礎 執行緒 和 程序
程序執行緒 同一程序中,資訊共享和通訊。訪問差異會導致結果不一致。python程式中由global interpreter lock gil 主迴圈中要求只能有乙個控制線程執行。import time import threading threading.thread 是執行緒 每個執行緒的內容,等...
OS 1005(程序與執行緒基礎)
看不懂 1.p29超標量計算和超長指令字等多指令發射機制 2.中斷機制需要參考計算機組成與體系結構課程。3.3.3核心態和使用者態看完程序和記憶體後再討論 流水線是建立在指令集上的併發 程序是建立在cpu上的併發 執行緒是建立在程序上的併發。第二篇 程序原理篇 第四章 程序 1.程序機制的提出是為了...