(1)作業系統概述
阿新 • • 發佈:2019-02-05
一、作業系統做了什麼
比如一個簡單的C語言helloworld,它的執行過程是什麼?
1、使用者告訴作業系統執行該程式,比如在命令列執行相應的命令。
2、作業系統:找到helloworld程式的相關資訊,檢查這個程式是不是可執行檔案;並通過程式的首部資訊,來確定程式碼和資料在可執行檔案中的位置並計算出對應的磁碟塊地址。win下是PE格式,linux下是ELF格式。
3、建立一個新的程序,將hellowrold執行檔案對映到該程序結構,表示由該程序來執行這個程式。
4、作業系統:把控制權給排程程式,排程程式選中這個程式時,會設定CPU上下文環境,然後開始執行helloworld程式。
5、執行helloworld程式第一條指令,會發生缺頁異常。為什麼呢?因為程式執行的時候需要把程式的程式碼和資料讀入記憶體,CPU才能去執行。但是此時還沒讀入記憶體,所以出現缺頁異常,把控制交給作業系統。
6、作業系統:分配一頁空閒的實體記憶體,並將程式碼從磁碟讀入記憶體,然後繼續執行helloworld程式,有時候程式很大,會多次發生缺頁異常,然後繼續執行該步驟。
7、helloworl程式執行put函式(系統呼叫),在顯示器上顯示一字串。
8、作業系統:找到要將字串送往的顯示裝置,通常裝置是由一個程序控制的。所以作業系統將要寫的字串送給該程序。
9、作業系統:控制裝置的程序告訴裝置的視窗系統 它要顯示字串,視窗系統確定這是一個合法的操作,然後將字串轉換為畫素,將畫素寫入裝置儲存映像區
10、視訊硬體將畫素轉換成顯示器可以接受的一組控制/資料訊號
11、顯示器解釋訊號,激發液晶屏。
結論:在CPU上執行一個使用者程式,會不斷的請求作業系統。所以CPU上執行的是作業系統和CPU程式。從另一個角度看,作業系統排程使用者程式,然後又陷入作業系統。作業系統負責了程式的啟動和執行,同時也不斷的為使用者程式的執行提供了支援。 二、作業系統的定義和作用 1、作業系統是什麼? 作業系統是計算機系統中的一個系統軟體,是一些程式模組的集合。 1)它們能以儘量有效 、合理的方式組織和管理計算機的軟硬體資源。
2)合理地組織計算機的工作流程,控制程式的執行並向用戶提供各種服務功能。
3)使得使用者能夠靈活、方便地使用計算機,使整個計算機系統高效率執行。 有效:系統效率,資源利用率,CPU利用率是否充足?I/O裝置是否忙碌? 合理:各種軟硬體資源的管理是否公平合理? 方便使用:兩個角度:使用者介面與程式設計介面。 2、作業系統的三個作用: 其一:1)資源的管理者(有效) 硬體資源:CPU,記憶體,裝置(網絡卡,I/O裝置等) 軟體資源:磁碟上的檔案和各類資訊。 問題:怎麼樣管理資源? 1.跟蹤記錄資源的使用狀況,用資料結構來表示,如:哪些資源空閒,分配給誰用,允許使用多長時間等。 2.確定資源分配策略——演算法
向用戶提供各種服務(方便使用)
1)在作業系統上,從使用者角度來看:
作業系統為使用者提供了一組功能強大、方便易用的命令或系統呼叫
2)典型的服務
程序的建立等等...
其三、對硬體機器的擴充套件(擴充套件能力)
應用程式 -----------------虛擬機器器介面 作業系統,對硬體抽象,提高了可移植性。 ----------------物理機器介面 硬體(被遮蔽) 三、作業系統的主要特徵 1、併發---賽馬跑道 指處理多個同時性活動的能力,問題:活動切換、保護、相互依賴的活動間的同步。 計算機系統上同時多個程式執行,在單CPU上 巨集觀上:這些程式同時在執行 微觀上:都只有一 個在執行,只不過是輪流的 2、並行--跨欄有跑道 指不同的程式同時在多個硬體部件上執行。 3、共享: 作業系統與多個使用者的程式共同使用計算機系統中的資源(共享有限系統資源) 作業系統要對系統資源進行合理分配和使用資源,資源在一個時間段內交替被多個程序所用 1)互斥共享(如印表機) 2)同時共享(如可重入程式碼、磁碟檔案) 問題:資源分配難以達到最優化,如何保護資源 4、虛擬: 一個屋裡實體對映為若干個對應的邏輯實體——分時或分空間,提高了資源利用率。 cpu----每個程序的“虛處理器” 儲存器-----每個程序都有獨立的虛擬地址空間(程式碼+資料+堆疊) 顯示裝置-----多視窗或虛擬中斷 5、隨機: 作業系統必須隨時對不可預測的次序發生的事件進行響應 程序的執行速度不可預知:多個程序併發執行,走走停停。 難以重現系統在某個時刻的狀態。
1、使用者告訴作業系統執行該程式,比如在命令列執行相應的命令。
2、作業系統:找到helloworld程式的相關資訊,檢查這個程式是不是可執行檔案;並通過程式的首部資訊,來確定程式碼和資料在可執行檔案中的位置並計算出對應的磁碟塊地址。win下是PE格式,linux下是ELF格式。
3、建立一個新的程序,將hellowrold執行檔案對映到該程序結構,表示由該程序來執行這個程式。
4、作業系統:把控制權給排程程式,排程程式選中這個程式時,會設定CPU上下文環境,然後開始執行helloworld程式。
5、執行helloworld程式第一條指令,會發生缺頁異常。為什麼呢?因為程式執行的時候需要把程式的程式碼和資料讀入記憶體,CPU才能去執行。但是此時還沒讀入記憶體,所以出現缺頁異常,把控制交給作業系統。
6、作業系統:分配一頁空閒的實體記憶體,並將程式碼從磁碟讀入記憶體,然後繼續執行helloworld程式,有時候程式很大,會多次發生缺頁異常,然後繼續執行該步驟。
7、helloworl程式執行put函式(系統呼叫),在顯示器上顯示一字串。
8、作業系統:找到要將字串送往的顯示裝置,通常裝置是由一個程序控制的。所以作業系統將要寫的字串送給該程序。
9、作業系統:控制裝置的程序告訴裝置的視窗系統 它要顯示字串,視窗系統確定這是一個合法的操作,然後將字串轉換為畫素,將畫素寫入裝置儲存映像區
10、視訊硬體將畫素轉換成顯示器可以接受的一組控制/資料訊號
11、顯示器解釋訊號,激發液晶屏。
結論:在CPU上執行一個使用者程式,會不斷的請求作業系統。所以CPU上執行的是作業系統和CPU程式。從另一個角度看,作業系統排程使用者程式,然後又陷入作業系統。作業系統負責了程式的啟動和執行,同時也不斷的為使用者程式的執行提供了支援。 二、作業系統的定義和作用 1、作業系統是什麼? 作業系統是計算機系統中的一個系統軟體,是一些程式模組的集合。 1)它們能以儘量有效
3)使得使用者能夠靈活、方便地使用計算機,使整個計算機系統高效率執行。 有效:系統效率,資源利用率,CPU利用率是否充足?I/O裝置是否忙碌? 合理:各種軟硬體資源的管理是否公平合理? 方便使用:兩個角度:使用者介面與程式設計介面。 2、作業系統的三個作用: 其一:1)資源的管理者(有效) 硬體資源:CPU,記憶體,裝置(網絡卡,I/O裝置等) 軟體資源:磁碟上的檔案和各類資訊。 問題:怎麼樣管理資源? 1.跟蹤記錄資源的使用狀況,用資料結構來表示,如:哪些資源空閒,分配給誰用,允許使用多長時間等。 2.確定資源分配策略——演算法
- 靜態分配策略。程序執行前就把資源拿到手,比較浪費。
- 動態分配策略。在程序執行過程中,分配資源,效率較高。
- 實施資源的分配和回收,分配的過程就是用分配資源的策略選的要分配的程序,然後決定分配多少,再修改相應的資料結構。
- 提供資源利用率
- 保護資源的使用,防止這個程序被另一個程序干擾
- 協調多個程序對資源請求的衝突。
應用程式 -----------------虛擬機器器介面 作業系統,對硬體抽象,提高了可移植性。 ----------------物理機器介面 硬體(被遮蔽) 三、作業系統的主要特徵 1、併發---賽馬跑道 指處理多個同時性活動的能力,問題:活動切換、保護、相互依賴的活動間的同步。 計算機系統上同時多個程式執行,在單CPU上 巨集觀上:這些程式同時在執行 微觀上:都只有一 個在執行,只不過是輪流的 2、並行--跨欄有跑道 指不同的程式同時在多個硬體部件上執行。 3、共享: 作業系統與多個使用者的程式共同使用計算機系統中的資源(共享有限系統資源) 作業系統要對系統資源進行合理分配和使用資源,資源在一個時間段內交替被多個程序所用 1)互斥共享(如印表機) 2)同時共享(如可重入程式碼、磁碟檔案) 問題:資源分配難以達到最優化,如何保護資源 4、虛擬: 一個屋裡實體對映為若干個對應的邏輯實體——分時或分空間,提高了資源利用率。 cpu----每個程序的“虛處理器” 儲存器-----每個程序都有獨立的虛擬地址空間(程式碼+資料+堆疊) 顯示裝置-----多視窗或虛擬中斷 5、隨機: 作業系統必須隨時對不可預測的次序發生的事件進行響應 程序的執行速度不可預知:多個程序併發執行,走走停停。 難以重現系統在某個時刻的狀態。