1. 程式人生 > >操作系統簡介

操作系統簡介

16px 另一個 背景 程序 結果 崩潰 打印 cpu 預約

1.什麽是操作系統

操作系統就是一個協調,管理和控制計算機硬件資源和軟件資源的應用程序

為何要有操作系統

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

操作系統的位置

技術分享

操作系統位於硬件和軟件之間,本質也是一個軟件,操作系統由操作系統的內核(運行於內核態,管理硬件資源)以及系統調用(運行於用戶態,為應用程序員寫的應用程序提供系統調用接口)兩部分組成,所以,單純的說操作系統是運行於內核態的,是不準確的。

操作系統的功能

一:隱藏了醜陋的硬件調用接口,為應用程序員提供調用硬件資源的更好,更簡單,更清晰的模型(系統調用接口)。應用程序員有了這些接口後,就不用再考慮操作硬件的細節,專心開發自己的應用程序即可。

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

操作系統的發展

1.第一代計算機(1940~1955):真空管和穿孔卡片

工作過程:
程序員在墻上的機時表預約一段時間,然後程序員拿著他的插件版到機房裏,將自己的插件板街道計算機裏,這幾個小時內他獨享整個計算機資源,後面的一批人都得等著(兩萬多個真空管經常會有被燒壞的情況出現)。

後來出現了穿孔卡片,可以將程序寫在卡片上,然後讀入機而不用插件板

優點:

程序員在申請的時間段內獨享整個資源,可以即時地調試自己的程序(有bug可以立刻處理)

缺點:

浪費計算機資源,一個時間段內只有一個人用。

2.第二代計算機(1955~1965):晶體管和批處理系統

工作過程:插圖

技術分享

技術分享

第二代如何解決第一代的問題/缺點:
1.把一堆人的輸入攢成一大波輸入,
2.然後順序計算(這是有問題的,但是第二代計算也沒有解決)
3.把一堆人的輸出攢成一大波輸出

現代操作系統的前身:(見圖)

優點:批處理,節省了機時
缺點:
1.整個流程需要人參與控制,將磁帶搬來搬去(中間倆小人)

2.計算的過程仍然是順序計算-》串行

3.程序員原來獨享一段時間的計算機,現在必須被統一規劃到一批作業中,等待結果和重新調試的過程都需要等同批次的其他程序都運作完才可以(這極大的影響了程序的開發效率,無法及時調試程序)

3.第三代計算機(1965~1980):集成電路芯片和多道程序設計

第三代計算機的操作系統廣泛應用了第二代計算機的操作系統沒有的關鍵技術:多道技術

cpu在執行一個任務的過程中,若需要操作硬盤,則發送操作硬盤的指令,指令一旦發出,硬盤上的機械手臂滑動讀取數據到內存中,這一段時間,cpu需要等待,時間可能很短,但對於cpu來說已經很長很長,長到可以讓cpu做很多其他的任務,如果我們讓cpu在這段時間內切換到去做其他的任務,這樣cpu不就充分利用了嗎。這正是多道技術產生的技術背景

多道技術中的多道指的是多個程序,多道技術的實現是為了解決多個程序競爭或者說共享同一個資源(比如cpu)的有序調度問題,解決方式即多路復用,多路復用分為時間上的復用和空間上的復用。

空間上的復用:將內存分為幾部分,每個部分放入一個程序,這樣,同一時間內存中就有了多道程序。

技術分享

時間上的復用:當一個程序在等待I/O時,另一個程序可以使用cpu,如果內存中可以同時存放足夠多的作業,則cpu的利用率可以接近100%,類似於我們小學數學所學的統籌方法

空間上的復用最大的問題是:程序之間的內存必須分割,這種分割需要在硬件層面實現,由操作系統控制。如果內存彼此不分割,則一個程序可以訪問另外一個程序的內存,

首先喪失的是安全性,比如你的qq程序可以訪問操作系統的內存,這意味著你的qq可以拿到操作系統的所有權限。

其次喪失的是穩定性,某個程序崩潰時有可能把別的程序的內存也給回收了,比方說把操作系統的內存給回收了,則操作系統崩潰。

第三代計算機的操作系統仍然是批處理

許多程序員懷念第一代獨享的計算機,可以即時調試自己的程序。為了滿足程序員們很快可以得到響應,出現了分時操作系統

第四代計算機(1980~至今):個人計算機

操作系統簡介