




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第1章 操作系統概述呂鳴松呂鳴松嵌入嵌入式系統研究所,東北大學式系統研究所,東北大學20152015年年3 3月月操作系統原理2015年春季課程主要內容 操作系統的基本概念 操作系統歷史 操作系統主要功能概述 操作系統接口 操作系統的結構2022-3-3Operating Systems Overview2操作系統定義2022-3-3Operating Systems Overview3An operating system (OS) is a collection of software that manages computer hardware resources and provide
2、s common services for computer programs.wikipedia操作系統在計算機中的位置2022-3-3Operating Systems Overview4操作系統舉例2022-3-3Operating Systems Overview5操作系統作為“擴展機” 以操作磁盤為例 硬件說明書:450頁(2007年第一代SATA硬盤) 驅動程序(disk driver) 操作系統程序接口2022-3-3Operating Systems Overview6丑陋的硬件接口漂亮的OS接口操作系統作為“資源管理者” 如何更加有效的使用計算機硬件資源,使之可以為更多的用戶
3、服務 資源的共享(multiplexing) 時間上的共享 空間上的共享 操作系統的自身發展能力 支持新硬件,提供新服務 操作系統補丁2022-3-3Operating Systems Overview7操作系統的歷史 史前時代(1945-55)無操作系統 硬件:真空管計算機,計算機數字化趨勢2022-3-3Operating Systems Overview8程序員提前預約好時間,帶著自己精心組裝好的插件板到機房插到計算機上。在接下來的幾個小時里,祈禱幾萬個真空管不會燒壞,從而可以完成一個余弦計算。操作系統的歷史 史前時代(1945-55)無操作系統 50年代早期,出現了穿孔卡片:程序寫在卡
4、片上然后讀入計算機,而不用插板,但計算過程依舊2022-3-3Operating Systems Overview9操作系統的歷史 遠古時代(1955-65)簡單批處理系統 硬件更加可靠,可以長時間運轉 明確的角色分工:設計者、操作員、程序員等2022-3-3Operating Systems Overview10操作系統的歷史 遠古時代(1955-65)簡單批處理系統 主要矛盾:操作員傳遞作業成為性能瓶頸,機器昂貴 解決方案:大型機 + 衛星機;大型機中運行監控程序,負責切換作業2022-3-3Operating Systems Overview11操作系統的歷史 近古時代(1965-80)
5、多道程序系統 硬件趨勢:集成電路的發展(IC) 使得在一臺計算機上集成大型機和衛星機的功能成為可能,運算更快,可以服務于多種不同應用 (傳說中的 IBM 360)2022-3-3Operating Systems Overview12操作系統的歷史 近古時代(1965-80)多道程序系統 操作系統概念出現,規模變大:百萬行機器代碼,上千程序員 成千上萬的bug,改多少,添多少bug守恒 更大的矛盾:CPU資源嚴重浪費(快速CPU與慢速外設的矛盾)2022-3-3Operating Systems Overview13操作系統的歷史 近古時代(1965-80)多道程序系統 多道程序系統的特點 在
6、內存中存放多道相互獨立的程序 多個程序交替占用CPU 宏觀上并行,微觀上串行并發 大大提高了CPU使用率2022-3-3Operating Systems Overview14操作系統的歷史 分時系統(Time Sharing Systems) 驅動力 計算機依然龐大,個人擁有計算機不現實多人分享 “交互式計算”需求顯著增加,如何使每個用戶感覺自己獨占計算機? 基本原理 多個用戶通過終端訪問計算機 操作系統負責讓多個用戶交替使用計算機,每人獲得一個很短的時間片(如果20個人中有17個人正在思考問題,則計算機供另外3個人使用)2022-3-3Operating Systems Overview1
7、5操作系統的歷史 代表系統MULTICS(MULTiplexed Information and Computing Service) 由貝爾實驗室與GE聯合開發,后MIT接手 愿景:把插頭插在墻上,你就有了電;把終端打開,你就有了計算力 似曾相識?YES!云計算 雖沒有得到廣泛應用,但是用MULTICS的都是當時的牛逼公司,最長的一用就是30幾年 其設計思想,對后世操作系統的發展起到了重大影響2022-3-3Operating Systems Overview16操作系統的歷史 UNIX家族的興起 貝爾實驗室的Ken Thompson在PDP-7計算機上開發一個“單用戶”版的MULTICS,
8、后來成為了UNIX Dennis Ritchie后來加入開發,UNIX運行在PDP-11計算機上 兩人發表論文,獲得1984年“圖靈獎” 隨著PDP-11計算機在大學里的廣泛使用,UNIX被推廣 由于源代碼公開,出現了很多版本,兩個重要版本(1)System V by AT&T;(2)BSD UNIX by Univ. of Berkeley IEEE提出了POSIX接口 Andrew Tanenbaum在UNIX基礎上開發了教學用的MINIX系統 若干年以后,一個芬蘭小伙子Linus Trovalds受MINIX啟發,開發了一個操作系統,叫做Linux 后來,又有了Mac OS,An
9、droid, 2022-3-3Operating Systems Overview17操作系統的歷史 個人計算機操作系統(1980-現在) 硬件驅動:大規模集成電路個人擁有計算機成為可能 1974年,Intel 8080 CPU出現,Kildall為其開發了CP/M操作系統,創辦Digital Research公司,CP/M成為業界主流2022-3-3Operating Systems Overview18操作系統的歷史 個人計算機操作系統(1980-現在) 1980年代,IBM研制出了著名的IBM PC,尋找操作系統 IBM找到了一個年輕有為的小伙子,因為他手里有一個叫做BASIC的解釋器
10、比爾弟弟說:你們該去找Digital Research,他們才是操作系統領域的大老虎 于是IBM去找Kildall,出人意料,Kildall沒鳥IBM 于是IBM又找到比爾,“老弟,還得靠你啊” 比爾發現了一個叫做Seattle Computer Products的公司做了一個系統,叫做DOS 比爾以其敏銳的專業嗅覺,花75000美元買下了DOS,又拉來了DOS的主創Tim Paterson,跟自家的BASIC合為一體,修煉出了大名鼎鼎的MS-DOS 比爾做了一個重要的商業決策:MS-DOS將隨新計算機綁定出售 MS-DOS統治PC市場,CP/M沒落,Kildall離奇死亡2022-3-3Op
11、erating Systems Overview19操作系統的歷史 個人計算機操作系統(1980-現在) 蘋果的故事 引子:斯坦福研究院的Doug Engelbart在1960年發明了一種圖形用戶界面,后被Xerox相中,集成到了自家機器里 有一天,喬蜀黍訪問Xerox,偶然遇見GUI,一見傾心 憑借其敏銳的嗅覺,喬蜀黍認為GUI必將一統江湖,遂加班加點趕制一款GUI,用在他在自己車庫里開發的電腦上,這款電腦叫Apple 第一代產品太貴,賣的不好。后來有了跑GUI的Macintosh,蘋果電腦風靡 1999年,Jobs從CMU取得了一個基于UNIX的微內核Mach,開發了后來眾所周知的Mac
12、OS X,再后來的事情你就不陌生了2022-3-3Operating Systems Overview20操作系統的歷史 個人計算機操作系統(1980-現在) Windows的故事 雖然MS-DOS很成功,比爾看到Macintosh也是醉了 于是,在MS-DOS上套了GUI的殼子,出現了最早的Windows 后來,Windows 95,98出現 但這兩者都不是純粹的32位系統,為此微軟開發了NT NT的主創同時是另一家公司VAX VMS系統的開發者,為此微軟被DEC公司起訴,為此支付了數額巨大的費用,但是 NT Windows 2000 Windows XP Windows XP Vista
13、Windows 7 Windows 8 10 2022-3-3Operating Systems Overview21操作系統的歷史 移動設備操作系統(1990-現在) 2000年前后,手機盛行,各公司定制的系統 90年代中期,NOKIA推出N9000,出現了PDA的概念;97年愛立信在GS88設備上首次提出了smartphone這個名詞2022-3-3Operating Systems Overview22操作系統的歷史 移動設備操作系統(1990-現在) 早期的三足鼎立 Symbian OS:諾基亞,三星,摩托羅拉,索尼 iOS:蘋果,第一代iPhone RIM:黑莓 后來,Sybian生
14、態圈封閉,垮臺 Android 81.5% iOS 14.8% Windows Mobile 2.7%2022-3-3Operating Systems Overview23操作系統演進關系2022-3-3Operating Systems Overview24從歷史發展看操作系統本質 操作系統的出現,本質上是為了應對系統復雜性 硬件復雜性 用戶需求(應用需求)復雜性 通過引入操作系統,大大簡化了用戶對計算機的使用,簡化了程序開發2022-3-3Operating Systems Overview25計算機系統的組成2022-3-3Operating Systems Overview26操作系
15、統的主要功能2022-3-3Operating Systems Overview27設備管理文件管理處理機管理存儲管理用戶接口操作接口編程接口操作系統的主要功能 處理機管理 創建和刪除用戶/系統進程 進程的啟動與停止 調度多個進程在CPU上執行 提供進程間通信和同步的機制 存儲器管理 存儲器的分配與釋放 地址映射:邏輯地址到內存物理地址映射 存儲保護:保證不同程序間互不干擾、互相保密 內存擴充:虛擬內存,擴大系統的內存空間2022-3-3Operating Systems Overview28操作系統的主要功能 文件管理 外存空閑空間管理與分配 磁盤調度 文件/文件夾的創建與刪除 目錄管理:解
16、決信息檢索問題 文件的讀寫管理和存取控制:解決信息安全問題2022-3-3Operating Systems Overview29操作系統功能 設備管理 設備操作:利用設備驅動程序完成對設備的操作 設備獨立性:提供統一的I/O設備接口,使應用程序獨立于物理設備,提高可適應性;在同樣的接口和操作下完成不同的內容 設備分配與回收:在多用戶間共享I/O設備資源 緩沖區管理:匹配CPU和外設的速度,提高兩者的利用率。主機與外設并行2022-3-3Operating Systems Overview30用戶接口 本質:用戶與操作系統“溝通”的通道 用戶需要將自己的意圖正確方便的傳達給操作系統 操作系統將
17、結果呈現給用戶 根據用戶類型的不同,用戶接口的定義亦不同 普通用戶(操作級接口) 如何使用操作系統已經提供的功能 重點是信息的呈現形式,便于使用 程序開發人員(程序級接口) 如何在編程過程中,使用操作系統提供的功能 系統調用(System Call)、庫函數(Library)2022-3-3Operating Systems Overview31操作級接口 在UNIX,Linux操作系統中盛行2022-3-3Operating Systems Overview32操作級接口 命令與命令解釋器 用戶通過命令行界面輸入的叫做“命令” “命令”通過“命令解釋器(Command Interpreter
18、)”得以最終執行 命令解釋器 區分“命令的識別”和“命令的執行” 一般命令解釋器 Shell2022-3-3Operating Systems Overview33操作級接口 一般命令解釋器 解釋器既識別命令,也執行命令 解釋器對命令的執行,體現為調用“系統調用” 支持的命令越多,解釋器軟件就越龐大 Shell 僅識別命令,不執行命令 對命令的執行,是通過調用其它“系統程序”來完成的 常用于Linux/Unix操作系統2022-3-3Operating Systems Overview34操作級接口 圖形用戶接口(Graphical User Interface, GUI) 桌面,圖標,文件夾
19、等等 高性能顯示設備,鼠標等2022-3-3Operating Systems Overview35操作級接口 圖形用戶接口(Graphical User Interface, GUI) 移動設備:觸控輸入、輔助設備2022-3-3Operating Systems Overview36操作級接口 Google Glass - Augmented Reality 2022-3-3Operating Systems Overview37操作級接口 操作級接口的選擇 普通用戶基本上都會選擇GUI 系統管理員往往選擇命令行接口 雖然學習過程難度大,一旦熟練,效率很高 GUI通常不能支持全部的操作系統
20、功能 通過Shell script,可以在命令行接口,編寫極為復雜的操作2022-3-3Operating Systems Overview38程序級接口 應用軟件也是需要使用操作系統所提供的功能的,如何在程序中實現這一目的? 系統調用(System Call) 在操作系統發行之時,由操作系統開發者提供 本質上是一種特殊的“程序調用”接口2022-3-3Operating Systems Overview39程序級接口 應用程序接口(Application Programming Interface, API) 程序級接口,在編程中使用 Windows API, POSIX API in Un
21、ix, JAVA API 終端編程者使用API,提供API的開發者在API的具體實現中調用“操作系統調用” 可以帶參數,可以有返回值2022-3-3Operating Systems Overview40程序級接口 程序API與操作系統調用之間的關系2022-3-3Operating Systems Overview41程序級接口 常見操作系統調用2022-3-3Operating Systems Overview42操作系統的設計目標 可靠性(Reliablity) Do exactly what is designed to 主要挑戰:系統狀態空間太大,軟件測試無法覆蓋所有可能,給惡意軟件
22、以可乘之機 操作系統補丁 可用性(Availability) 系統百分之多少的時間里是可用的(MTTF,MTTR) 經常出錯,還丟失用戶數據:不可靠,不可用 經常出錯,但從不丟失數據,從不受到攻擊:可靠,不可用 會被破壞,但能持續運行:不可靠,可用2022-3-3Operating Systems Overview43操作系統的設計目標 安全性(Security) 安全性:不會被惡意攻擊所破壞 隱私性:數據僅被有權限的用戶訪問 可靠性 典型措施:錯誤隔離(Fault Isolation) 主要挑戰:共享與隔離之間的矛盾與權衡2022-3-3Operating Systems Overview4
23、4操作系統的設計目標 可移植性(Portability) 一次編寫,到處運行 手機上網:WiFi,藍牙,GPRS, 操作系統自身的設計也需要可移植性 主要考慮是工程量太大 “主要功能”與“硬件抽象”分離2022-3-3Operating Systems Overview45操作系統的設計目標 性能(Performance) 通過效率、Overhead來衡量 Overhead:操作系統在實現抽象過程中帶來的額外開銷 操作系統的資源仲裁機制與策略 延遲:一個任務(個體)從開始到結束所用的時間 吞吐率:系統單位時間內能夠處理的工作總量(整體) 小延遲與大吞吐率有正向關系,但并非一定如此2022-3-3Opera
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 探討對2025年證券從業資格證考試的遞延策略試題及答案
- 現代審計與風險控制的結合試題及答案
- 財務決策應對策略試題及答案2025
- 江蘇省泰州市本年度(2025)小學一年級數學部編版隨堂測試(下學期)試卷及答案
- 財務分析工具金融理財師考試試題及答案
- 證券市場信息不對稱現象試題及答案
- 常見財務報表分析方法試題及答案
- 考前沖刺微生物檢驗試題及答案
- 微生物同時檢驗技術相關試題
- 項目管理技能檢驗試題及答案
- 防止電力生產事故的二十五項重點
- 第二屆全國物流設計大賽一等獎作品:北京交通大學一隊全國決賽作品
- ABB變頻器ACS510說明書
- 汽車4S店維修結算清單
- 校園網站設計論文
- GB/T 17213.4-2015工業過程控制閥第4部分:檢驗和例行試驗
- 磷酸鐵鋰生產配方及工藝
- 電工電子技術及應用全套課件
- DB33T 1233-2021 基坑工程地下連續墻技術規程
- 《新農技推廣法解讀》ppt課件
- 社區家庭病床護理記錄文本匯總
評論
0/150
提交評論