程式設計基礎概念 作業系統

2021-10-06 21:54:08 字數 1407 閱讀 1722

上面我們探索到了一台理論上的計算機是什麼樣子的。為了讓大家能使用計算機,這麼一台裸機肯定是不行的,不能讓大家自己去管理cpu,管理記憶體,管理輸入輸出裝置,管理程式裝載。這些底層的工作是統一的,不需要每乙個使用計算機的人自己動手去做。

這就誕生了作業系統,把計算機的這些組成部件的管理給包起來,然後使用計算機的人其實使用的是作業系統。

作業系統可以看成是乙個排程程式,它負責管理計算機這台裝置,包括cpu、記憶體和i/o裝置。那它排程什麼東西呢?如果一台計算機是一種專用的機器,其實不需要排程的,但是計算機設計之初就定位為一台通用的計算機器,所以原則上一台計算機會執行很多程式。如果規定這些程式要排隊,乙個執行完之後才執行下乙個,實際上也沒有什麼好排程的。

歷史上,電子計算機剛發明出來的頭幾年,是沒有什麼作業系統的,全是手工操作。程式設計師將穿孔的紙帶裝入輸入機,然後啟動輸入機把程式和資料輸入計記憶體,接著通過控制台開關啟動程式針對資料執行;計算完畢,列印輸出計算結果;使用者取走結果並卸下紙帶(或卡片)後,才讓下乙個使用者上機。

歷史上誕生過很多種作業系統。

首先出現的是批處理系統,在它的控制下,計算機能夠自動地、成批地處理乙個或多個使用者的作業(這作業包括程式、資料和命令)。這一下大大提高了效率,不過cpu的效能還是沒有充分利用,因為輸入輸出這些操作要通過機電裝置,是很慢的,作為純粹的電子裝置的cpu大部分時間要等著這些裝置完成工作。

為了克服這些矛盾,出現了多道程式技術,允許多個程式同時進入記憶體並執行。我們這裡要理解「同時」這個詞的含義,它是一種對人的感受來講的「同時」,因為cpu只有乙個,嚴格說起來,是沒有同時的,乙個瞬間只執行一條指令。實際上,是讓這些任務交替在cpu中執行,它們共享系統中的各種硬、軟體資源。當一道程式因i/o請求而暫停執行時,cpu便立即轉去執行另一道程式。cpu很快,雖然它是交替為這些程式服務,但是從人的感受來講是多個任務同時在執行。

這樣一步一步演變成現代的作業系統。

比較主流的作業系統有:

unix

unix作業系統是一種強大的多工、多使用者作業系統。2023年,ken thompson編寫了第乙個版本,後來dennis m.ritchie加入改寫,因此我們一般把thompson和ritchie稱為unix發明人。unix是強大的系統,但是它的核心卻是非常小的,2023年發布的正式unix的核心是有40kb。

2023年,芬蘭的linus torvalds發布了linux核心系統。後來很多開發者加入,

發布了不同的發行版本,如ubuntu,centos。

由microsoft公司在2023年代研發。

mac os

作業系統 使用者程式設計介面(概念)

對於計算機系統而言,作業系統充當著基石的作用,它是連線計算機底層硬體與上層應用軟體的橋梁,控制其他程式的執行,並且管理系統相關資源,同時提供配套的系統軟體支援。對於專業的程式設計師而言,掌握一定的作業系統知識比不可少,因為不管面對的是底層嵌入式開發,還是上層的雲計算開發,都需要使用到一定的作業系統相...

作業系統 作業系統的概念

3 作業系統的目標和功能 作業系統用做擴充機器 計算機系統自上而下可區分為 從作業系統的角度 計算機系統的概述 在計算機中的cpu 記憶體 輸入 輸出裝置等硬體,提供了基本的計算機資源 應用程式等規定了按何種方式來使用這些資源來為使用者服務 作業系統控制和協調各使用者程式對硬體的分配和呼叫。所以作業...

作業系統學習 基礎概念

作業系統是一種控制和管理整個計算機的硬體和軟體資源,並合理組織排程計算機工作和資源的分配,以提供給使用者其他軟體方便的介面和環境的系統軟體。功能和目標 併發 兩個或者多個時間同一時間間隔內發生 資源共享 包括互斥共享和同時共享,即巨集觀上資源只允許乙個程序訪問和允許多個程序 同時 訪問 虛擬 把物理...