操做系統作了什麼?
執行helloword程序
1.找到helloworld程序的相關信息,檢查其類型是不是可執行文件,並經過程序首部信息,肯定代碼和數據在可執行文件中的位置並計算出對應的磁盤塊地址
2.建立一個新的進程,並將helloword執行文件映射到該進程結構,表示由該進程執行hellworld程序
3.爲helloword程序設置cpu上下文環境,並跳到程序開始處
4.執行helloworld程序的第一條指令,發生缺頁異常
5.操做系統,分配一頁物理內存,並將代碼從磁盤讀入內存,而後進行執行helloworld程序
6.helloworld程序執行puts函數(系統調用),在顯示器上寫一字符串
7.操做系統找到要將字符串送往的顯示設備,一般設備是由一個進程控制的,因此,操做系統將要寫的字符串送給該進程
8.控制設備的進程告訴設備的窗口系統它要顯示字符串,窗口系統肯定這是一個合法的操做,而後將字符串轉換成像素,將像素寫入設備的存儲印象區
9.視頻硬件將像素轉化成顯示器可接收的一組控制數據信號
10.顯示器解析信號,激發液晶屏
11.在屏幕上看到了'helloworld'
總結:
用戶程序 -os調用->進程管理
用戶程序 -os調用->存儲管理
用戶程序 -os調用->文件系統
操做系統的定義與做用
1. 操做系統是計算機系統中的一個系統軟件,是一些程序模塊的集合
2. 特色
1. 有效:系統效率,資源利用率(cpu,io是否忙碌)
2. 合理:軟硬件資源管理是否合理
3. 方便使用:用戶界面與編程接口
3. 做用
1. 資源的管理者
1.硬件資源:
cpu,內存,設備(i/o設備,磁盤,網卡等)
2.軟件資源:
磁盤上的文件,各種管理信息等
3.怎樣管理資源:
1.跟蹤記錄資源的使用狀況(哪些資源空閒)
2.肯定資源分配策略(算法)
1.靜態分配策略
2.動態分配策略
3.實施資源的分配和回收
4.從資源管理的角度
1.進程/線程管理(cpu管理)
1.進程線程狀態,控制,同步互斥,調度
2.存儲管理
1.分配/回收,地址轉換,存儲保護,內存擴充
3.文件管理
1.文件目錄,文件操做,磁盤管理,文件存取控制
4.設備管理
1.設備驅動,分配回收,緩衝技術
5.用戶接口
1.系統命令,編程接口
2. 向用戶提供各類服務
1.在操做系統之上,從用戶角度來看
1.操做系統爲用戶提供來一組功能強大,方便易用的命令或系統調用
2.典型的服務
1.進程的建立,執行,文件和目錄的操做,i/o設備的使用,各種統計信息
3. 對硬件機器的擴展
1. 應用程序
--------虛擬機器界面
操做系統
--------物理機器界面
硬件
操做系統的主要特徵
1.併發:處理多個同時性的能力
1.問題(活動切換,保護,相互依賴的活動間的同步)
1.計算機系統同時運行多個程序,單cpu上
1.宏觀上這些程序是同時執行
2.微觀上任什麼時候刻只有一個程序真正在執行
2.並行 多指不一樣程序同時在多個硬件部件上執行
2.共享:操做系統與多個用戶程序共同使用計算機系統中的資源,操做系統要對系統資源進程合理分配和使用,資源在同一個時間段內交替被多個進程所用
1.互斥共享(打印機)
2.同時共享(可重入代碼,磁盤文件)
3.虛擬
1.一個物理實體映射爲若干個對應的邏輯實體,分時或分空間
2.虛擬是操做系統管理系統資源的重要手段,可提升資源利用率
1.cpu --每一個進程的'虛處理機'
2.存儲器 --每一個進程都有獨立的虛擬地址空間(代碼+數據+堆棧)
3.顯示設備 -- 多窗口或虛擬終端
4.隨機:操做系統必須隨時對以不可預測的次序發生的事件進行響應並處理
1.進程的運行速度不可預知,多個進程併發執行,走走停停,沒法預知每一個進程的運行推動的快慢
2.難以重現系統在某個時刻的狀態(包括重現運行中的錯誤)
典型操做系統的架構
windows系統體系結構
系統進程 服務進程 用戶進程 環境子系統
動態連接庫(DLL)
-------------------------------------用戶態
系統服務分發起 內核態
內核態可調用接口
執行體
內核 設備驅動程序 圖形與窗口
硬件抽象層(HAL)
---------------------------------------物理硬件
硬件
應用程序
系統功能調用
操做系統
計算機硬件
UNIX操做系統
-------------------------用戶態
系統調用接口
文件系統 進程控制子系統
-------------------------硬件
linux操做系統
-------------用戶態
系統調用接口
文件系統
虛擬內存管理
進程調度
物理內存管理
驅動管理
網絡管理
異常處理
中斷處理
驅動管理
-------------
安卓系統
1.android應用程序
2.應用程序框架
3.系統庫和android運行時
4.linux內核
操做系統的分類
1. 批處理操做系統
1.工做方式
1.用戶將做用交給系統操做員
2.系統操做員將許多用戶的做用組成一批做業,輸入到計算機系統中,在系統中造成一個自動轉接的連續的做業流
3.啓動操做系統
4.系統啓動,依次執行每一個做業
5.由操做員將做業結果交給用戶
2.追求目標
1.提供資源利用率,增長做業處理吞吐量
3.批處理系統中的做業包括
1.用戶程序
2.數據
3.做業說明書
4.成批:一般用若干個做業組成,用戶提交做業後只能等處理結果,不能干預本身做業的執行
5.批做業處理:
1.對一批做業中的每一個做業進行相同的處理,從磁帶讀取用戶做業和編譯連接程序,編譯連接用戶做業以生成可執行程序,啓動執行,執行並輸出結果
6.問題:
1.慢速的輸入輸出處理直接由主機來完成,輸入輸出時,cpu處於等待狀態
7.解決方案:
1.衛星機,完成面向用戶的輸入輸出(紙帶或卡片),中間結果暫存在磁帶或磁盤上
8.spooling系統技術
1.在一臺計算機上利用磁盤做緩衝,將輸入,計算,輸出分佈組織成獨立的任務流,使i/o和計算真正並行
2. 分時系統
1.時間片
操做系統將cpu的時間劃分紅若干個片斷,稱爲時間片
2.分時系統與批處理系統結合
3. 實時操做系統
1.是指計算機可以及時響應外部事件的請求,在規定的嚴格時間內完成對該事件的處理,並控制全部實時設備和實時任務協調一致的工做
4. 我的計算機操做系統
5. 網絡操做系統
1.按網絡體系結果協議標準開發的軟件
6. 分佈式操做系統
1.以計算機網絡爲基礎,或以多處理機爲基礎
7. 嵌入式操做系統
1.在各類設備,裝置或系統中,完成特定功能的軟硬件系統汽車,手機,電視機,mp3播放器