Python第二節課(操作系統簡介)
1.為何要有操作系統
先從操作系統的定義說起,操作系統是協調,管理和控制計算機硬件資源和軟件資源的控制程序。也就是承接我們的軟件應用和硬件調用的中間人。
操作系統位於計算機硬件和應用軟件之間,本質也是一個軟件,只不過可能他會有幾百萬行的代碼,今天的我們已經不用費盡力氣去研究他。準確的說,操作系統分為內核部門和系統調用兩大部分,操作系統時而與軟件交互,時而調用硬件進行工作,所以我們單純的說操作系統始終處於內核態是不正確的。
那麽內核態和系統調用具體為程序員們帶來了什麽便利呢,我們一點點的去分析一下:
1內核功能隱藏了底層電路板裏各式各樣的硬件調用接口,為程序員提供了更簡單,清晰的系統調用接口,這時我們不再需要考慮底層的硬件接口,因為操作系統會幫我們搞定一切。
2我們安裝的諸多軟件會共享我們計算機的一套資源,但是當程序發生競爭的時候,我們的硬件是無法自行判斷的,這是操作系統會為硬件制定一定的資源分配規則,從而讓無序的競爭變得有序化。
2.操作系統的位置
操作系統是位於底層硬件與應用軟件之間的一套大型系統軟件,他可以把應用軟件的指令通過翻譯變換成硬件可以識別的機器碼,從而實現軟硬件的交互與通信。
3.操作系統的功能
通過內核功能屏蔽底層的電路結構與硬件接口,再通過系統調用實現軟硬互通。
4.操作系統的發展
大體上來講的話操作系統是經歷了從無到有的過程,為什麽我要這樣說?因為我們的第一代計算機是沒有操作系統的,只有軀殼沒有靈魂,鄙人詞薄,實在不會定義這樣的操作系統,所以單獨拎出來弄一個說法出來。
第一代操作系統其實是在第二代電腦出來以後才誕生的。
在大型機年代,FORTRAN語言或者匯編語言是通過紙帶打孔進行輸入進計算機進行計算的。但是這種操作方法的工作效率實在不高,當我們把若幹個程序員的代碼陸續錄入讀卡機的時候,第一個送來紙袋的程序員在幹嘛呢,他在等這一批的程序員所傳遞來的所有紙帶執行完畢,才會接收到自己的結果,在這之前,他無法進行自己的代碼調試,而且在整個過程中他的時間成本是得到了過度消費的。當然,新的技術在壓抑程序員的過程中讓硬件得到了更大化的資源利用(這是最早的批處理系統)。
之後為了避免對時間的浪費,人們開發出了分時系統(通過多個聯機終端+多道技術實現),通過利用CPU
在這之後,麻省理工(MIT)成功研制出了成功的內存物理隔離技術之後,結合之前的分時系統成功的在空間和時間上實現了復用,這樣就有了我們今天廣泛使用的系統的模型。
在這之後,基於單用戶的Unix系統面世,並且基於這個版本衍生出了很多類似的版本。(Unix系統只存活於小機時代了,現在是Linux的天下)。
5.多道技術
多道技術是操作系統實現批處理的基石:他意味著處理器處理多個程序發起的多個共享資源的請求。(通過空分復用和時分復用實現)
時分復用:
由於CPU頻率較高,具備快速處理事務的能力,所以我們將CPU處理事務的時間進行分段,以前1S的時間處理一件事,現在我們定義他處理N件事,N個時間分區,這可以通過時鐘程序和中斷程序來實現,進而實現時間上的重復利用。
空分復用:
在時分復用的基礎上,我們註定會遇到諸多程序一起寫進內存然後再對內存進行物理隔離的過程,當我們內存足夠大的時候,我們通過對內存的分區操作,實現一個時間片段完成多個任務的執行,可以說空分復用是時分復用的關鍵一環。
將這兩種技術結合起來,那麽就是我們所提到的多道技術啦!
2017-05-19
15:54:50
Python第二節課(操作系統簡介)