操作系统原理课件_第1页
操作系统原理课件_第2页
操作系统原理课件_第3页
操作系统原理课件_第4页
操作系统原理课件_第5页
已阅读5页,还剩673页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系統原理PrinciplesofOperatingSystem第一章操作系統概述操作系統的基本概念操作系統的特徵研究操作系統的幾種觀點操作系統的技術發展過程著名的操作系統操作系統的分類操作系統的功能操作系統標準化操作系統的地位作為用戶與電腦硬體系統之間的介面電腦硬體操作系統系統調用,命令,圖示,窗口應用程式及實用程式系統設計者程式員用戶操作系統向上提供兩種介面:系統命令:供用戶用於組織和控制自己的作業運行。命令行、菜單式或GUI(聯機);命令腳本(脫機)編程介面:供用戶程式和系統程式調用操作系統功能。系統調用和高級語言庫函數目標:提供一個友好的用戶訪問操作系統的介面。用戶介面操作系統的定義操作系統是電腦系統中的一個系統軟體,是一些程式模組的集合——它們能以儘量有效、合理的方式組織和管理電腦的軟硬體資源,合理的組織電腦的工作流程,控制程式的執行並向用戶提供各種服務功能,使得用戶能夠靈活、方便、有效的使用電腦,使整個電腦系統能高效地運行方便性電腦只能識別0、1;用戶熟悉的是各種語言。有效性使電腦的各類資源在系統的管理下得到更有效的利用,提高系統吞吐量。可擴充性便於修改和增加功能(如何設計?)。開放性系統能支持世界標準規範。操作系統的目標操作系統的特徵併發(concurrency):處理多個同時性活動的能力在電腦系統中同時存在多個程式宏觀上:這些程式是同時在執行的微觀上:任何時刻只有一個程式在執行(單CPU)即微觀上這些程式在CPU上輪流執行並行(parallel):(與併發相似,但多指硬體支持)由併發引起的問題:活動切換、保護、相互依賴的活動間的同步共用(sharing):

操作系統與多個用戶的程式共同使用電腦系統中的資源(共用有限的系統資源)操作系統要對系統資源進行合理分配和使用資源在一個時間段內交替被多個進程所用互斥共用(如音頻設備)同時訪問(如可重入代碼,磁片檔)資源分配難以達到最優化虛擬(Virtual):一個物理實體映射為若干個對應的邏輯實體--分時或分空間。虛擬是操作系統管理系統資源的重要手段,可提高資源利用率CPU--每個用戶(進程)的"虛處理機"

記憶體--每個進程都佔有的地址空間(指令+數據+堆疊)顯示設備--多窗口或虛擬終端隨機性:操作系統必須隨時對以不可預測的次序發生的事件進行回應

進程的運行速度不可預知:分時系統中,多個進程併發執行,“走走停停”,無法預知每個進程的運行推進快慢難以重現系統在某個時刻的狀態(包括重現運行中的錯誤)不確定性:由共用和併發引起在操作系統中可運行多道用戶程式,而每個用戶程式的運行時間、要使用哪些系統資源、使用多長時間、使用的資源是共用還是獨佔的,操作系統在程式運行前是不知道的要求操作系統的設計要很好地解決併發和共用的問題,否則,將會產生不可重現的錯誤,這種不可重現的錯誤稱為不確定性例子:兩個用戶共用一臺印表機研究操作系統的幾種觀點作為軟體來看的觀點資源管理的觀點進程的觀點虛機器觀點服務提供者觀點作為軟體來看的觀點軟體的特性外在特性 軟體是種語言,是介面 介面:使用方式(命令,系統調用等)內在特性 軟體的結構

a.由有幾部分組成

b.每個部分的功能

c.部分之間的關係資源管理的觀點操作系統資源管理者(自底向上)操作系統管理一個複雜系統的各個部分硬體資源:CPU,記憶體,外部設備(I/O設備,外存,時鐘,網路介面等)軟體資源:硬碟上的檔,資訊兩種方式實現複用(共用):時間

空間記錄資源使用狀況如哪些資源空閒,好壞與否,被誰使用,使用多長時間等合理的分配資源靜態分配策略(在程式運行前分配,但效率不高)動態分配策略(在程式運行過程中何時用資源,何時分配。其缺點是會出現死鎖)具體完成分配回收資源資源管理的目的:實現資源共用提高資源利用率操作系統功能進程和線程管理(CPU管理)存儲管理檔管理設備管理作業管理進程的觀點從操作系統運行的角度動態的觀察操作系統。從這個觀點來看:操作系統是由一些可同時獨立運行的進程和一個對這些進程進行協調的核心組成。進程:完成某一特定功能的程式是程式的一次執行過程是動態有生命的,當它執行時存在,否則消亡虛擬機觀點從操作系統內部結構來看:把操作系統分成若干層每一層完成其特定功從而構成一個虛機器,並對上一層提供支持通過逐層功能擴充,最終完成整個操作系統虛機器而操作系統虛機器向用戶提供各種功能,完成用戶請求服務提供者的觀點在操作系統之外從用戶角度來看:操作系統為用戶提供一組功能強大的、方便易用的命令或系統調用操作系統作為標準服務提供者

提供每個用戶需要的標準工具如標準庫、窗口系統程式創建和執行存取I/O設備控制對檔的存取系統存取錯誤檢測和回應統計其他觀點操作系統作為仲裁者(協調者)

使多個應用程式/用戶高效,公平地一起工作保護用戶不互相干擾例子:併發,存儲保護,檔系統,網路操作系統作為管理程式

硬體平臺擴展為運行平臺運行平臺是承載應用程式的載體平臺之爭企業競爭的範圍已經超出了市場、資本和技術競爭的焦點:表面上:平臺(標準)實質上:爭奪產業的制高點不斷提高電腦資源利用率的需要如批處理系統的出現方便用戶如分時互動式系統的出現器件的不斷更新換代8位-16-32-64-...電腦體系結構的不斷發展:單機OS-多機OS-網路OS-…操作系統發展的主要動力操作系統的發展過程-第1階段(1948-1970)硬體昂貴,人工便宜

更有效地利用硬體資源,缺乏用戶和電腦之間的交互控制臺:一次一個用戶批處理:裝入程式→運行→列印輸出(保護:無)數據通道、中斷:I/O和計算重疊多道程序設計:多個程式同時運行,多個用戶共用系統(需要存儲保護)操作系統必須管理所有程式的交接、運行、複雜操作系統的發展過程-第2階段(1970-1985)硬體便宜,人工昂貴交互分時:

利用便宜的終端

→多個用戶同時與系統交互犧牲CPU時間→用戶得到更好的回應時間

用戶可以線上工作:開發、調試、編輯等問題:增加用戶時系統性能降低(回應時間、抖動)操作系統的發展過程-第3階段(1981-)硬體非常便宜,人工非常昂貴

面臨挑戰:如何利用電腦充分發揮人的時間個人計算時代

開始PC硬體資源有限一次運行一個程式。OS是一個例程庫,回歸簡單。逐漸PC資源豐富OS又成為一個龐然大物(大型OS)存儲保護、多道程序設計又出現操作系統的發展過程-第4階段(1981-)分佈式系統網路:允許不同機器很容易共用資源

(印表機、檔伺服器、Web伺服器)客戶/伺服器模型解決問題:共用,安全操作系統的發展過程-第5階段(1995-)移動系統時代各種移動設備出現(筆記本、PDA等等)特點:小型、移動、便宜,但能力有限無線支持可以leverage分佈式系統的資源2.隨歷史線索,介紹一些重要的操作系統FMS(FORTRANMonitorSystem)和IBSYS

(IBM為7094配備的操作系統)OS/360(IBM為系列機360配備的操作系統)CTSS(CompatibleTimeSharingSystem)MULTICS(MULTiplexedInformationandComputerService)UNIX類、LinuxCP/M歷史上的操作系統(1)歷史上的操作系統(2)MS-DOS、Windows3.1/95/98/Me、WindowsNT、Windows2000/XP、WindowsCE、WindowsServer2003MacintoshOS/390MachVxWorks嵌入式領域國產操作系統研究型操作系統批處理操作系統-現代操作系統雛型運行一個作業的步驟:將程式寫在紙上(用高級語言或組合語言)穿孔成卡片,再將卡片盒交給操作員計算結果從印表機上輸出操作員到印表機上撕下運算結果送到輸出室程式員稍後可從輸出室取到結果操作員從輸入室的卡片盒中讀入另一個任務如果需要FORTRAN編譯器,還要把它取來讀入電腦缺點:機時在走來走去時浪費掉為改進主存和I/O設備之間的吞吐量

IBM7094機引入了I/O處理機概念。思想:在輸入室收集全部的作業,用一臺相對便宜的電腦(IBM1401電腦),將作業讀到磁帶上。再用較昂貴的電腦(IBM7094)完成真正的計算。卡片早期批處理系統IBM1401IBM7094IBM1401輸入磁帶磁帶機卡片閱讀機輸出磁帶印表機典型的操作系統FMS(FORTRANMonitorSystem,FORTRAN監控系統)IBMSYS(IBM為7094機配備的操作系統)這些操作系統由監控程序,特權指令,存儲保護和簡單的批處理構成OS/360操作系統當前存在的問題:20世紀60年代初期,電腦開始採用積體電路,多數廠商有幾條完全不同的生產線,生產不同的電腦。開發和維護完全不同的產品,對廠商來說是昂貴的。新的用戶在開始時只需要一臺小電腦,後來可能需要一臺大的電腦,並希望能在新電腦上執行原有的程式。廠家和用戶需要軟體在不同型號的電腦之間相容。1964年IBM宣佈推出System/360電腦系統第一個採用小規模積體電路的主流機型試圖一次性地解決上述問題由於所有的電腦都有相同的體系結構和指令集,在理論上,為一型號編寫的程式可以在其他型號機器上運行IBMSystem/360的若干問題IBM無法寫出同時滿足互衝突需要的操作系統其實別人也一樣不能完成此項任務IBMOS/360檔系統中有類型字段,定義檔的類型,有定長、不定長記錄、塊狀和非塊狀檔用戶對於輸出檔的大小,只有通過猜測。存儲管理有基地址寄存器尋址方式,程式也可以訪問和修改基地址寄存器,但是CPU生成的卻是絕對地址,雖然不用進行動態再分配,但程式卻被“釘死”在調入記憶體時的物理地址上。數千名程式員寫的數百萬行組合語言代碼系統自身佔據了大量存儲空間和一半的CPU時間。數百萬行彙編代碼中有成千上萬處錯誤。IBM不斷發行新的版本試圖更正這些錯誤每個新版本在更正老錯誤的同時又引入新錯誤。隨著時間的流逝,錯誤的數量大致保持不變。多道程序設計技術(multiprogramming)在IBM7094機上,若當前作業因等待I/O而暫停,

CUP只能“踏步‘直至該I/O完成;對於CPU操作密集科學計算問題,浪費時間少;對於商業數據處理,I/O等待時間常占80%-90%。解決辦法將記憶體分幾個部分,每部分放不同的作業;當一個作業等待I/O時,另一個作業可以使用CPU;在主存中同時駐留多個作業需要硬體進行保護,以避免資訊被竊取或攻擊。單道程式運行情況用戶程式監督程式I/O操作I/O中斷請求啟動I/OI/O完成結束中斷I/O中斷請求啟動I/OI/O完成結束中斷t1t2t3t4t5t6t7t8四道程式運行情況程式A調度程式I/O請求程式B程式C程式DI/O請求I/O請求I/O請求I/O完成I/O完成I/O完成A完成表示獲得CPUC再運行Spooling技術程式卡片被拿到機房後能夠很快將一作業從卡片讀入磁片任何時刻當一作業運行結束操作系統就將一新作業從磁片讀出裝入空出的記憶體區運行Spooling技術

(SimultaneousPeripheralOperationOnLine)該技術也用於輸出多道批處理系統(2)需解決的問題處理機管理問題記憶體管理問題I/O管理問題檔管理問題作業管理問題分時系統的產生分時系統的思想——1959年在MIT提出每個用戶有一個聯機終端;在分時系統中,假設20個用戶登錄;其中17個在思考或談論或喝咖啡;則CPU可分配給那三個需要的作業(輪流服務)。調試程式的用戶常常只發出簡短的命令;很少有長的費時命令。電腦能夠為許多用戶提供互動式、快速服務;同時在CPU空閒時還能在後臺運行大作業。第一個分時系統(CTSS)由MIT的FernandoCorbato等1961年在一改裝的IBM7090/94機上開發成功(有32個互動式用戶)。IBM7090/94電腦有32K記憶體,系統用5K,用戶用27K,用戶存儲映象在內存和一臺磁鼓之間切換。1962年Manchester大學的Atlas電腦投入運行;運行速度200kFLOPS。第一個有虛擬記憶體(virtualmemory)

和頁面調度(paging)的機器。指令執行是pipelined的。MULTICS的災難1965年在ARPA的支持下MIT、貝爾實驗室和通用電氣公司決定開發一種“公用計算服務系統”,希望能夠同時支持整個波士頓所有的分時用戶。該系統稱作MULTICS(MULTiplexedInformationandComputingService)MULTICS設計目標是:便利的終端使用——大量遠程終端通過電話線接入電腦主機高可靠的大型檔系統——大容量的用戶資訊共用;存儲和構造層次化資訊結構的能力MULTICS研製難度超出所有人的預料(PL/1語言),長期研製工作達不到預期目標,1969年4月貝爾實驗室退出,通用電氣公司也退出。最終,MIT堅持下來,MULTICS成功運行,成為商業產品(通用汽車、福特、美國國家安全局等),運行MULTICS的電腦系統在九十年代中陸續被關閉(加拿大國防部於2000年10月30日17:08)MULTICS的意義引入了許多現代操作系統領域概念雛形,對隨後的操作系統特別是UNIX的成功有著巨大的影響。小型電腦,電子遊戲和UNIX的成功1969年,在貝爾退出MULTICS研製專案後,KenThompson和DennisM.Ritchie想申請經費買電腦從事操作系統研究,但多次申請得不到批准專案無著落,他們在一臺無人用的PDP-7上,重新擺弄原先在MULTICS專案上設計的“空間旅行”遊戲為了使遊戲能夠在PDP-7上順利運行,他們陸續開發了浮點運算軟體包、顯示驅動軟體,設計了檔系統、實用程式、shell和組合語言程式到了1970年,在一切完成後,給新系統起了個同MULTICS發音相近的名字UNIX隨後,UNIX用C語言全部重寫,自此,UNIX誕生了UNIXUNIX是現代操作系統的代表。Unix運行時的安全性、可靠性以及強大的計算能力贏得廣大用戶的信賴。促使UNIX系統成功的因素:

首先,由於UNIX是用C語言編寫,因此它是可移植的,UNIX是世界上唯一能在筆記本電腦、PC機、工作站直至巨型機上運行的操作系統。第二,系統源代碼非常有效,系統容易適應特殊的需求。最後,也是最重要的一點,它是一個良好的、通用的、多用戶、多任務、分時操作系統。兩個版本系列

AT&TSystemVBSD(BerkeleySoftwareDistribution)MINUXVAX(DEC公司)其他CP/M操作系統隨著大規模積體電路發展,個人電腦時代到來,各種類型的個人電腦和軟體層出不窮。1973年GaryKildall看到對個人電腦操作系統的需求,設計了CP/M操作系統(ControlProgram/MicroprocessororMicrocomputer)。CP/M操作系統有較好的層次結構。它的BIOS把操作系統的其他模組與硬體配置分隔開,所以它的可移植性好,具有較好的可適應性和易學易用性。到了1981年,CP/M操作系統成為世界上流行最廣的8位操作系統之一。微軟MSDOS個人電腦的成功,逼得IBM採取緊急戰略行動,決定要在1980年儘快生產出微型電腦,以應付挑戰。但沒有操作系統不行。要想快就是找現成系統配套,IBM公司洽談CP/M操作系統不順利,機遇落到了微軟公司。在關鍵時刻,開發新操作系統時間和人手上已經不可能,微軟找到西雅圖電腦產品公司,達成由微軟經銷西雅圖電腦產品公司的QDOS操作系統的協議。當時西雅圖公司並不知道QDOS將被轉賣給IBM,否則歷史將會怎樣演變,誰也無法知曉。IBM在1981年推出個人電腦,宣佈了DOS操作系統。隨著IBMPC和MSDOS普及,CP/M逐漸走向下坡路。MSDOS有優良的檔系統,但受到Intelx86體系結構的限制,缺乏以硬體為基礎的存儲保護機制。它屬於單用戶單任務操作系統。從1981的1.0版到1998年在Windows95/98之下的7.0版,MSDOS歷經了16個年頭。迄今仍有MSDOS愛好者繼續開發各種DOS軟體產品。拯救蘋果公司的Macintosh(MACOS)在推出IBMPC機後,市場卷起一股龍捲風,IBM自己也沒有料到產品會有如此巨大的成功IBM的成功說明必有其他公司失敗。甚至連蘋果公司也遇到了問題,銷售數量落到了蘭色巨人的後面蘋果公司推出Lisa機遭到失敗,AppleIII型也遭到失敗分析家們認為,在微機市場上的戰鬥似乎蘭色巨人要嬴了施樂PaloAlto研究中心

——70年代的電腦研究思想庫世界上第一臺個人電腦Alto,1972年在這裏出現圖形介面,手持滑鼠,面向對象程式設計微機網路,桌面出版和鐳射列印等等具有先進概念和技術的原型都首次出現在這裏1979年蘋果公司允許施樂公司購買一百萬股的蘋果公司股票;作為回報,施樂公司允許蘋果公司的少數人員,包括喬布斯,在有限的時間內考察施樂公司PaloAlto研究中心內部,並同該思想庫的研究人員交談。蘋果公司對PaloAlto研究中心內的技術大感吃驚。他們更吃驚的是,施樂公司在擁有這些寶貴技術的同時竟然什麼也沒有做!對PaloAlto研究中心這些科學家們而言,蘋果公司的人是他們第一次遇到真正理解他們技術的人。這些科學家們後來有的去了蘋果公司,微軟公司,有的最終創辦了自己的公司。在訪問的基礎上,蘋果決定立即開發採用這些新技術的個人電腦。蘋果公司已看到IBMPC機的技術有多麼糟糕,但他們賣得又是特別的好。1984年,人們看到一則廣告:“Whatwasthat?”和對Macintosh的介紹,這是配有圖形介面操作系統MACOS和滑鼠的新型個人電腦。MAC機一上市立即在市場上獲得極大的成功。當年比爾.蓋茨都說,這是一臺他的媽媽也能使用的電腦。Macintosh把蘋果公司從連續的失敗中拯救出來蘋果公司又開始向前發展。正是Mac先進圖形介面操作系統技術,超前PC機若干年,造就了一批蘋果的忠實追隨者。一波三折的微軟Windows操作系統1983年10月,PC機競爭廠家的圖形介面相關產品上市。面對市場壓力,比爾.蓋茨在1983年11月10日宣佈推出Windows操作系統。直到1985年11月20日,Windows1.0才正式上市。1992年4月,推出Windows3.1,1993年5月,發表WindowsNT。Windows95/98,WindowsCE,Windows2000/XP,WindowsServer2003(.net)。Longhorn嵌入式操作系統VxWorksWindRiver公司VxWorks支持各種工業標準,包括POSIX,ANSIC和TCP/IP網路協議VxWorks運行系統的核心是一高效率的微內核微內核支持各種即時功能,包括快速多任務處理,中斷支持,搶佔式和輪轉式調度微內核設計減輕了系統負載並可快速回應外部事件從只需幾千位元組記憶體的深嵌式產品設計到複雜高端即時系統設計,開發人員有八十多個選件並可構成上百個不同的配置VxWorks開發主機:Windows9x,WindowsNT,SunSolaris,SunOS,HP-UX等支持目標微處理器:86,68k,PPC,CPU32,i960,SPARC,SPARCLite,SH,ColdFire,R3000,R4000,C16X,ARM,MIPS等在“勇氣號”(2004年1月)、“極地登陸者”號,“深空二號”和火星氣候軌道器等登陸火星探測器上,就採用了VxWorksVxWorks負責火星探測器全部飛行控制,包括飛行糾正、載體自旋和降落時的高度控制等,而且還負責數據收集和與地球的通信工作目前在國內也佔據嵌入式開發系統市場主要份額Internet時代与Linux1990年秋天,Linus在芬蘭首都赫爾辛基大學學習操作系統課程,因為上機需要排隊等待,Linus買了臺PC機,開發了第一個程式,程式包括兩個進程,向螢幕上寫字母,然後用定時器來切換進程Linus需要終端仿真程式來存取Usenet新聞組的內容,於是他編寫了從數據機上接發信息的程式以及顯示器、鍵盤和數據機的驅動程式然後編寫了磁片驅動程式、檔系統,一旦有了進程切換、檔系統和設備驅動程式,當然就擁有了一個操作系統原型,至少是它的一個內核Linux就以這樣極其古怪但也極其自然式問世Internet時代與Linux操作系統領域中新的操作系統有線電視機頂盒領域PowerTV掌上電腦領域PalmOS數字影像領域Digita手機Symbian,SmartPhone,PalmOS其他Nucleus,VxWorks嵌入式Linux:uClinux,MontaVistaLinux,LynxOS操作系統的分類批處理操作系統(多道批處理)分時系統即時操作系統個人電腦操作系統網路操作系統分佈式操作系統嵌入式操作系統批處理操作系統工作方式:1、用戶將作業交給系統操作員;2、系統操作員將許多用戶的作業組成一批作業,輸入到電腦系統中,在系統中形成一個自動轉接的連續的作業流;3、啟動操作系統;4、系統自動、依次執行每個作業;5、由操作員將作業結果交給用戶。批處理操作系統批處理系統中的作業的組成:用戶程式數據作業說明書(作業控制語言)

批:

供一次加載的磁帶或磁片,通常由若干個作業組裝成,在處理中使用一組相同的系統軟體(系統帶)批作業處理:

對批作業中的每個作業進行相同的處理:從磁帶讀入用戶作業和編譯鏈接程式,編譯鏈接用戶作業,生成可執行程式;啟動執行;執行結果輸出

問題:

慢速的輸入輸出處理直接由主機來完成,輸入輸出時,CPU處於等待狀態解決:衛星機:完成面向用戶的輸入輸出(紙帶或卡片),中間結果暫存在磁帶或磁片上單道批處理系統(simplebatchprocessing,uni-programming)

多道批處理系統(multiprogrammingsystem)

批處理操作系統特點多道:記憶體中同時存放幾個作業某個作業佔用CPU,若由於某種原因暫時不用CPU,則系統讓第二個作業佔用CPU。成批處理:用戶自己不能干預自己作業的運行,一旦發現作業錯誤不能及時改正,並延長開發軟體時間,所以適用於成熟的程式。批處理操作系統優缺點優點:作業流程自動化→資源利用率高

吞吐量大——

單位時間內完成的工作總量大

缺點:用戶交互性差,調試程式困難(無交互手段:整個作業完成後或中間出錯時,才與用戶交互,不利於調試和修改)

作業平均周轉時間長短作業的周轉時間顯著增長

分時操作系統工作方式:一臺主機連接了若干個終端每個終端有一個用戶在使用互動式的向系統提出命令請求系統接受每個用戶的命令採用時間片輪轉方式處理服務請求通過交互方式在終端上向用戶顯示結果用戶根據上步結果發出下道命令主機終端時間片(timeslice)

操作系統將CPU的時間劃分成若干個片段,稱為時間片操作系統以時間片為單位,輪流為每個終端用戶服務每次服務一個時間片(其特點是利用人的錯覺,使人感覺不到)分時操作系統特點多路性交互性“獨佔”性及時性同時有多個用戶使用一臺電腦宏觀上:是多個人同時使用一個CPU微觀上:多個人在不同時刻輪流使用CPU用戶根據系統回應結果進一步提出新請求(用戶直接干預每一步)用戶感覺不到電腦為其他人服務(OS提供虛機器,各個用戶的虛機器互不干擾)系統對用戶提出的請求及時回應實現(條件):終端設備輪轉演算法會話語言一般資源獨佔,“滾進滾出”方法追求目標:

及時回應(依據是回應時間)回應時間:從終端發出命令到系統給予回答所經歷的時間影響回應時間的因素:

-機器處理能力

-請求服務的時間長短

-系統中連接的終端數目

-服務請求的分佈

-調度演算法(時間片的選取)通用操作系統分時系統與批處理系統結合原則:分時優先,批處理在後

“前臺”:需頻繁交互的作業

“後臺”:時間性要求不強的作業即時(操作)系統

是指使電腦能及時回應外部事件的請求,在規定的嚴格時間內完成對該事件的處理,並控制所有即時設備和即時任務協調一致地工作的操作系統分類:第一類:即時過程控制工業控制,軍事控制,...第二類:即時通信(資訊)處理電訊(自動交換),銀行,飛機訂票股市行情追求目標:對外部請求在嚴格時間範圍內作出反應高可靠性VxWorks,QNX特徵:

關鍵參數是時間例子:工業過程控制系統——汽車裝配線硬實時系統某個動作絕對必須在規定的時刻或時間範圍完成(例子?)軟即時系統接受偶爾違反最終時限(例子?)即時系統的主要功能即時時鐘管理:提供系統日期和時間、定時和延時等時鐘管理功能超載保護:緩衝區排隊,丟棄某些任務,動態調整任務週期高度可靠性和安全性:容錯能力(如故障自動複位)和冗餘備份(雙機,關鍵部件)即時系統與批處理系統和分時系統的區別專用系統:許多即時系統是專用系統,而批處理與分時系統通常是通用系統即時控制:即時系統用於控制即時過程,要求對外部事件的迅速回應,具有較強的中斷處理機構高可靠性:即時系統用於控制重要過程,要求高度可靠,具有較高冗餘(如雙機系統)事件驅動和佇列驅動:即時系統的工作方式:接受外部消息,分析消息,調用相應處理程式進行處理。個人電腦操作系統(單用戶多任務)電腦在某一時間內為單用戶服務,其追求目標是介面友好,使用方便,豐富的應用軟體。網路操作系統基於電腦網絡在各種電腦操作系統上按網路體系結構協議標準開發的軟體包括網路管理,通信,安全,資源共用和各種網路應用目標:是相互通信及資源共用通常操作系統的功能:處理機管理、記憶體管理、設備管理、檔管理等網路通信功能:通過網路協議進行高效、可靠的數據傳輸網路資源管理:協調各用戶使用網路服務:檔和設備共用,資訊發佈網路管理:安全管理、故障管理、性能管理等互操作:直接控制對方比交換數據更為困難網路操作系統的功能分佈式操作系統分佈式系統:處理和控制的分散(相對於集中式系統)分佈式系統是以電腦網絡為基礎的,它的基本特徵是處理上的分佈,即功能和任務的分佈分佈式操作系統的所有系統任務可在系統中任何處理機上運行,自動實現全系統範圍內的任務分配並自動調度各處理機的工作負載1.是一個統一的操作系統若干個電腦可相互協作共同完成一項任務2.資源進一步共用3.透明性:

資源共用,分佈對用戶來講是不知道的4.自治性:

處於分佈式系統的多個主機處於平等地位,無主從關係5.處理能力增強、速度更快、可靠性增強分佈式操作系統特徵網路和分佈式的比較耦合程度分佈式系統是緊密耦合系統,分佈式OS是在各機上統一建立的,直接管理CPU、記憶體和外設;統一進行全系統的管理;網路通常容許異種OS互連,各機上各種服務程式需按不同網路協議互操作並行性分佈式OS可以將一個進程分散在各機上並行執行"進程遷移";網路則各機上的進程獨立透明性用戶是否知道或指定資源在哪個機器上分佈式系統的網路資源調度對用戶透明,用戶不了解所佔有資源的位置;網路操作系統中對網路資源的使用要由用戶明確指定健壯性分佈式系統要求更強的容錯能力(工作時系統重構)嵌入式操作系統什麼是嵌入式系統?在各種設備、裝置或系統中,完成特定功能的軟硬體系統它們是一個大設備、裝置或系統中的一部分,這個大設備、裝置或系統可以不是“電腦”通常工作在反應式或對處理時間有較嚴格要求環境中由於它們被嵌入在各種設備、裝置或系統中,因此稱為嵌入式系統嵌入式操作系統(EmbeddedOperatingSystem)是運行在嵌入式系統環境中,對整個嵌入式系統以及它所操作、控制的各種部件裝置等等資源進行統一協調、調度、指揮和控制的系統軟體。嵌入式操作系統的應用智能卡移動通信電腦外設機頂盒零售設備印刷機影印機互聯網伺服器電話交換設備嵌入式操作系統具有某些即時系統的特徵但有限制條件

大小、記憶體、能源例子

PalmOS,WindowsCE操作系統的另一種分類主機操作系統伺服器操作系統多處理機操作系統個人電腦操作系統即時操作系統嵌入式操作系統智能卡操作系統操作系統的標準化沒有標準化各個操作系統之間不能相容大量應用軟體無法在不同的操作系統平臺上通用後果投資增加開發週期加長用戶掌握困難,影響推廣應用通用操作系統的標準化UNIX的標準化1970年代早期的UNIX是一個版本各個廠家開發出各自的UNIX版本,各自互不相容1987年AT&T/Sun組織了UNIXInternational

其他公司組織了OpenSoftwareFoundation(OSF)OSF發佈了POSIX.1UNIXInternational(UI)發佈了Ultrix4.2經過長時間的鬥爭,UNIX基本統一在OpenGroup標準:

IEEEPOSIX(PortableOperatingSystemInterface)最新版本遵守SingleUNIXSpecificationUNIX93,UNIX95,UNIX98,最新UNIX03操作系統的國際標準POSIX標準(1003)ISO/IEC9945-1:1990InformationTechnology—PortableOperatingSystemInterface同時被X/Open接納為操作系統標準其中9945-4(即POSIX1003.4)為即時部分操作系統的國際標準(續)操作系統的國家標準GB/T14246.1-1995可移植操作系統介面等同於POSIX1003.1操作系統的國家軍用標準GJB/Z22-91軍用即時操作系統實現指南通用操作系統的標準化Linux標準化由FreeStandardsGroup(FSG)承擔主要標準化專案:LinuxStandardBase(LSB)LSB定義在不同硬體體系結構上的Linux的二進位介面OpenI18N(formerlyLi18nux)。OpenI18N涉及不同語言應用的共同國際標準有機構正在從事電信級Linux標準化Linux標準化在中國已發佈了徵求意見稿操作系統運行的硬體環境組成討論操作系統對運行硬體環境的要求討論操作系統設計者考慮的硬體問題操作系統運行的硬體環境組成中央處理器(CPU)存儲系統中斷機制I/O系統時鐘以及時鐘佇列其他概述任何系統軟體都是硬體功能的延伸操作系統直接依賴於硬體條件OS的硬體環境以較分散的形式同各種管理相結合實現操作系統時必須理解的電腦基本結構操作系統管理的重要資源簡單的個人電腦中的部件Monitor2.1中央處理器(CPU)專門設計了一系列基本機制:-具有特權級別的處理器狀態,能在不同特權級運行的各種特權指令-硬體機制使得OS可以和普通程式隔離實現保護和控制CPU的構成與基本工作方式處理器由運算器、控制器、一系列的寄存器以及高速緩存構成運算器實現指令中的算術和邏輯運算,是電腦計算的核心控制器負責控制程式運行的流程,包括取指令、維護CPU狀態、CPU與記憶體的交互等等寄存器是指令在CPU內部作處理的過程中暫存數據、地址以及指令資訊的存儲設備。在電腦的存儲系統中它具有最快的訪問速度。高速緩存處於CPU和物理記憶體之間一般由控制器中的記憶體管理單元(MMU:MemoryManagementUnit)管理訪問速度快於記憶體,低於寄存器利用程式局部性原理使得高速指令處理和低速記憶體訪問得以匹配,從而提高CPU的效率。處理器中的寄存器寄存器提供了一定的存儲能力速度比主存快得多造價高,容量一般都很小兩類寄存器:用戶可見寄存器,高級語言編譯器通過演算法分配並使用之,以減少程式訪問主存次數控制和狀態寄存器,用於控制處理器的操作由OS的特權代碼使用,以控制其他程式的執行用戶可見寄存器機器語言直接引用包括數據寄存器、地址寄存器以及條件碼寄存器數據寄存器(dataregister)又稱通用寄存器主要用於各種算術邏輯指令和訪存指令地址寄存器(addressregister)用於存儲數據及指令的物理地址、線性地址或者有效地址,用於某種特定方式的尋址。如indexregister、segmentpointer、stackpointer條件碼寄存器保存CPU操作結果的各種標記位如算術運算產生的溢出、符號等等控制和狀態寄存器用於控制處理器的操作大部分對於用戶是不可見的一部分可以在某種特權模式(OS使用)下訪問常見的控制和狀態寄存器:程式計數器(PC:ProgramCounter),記錄將要取出的指令的地址指令寄存器(IR:InstructionRegister),包含最近取出的指令程式狀態字(PSW:ProgramStatusWord),記錄處理器的運行模式資訊等等指令執行的基本過程先從記憶體中每次讀取一條指令然後執行這條指令一個單條指令處理過程稱為一個指令週期;程式的執行是由不斷取指和執行的指令週期組成;僅當關機、出錯或有停機相關指令時,程式才停止.每個指令週期開始時,依據在程式計數器中的指令地址從記憶體中取一條指令在取指完成後根據指令類別自動將程式計數器的值變成下條指令的地址,自增1取到的指令放在指令寄存器中處理器解釋並執行所要求的動作5類指令訪問記憶體指令:處理器和記憶體間數據傳送I/O指令:處理器和I/O模組間數據傳送和命令發送算術邏輯指令(數據處理指令):執行數據算術和邏輯操作控制轉移指令:指定一個新的指令的執行起點處理器控制指令:修改處理器狀態,改變處理器工作方式特權指令和非特權指令特權指令:只能由操作系統使用的指令。使用多道程序設計技術的電腦指令系統必須要區分為特權指令和非特權指令特權指令一般引起處理器狀態的切換處理器通過特殊的機制將處理器狀態切換到操作系統運行的特權狀態(管態)然後將處理權移交給操作系統中的一段特殊代碼,這一個過程稱為陷入

CPU如何知道當前運行的是操作系統還是一般應用軟體?有賴於處理器狀態的標識。處理器的狀態根據運行程式對資源和機器指令的使用權限將處理器設置為不同狀態。多數系統將處理器工作狀態劃分為管態和目態。管態:操作系統管理程式運行的狀態,較高的特權級別,又稱為特權態(特態)、核心態、系統態目態:用戶程式運行時的狀態,較低的特權級別,又稱為普通態(普態)、用戶態。有些系統將處理器狀態劃分核心狀態、管理狀態和用戶程式狀態(目標狀態)三種。實例:x86系列處理器386、486、Pentium系列都支持4個處理器特權級別(特權環:R0、R1、R2和R3)從R0到R3特權能力依次降低R0相當於雙狀態系統的管態R3相當於目態R1和R2則介於兩者之間,它們能夠運行的指令集合具有包含關係:各個級別有保護性檢查(地址校驗、I/O限制)特權級別之間的轉換方式不盡相同四個級別運行不同類別的程式:R0-運行操作系統核心代碼R1-運行關鍵設備驅動程式和I/O處理例程R2-運行其他受保護共用代碼,如語言系統運行環境R3-運行各種用戶程式現有基於x86處理器的操作系統,多數UNIX、Linux以及Windows系列大都只用了R0和R3兩個特權級別管態和目態的差別處理器處於管態時:全部指令(包括特權指令)可以執行可使用所有資源並具有改變處理器狀態的能力處理器處於目態時:只有非特權指令能執行特權級別不同,可運行指令集合也不同特權級別越高,可以運行指令集合越大高特權級別對應的可運行指令集合包含低特權級的

在PSW中專門設置一位,根據運行程式使用指令的許可權而設置CPU狀態。CPU的工作狀態碼——指明管態還是目態,用來說明當前在CPU上執行的是操作系統還是一般用戶,從而決定其是否可以使用特權指令或擁有其他的特殊權力。條件碼——反映指令執行後的結果特徵。中斷遮罩碼——指出是否允許中斷。程式狀態字PSW例:微處理器M68000的程式狀態字條件位:C:進位標誌位 V:溢出標誌位Z:結果為零標誌位 N:結果為負標誌位I0–I2:三位中斷遮罩位S:CPU狀態標誌位,為1處於管態,為0處於目態T:陷阱(Trap)中斷指示位為1,在下一條指令執行後引起自陷中斷例:微處理器Pentium的程式狀態字CF:進位標誌位ZF:結果為零標誌位SF:符號標誌位OF:溢出標誌位標準條件位:TF:陷阱標誌位IF:中斷允許(中斷遮罩)標誌位VIF:虛擬中斷標誌位VIP:虛擬中斷待決標誌位IOPL:IO特權級別

CPU狀態的轉換目態→管態唯一途徑是中斷管態→目態設置PSW(修改程式狀態字)可實現2.2存儲系統支持OS運行硬體環境的一個重要方面:作業必須把它的程式和數據存放在記憶體中才能運行;多道程系統中,若干個程式和相關的數據要放入記憶體;操作系統要管理、保護程式和數據,使它們不至於受到破壞;操作系統本身也要存放在記憶體中並運行。記憶體的類型半導體記憶體記憶體晶片的內部組織結構靜態記憶體(SRAM)非同步動態隨機記憶體(DRAM)同步動態隨機記憶體(SDRAM)雙倍數據速率SDRAM(DDRSDRAM)(開放標準)Rambus公司的SDRAM只讀型記憶體ROM(Read-OnlyMemory):只能從其中讀取數據,但不能隨意用普通方法寫入數據(寫入數據只能用特殊方法)在微機中,一些常駐記憶體的模組以微程式形式固化在ROM中,如:PCBIOS和CBASIC解釋程式被固化於ROM中PROM:可編程只讀記憶體,使用特殊PROM寫入器寫入數據EPROM:電可擦寫可編程只讀記憶體,用特殊的紫外線光照射此晶片,以“擦去”資訊,恢復原來狀態,再使用特殊EPROM寫入器寫入數據閃存(flashmemory)記憶體的層次結構存儲系統設計三個問題:容量、速度和成本容量:需求無止境速度:能匹配處理器的速度成本問題:成本和其他部件相比應在合適範圍之內容量、速度和成本三個目標不可能同時達到最優,要作權衡存取速度快,每比特價格高容量大,每比特價格越低,同時存取速度也越慢解決方案:採用層次化的存儲體系結構當沿著層次下降時每比特的價格將下降,容量將增大速度將變慢,處理器的訪問頻率也將下降存儲訪問局部性原理提高存儲系統效能關鍵點:程式存儲訪問局部性原理程式執行時,有很多的迴圈和副程式調用,一旦進入這樣的程式段,就會重複存取相同的指令集合;對數據存取也有局部性,在較短的時間內,穩定地保持在一個記憶體的局部區域。處理器主要和記憶體的局部打交道在經過一段時間以後,使用的代碼和數據集合會改變設計多級存儲的體系結構原則:級別較低記憶體比率小於級別較高記憶體比率假設兩級記憶體: 第I級包含1KB,存取時間為0.1μs

第II級包含1MB,存取時間為1μs存取I級中的內容,直接存取存取II級,首先被轉移到I級,然後再存取假設確定內容所在位置時間可以忽略若在I級記憶體中發現存取對象的概率是95%,則平均訪問時間為:結果非常接近I級存儲的存取時間一個簡單二級存儲系統的性能存儲分塊存儲最小單位:“二進位”,包含資訊為0或1最小編址單位:位元組,一個位元組包含八個二進位主流個人電腦主存:128MB~512MB之間輔助記憶體:在20GB~70GB工作站、伺服器主存:512MB~4GB之間硬碟容量:數百GB為簡化分配和管理,記憶體分成塊,稱一個物理頁(Page)塊的大小:512B、1K、4K、8K存儲保護設施

對主存中的資訊加以嚴格的保護,使操作系統及其他程式不被破壞,是其正確運行的基本條件之一。多用戶,多任務操作系統:

OS給每個運行進程分配一個存儲區域。問題:多個程式同時在同一臺機器上運行,怎樣才能互不侵犯?如何處理重定位?保護的硬體支持解決方案依賴於配有特殊硬體的CPU硬體可提供如下功能:界地址寄存器(界限寄存器)存儲鍵界地址寄存器(界限寄存器)界地址寄存器被廣泛使用的一種存儲保護技術機制比較簡單,易於實現實現方法:在CPU中設置一對下限寄存器和上限寄存器存放用戶作業在主存中的下限和上限地址也可將一個寄存器作為基址寄存器,另一寄存器作為限長寄存器(指示存儲區長度)每當CPU要訪問主存,硬體自動將被訪問的主存地址與界限寄存器的內容進行比較,以判斷是否越界如果未越界,則按此地址訪問主存,否則將產生程式中斷——越界中斷(存儲保護中斷)界地址寄存器存儲保護技術存儲鍵每個存儲塊有一個由二進位組成的存儲保護鍵一用戶作業被允許進入主存,OS分給它一個唯一的存儲鍵號並將分配給該作業各存儲塊存儲鍵也置成同樣鍵號當OS挑選該作業運行時,OS將它的存儲鍵號放入程式狀態字PSW存儲鍵(“鑰匙”)域中每當CPU訪問主存時,都將該主存塊的存儲鍵與PSW中的“鑰匙”進行比較如果相匹配,則允許訪問,否則,拒絕並報警2.3緩衝技術緩衝區是硬體設備之間進行數據傳輸時,用來暫存數據的一個存儲區域緩衝技術三種用途:處理器與主記憶體之間處理器和其他外部設備之間設備與設備之間的通信目的:解決部件之間速度不匹配的問題多緩衝區(Cache)技術單緩衝區:設備向緩衝區輸入數據直到裝滿後必須等待CPU將其取完,才能繼續向其中輸入數據為了提高設備利用率,單緩衝區不夠多緩衝區(Cache)技術:Cache:離CPU最近,使CPU快速訪問常使用的數據CPU首先到一級Cache中找如果沒有,CPU到二級Cache中找如果沒有,CPU到系統記憶體中找一級Cache,CPU先訪問,性能對系統性能作用很大Cache與主記憶體2.4中斷技術中斷對於操作系統的重要性就像機器中的驅動齒輪一樣所以有人把操作系統稱為是由“中斷驅動”或者“(中斷)事件驅動”它使得OS可以捕獲用戶程式發出的系統功能調用及時處理設備的中斷請求防止用戶程式中破壞性的活動等等中斷的概念CPU對系統發生的某個事件作出的一種反應CPU暫停正在執行的程式,保留現場後自動轉去執行相應事件的處理程式,處理完成後返回中斷點,繼續執行被打斷的程式特點:

1)中斷隨機的

2)中斷是可恢復的

3)中斷是自動處理的引入中斷的目的解決主機與外設的並行工作問題實現即時控制中斷/異常:指系統發生某個非同步/同步事件後,處理機暫停正在執行的程式,轉去執行處理該事件程式的過程。中斷的引入:為了開發CPU和通道(或設備)之間的並行操作,當CPU啟動通道(或設備)進行輸入/輸出後,通道便(或設備)可以獨立工作了,CPU也可以轉去做與此次輸入/輸出不相關的事情,那麼通道(或設備)輸入/輸出完成後,還必須告訴CPU繼續輸入/輸出以後的事情,通道(或設備)通過向CPU發中斷告訴CPU此次輸入/輸出結束。異常引入:用於表示CPU執行指令時本身出現算術溢出、零做除數、取數時的奇偶錯,訪存指令越界或就是執行了一條所謂“異常指令”(用於實現系統調用)等情況,這時中斷當前的執行流程,轉到相應的錯誤處理程式或異常處理程式。注意:最早中斷和異常並沒有區分,都把它們叫做中斷。隨著它們的發生原因和處理方式的差別愈發明顯,才有了以後的中斷和異常。中斷(外中斷)異常(內中斷)例外I/O中斷時鐘中斷系統調用缺頁異常中斷點指令其他程式性異常(如算術溢出等)中斷(狹義)與異常的區別:中斷:

與正執行指令無關,可以遮罩異常:

與正執行指令有關,不可遮罩廣義中斷中斷系統中斷系統是現代電腦系統的核心機制之一;硬體和軟體相互配合、相互滲透而使得電腦系統得以充分發揮能力的計算模式;中斷系統的兩大組成部分:硬體中斷裝置和軟體中斷處理程式。中斷系統的硬體中斷裝置-中斷系統的機制部分負責捕獲中斷源發出的中斷請求,以一定方式回應中斷源,然後將處理器控制權交給特定的中斷處理程式軟體中斷處理程式-中斷系統的策略部分負責辨別中斷類型並做出相應的操作中斷系統中的相關概念中斷源:引起中斷發生的事件中斷寄存器:記錄中斷中斷字:中斷寄存器的內容系統堆疊:

在内存开辟的一块区域,用于临时保存现场中斷優先順序和中斷遮罩中斷優先順序設計原則:一般來說,高速設備的中斷優先順序高,慢速設備的中斷優先順序低。因為高速設備的中斷被處理機優先回應時,可以讓處理機儘快地向它發出下一個I/O請求,提高高速設備的利用率。如:PDP-11機上的UNIX系統把中斷級別分為:時鐘中斷——中斷優先順序=6級磁片中斷——中斷優先順序=5級終端等其他外設中斷——中斷優先順序=4級處理機優先順序:指出處理機正運行程式的中斷回應級別。即當處理機處於某一優先順序時,只允許處理機去回應比該優先順序高的中斷,而遮罩低於或等於該優先順序的中斷。可以通過置處理機優先順序來通知硬體:遮罩優先順序小於等於處理機優先順序的中斷。中斷遮罩:指禁止處理機回應中斷或禁止中斷出現。中斷遮罩有兩種方法:硬體實現——由軟體置處理機優先順序,硬體按系統設計時的約定,遮罩那些低優先順序中斷。軟體實現——由軟體按操作系統優先順序約定,設置遮罩寄存器。中斷類型強迫性中斷正在運行的程式所不期望的,由於某種硬體故障或外部請求引起的。自願性中斷用戶在程式中有意識安排的中斷,是由於用戶在編制程式時因為要求操作系統提供服務,有意使用“訪管”指令或系統調用,使中斷發生。強迫性中斷輸入/輸出(I/O)中斷:主要來自外部設備通道程式性中斷:運行程式中本身的中斷(如溢出,缺頁中斷,缺段中斷,地址越界)時鐘中斷控制臺中斷硬體故障自願性中斷執行I/O,創建進程,分配記憶體信號量操作,發送/接收消息微機中的中斷1.可遮罩中斷(IO中斷)2.不可遮罩中斷(機器內部故障、掉電中斷)3.程式錯誤中斷(溢出、除法錯等中斷)4.軟體中斷(Trap指令或中斷指令INT)IBM370中的中斷1.機器故障中斷:如電源故障,機器電路檢驗錯等2.輸入輸出中斷:輸入輸出設備和通道數據傳輸狀態)3.外部中斷:時鐘中斷,操作員控制臺中斷,多機系統中其他機器的通信要求中斷,各種外設或感測器發來的即時中斷等4.程式中斷:程式中的問題引起的中斷,如錯誤地使用指令或數據、溢出等問題,存儲保護等5.訪管中斷:訪管指令或陷阱指令(Trap指令)中的運算元規定了要求服務的類型。每當CPU執行訪管指令或陷阱指令時,即引起中斷並調用操作系統相應的功能模組為其服務中斷回應CPU如何回應中斷,兩個問題:

CPU何時回應中斷?通常在CPU執行了一條指令以後,更確切地,在指令週期最後時刻接受中斷請求,或此時掃描中斷寄存器如何知道提出中斷請求的設備或中斷源?因為只有知道中斷源或中斷設備,才能調用相應的中斷處理程式處理器如何發現中斷信號?處理器的控制部件中設一個能檢測中斷的機構稱為中斷掃描機構。在每條指令執行週期的最後時刻掃描中斷寄存器,詢問是否有中斷信號若無中斷信號,繼續執行下一條指令若有中斷,中斷硬體將該中斷觸發器內容按規定編碼送入PSW的相應位,稱為中斷碼通過交換中斷向量引出中斷處理程式開始取下一條指令執行指令檢查指令處理中斷停止取週期執行週期中斷週期不允許中斷允許中斷用軟體指令去查詢各設備介面這種方法比較費時多數微型機對此問題的解決方法:使用一種“向量中斷”的硬體設施“中斷向量”:當CPU接受某中斷請求時,該設備介面給處理器發送具有唯一性的“中斷向量”,以標識該設備“中斷向量”在各電腦上實現方法差別比較大中斷向量:一個存放中斷處理程式入口地址和程式運行所需處理機狀態字的記憶體單元.硬體按中斷號、異常類型的不同通過中斷向量表轉移.在有的機器中:將主存最低位128個字保留作為中斷向量表,每個中斷向量占兩個字。中斷請求的設備介面為了標識自己,向處理器發送一個該設備在中斷向量表中表目的地址指針中斷處理簡單的中斷處理-典型的處理過程:(1)設備給處理器發一個中斷信號(2)處理器處理完當前指令後回應中斷,延遲非常短(要求處理器沒有關閉中斷)(3)處理器處理完當前指令後檢測到中斷,判斷出中斷來源並向發送中斷的設備發送了確認中斷信號,確認信號使得該設備將中斷信號恢復到一般狀態(4)處理器開始為軟體處理中斷做準備:保存中斷點的程式執行上下文環境,這通常包括程式狀態字PSW,程式計數器PC中的下一條指令位置,一些寄存器的值,它們通常保存在系統控制棧中,處理器狀態被切換到管態。(5)處理器根據中斷源查詢中斷向量表,獲得與該中斷相聯系的處理程式入口地址,並將PC置成該地址,處理器開始一個新的指令週期,控制轉移到中斷處理程式(6)中斷處理程式開始工作,包括檢查I/O相關的狀態資訊,操縱I/O設備或者在設備和主存之間傳送數據等等(7)中斷處理結束時,處理器檢測到中斷返回指令,被中斷程式的上下文環境從系統堆疊中被恢復處理器狀態恢復成原來的狀態。(8)PSW和PC被恢復成中斷前的值,處理器開始一個新的指令週期,中斷處理結束。簡單的中斷處理過程多個中斷的處理若中斷處理過程中又發生中斷,引起多中斷處理問題兩種策略方法:第一種:處理一個中斷時禁止中斷,對任何新中斷置之不理,在這期間發生的中斷將保持掛起狀態;當再次允許中斷時,新中斷信號被處理器檢測到。軟體實現方法:在任何中斷處理前使用禁止中斷指令在處理結束後開放中斷指令所有中斷嚴格按照發生順序處理不考慮中斷緊急程度,無法達到較嚴格時間要求多中斷處理第一種策略方法第二種:中斷按照優先度分級允許優先順序高中斷打斷優先順序低的中斷處理過程,這樣中斷優先順序技術將引起中斷處理的嵌套只要合適地定義中斷的優先順序別,方法一的弊端大都可以克服多中斷處理第二種策略方法典型的中斷處理(1):I/O中斷由I/O設備的控制器或者通道發出兩類I/O中斷:I/O操作正常結束如果要繼續I/O操作,需要在準備好以後重新啟動I/O,若請求I/O程式正處於等待I/O狀態,則應將其喚醒I/O異常需要重新執行失敗的I/O操作重試次數有上限,次數過大,系統將判定硬體故障典型的中斷處理(2):時鐘中斷系統多道能力的重要推動力量,時鐘中斷處理程式通常做與系統運轉、管理和維護相關的工作,包括:維護軟體時鐘:系統有若干個軟體時鐘,控制定時任務以及進程的處理器時間配額,時鐘中斷需要維護、定時更新這些軟體時鐘處理器時間調度:維護當前進程時間片軟體時鐘,並在當前進程時間片到時以後運行調度程式選擇下一個被調度的進程控制系統定時任務:通過軟體時鐘和調度程式定時啟動一些系統任務,如監測死鎖、系統記帳、系統審計等即時處理典型的中斷處理(3):硬體故障中斷

硬體故障中斷處理程式一般需要做的工作:保存現場,使用一定警告手段,提供些輔助診斷資訊在高可靠系統中,中斷處理程式還要評估系統可用性,盡可能恢復系統。如Windows2000/XP,關鍵硬體發生故障時,如顯示卡損壞,出現系統藍屏,系統實際上進入相應故障處理程式,發現故障不可恢復,則在螢幕上列印出發生故障時程式位置,並開始進行記憶體轉儲(將一定範圍的記憶體內容寫上磁片,是系統故障時的全系統“快照”),備日後故障診斷。典型的中斷處理(4):程式性中斷程式指令出錯、指令越權或者指令尋址越界而引發兩類處理方法:只能由操作系統的相關擴展功能模組完成;多為程式試圖作不能做的操作引起的系統保護;如訪問合法的、但不在內存虛地址內,引發頁故障頁故障一般會引發OS虛存模組作一個頁面換入。可由程式自己完成,如一些算術運算錯誤;不同程式可有不同處理方法,所以很多OS提供由用戶自己處理這類中斷的“綠色通道”;系統調試中斷(中斷點中斷、單步跟蹤)也可被用戶程式處理,用以支持各種程式調試。典型的中斷處理(5):系統服務請求(自願性中斷)系統服務請求由處理器專用指令(訪管指令)激發如x86處理器提供int指令,用來激發軟體中斷其他不少處理器則提供系統調用指令syscall

執行專用指令的結果是系統被切換到管態,並且轉移到一段專門OS程式處開始執行。指令格式通常是指令名加請求服務識別號(中斷號)OS利用處理器提供的這種介面建立系統服務體系處理器一般不負責定義系統調用所傳遞的參數格式典型的中斷處理(6):系統服務請求實例DOS:21h號中斷的系統服務功能以及參數列表現代操作系統一般不提供直接使用系統調用指令的介面,通常做法:提供一套方便、實用的應用程式函數庫(應用程式設計介面API)從應用層面重新封裝系統調用遮罩複雜的系統調用傳參問題高級語言介面,有助於快速開發有的系統在更高層面提供系統程式設計範本庫和類庫

如Windows2000/XP提供封裝系統用Win32API和高層編程機制MFC以及ATLLinux提供封裝系統調用、符合POSIX標準API和C運行庫設備控制器或其他系統硬體發出中斷處理器完成當前指令的執行處理器接受中斷處理器將PSW和PC推入系統堆疊處理器根據中斷類型讀入新的PC值中斷系統硬體完成的工作保存進程狀態的其餘資訊進程中斷恢復進程狀態資訊從系統堆疊恢復原PSW和PC中斷系統軟體完成的工作強迫性中斷事件自願性中斷事件保存現場資訊保存現場資訊取出中斷碼取出訪管號分析中斷原因分析何種系統調用轉相應處理程式是否中斷嵌套由系統恢復現場由系統恢復現場轉低級調度程式返回上層中斷返回目態程式需要切換進程TFFT2.5I/O技術I/O控制使用下麵幾種技術:程式控制中斷驅動直接記憶體存取(DMA)通道程式控制I/O技術由處理器提供I/O相關指令來實現I/O處理單元處理請求並設置I/O狀態寄存器相關位不中斷處理器,也不給處理器警告資訊處理器定期輪詢I/O單元的狀態,直到處理完畢I/O軟體包含直接操縱I/O的指令控制指令:用於啟動外設,並告訴它做什麼狀態指令:用於測試I/O控制中的各種狀態和條件數據傳送指令:用於在設備和主存之間來回傳送數據主要缺陷:處理器必須關注I/O處理單元的狀態,因而耗費大量時間輪詢資訊,嚴重地降低了系統性能中斷驅動I/O技術為了解決程式控制I/O方法的主要問題應該讓處理器從輪詢任務中解放出來使I/O操作和指令執行並行起來具體作法:當I/O處理單元準備好與設備交互的時候通過物理信號通知處理器,即中斷處理器DMA技術(1)中斷的引入大大地提高了處理器處理I/O的效率當處理器和I/O間傳送數據時,效率仍舊不高。解決方法:直接記憶體訪問(DMA:DirectMemoryAccess)通過系統匯流排中一獨立控制單元——DMA控制器自動控制成塊數據在內存和I/O單元間的傳送大大提高處理I/O的效能DMA技術(2)當處理器需要讀寫一整塊數據時,給DMA控制單元發送一條命令。包含:是否請求一次讀或寫,I/O設備的編址,開始讀或寫的主存編址,需要傳送的數據長度等資訊。處理器發送完命令後就可處理其他事情DMA控制器將自動管理數據的傳送當這個過程完成後,它會給處理器發一個中斷處理器只在開始傳送和傳送結束時關注一下就可。處理器和DMA傳送不完全並行有時會有匯流排競爭的情況發生處理器用匯流排時可能稍作等待不會引起中斷不引起程式上下文的保存通常過程只有一個匯流排週期在DMA傳送時,處理器訪問匯流排速度會變慢對於大量數據I/O傳送,DMA技術是很有價值DMA技術(3)通道獨立於中央處理器,專門負責數據I/O傳輸的處理機它對外設實現統一管理代替CPU對I/O操作進行控制使CPU和外設可以並行工作通道又稱為I/O處理機引入通道的目的:為了使CPU從I/O事務中解脫出來同時為了提高CPU與設備、設備與設備之間的並行度2.6時鐘時鐘為電腦完成以下必不可少的工作:在多道程序運行環境中,為系統發現陷入死迴圈(編程錯誤)的作業,防止機時的浪費在分時系統中,間隔時鐘實現作業間按時間片輪轉在即時系統中,按要求的間隔輸出正確時間信號給即時的控制設備(如A/D、D/A轉換設備)定時喚醒要求延遲執行的各外部事件(如定時為各進程計算優先數,銀行中定時運行某類結賬程式等)記錄用戶使用設備時間和記錄某外部事件發生時間記錄用戶和系統所需要的絕對時間,即年、月、日時鐘是操作系統運行的必不可少的硬體設施時鐘,實際上都是硬體時鐘寄存器,按時鐘電路所產生的脈衝數對時鐘寄存器進行加1或減1的工作絕對時鐘:記錄當時時間(年、月、日、時、分、秒)一般來說,絕對時鐘準確,當停機時,絕對時鐘值仍然自動修改間隔時鐘(相對時鐘):通過時鐘寄存器實現置上時間間隔初值,每經過一個單位時間,時鐘值減1,直到該值為負時,則觸發時鐘中斷,並進行相應中斷處理每個脈衝使計數器減1用來裝入計數器初值用戶與操作系統的介面批處理操作系統的作業管理作業的基本概念:作業、作業步、作業流互動式系統作業管理系統調用用戶程式提出服務請求的手段,基本思想,實現方法操作系統安裝與啟動3.1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论