- 現(xiàn)在計算機系統(tǒng)由一個或者多個處理器、主存青瀑、磁盤璧亮、打印機萧诫、鍵盤、鼠標枝嘶、顯示器帘饶、網(wǎng)絡(luò)接口及各種輸入輸出設(shè)備組成只估。
一干签、計算機歷史與計算機硬件介紹
1、計算機歷史
- 操作系統(tǒng)的歷史發(fā)展與其所運行的計算機體系結(jié)構(gòu)緊密聯(lián)系卿樱,尤其和硬件的發(fā)現(xiàn)相關(guān)聯(lián)
1竞阐、第一代(45-55)缴饭,真空管和穿孔打卡
2、第二代(55-65)骆莹,晶體管和批處理系統(tǒng)
3颗搂、第三代(65-80),集成電路和多道程序設(shè)計
4幕垦、第四代(98-至今)丢氢,個人計算機
5、第五代(90-至今)先改,移動計算機
2疚察、計算機硬件簡介
- 操作系統(tǒng)與運行操作系統(tǒng)的計算機硬件聯(lián)系緊密,操作系統(tǒng)擴展了計算機指令集并管理計算機資源
(1)處理器
- cpu是計算機的大腦仇奶,它從內(nèi)存中取出指令并執(zhí)行它(cpu不斷完成從內(nèi)存中取出指令貌嫡,解碼以及確定其類型和操作數(shù)该溯,然后執(zhí)行的周期工作)
- 每一套cpu都擁有一套可執(zhí)行的專門指令集(所以x86處理器不能執(zhí)行ARM程序岛抄,ARM處理器不能處理x86程序)
- 用來緩解cpu處理器執(zhí)行指令的時間和內(nèi)存獲取指令和數(shù)據(jù)的時間差,出現(xiàn)了寄存器(保存關(guān)鍵變量和臨時數(shù)據(jù))
- 多數(shù)的cpu有兩種模式,內(nèi)核態(tài)和用戶態(tài)感凤,內(nèi)核態(tài)中cpu可以執(zhí)行指令集中的每一條指令,并且使用硬件的每種功能粒督。用戶程序在用戶態(tài)下運行陪竿,僅允許執(zhí)行整個指令集的一個子集和訪問所有功能的一個子集。
- 為了從操作系統(tǒng)中獲取服務(wù),用戶程序必須使用系統(tǒng)調(diào)用以陷入內(nèi)核并調(diào)用操作系統(tǒng)
(2)存儲器
-
存儲器系統(tǒng)的頂層是cpu中的寄存器族跛,下一層是高速緩存闰挡,在下一層是主存。是存儲系統(tǒng)的主力礁哄,通常稱為隨機訪問存儲器RAM
操作系統(tǒng)訪問時間分布
(3)磁盤
- 磁盤和主存相比长酗,訪問速度慢了很多,但是容量大了很多桐绒,常用于存儲持久化的數(shù)據(jù)
- 磁盤夺脾、固態(tài)硬盤、虛擬內(nèi)存
(4)io設(shè)備茉继、總線等
二咧叭、操作系統(tǒng)基本概念
1、基本概念
- 計算機系統(tǒng)自下而上可粗分為四個部分:硬件烁竭、操作系 統(tǒng)菲茬、應(yīng)用程序和用戶(這里的劃分與計算機組成原理的分層不同)。操作系統(tǒng)管理各種計算機硬件颖变,為應(yīng)用程序提供基礎(chǔ)生均,并充當計算機硬件與用戶之間的中介。
- 操作系統(tǒng)(Operating System, OS)是指控制和管理整個計算機系統(tǒng)的硬件和軟件資源腥刹,并合理地組織調(diào)度計算機的工作和資源的分配,以提供給用戶和其他軟件方便的接口和環(huán)境的程序集合汉买。
- 軟件中最基礎(chǔ)的部分是操作系統(tǒng)衔峰,操作系統(tǒng)運行在內(nèi)核態(tài)中,這個模式下蛙粘,操作系統(tǒng)具有對硬件資源的完全訪問權(quán)垫卤,可以執(zhí)行機器能夠運行的任何指令。而軟件的其余部分運行在用戶態(tài)下面出牧,用戶態(tài)下面穴肘,只能使用機器指令中的一個子集。
-
同時操作系統(tǒng)與用戶程序差異不僅僅在于他們所處的地位舔痕,特別的操作系統(tǒng)更加大型评抚、復(fù)雜、長壽
操作系統(tǒng)結(jié)構(gòu) - 由上面所述可以歸納出操作系統(tǒng)的功能:
1伯复、為應(yīng)用程序提供一個資源集的抽象慨代,也就是說操作系統(tǒng)會隱藏硬件,呈現(xiàn)給程序員良好啸如、清晰侍匙、優(yōu)雅、一致的抽象
2叮雳、管理計算機硬件資源
2想暗、操作系統(tǒng)特征
(1)并發(fā)(Concurrence)
- 操作系統(tǒng)的并發(fā)性是指計算機系統(tǒng)中同時存在多個運行著的程序妇汗,因此它具有處理和調(diào)度多個程序同時執(zhí)行的能力。在操作系統(tǒng) 中说莫,引入進程的目的是使程序能并發(fā)執(zhí)行杨箭。
- 并發(fā)是指兩個或多個事件在同一時間間隔內(nèi)發(fā)生。注意同一時間間隔(并發(fā))和同一時刻(并行)的區(qū)別唬滑。在多道程序環(huán)境下告唆,一段時間內(nèi),宏觀上有多道程序在同時執(zhí)行晶密,而在每一時刻擒悬,單處理機環(huán)境下實際僅能有一道程序執(zhí)行,故微觀上這些程序還是在分時地交替執(zhí)行稻艰。橾作系統(tǒng)的并發(fā)性是通過分時得以實現(xiàn)的懂牧。
- 并行性是指系統(tǒng)具有可以同時進行運算或操作的特性,在同一時刻完成兩種或兩種以上的工作尊勿。并行性需要有相關(guān)硬件的支持僧凤,如多流水線或多處理機硬件環(huán)境。
(2)共享(Sharing)
- 資源共享即共享元扔,是指系統(tǒng)中的資源可供內(nèi)存中多個并發(fā)執(zhí)行的進程共同使用躯保。共享可分為以下兩種資源共享方式:
1) 互斥共享方式
系統(tǒng)中的某些資源,如打印機澎语、磁帶機途事,雖然它們可以提供給多個進程使用,但為使所打印或記錄的結(jié)果不致造成混淆擅羞,應(yīng)規(guī)定在一段時間內(nèi)只允許一個進程訪問該資源尸变。當進程A訪問某資源時,必須先提出請求减俏,如果此時該資源空閑召烂,系統(tǒng)便可將之分配給進程A使用,此后若再有其他進程也要訪問該資源時(只要A未用完)則必須等待娃承。僅當進程A訪問完并釋放該資源后奏夫,才允許另一進程對該資源進行訪問。我們把這種資源共享方式稱為互斥式共享草慧,而把在一段時間內(nèi)只允許一個進程訪問的資源稱為臨界資源或獨占資源桶蛔。
2) 同時訪問方式
系統(tǒng)中還有另一類資源,允許在一段時間內(nèi)由多個進程“同時”對它們進行訪問漫谷。這里所謂的“同時”往往是宏觀上的仔雷,而在微觀上,這些進程可能是交替地對該資源進行訪問即 “分時共享”。典型的可供多個進程“同時”訪問的資源是磁盤設(shè)備碟婆,
- 并發(fā)和共享是操作系統(tǒng)兩個最基本的特征电抚,這兩者之間又是互為存在條件的:
- 資源共享是以程序的并發(fā)為條件的,若系統(tǒng)不允許程序并發(fā)執(zhí)行竖共,則自然不存在資源共享問題蝙叛;
- 若系統(tǒng)不能對資源共享實施有效的管理,也必將影響到程序的并發(fā)執(zhí)行公给,甚至根本無法并發(fā)執(zhí)行借帘。
(3) 虛擬(Virtual)
- 虛擬是指把一個物理上的實體變?yōu)槿舾蓚€邏輯上的對應(yīng)物。物理實體(前者)是實的淌铐,即實際存在的肺然;而后者是虛的,是用戶感覺上的事物腿准。用于實現(xiàn)虛擬的技術(shù)际起,稱為虛擬技術(shù)。在操作系統(tǒng)中利用了多種虛擬技術(shù)吐葱,分別用來實現(xiàn)虛擬處理器街望、虛擬內(nèi)存和虛擬外部設(shè)備等。
(1)在虛擬處理器技術(shù)中弟跑,是通過多道程序設(shè)計技術(shù)灾前,讓多道程序并發(fā)執(zhí)行的方法,來分時使用一個處理器的孟辑。此時豫柬,雖然只有一個處理器,但它能同時為多個用戶服務(wù)扑浸,使每個終端用戶都感覺有一個中央處理器(CPU)在專門為它服務(wù)。利用多道程序設(shè)計技術(shù)燕偶,把一個物理上的CPU虛擬為多個邏輯上的CPU,稱為虛擬處理器喝噪。
(2)可以通過虛擬存儲器技術(shù),將一臺機器的物理存儲器變?yōu)樘摂M存儲器指么,以便從邏輯上來擴充存儲器的容量酝惧。當然,這時用戶所感覺到的內(nèi)存容量是虛的。我們把用戶所感覺到的存儲器(實際是不存在的)稱為虛擬存儲器伯诬。
- 因此晚唇,操作系統(tǒng)的虛擬技術(shù)可歸納為:時分復(fù)用技術(shù),如處理器的分時共享盗似;空分復(fù)用技術(shù)哩陕,如虛擬存儲器
(5)異步(Asynchronism)
- 在多道程序環(huán)境下,允許多個程序并發(fā)執(zhí)行,但由于資源有限悍及,進程的執(zhí)行不是一貫到底闽瓢,而是走走停停,以不可預(yù)知的速度向前推進心赶,這就是進程的異步性扣讼。
3、操作系統(tǒng)的目標和功能
- 為了給多道程序提供良好的運行環(huán)境缨叫,操作系統(tǒng)應(yīng)具有以下幾方面的功能:處理機管理椭符、 存儲器管理、設(shè)備管理和文件管理耻姥。為了方便用戶使用操作系統(tǒng)销钝,還必須向用戶提供接口。同時操作系統(tǒng)可用來擴充機器咏闪,以提供更方便的服務(wù)曙搬、更高的資源利用率。
(1)操作系統(tǒng)作為計算機系統(tǒng)資源的管理者
- 處理機管理
在多道程序環(huán)境下鸽嫂,處理機的分配和運行都以進程(或線程)為基本單位纵装,因而對處理機的管理可歸結(jié)為對進程的管理。并發(fā)時在計算機內(nèi)同時運行多個進程据某,所以橡娄,進程何時創(chuàng)建、何時撤銷癣籽、如何管理挽唉、如何避免沖突、.合理共享就是進程管理的最主要的任務(wù)筷狼。進程管理的主要功能有:進程控制瓶籽、進程同步、進程通信埂材、死鎖處理塑顺、處理機調(diào)度等。- 存儲器管理
存儲器管理是為了給多道程序的運行提供良好的環(huán)境俏险,方便用戶使用以及提高內(nèi)存的利用率严拒,主要包括內(nèi)存分配、地址映射竖独、內(nèi)存保護與共享和內(nèi)存擴充等功能裤唠。- 文件管理
計算機中的信息都是以文件的形式存在的,操作系統(tǒng)中負責文件管理的部分稱為文件系統(tǒng)莹痢。文件管理包括文件存儲空間的管理种蘸、目錄管理及文件讀寫管理和保護等墓赴。- 設(shè)備管理
設(shè)備管理的主要任務(wù)是完成用戶的I/O請求,方便用戶使用各種設(shè)備劈彪,并提高設(shè)備的利用率竣蹦,主要包括緩沖管理、設(shè)備分配沧奴、設(shè)備處理和虛擬設(shè)備等功能痘括。
(2)操作系統(tǒng)作為用戶與計算機硬件系統(tǒng)之間的接口
- 為方便用戶使用計算機,操作系統(tǒng)還提供了用戶接口滔吠。操作系統(tǒng)提供的接口主要分為兩類: 一類是命令接口纲菌,用戶利用這些操作命令來組織和控制作業(yè)的執(zhí)行;另一類是程序接口疮绷,編程人員可以使用它們來請求操作系統(tǒng)服務(wù)翰舌。
(3)操作系統(tǒng)用做擴充機器
- 沒有任何軟件支持的計算機稱為裸機,它僅構(gòu)成計算機系統(tǒng)的物質(zhì)基礎(chǔ)冬骚,而實際呈現(xiàn)在用戶面前的計算機系統(tǒng)是經(jīng)過若干層軟件改造的計算機椅贱。裸機在最里層,它的外面是操作系統(tǒng)只冻,由操作系統(tǒng)提供的資源管理功能和方便用戶的各種服務(wù)功能庇麦,將裸機改造成功能更強、 使用更方便的機器喜德,通常把覆蓋了軟件的機器稱為擴充機器山橄,又稱之為虛擬機。
4舍悯、操作系統(tǒng)的發(fā)展
5航棱、操作系統(tǒng)內(nèi)核
- 計算機系統(tǒng)中,通常CPU執(zhí)行兩種不同性質(zhì)的程序:一種是操作系統(tǒng)內(nèi)核程序萌衬;另一種是用戶自編程序或系統(tǒng)外層的應(yīng)用程序饮醇。對操作系統(tǒng)而言,這兩種程序的作用不同秕豫,前者是后者的管理者驳阎,因此“管理程序”要執(zhí)行一些特權(quán)指令,而“被管理程序”出于安全考慮不能執(zhí)行這些指令馁蒂。所謂特權(quán)指令,是指計算機中不允許用戶直接使用的指令蜘腌,如I/O指令沫屡、 置中斷指令,存取用于內(nèi)存保護的寄存器撮珠、送程序狀態(tài)字到程序狀態(tài)字寄存器等指令沮脖。操作系統(tǒng)在具體實現(xiàn)上劃分了用戶態(tài)(目態(tài))和核心態(tài)(管態(tài))金矛,以嚴格區(qū)分兩類程序。
- 內(nèi)核是計算機上配置的底層軟件勺届,是計算機功能的延伸驶俊。不同系統(tǒng)對內(nèi)核的定義稍有區(qū)別,大多數(shù)操作系統(tǒng)內(nèi)核包括四個方面的內(nèi)容免姿。
- 時鐘管理
在計算機的各種部件中饼酿,時鐘是最關(guān)鍵的設(shè)備。時鐘的第一功能是計時胚膊,操作系統(tǒng)需要通過時鐘管理故俐,向用戶提供標準的系統(tǒng)時間。另外紊婉,通過時鐘中斷的管理药版,可以實現(xiàn)進程的切換。諸如喻犁,在分時操作系統(tǒng)中槽片,釆用時間片輪轉(zhuǎn)調(diào)度的實現(xiàn);在實時系統(tǒng)中肢础,按截止時間控制運行的實現(xiàn)还栓;在批處理系統(tǒng)中,通過時鐘管理來衡量一個作業(yè)的運行程度等乔妈。因此蝙云,系統(tǒng)管理的方方面面無不依賴于時鐘。- 中斷機制
引入中斷技術(shù)的初衷是提高多道程序運行環(huán)境中CPU的利用率路召,而且主要是針對外部設(shè)備的勃刨。后來逐步得到發(fā)展,形成了多種類型股淡,成為操作系統(tǒng)各項操作的基礎(chǔ)身隐。例如,鍵盤或鼠標信息的輸入唯灵、進程的管理和調(diào)度贾铝、系統(tǒng)功能的調(diào)用、設(shè)備驅(qū)動埠帕、文件訪問等垢揩,無不依賴于中斷機制×泊桑可以說叁巨,現(xiàn)代操作系統(tǒng)是靠中斷驅(qū)動的軟件。中斷機制中呐籽,只有一小部分功能屬于內(nèi)核锋勺,負責保護和恢復(fù)中斷現(xiàn)場的信息蚀瘸,轉(zhuǎn)移控制權(quán)到相關(guān)的處理程序。這樣可以減少中斷的處理時間庶橱,提高系統(tǒng)的并行處理能力贮勃。- 原語
按層次結(jié)構(gòu)設(shè)計的操作系統(tǒng),底層必然是一些可被調(diào)用的公用小程序苏章,它們各自完成一個規(guī)定的操作寂嘉。其特點是:它們處于操作系統(tǒng)的最底層,是最接近硬件的部分布近、這些程序的運行具有原子性——其操作只能一氣呵成(這主要是從系統(tǒng)的安全性和便于管理考慮的)垫释、這些程序的運行時間都較短,而且調(diào)用頻繁等撑瞧。通常把具有這些特點的程序稱為原語(Atomic Operation)棵譬。定義原語的直接方法是關(guān)閉中斷,讓它的所有動作不可分割地進行完再打開中斷预伺。- 系統(tǒng)控制的數(shù)據(jù)結(jié)構(gòu)及處理
系統(tǒng)中用來登記狀態(tài)信息的數(shù)據(jù)結(jié)構(gòu)很多订咸,比如作業(yè)控制塊、進程控制塊(PCB)酬诀、設(shè)備控制塊脏嚷、各類鏈表、消息隊列瞒御、緩沖區(qū)父叙、空閑區(qū)登記表、內(nèi)存分配表等肴裙。為了實現(xiàn)有效的管理趾唱,系統(tǒng)需要一些基本的操作,常見的操作有以下三種:進程管理:進程狀態(tài)管理蜻懦、進程調(diào)度和分派甜癞、創(chuàng)建與撤銷進程控制塊等、存儲器管理:存儲器的空間分配和回收宛乃、內(nèi)存信息保護程序悠咱、代碼對換程序等、設(shè)備管理:緩沖區(qū)管理征炼、設(shè)備分配和回收等析既。
- 從上述內(nèi)容可以了解,核心態(tài)指令實際上包括系統(tǒng)調(diào)用類指令和一些針對時鐘谆奥、中斷和原語的操作指令渡贾。
6、中斷和異常
- 在操作系統(tǒng)中引入核心態(tài)和用戶態(tài)這兩種工作狀態(tài)后雄右,就需要考慮這兩種狀態(tài)之間如何切換空骚。操作系統(tǒng)內(nèi)核工作在核心態(tài),而用戶程序工作在用戶態(tài)擂仍。但系統(tǒng)不允許用戶程序?qū)崿F(xiàn)核心態(tài)的功能囤屹,而它們又必須使用這些功能。因此逢渔,需要在核心態(tài)建立一些“門”肋坚,實現(xiàn)從用戶態(tài)進入核心態(tài)。在實際操作系統(tǒng)中肃廓,CPU運行上層程序時唯一能進入這些“門”的途徑就是通過中斷或異常智厌。當中斷或異常發(fā)生時,運行用戶態(tài)的CPU會立即進入核心態(tài)盲赊,這是通過硬件實現(xiàn)的(例如铣鹏,用一個特殊寄存器的一位來表示CPU所處的工作狀態(tài),0表示核心態(tài)哀蘑,1表示用戶態(tài)诚卸。若要進入核心態(tài),只需將該位置0即可)绘迁。
- 中斷(Interruption)合溺,也稱外中斷,指來自CPU執(zhí)行指令以外的事件的發(fā)生缀台,如設(shè)備發(fā)出的I/O結(jié)束中斷棠赛,表示設(shè)備輸入/輸出處理已經(jīng)完成,希望處理機能夠向設(shè)備發(fā)下一個輸入 / 輸出請求膛腐,同時讓完成輸入/輸出后的程序繼續(xù)運行睛约。時鐘中斷,表示一個固定的時間片已到依疼,讓處理機處理計時痰腮、啟動定時運行的任務(wù)等。這一類中斷通常是與當前程序運行無關(guān)的事件律罢,即它們與當前處理機運行的程序無關(guān)膀值。
-
異常(Exception),也稱內(nèi)中斷误辑、例外或陷入(Trap)沧踏,指源自CPU執(zhí)行指令內(nèi)部的事件,如程序的非法操作碼巾钉、 地址越界翘狱、算術(shù)溢出、虛存系統(tǒng)的缺頁以及專門的陷入指令等引起的事件砰苍。對異常的處理一般要依賴于當前程序的運行現(xiàn)場潦匈,而且異常不能被屏蔽阱高,一旦出現(xiàn)應(yīng)立即處理。
內(nèi)中斷和外中斷
7茬缩、系統(tǒng)調(diào)用
- 所謂系統(tǒng)調(diào)用就是用戶在程序中調(diào)用操作系統(tǒng)所提供的一些子功能赤惊,系統(tǒng)調(diào)用可以被看做特殊的公共子程序。系統(tǒng)中的各種共享資源都由操作系統(tǒng)統(tǒng)一掌管凰锡,因此在用戶程序中未舟,凡是與資源有關(guān)的操作(如存儲分配、進行I/0傳輸以及管理文件等)掂为,都必須通過系統(tǒng)調(diào)用方式向操作系統(tǒng)提出服務(wù)請求裕膀,并由操作系統(tǒng)代為完成。通常勇哗,一個操作系統(tǒng)提供的系統(tǒng)調(diào)用命令有幾十乃至上百條之多昼扛。這些系統(tǒng)調(diào)用按功能大致可分為如下幾類:
設(shè)備管理。完成設(shè)備的請求或釋放智绸,以及設(shè)備啟動等功能野揪。
文件管理。完成文件的讀瞧栗、寫斯稳、創(chuàng)建及刪除等功能。
進程控制迹恐。完成進程的創(chuàng)建挣惰、撤銷、阻塞及喚醒等功能殴边。
進程通信憎茂。完成進程之間的消息傳遞或信號傳遞等功能。
內(nèi)存管理锤岸。完成內(nèi)存的分配竖幔、回收以及獲取作業(yè)占用內(nèi)存區(qū)大小及始址等功能。
- 系統(tǒng)調(diào)用運行在系統(tǒng)的核心態(tài)是偷。通過系統(tǒng)調(diào)用的方式來使用系統(tǒng)功能拳氢,可以保證系統(tǒng)的穩(wěn)定性和安全性,防止用戶隨意更改或訪問系統(tǒng)的數(shù)據(jù)或命令蛋铆。系統(tǒng)調(diào)用命令是由操作系統(tǒng)提供的一個或多個子程序模塊實現(xiàn)的馋评。
- 操作系統(tǒng)運行過程:
用戶通過操作系統(tǒng)運行上層程序(如系統(tǒng)提供的命令解釋程序或用戶自編程序),而這個上層程序的運行依賴于操作系統(tǒng)的底層管理程序提供服務(wù)支持刺啦,當需要管理程序服務(wù)時留特,系統(tǒng)則通過硬件中斷機制進入核心態(tài),運行管理程序;也可能是程序運行出現(xiàn)異常情況蜕青,被動地需要管理程序的服務(wù)苟蹈,這時就通過異常處理來進入核心態(tài)。當管理程序運行結(jié)束時右核,用戶程序需要繼續(xù)運行汉操,則通過相應(yīng)的保存的程序現(xiàn)場退出中斷處理程序或異常處理程序,返回斷點處繼續(xù)執(zhí)行蒙兰。
- 在操作系統(tǒng)這一層面上,我們關(guān)心的是系統(tǒng)核心態(tài)和用戶態(tài)的軟件實現(xiàn)和切換,由用戶態(tài)進入核心態(tài)芒篷,不僅僅是狀態(tài)需要切換搜变。而且,所使用的堆棧也可能需要由用戶堆棧切換為系統(tǒng)堆棧针炉,但這個系統(tǒng)堆棧也是屬于該進程的挠他。