1. 程式人生 > >作業系統學習筆記--作業系統基本概念

作業系統學習筆記--作業系統基本概念

**綜述:
1.作業系統的概念、特徵、功能和提供的服務
2.作業系統的發展和分類
3.作業系統的執行環境
4.作業系統的體系結構**

1.作業系統的概念、特徵、功能和提供的服務

作業系統的概念

作業系統是控制和管理計算機軟、硬體資源,以儘可能合理、高效的方法為不同的使用者及其應用程式提供服務的一種系統程式。
1)使用者使用的角度看:既可以直接用命令直接控制,也可以通過系統呼叫程式設計來實現
2)資源管理的角度看:作業系統提高系統資源的利用率,高效地在程序之間切換,合理分配記憶體。
3)發展的角度看,作業系統是一臺虛擬機器。
[例子]vmware java虛擬機器 手機

應用程式A 應用程式B 應用程式C
————————————————
應用程式A |開發工具以及環境
————————————————
作業系統
————————————————
計算機硬體

作業系統:提供一個訪問硬體、使用硬體的平臺,作業系統做的和硬體有關,和應用無關,可以被應用程式呼叫。

裝個windows:帶了很多應用軟體->其他的捆綁軟體->不是作業系統
蘋果:APPLE:store 商店裡有很多應用。

作業系統特徵
併發
共享
虛擬
不確定性
1)併發和並行

並行是真正意義上的同時。併發是巨集觀上同時,微觀上交替,單處理器上利用分時,是的多個程序能夠併發執行。
[例子]花錢購買計算機,不能讓它一直閒置,要讓它跑起來,追求效率。作業系統:讓你的程序跑起來,而且將這些資源安排的井井有條。

2)共享

程序併發執行必然帶來共享,共享的時候,臨界資源互斥使用,只讀資源,誰都可以訪問

3)虛擬

引入虛擬很多工作能夠在虛擬環境下工作。VMWARE一臺計算機虛擬成若干臺邏輯上的計算機

4)不確定性

併發引起的,一旦兩個程式併發,哪個是A,哪個是B,跑起來就亂了,後面會提到怎麼讓程式執行安全。作業系統的存在:比如時間片輪轉,作業系統在安排程式的時候,使用者不知道怎麼安排這些程序,這些都由作業系統來做,系統越大BUG越多,作業系統儘可能讓計算機執行確定。

作業系統功能
程序管理
儲存管理
檔案管理
裝置管理

作業系統服務

公共服務:
命令控制介面:命令列,GUI,指令碼,NUL
系統呼叫服務:程式設計用
建立、開啟、讀、寫、關閉、刪除
printf(“Hello world”);不是系統呼叫,呼叫WRITE寫到顯卡里,打包起來成為API。API是多個系統呼叫和部分程式碼的綜合,比系統呼叫功能更加強大

———-

2.作業系統的發展和分類

作業系統的發展
大型計算機、巨型計算機
軍用計算機、工業控制計算機
嵌入式計算機要求精簡、功能強大
行動式裝置要求省電、電池持續耐力強
作業系統的分類
單使用者作業系統
批處理作業系統

單道批處理;多道批處理。離線,聯機

分時作業系統
實時系統

    硬實時;軟實時

網路作業系統
分散式作業系統
並行作業系統

3.作業系統的執行環境

核心態與使用者態

核心態和使用者態,許可權不同,作業系統執行在核心態,可以訪問所有資源,不能訪問到使用者的。使用者反之也是。使用者想用資源,需要系統系統呼叫,通常時候實現使用者態和核心態轉換的時候是用中斷。
核心態與使用者態:作業系統執行在核心態(特權指令)、使用者程式碼執行的狀態(訪管指令)。訪管指令通過中斷實現,使用者態-->核心態。

中斷、異常

與中斷有關的是中斷服務程式,異常實際上是三種:陷阱、故障、終止。陷阱:軟中斷。使用者進入核心態,要有訪管指令-->異常,異常實際上是軟中斷。

系統呼叫

陷入機制(訪管指令)
核心態

現代作業系統出了提供直接使用系統呼叫指令的介面外,通常提供了一套方便、實用的程式應用程式函式庫API。
作業系統的有機組成部分,有專門工具可以開發。系統呼叫組成這些庫。系統程式設計要建內部庫,這些庫將來給使用者用的。

4.作業系統的體系結構

整體式(無結構)

早期的作業系統是無結構的

層次式

分成不同層面:使用者層面、核心層面

微核心(客戶/伺服器)

將來要提供什麼服務,將這些系統商量好,外掛。unix作業系統,unix的核心非常下,加人機互動的SHELL,很多可以去加

模組式(面向物件)

面向物件的方式來封裝這些功能。