1. 程式人生 > >Python基礎並發編程——操作系統

Python基礎並發編程——操作系統

.com 必須 文件 處理 等待 CP io操作 簡介 暫時

一、操作系統簡介

1、手工操作——穿孔卡片

1946年第一臺計算機誕生--20世紀50年代中期,計算機工作還在采用手工操作方式。此時還沒有操作系統的概念。

程序員將對應於程序和數據的已穿孔的紙帶(或卡片)裝入輸入機,然後啟動輸入機把程序和數據輸入計算機內存,

接著通過控制臺開關啟動程序針對數據運行;計算完畢,打印機輸出計算結果;用戶取走結果並卸下紙帶(或卡片)

後,才讓下一個用戶上機。

手工操作方式兩個特點:

  (1)用戶獨占全機。不會出現因資源已被其他用戶占用而等待的現象,但資源的利用率低。

  (2)CPU 等待手工操作。CPU的利用不充分。

20世紀50年代後期,出現人機矛盾:手工操作的慢速度和計算機的高速度之間形成了尖銳矛盾,手工操作方式已嚴

重損害了系統資源的利用率(使資源利用率降為百分之幾,甚至更低),不能容忍。唯一的解決辦法:只有擺脫人的手

工操作,實現作業的自動過渡。這樣就出現了成批處理。

2、批處理——磁帶存儲

批處理系統:加載在計算機上的一個系統軟件,在它的控制下,計算機能夠自動地、成批地處理一個或多個用戶的作

業(這作業包括程序、數據和命令)。

批處理系統又分為:聯機批處理系統脫機批處理系統

1、聯機批處理系統

首先出現的是聯機批處理系統,即作業的輸入/輸出由CPU來處理。 技術分享圖片

  主機與輸入機之間增加一個存儲設備——磁帶,在運行於主機上的監督程序的自動控制下,計算機可自動完成:成批地

把輸入機上的用戶作業讀入磁帶,依次把磁帶上的用戶作業讀入主機內存並執行並把計算結果向輸出機輸出。完成了上一批

作業後,監督程序又從輸入機上輸入另一批作業,保存在磁帶上,並按上述步驟重復處理。

監督程序不停地處理各個作業,從而實現了作業到作業的自動轉接,減少了作業建立時間和手工操作時間,有效克服了

人機矛盾,提高了計算機的利用率。

但是,在作業輸入和結果輸出時,主機的高速CPU仍處於空閑狀態,等待慢速的輸入/輸出設備完成工作: 主機處於“忙等”

狀態。

2、脫機批處理系統

為克服與緩解:高速主機與慢速外設的矛盾,提高CPU的利用率,又引入了脫機批處理系統,即輸入/輸出脫離主機控制

技術分享圖片

衛星機:一臺不與主機直接相連而專門用於與輸入/輸出設備打交道的。

  其功能是:

  (1)從輸入機上讀取用戶作業並放到輸入磁帶上。

  (2)從輸出磁帶上讀取執行結果並傳給輸出機。

  這樣,主機不是直接與慢速的輸入/輸出設備打交道,而是與速度相對較快的磁帶機發生關系,有效緩解了主機與設備的

矛盾。主機與衛星機可並行工作,二者分工明確,可以充分發揮主機的高速計算能力。

脫機批處理系統:20世紀60年代應用十分廣泛,它極大緩解了人機矛盾及主機與外設的矛盾。

  不足:每次主機內存中僅存放一道作業,每當它運行期間發出輸入/輸出(I/O)請求後,高速的CPU便處於等待低速的I/O

完成狀態,致使CPU空閑。為改善CPU的利用率,又引入了多道程序系統。

3、多道程序系統

1、多道程序設計技術

所謂多道程序設計技術,就是指允許多個程序同時進入內存並運行。即同時把多個程序放入內存,並允許它們交替在CPU中

運行,它們共享系統中的各種硬、軟件資源。當一道程序因I/O請求而暫停運行時,CPU便立即轉去運行另一道程序。

技術分享圖片

在A程序計算時,I/O空閑, A程序I/O操作時,CPU空閑(B程序也是同樣);必須A工作完成後,B才能進入內存中開始工作,

兩者是串行的,全部完成共需時間=T1+T2。

技術分享圖片

將A、B兩道程序同時存放在內存中,它們在系統的控制下,可相互穿插、交替地在CPU上運行:當A程序因請求I/O操作而放棄

CPU時,B程序就可占用CPU運行,這樣 CPU不再空閑,而正進行A I/O操作的I/O設備也不空閑,顯然,CPU和I/O設備都處於“忙”

狀態,大大提高了資源的利用率,從而也提高了系統的效率,A、B全部完成所需時間<<T1+T2。

多道程序設計技術不僅使CPU得到充分利用,同時改善I/O設備和內存的利用率,從而提高了整個系統的資源利用率和系統吞吐

量(單位時間內處理作業(程序)的個數),最終提高了整個系統的效率。

  單處理機系統中多道程序運行時的特點:

  (1)多道:計算機內存中同時存放幾道相互獨立的程序;

  (2)宏觀上並行:同時進入系統的幾道程序都處於運行過程中,即它們先後開始了各自的運行,但都未運行完畢;

  (3)微觀上串行:實際上,各道程序輪流地用CPU,並交替運行。

多道程序系統的出現,標誌著操作系統漸趨成熟的階段,先後出現了作業調度管理、處理機管理、存儲器管理、外部設備管理、

文件系統管理等功能。

由於多個程序同時在計算機中運行,開始有了空間隔離的概念,只有內存空間的隔離,才能讓數據更加安全、穩定。除了空間隔

離之外,多道技術還第一次體現了時空復用的特點,遇到IO操作就切換程序,使得cpu的利用率提高了,計算機的工作效率也隨之提高。

2、多道批處理系統

20世紀60年代中期,在前述的批處理系統中,引入多道程序設計技術後形成多道批處理系統(簡稱:批處理系統)。

  它有兩個特點:

  (1)多道:系統內可同時容納多個作業。這些作業放在外存中,組成一個後備隊列,系統按一定的調度原則每次從後備作業隊列

中選取一個或多個作業進入內存運行,運行作業結束、退出運行和後備作業進入運行均由系統自動實現,從而在系統中形成一個自動轉

接的、連續的作業流。

  (2)成批:在系統運行過程中,不允許用戶與其作業發生交互作用,即:作業一旦進入系統,用戶就不能直接幹預其作業的運行。

  批處理系統的追求目標:提高系統資源利用率和系統吞吐量,以及作業流程的自動化。

  批處理系統的一個重要缺點:不提供人機交互能力,給用戶使用計算機帶來不便。

  雖然用戶獨占全機資源,並且直接控制程序的運行,可以隨時了解程序運行情況。但這種工作方式因獨占全機造成資源效率極低。

  一種新的追求目標:既能保證計算機效率,又能方便用戶使用計算機。 20世紀60年代中期,計算機技術和軟件技術的發展使這種

追求成為可能。

4、分時系統

  由於CPU速度不斷提高和采用分時技術,一臺計算機可同時連接多個用戶終端,而每個用戶可在自己的終端上聯機使用計算機,好

象自己獨占機器一樣。

技術分享圖片

  分時技術:把處理機的運行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。

  若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一作業使用,等待下一輪時再繼續其運行。

由於計算機速度很快,作業運行輪轉得很快,給每個用戶的印象是,好象他獨占了一臺計算機。而每個用戶可以通過自己的終端向系統

發出各種操作控制命令,在充分的人機交互情況下,完成作業的運行。

具有上述特征的計算機系統稱為分時系統,它允許多個用戶同時聯機使用計算機。

  特點:

  (1)多路性。若幹個用戶同時使用一臺計算機。微觀上看是各用戶輪流使用計算機;宏觀上看是各用戶並行工作。

  (2)交互性。用戶可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使用戶與系統進行人機對話的工作方式,明

顯地有別於批處理系統,因而,分時系統又被稱為交互式系統。

  (3)獨立性。用戶之間可以相互獨立操作,互不幹擾。系統保證各用戶程序運行的完整性,不會發生相互混淆或破壞現象。

  (4)及時性。系統可對用戶的輸入及時作出響應。分時系統性能的主要指標之一是響應時間,它是指:從終端發出命令到系統予以

應答所需的時間。

  分時系統的主要目標:對用戶響應的及時性,即不至於用戶等待每一個命令的處理時間過長。

分時系統可以同時接納數十個甚至上百個用戶,由於內存空間有限,往往采用對換(又稱交換)方式的存儲方法。即將未“輪到”的作業放

入磁盤,一旦“輪到”,再將其調入內存;而時間片用完後,又將作業存回磁盤(俗稱“滾進”、“滾出“法),使同一存儲區域輪流為多個用戶服務。

多用戶分時系統是當今計算機操作系統中最普遍使用的一類操作系統。

註意:分時系統的分時間片工作,在沒有遇到IO操作的時候就用完了自己的時間片被切走了,這樣的切換工作其實並沒有提高cpu的效率,

反而使得計算機的效率降低了。但是我們犧牲了一點效率,卻實現了多個程序共同執行的效果,這樣你就可以在計算機上一邊聽音樂一邊聊qq了。

Python基礎並發編程——操作系統