作業系統介紹

2021-09-29 19:01:25 字數 2828 閱讀 4518

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

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

定義:作業系統就是乙個協調、管理和控制計算機硬體資源和軟體資源的控制程式。

作業系統位於計算機硬體與應用軟體之間,本質也是乙個軟體。作業系統由作業系統的核心(執行於核心態,管理硬體資源)以及系統呼叫(執行於使用者態,為應用程式設計師寫的應用程式提供系統呼叫介面)兩部分組成。

上圖是作業系統所處的位置,作業系統應該分為兩部分功能:

為應用程式設計師提供呼叫硬體資源的更好,更簡單,更清》晰的模型(系統呼叫介面)。應用程式設計師有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。

例如:作業系統提供了檔案這個抽象概念,對檔案的操作就是對磁碟的操作,有了檔案我們無需再去考慮關於磁碟的讀寫控制(比如控制磁碟轉動,移動磁頭讀寫資料等細節)。

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

這個時期的電腦沒有作業系統,所有程式設計都是直接操控硬體。程式設計師拿著他的外掛程式版到機房裡,將自己的外掛程式板街道計算機裡,這幾個小時內他獨享整個計算機資源,後面的一批人都得等著

優點:在申請時間段內獨享資源,即時除錯程式。

缺點:浪費計算機資源,乙個時間段只有乙個人用。

程式設計師在穿孔卡片上寫好程式,然後放在讀卡機上,收集足夠後,這些卡片讀進磁帶。機房管理人員把磁帶裝到磁帶機上,操作人員裝入乙個特殊程式,它從磁帶讀取作業並執行輸出到第二盤磁帶,當作業全完成,取下輸入和輸出的磁帶,把輸出磁帶拿到1401機器上進行離線列印。

1401:i/o操作  7094:計算操作

特點:輸入攢一大波、仍是順序計算、輸出攢一大波

優點:批處理,節省時間

缺點:1.流程需要人參與控制;2.計算過程仍然是順序計算--》序列計算

3.程式設計師等待結果和重新除錯的過程都需要等同批次的其他程式都運作完才可以。(影響開發效率)

由於第二代計算機有兩套機型:

7094大型科學計算機:主要用於科學計算和工程計算。(面向字)

1401商用計算機:主要用於銀行和保險從事磁帶歸檔和列印服務。(面向字元)

ibm通過system/360系列來同時滿足上述要求,低檔機與1401相當,高檔機與7094相當。

(1)解決人為參與問題

將作業從卡片讀入磁碟,於是任何時刻當乙個作業結束時,作業系統就能將乙個作業從磁帶讀出,裝進空出來的記憶體區域執行,這種技術叫做同時的外部裝置聯機操作:spooling,該技術同時用於輸出。

(2)解決序列計算問題

cpu執行的速度遠遠快於讀取硬碟資料的速度,因此引入了記憶體,cpu可以非常快速地讀取記憶體的資料。

多道技術:多道指得是多個程式,解決多個程式競爭或共享同乙個資源的有序排程問題,解決方式是多路復用,多路復用分時間復用和空間上的復用。

空間上的復用:復用記憶體空間,記憶體同時存多個程式

空間復用存在的問題:必須保證物理層面上多個程式的記憶體是互相隔離的。否則會喪失安全性和穩定性。正是由於記憶體物理隔離的問題,第三代計算機作業系統依然是批處理

時間上的復用:大家共享cpu的時間,當乙個程式在等待i/o時,另乙個程式可以使用cpu,如果記憶體中可以同時存放足夠多的作業,則cpu的利用率可以接近100%,類似於小學數學所學的統籌方法。

切換情形:1)會在乙個程序遇到io時進行;2)乙個程序占用cpu時間過長也會切換,或者說被作業系統奪走cpu的執行許可權。

(3)解決像第一代一樣即時除錯自己的程式

分時作業系統:多個聯機終端+多道技術,索引計算機能夠為許多使用者提供快速的互動式服務,所有的使用者都以為自己獨享了計算機資源

unix:ken thompson開發了乙個簡易、單使用者版本的multics,為了使程式能在任何版本的unix上執行,ieee提出了乙個unix標準,即posix(可移植的作業系統介面portable operating system inte***ce)

minix:教學用系統

linux:芬蘭學生linus torvalds基於minix它編寫

1.隱藏醜陋複雜的硬體介面,提供良好的抽象介面

2.管理、排程程序,並將多個程序對硬體的競爭變得有序。

1.產生的背景:針對單核,實現併發(看起來多個程序像在同時執行,注意和並行的區別)  

現在的主機一般是多核(幾個核最多可以幾個並行),那麼每個核都會利用多道技術。

有4個cpu,執行於cpu1的某個程式遇到io阻塞,會等到io結束再重新排程,會被排程到4個cpu中的任意乙個,具體由作業系統排程演算法決定。

2.空間上的復用:記憶體中同時有多道程式

3.時間上的復用:復用乙個cpu的時間片

注意:遇到io切,占用cpu時間過長也切,核心在於切之前將程序的狀態儲存下來,這樣才能保證下次切換回來時,能基於上次切走的位置繼續執行

作業系統介紹

在早期想讓計算機執行程式的話就要參考一堆硬體功能函式,且要學習機器語言才能編寫程式,如果能將所有硬體都驅動,並且提供乙個開發軟體的參考介面來給工程師開發軟體的話,那開發軟體就變得很簡單,這就是作業系統 作業系統核心 kernel 作業系統其實也是一組程式,該程式的重點是在於管理計算機的所有活動以及驅...

作業系統介紹

程式執行指令 處理器從記憶體獲取指令 fetch 對指令解碼 decode 執行指令 execute 作業系統 operating system 負責讓程式執行變得容易,允許程式共享記憶體,與裝置互動。虛擬化 virtualization 作業系統將物理資源轉換為更通用 更強大且更易於使用的虛擬形式...

什麼是作業系統?作業系統介紹

一 作業系統介紹 作業系統是管理計算機硬體與軟體資源的電腦程式,會對計算機管理硬體 驅動硬體 管理軟體 資源分配與 作業系統也提供乙個讓使用者與系統互動的操作介面。在計算機中,作業系統是其最基本也是最為重要的基礎性系統軟體。經過幾十年以來的發展,計算機作業系統已經由一開始的簡單控制迴圈體發展成為較為...