Python_操作系統的發展史

来源:https://www.cnblogs.com/Golanguage/archive/2020/03/02/12397937.html
-Advertisement-
Play Games

閱讀目錄 手工操作 —— 穿孔卡片 批處理 —— 磁帶存儲和批處理系統 多道程式系統 分時系統 實時系統 通用操作系統 操作系統的進一步發展 操作系統的作用 手工操作 —— 穿孔卡片 1946年第一臺電腦誕生 20世紀50年代中期,電腦工作還在採用手工操作方式。此時還沒有操作系統的概念。 程式員 ...


 閱讀目錄

  手工操作 —— 穿孔卡片      

  批處理 —— 磁帶存儲和批處理系統

  多道程式系統

  分時系統

  實時系統

  通用操作系統

  操作系統的進一步發展

  操作系統的作用

手工操作 —— 穿孔卡片

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

         

  程式員將對應於程式和數據的已穿孔的紙帶(或卡片)裝入輸入機,然後啟動輸入機把程式和數據輸入電腦記憶體,接著通過控制台開關啟動程式針對數據運行;計算完畢,印表機輸出計算結果;用戶取走結果並卸下紙帶(或卡片)後,才讓下一個用戶上機。

手工操作方式兩個特點:   (1)用戶獨占全機。不會出現因資源已被其他用戶占用而等待的現象,但資源的利用率低。   (2)CPU 等待手工操作。CPU的利用不充分。         20世紀50年代後期,出現人機矛盾:手工操作的慢速度和電腦的高速度之間形成了尖銳矛盾,手工操作方式已嚴重損害了系統資源的利用率(使資源利用率降為百分之幾,甚至更低),不能容忍。唯一的解決辦法:只有擺脫人的手工操作,實現作業的自動過渡。這樣就出現了成批處理

批處理 —— 磁帶存儲

  批處理系統:載入在電腦上的一個系統軟體,在它的控制下,電腦能夠自動地、成批地處理一個或多個用戶的作業(這作業包括程式、數據和命令)。

聯機批處理系統

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

 

  主機與輸入機之間增加一個存儲設備——磁帶,在運行於主機上的監督程式的自動控制下,電腦可自動完成:成批地把輸入機上的用戶作業讀入磁帶,依次把磁帶上的用戶作業讀入主機記憶體並執行並把計算結果向輸出機輸出。完成了上一批作業後,監督程式又從輸入機上輸入另一批作業,保存在磁帶上,並按上述步驟重覆處理。 監督程式不停地處理各個作業,從而實現了作業到作業的自動轉接,減少了作業建立時間和手工操作時間,有效剋服了人機矛盾,提高了電腦的利用率。 但是,在作業輸入和結果輸出時,主機的高速CPU仍處於空閑狀態,等待慢速的輸入/輸出設備完成工作: 主機處於“忙等”狀態。

離線批處理系統

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

     

 

  衛星機:一臺不與主機直接相連而專門用於與輸入/輸出設備打交道的。   其功能是:   (1)從輸入機上讀取用戶作業並放到輸入磁帶上。   (2)從輸出磁帶上讀取執行結果並傳給輸出機。   這樣,主機不是直接與慢速的輸入/輸出設備打交道,而是與速度相對較快的磁帶機發生關係,有效緩解了主機與設備的矛盾。主機與衛星機可並行工作,二者分工明確,可以充分發揮主機的高速計算能力。       離線批處理系統:20世紀60年代應用十分廣泛,它極大緩解了人機矛盾及主機與外設的矛盾。   不足:每次主機記憶體中僅存放一道作業,每當它運行期間發出輸入/輸出(I/O)請求後,高速的CPU便處於等待低速的I/O完成狀態,致使CPU空閑。 為改善CPU的利用率,又引入了多道程式系統。

多道程式系統

多道程式設計技術

      所謂多道程式設計技術,就是指允許多個程式同時進入記憶體並運行。即同時把多個程式放入記憶體,並允許它們交替在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的利用率提高了,電腦的工作效率也隨之提高。

多道批處理系統

  20世紀60年代中期,在前述的批處理系統中,引入多道程式設計技術後形成多道批處理系統(簡稱:批處理系統)。   它有兩個特點:   (1)多道:系統內可同時容納多個作業。這些作業放在外存中,組成一個後備隊列,系統按一定的調度原則每次從後備作業隊列中選取一個或多個作業進入記憶體運行,運行作業結束、退出運行和後備作業進入運行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。   (2)成批:在系統運行過程中,不允許用戶與其作業發生交互作用,即:作業一旦進入系統,用戶就不能直接干預其作業的運行。   批處理系統的追求目標:提高系統資源利用率和系統吞吐量,以及作業流程的自動化。   批處理系統的一個重要缺點:不提供人機交互能力,給用戶使用電腦帶來不便。   雖然用戶獨占全機資源,並且直接控製程序的運行,可以隨時瞭解程式運行情況。但這種工作方式因獨占全機造成資源效率極低。   一種新的追求目標:既能保證電腦效率,又能方便用戶使用電腦。 20世紀60年代中期,電腦技術和軟體技術的發展使這種追求成為可能。

分時系統

      由於CPU速度不斷提高和採用分時技術,一臺電腦可同時連接多個用戶終端,而每個用戶可在自己的終端上聯機使用電腦,好象自己獨占機器一樣。          分時技術:把處理機的運行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。   若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一作業使用,等待下一輪時再繼續其運行。由於電腦速度很快,作業運行輪轉得很快,給每個用戶的印象是,好象他獨占了一臺電腦。而每個用戶可以通過自己的終端向系統發出各種操作控制命令,在充分的人機交互情況下,完成作業的運行。 具有上述特征的電腦系統稱為分時系統,它允許多個用戶同時聯機使用電腦。   特點:   (1)多路性。若幹個用戶同時使用一臺電腦。微觀上看是各用戶輪流使用電腦;巨集觀上看是各用戶並行工作。   (2)交互性。用戶可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使用戶與系統進行人機對話的工作方式,明顯地有別於批處理系統,因而,分時系統又被稱為互動式系統。   (3)獨立性。用戶之間可以相互獨立操作,互不幹擾。系統保證各用戶程式運行的完整性,不會發生相互混淆或破壞現象。   (4)及時性。系統可對用戶的輸入及時作出響應。分時系統性能的主要指標之一是響應時間,它是指:從終端發出命令到系統予以應答所需的時間。   分時系統的主要目標:對用戶響應的及時性,即不至於用戶等待每一個命令的處理時間過長。 分時系統可以同時接納數十個甚至上百個用戶,由於記憶體空間有限,往往採用對換(又稱交換)方式的存儲方法。即將未“輪到”的作業放入磁碟,一旦“輪到”,再將其調入記憶體;而時間片用完後,又將作業存回磁碟(俗稱“滾進”、“滾出“法),使同一存儲區域輪流為多個用戶服務。 多用戶分時系統是當今電腦操作系統中最普遍使用的一類操作系統。       註意:分時系統的分時間片工作,在沒有遇到IO操作的時候就用完了自己的時間片被切走了,這樣的切換工作其實並沒有提高cpu的效率,反而使得電腦的效率降低了。但是我們犧牲了一點效率,卻實現了多個程式共同執行的效果,這樣你就可以在電腦上一邊聽音樂一邊聊qq了。

實時系統

    雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時信息處理兩個應用領域的需求。於是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,併在嚴格的時間範圍內完成對該事件的處理。 實時系統在一個特定的應用中常作為一種控制設備來使用。     實時系統可分成兩類:     (1)實時控制系統。當用於飛機飛行、導彈發射等的自動控制時,要求電腦能儘快處理測量系統測得的數據,及時地對飛機或導彈進行控制,或將有關信息通過顯示終端提供給決策人員。當用於軋鋼、石化等工業生產過程式控制制時,也要求電腦能及時處理由各類感測器送來的數據,然後控制相應的執行機構。     (2)實時信息處理系統。當用於預定飛機票、查詢有關航班、航線、票價等事宜時,或當用於銀行系統、情報檢索系統時,都要求電腦能對終端設備發來的服務請求及時予以正確的回答。此類對響應及時性的要求稍弱於第一類。   實時操作系統的主要特點:   (1)及時響應。每一個信息接收、分析處理和發送的過程必須在嚴格的時間限制內完成。   (2)高可靠性。需採取冗餘措施,雙機系統前後臺工作,也包括必要的保密措施等。
分時——現在流行的PC,伺服器都是採用這種運行模式,即把CPU的運行分成若幹時間片分別處理不同的運算請求 linux系統
實時——一般用於單片機上、PLC等,比如電梯的上下控制中,對於按鍵等動作要求進行實時處理 
分時系統和實時系統的比較

通用操作系統

  操作系統的三種基本類型:多道批處理系統、分時系統、實時系統。   通用操作系統:具有多種類型操作特征的操作系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。   例如:實時處理+批處理=實時批處理系統。首先保證優先處理實時任務,插空進行批處理作業。常把實時任務稱為前臺作業,批作業稱為後臺作業。   再如:分時處理+批處理=分時批處理系統。即:時間要求不強的作業放入“後臺”(批處理)處理,需頻繁交互的作業在“前臺”(分時)處理,處理機優先運行“前臺”作業。   從上世紀60年代中期,國際上開始研製一些大型的通用操作系統。這些系統試圖達到功能齊全、可適應各種應用範圍和操作方式變化多端的環境的目標。但是,這些系統過於複雜和龐大,不僅付出了巨大的代價,且在解決其可靠性、可維護性和可理解性方面都遇到很大的困難。   相比之下,UNIX操作系統卻是一個例外。這是一個通用的多用戶分時交互型的操作系統。它首先建立的是一個精幹的核心,而其功能卻足以與許多大型的操作系統相媲美,在核心層以外,可以支持龐大的軟體系統。它很快得到應用和推廣,並不斷完善,對現代操作系統有著重大的影響。   至此,操作系統的基本概念、功能、基本結構和組成都已形成並漸趨完善。

操作系統的進一步發展

  進入20世紀80年代,大規模集成電路工藝技術的飛躍發展,微處理機的出現和發展,掀起了電腦大發展大普及的浪潮。一方面迎來了個人電腦的時代,同時又向電腦網路、分散式處理、巨型電腦和智能化方向發展。於是,操作系統有了進一步的發展,如:個人電腦操作系統、網路操作系統、分散式操作系統等。

個人電腦操作系統

  個人電腦上的操作系統是聯機交互的單用戶操作系統,它提供的聯機交互功能與通用分時系統提供的功能很相似。   由於是個人專用,因此一些功能會簡單得多。然而,由於個人電腦的應用普及,對於提供更方便友好的用戶介面和豐富功能的文件系統的要求會愈來愈迫切。

網路操作系統

  電腦網路:通過通信設施,將地理上分散的、具有自治功能的多個電腦系統互連起來,實現信息交換、資源共用、互操作和協作處理的系統。   網路操作系統:在原來各自電腦操作系統上,按照網路體繫結構的各個協議標準增加網路管理模塊,其中包括:通信、資源共用、系統安全和各種網路應用服務。

分散式操作系統

  錶面上看,分散式系統與電腦網路系統沒有多大區別。分散式操作系統也是通過通信網路,將地理上分散的具有自治功能的數據處理系統或電腦系統互連起來,實現信息交換和資源共用,協作完成任務。——硬體連接相同。   但有如下一些明顯的區別:   (1)分散式系統要求一個統一的操作系統,實現系統操作的統一性。   (2)分散式操作系統管理分散式系統中的所有資源,它負責全系統的資源分配和調度、任務劃分、信息傳輸和控制協調工作,併為用戶提供一個統一的界面。   (3)用戶通過這一界面,實現所需要的操作和使用系統資源,至於操作定在哪一臺電腦上執行,或使用哪台電腦的資源,則是操作系統完成的,用戶不必知道,此謂:系統的透明性。   (4)分散式系統更強調分散式計算和處理,因此對於多機合作和系統重構、堅強性和容錯能力有更高的要求,希望系統有:更短的響應時間、高吞吐量和高可靠性。

操作系統的作用

  現代的電腦系統主要是由一個或者多個處理器,主存,硬碟,鍵盤,滑鼠,顯示器,印表機,網路介面及其他輸入輸出設備組成。

  一般而言,現代電腦系統是一個複雜的系統。

  其一:如果每位應用程式員都必須掌握該系統所有的細節,那就不可能再編寫代碼了(嚴重影響了程式員的開發效率:全部掌握這些細節可能需要一萬年....)

  其二:並且管理這些部件並加以優化使用,是一件極富挑戰性的工作,於是,計算安裝了一層軟體(系統軟體),稱為操作系統。它的任務就是為用戶程式提供一個更好、更簡單、更清晰的電腦模型,並管理剛纔提到的所有設備。

  總結:

  程式員無法把所有的硬體操作細節都瞭解到,管理這些硬體並且加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是操作系統來乾的,有了他,程式員就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用操作系統提供的功能來間接使用硬體。

  精簡的說的話,操作系統就是一個協調、管理和控制電腦硬體資源和軟體資源的控製程序。操作系統所處的位置如圖

  細說的話,操作系統應該分成兩部分功能:

  

複製代碼
#一:隱藏了醜陋的硬體調用介面,為應用程式員提供調用硬體資源的更好,更簡單,更清晰的模型(系統調用介面)。應用程式員有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。
例如:操作系統提供了文件這個抽象概念,對文件的操作就是對磁碟的操作,有了文件我們無需再去考慮關於磁碟的讀寫控制(比如控制磁碟轉動,移動磁頭讀寫數據等細節),

#二:將應用程式對硬體資源的競態請求變得有序化
例如:很多應用軟體其實是共用一套電腦硬體,比方說有可能有三個應用程式同時需要申請印表機來輸出內容,那麼a程式競爭到了印表機資源就列印,然後可能是b競爭到印表機資源,也可能是c,這就導致了無序,印表機可能列印一段a的內容然後又去列印c...,操作系統的一個功能就是將這種無序變得有序。
複製代碼

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 由於細節內容實在太多啦,所以只把部分知識點截圖出來粗略的介紹,每個小節點裡面都有更細化的內容! 內容簡介 這套書同時收錄了十多位阿裡技術人的訪談:從工程師到合伙人的多隆,6 年時間影響數億用戶的靖世,入選 MIT2017 年度 TR35 的王剛 &吳翰清,免試晉升為研究員的錢磊等,將為你展現不一樣的 ...
  • 當前測試人員的主要矛盾: Python基礎語法都看了學了幾遍了。 用不上,不會寫,網上的例子又大部分是面向開發人員的, 好多都是人工智慧,大數據,區塊鏈,或者數學演算法題。 偶爾有Selenium面向Web測試人員, 但是Selenium作為Python入門實例, 也不合適,因為還是太難了。 武散人的 ...
  • 題目 第一次做全英文編程題(辭彙量嚴重不足,還需多記單詞); 題目的大致意思就是說:輸入一個不超過20位的整數,將這個數乘以2,比較計算前和計算後的結果是否滿足題目的要求, 這個要求具體是指判斷組成這兩個數的具體數字出現的次數是否相等,例如:這個數為123456789,它乘以2之後得到2469135 ...
  • 基本配置 一、創建django程式 終端命令: django-admin startproject sitename IDE創建django程式時,本質上都是自動執行上述命令 其他常用命令:進入工程目錄 python manage.py runserver 127.0.0.1 埠號 運行測試 py ...
  • 資料庫的安裝和連接 PyMySQL的安裝 pip install PyMySQL python連接資料庫 import pymysql db = pymysql.connect("資料庫ip","用戶","密碼","資料庫" ) 打開資料庫連接 cursor.execute("SELECT VERS ...
  • 引子 之前我們學習了線程、進程的概念,瞭解了在操作系統中進程是資源分配的最小單位,線程是CPU調度的最小單位。按道理來說我們已經算是把cpu的利用率提高很多了。但是我們知道無論是創建多進程還是創建多線程來解決問題,都要消耗一定的時間來創建進程、創建線程、以及管理他們之間的切換。 隨著我們對於效率的追 ...
  • 線程概念的引入背景 進程 之前我們已經瞭解了操作系統中進程的概念,程式並不能單獨運行,只有將程式裝載到記憶體中,系統為它分配資源才能運行,而這種執行的程式就稱之為進程。程式和進程的區別就在於:程式是指令的集合,它是進程運行的靜態描述文本;進程是程式的一次執行活動,屬於動態概念。在多道編程中,我們允許多 ...
  • 理論知識 操作系統背景知識 顧名思義,進程即正在執行的一個過程。進程是對正在運行程式的一個抽象。 進程的概念起源於操作系統,是操作系統最核心的概念,也是操作系統提供的最古老也是最重要的抽象概念之一。操作系統的其他所有內容都是圍繞進程的概念展開的。 所以想要真正瞭解進程,必須事先瞭解操作系統,點擊進入 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...