操作系統做了什么
以一個簡單的C語言程序為例:
下面是操作系統對程序的運行過程:
操作系統是什么?
操作系統是計算機系統中的一個系統軟件,是一些程序模塊的集合-----
1) 它們能以盡量有效、合理的方式組合和管理計算機的軟硬資源
2) 合理地組織計算機的工作流程,控制程序的執行並向用戶提供各種服務功能
3) 使得用戶能夠靈活、方便地使用 計算機,使得整個計算機系統高效運行
有效:系統效率,資源利用率
CPU利用率充足與否?I/O設備是否忙碌?
合理:各種軟硬件資源的管理是否公平合理
如果不公平、不合理、則可能產生問題
方便使用:
兩種角度:用戶界面 與 編程接口
從資源管理的角度———五大基本功能
1) 進程/線程管理(CPU)
進程線程狀態、控制、同步互斥、通信、調度、……
2) 存儲管理
分配/回收、地址轉換、存儲保護、內存擴充、……
3) 文件管理
文件目錄、文件操作、磁盤空間、文件存取控制、……
4) 設備管理
設備驅動、分配回收、緩沖技術、……
5) 用戶接口
系統命令、編程接口
OS對硬件機器的擴展
操作系統在應用程序與硬件之間建立了一個等價的擴展機器(虛擬機)
對硬件抽象,提高可移植性;比底層硬件更容易編程。
操作系統的特征
OS特征—並發
並發(concurrency):指處理多個同時性活動的能力
由於並發將會引發很多問題:
活動切換、保護、互相依賴的活動間的同步
在計算機系統中同時存在多個程序運行,單CPU上
宏觀上:這些程序同時在執行
微觀上:任何時刻只有一個程序真正在執行,即這些程序在CPU上是輪流執行的
並行(parallel):與並發相似,但多指不同程序同時在多個硬件部件上執行。
OS特征—共享
共享(sharing):
操作系統與與多個用戶的程序共同使用計算機系統中的資源(共享有限的系統資源)
操作系統要對系統資源進行合理分配和使用資源在一個時間段內交替被多個進程所用
互斥共享(如打印機)
同時共享(如可重入代碼、磁盤文件)
問題:資源分配難以達到最優化,如何保護資源?
OS特征—虛擬
虛擬(Virtual):
一個物理實體映射為若干個對應的邏輯實體—分時或空間
虛擬是操作系統管理系統資源的重要手段,可提高資源利用率
CPU—每個進程的“虛處理機”
存儲器—每個進程都有獨立的虛擬地址空間(代碼+數據+堆棧)
顯示設備—多窗口或虛擬終端
OS特征—隨機
隨機:操作系統必須隨時對已不可預測的次序發生的事件進行響應並處理