![現(xiàn)代操作系統(tǒng)CH01_第1頁(yè)](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWV89aiAfbGVAADWt3vZaac237.jpg)
![現(xiàn)代操作系統(tǒng)CH01_第2頁(yè)](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWV89aiAfbGVAADWt3vZaac2372.jpg)
![現(xiàn)代操作系統(tǒng)CH01_第3頁(yè)](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWV89aiAfbGVAADWt3vZaac2373.jpg)
![現(xiàn)代操作系統(tǒng)CH01_第4頁(yè)](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWV89aiAfbGVAADWt3vZaac2374.jpg)
![現(xiàn)代操作系統(tǒng)CH01_第5頁(yè)](http://file4.renrendoc.com/view10/M02/3A/30/wKhkGWV89aiAfbGVAADWt3vZaac2375.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
操作系統(tǒng)(OperatingSystem)教材:《現(xiàn)代操作系統(tǒng)》ModernOperatingSystems(SecondEdition)AndrewS.Tanenbaum1第一章緒論1.1什么是操作系統(tǒng)1.2操作系統(tǒng)歷史1.3操作系統(tǒng)大觀1.4計(jì)算機(jī)硬件回憶1.5操作系統(tǒng)概念1.6系統(tǒng)調(diào)用1.7操作系統(tǒng)結(jié)構(gòu)1.8操作系統(tǒng)的研究2教學(xué)要求講課+上機(jī)=94學(xué)時(shí)講課:50個(gè)學(xué)時(shí)上機(jī):44個(gè)學(xué)時(shí)成績(jī)平時(shí)成績(jī)(40%):平時(shí)練習(xí)+考勤考試成績(jī)(60%):閉卷課程導(dǎo)論3課程建設(shè)目標(biāo)逃脫應(yīng)試教育,投奔素質(zhì)教育清晰完整的體驗(yàn)OS的神奇深刻準(zhǔn)確的把握IT的方向培養(yǎng)良好的案例學(xué)習(xí)方法僵化死板的記憶——沒(méi)有前途照貓畫(huà)虎的實(shí)踐——成功之路課程導(dǎo)論4教學(xué)用書(shū)核心教材《現(xiàn)代操作系統(tǒng)》,機(jī)械工業(yè)出版社,Tanenbaum著參考書(shū)目《操作系統(tǒng):設(shè)計(jì)與實(shí)現(xiàn)》,電子工業(yè)出版社,中譯本《操作系統(tǒng)-內(nèi)核與設(shè)計(jì)原理》,電子工業(yè)出版社,WilliamStallings著,英文原版《Windows操作系統(tǒng)原理》,機(jī)械工業(yè)出版社,陳向群著課程導(dǎo)論5其他教學(xué)用書(shū) 操作系統(tǒng)教程 王素華人民郵電出版社
計(jì)算機(jī)操作系統(tǒng)教程 張堯?qū)W史美林清華大學(xué)出版社
計(jì)算機(jī)操作系統(tǒng)教程 周長(zhǎng)林左萬(wàn)歷高等教育出版社
操作系統(tǒng)根底 屠立德屠祁清華大學(xué)出版社
操作系統(tǒng)教程 孟慶昌西安電子科大出版社
計(jì)算機(jī)操作系統(tǒng) 湯子瀛等西安電子科大出版社
操作系統(tǒng)原理DOS篇 張昆蒼清華大學(xué)出版社
操作系統(tǒng)教程 孫鐘秀主編高等教育出版社
操作系統(tǒng)原理技術(shù)與編程 蔣靜徐志偉 機(jī)械工業(yè)出版社 OperatingSystemConcept AbrahanSilberschatz,etc
AppliedOperatingSystemConcept AbrahanSilberschatz,etc課程導(dǎo)論6IT體系知識(shí)的層次關(guān)系黃色為L(zhǎng)evel1的內(nèi)容,綠色為L(zhǎng)evel2的內(nèi)容,暗紅色為L(zhǎng)evel3的內(nèi)容7Windows2K/XP結(jié)構(gòu)圖課程導(dǎo)論8Minix系統(tǒng)結(jié)構(gòu)圖磁盤任務(wù)終端任務(wù)時(shí)鐘任務(wù)系統(tǒng)任務(wù)以太網(wǎng)任務(wù)……內(nèi)存管理器文件系統(tǒng)網(wǎng)絡(luò)服務(wù)器……Init進(jìn)程用戶進(jìn)程用戶進(jìn)程用戶進(jìn)程用戶進(jìn)程……第一層第二層第三層第四層I/O任務(wù)效勞器進(jìn)程用戶進(jìn)程系統(tǒng)核心進(jìn)程管理課程導(dǎo)論9OS原理講授內(nèi)容分布操作系統(tǒng)開(kāi)展綜述與硬件相關(guān)環(huán)境進(jìn)程管理I/O設(shè)備的管理內(nèi)存管理文件系統(tǒng)多媒體操作系統(tǒng)多處理機(jī)系統(tǒng)平安實(shí)例研究1:UNIX和Linux實(shí)例研究2:Windows2000課程導(dǎo)論10軟件的根本概念課程導(dǎo)論11操作系統(tǒng)的作用計(jì)算機(jī)硬件設(shè)備如何使用?底層硬件控制用戶輸入處理結(jié)果課程導(dǎo)論12操作系統(tǒng)的作用課程導(dǎo)論OS硬件硬件抽象,屏蔽底層硬件差異應(yīng)用集成,提供通用方法工具高級(jí)管理,維護(hù)環(huán)境穩(wěn)定平安13操作系統(tǒng)的作用課程導(dǎo)論最專業(yè)的底層設(shè)計(jì)人員絕大多數(shù)從業(yè)人員14緒論計(jì)算機(jī)系統(tǒng)包括:硬件系統(tǒng)程序應(yīng)用程序15緒論現(xiàn)代計(jì)算機(jī)系統(tǒng)由一個(gè)或多個(gè)處理器、假設(shè)干存儲(chǔ)器、磁盤、打印機(jī)、鍵盤、網(wǎng)絡(luò)接口以及其他輸入/輸出設(shè)備組成??傊?,是一個(gè)復(fù)雜的系統(tǒng)。編寫(xiě)程序來(lái)掌握所有這些部件并且正確使用它們,即使不考慮優(yōu)化問(wèn)題,也是一件極其困難的任務(wù)。正因?yàn)榇?,?jì)算機(jī)都裝配了稱為操作系統(tǒng)的一層軟件,用于管理所有的設(shè)備以及提供給用戶具有簡(jiǎn)易硬件接口的程序。16什么是操作系統(tǒng)?操作系統(tǒng)的定義操作系統(tǒng)〔OperatingSystem〕是管理軟硬件資源、控制程序執(zhí)行,改善人機(jī)界面,合理組織計(jì)算機(jī)工作流程和為用戶使用計(jì)算機(jī)提供良好運(yùn)行環(huán)境的一種系統(tǒng)軟件17什么是操作系統(tǒng)?作為擴(kuò)展機(jī)器的操作系統(tǒng)操作系統(tǒng)的作用就是提供給用戶的一個(gè)擴(kuò)展的機(jī)器或者虛擬的機(jī)器等價(jià)物,這樣就比根本的硬件要易于編程。對(duì)程序員隱匿硬件真相,并且提供一個(gè)簡(jiǎn)潔的可以讀寫(xiě)的命名文件視圖,毫無(wú)疑問(wèn),這種程序就是操作系統(tǒng)。操作系統(tǒng)給出的抽象都比根本的硬件要簡(jiǎn)單和易于使用。這種概念是一個(gè)自上而下的觀點(diǎn)。18什么是操作系統(tǒng)?作為資源管理器的操作系統(tǒng)自底向上的觀點(diǎn)那么認(rèn)為,操作系統(tǒng)是管理復(fù)雜系統(tǒng)的所有局部的。操作系統(tǒng)的任務(wù)就是在多個(gè)競(jìng)爭(zhēng)資源的程序之間,為處理器、存儲(chǔ)器以及I/O設(shè)備提供有序的、受控的分配。簡(jiǎn)而言之,這種觀點(diǎn)認(rèn)為操作系統(tǒng)其主要任務(wù)就是記錄下誰(shuí)在使用哪個(gè)資源、批準(zhǔn)資源請(qǐng)求、統(tǒng)計(jì)使用情況以及協(xié)調(diào)來(lái)自不同程序和用戶的請(qǐng)求沖突。資源管理有兩種方式:按時(shí)間和按空間。19什么是操作系統(tǒng)?作為用戶與計(jì)算機(jī)硬件之間的接口改造硬件設(shè)施,屏蔽使用細(xì)節(jié),方便用戶使用提供原語(yǔ)或廣義指令,擴(kuò)展機(jī)器的指令系統(tǒng)合理組織計(jì)算機(jī)的工作流程,協(xié)調(diào)各個(gè)部件有效工作,為用戶提供一個(gè)良好的運(yùn)行環(huán)境20操作系統(tǒng)開(kāi)展歷程簡(jiǎn)介操作系統(tǒng)出現(xiàn)與開(kāi)展的本質(zhì)目的充分利用硬件,提供更好的效勞根本的硬件開(kāi)展歷程大型機(jī)時(shí)代——PC機(jī)時(shí)代——后PC時(shí)代操作系統(tǒng)的開(kāi)展歷史階段共分為五個(gè)階段課程導(dǎo)論21石器時(shí)代:奇跡和災(zāi)難并存時(shí)代環(huán)境:硬件昂貴、人工廉價(jià)大型機(jī)時(shí)代:1948-1970年主要特點(diǎn):極其復(fù)雜,缺少人機(jī)交互控制臺(tái):一次允許一個(gè)用戶使用批處理:裝入程序——運(yùn)行——打印輸出數(shù)據(jù)通道與中斷:I/O與計(jì)算重疊多道程序設(shè)計(jì):存儲(chǔ)保護(hù)技術(shù)的出現(xiàn)重大失?。篛S與計(jì)算機(jī)軟件設(shè)計(jì)的危機(jī)MULTICS系統(tǒng):1963年開(kāi)始研發(fā),拖延至1969年發(fā)布IBMOS/360系統(tǒng):發(fā)布時(shí)就帶著的1000多個(gè)Bug課程導(dǎo)論22ENIAC計(jì)算機(jī)運(yùn)算速度:5000次/每秒,18000個(gè)真空管,占地182平方米,重量130噸,功耗140kW2324ENIAC計(jì)算機(jī)25穿孔卡片26早期的批處理系統(tǒng)課程導(dǎo)論卡片早期批處理系統(tǒng)IBM1401IBM7094IBM1401輸入磁帶磁帶機(jī)卡片閱讀機(jī)輸出磁帶打印機(jī)27分時(shí)操作:充分利用硬件資源課程導(dǎo)論主機(jī)終端28大型機(jī)OS:恐怖的軟件怪獸課程導(dǎo)論29工業(yè)時(shí)代:新紀(jì)元的開(kāi)始時(shí)代環(huán)境:硬件廉價(jià)、人工昂貴提倡人機(jī)交互與效勞:1970-1985年主要特點(diǎn):加強(qiáng)人機(jī)交互,保證系統(tǒng)性能分時(shí)交互概念:虛擬和分布的概念出現(xiàn)用戶使用體驗(yàn):提供更強(qiáng)大的用戶操作能力系統(tǒng)性能危機(jī):如何保證穩(wěn)定的系統(tǒng)性能甜蜜歲月:Unix、Minux、Linux的起源Unix系統(tǒng):貝爾實(shí)驗(yàn)室,游戲迷在DECPDP-7上的杰作KenThompson,DennisRitchie:1983圖靈獎(jiǎng),1999美國(guó)國(guó)家技術(shù)金獎(jiǎng)圖靈獎(jiǎng)是美國(guó)計(jì)算機(jī)協(xié)會(huì)〔ACM〕于1966年設(shè)立的,是計(jì)算機(jī)界最負(fù)盛名的獎(jiǎng)項(xiàng),有“計(jì)算機(jī)界諾貝爾獎(jiǎng)〞之稱。目前為止,獲此殊榮的華人僅有一位,2000年圖靈獎(jiǎng)得主姚期智,課程導(dǎo)論30現(xiàn)代OS根底:玩出來(lái)的精彩課程導(dǎo)論31UNIX家族:比超女還火爆課程導(dǎo)論32摩登時(shí)代:IT產(chǎn)業(yè)的黃金歲月時(shí)代環(huán)境:硬件廉價(jià)、人工非常昂貴PC與個(gè)人計(jì)算時(shí)代:1981-現(xiàn)在主要特點(diǎn):傳統(tǒng)概念的重用與回歸軟件怪獸的恐怖記憶:OS是極為復(fù)雜的例程庫(kù)Unix的美好時(shí)光:回歸簡(jiǎn)單、專業(yè)的系統(tǒng)結(jié)構(gòu)個(gè)人計(jì)算的必然需求:GUI界面、回歸復(fù)雜的OS底層本質(zhì)特點(diǎn):最大限度滿足每個(gè)人的要求科學(xué)開(kāi)展的必然:樹(shù)型知識(shí)體系的延伸個(gè)人PC的OS設(shè)計(jì):強(qiáng)調(diào)友好操作、傻瓜式效勞分布與共享:網(wǎng)絡(luò)應(yīng)用引發(fā)C/S、B/S、網(wǎng)格計(jì)算革命廣泛的領(lǐng)域應(yīng)用:數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)傳輸、智能信息處理課程導(dǎo)論33夢(mèng)想時(shí)代:超越有限、飛向無(wú)限時(shí)代環(huán)境:移動(dòng)計(jì)算、無(wú)線計(jì)算、嵌入式計(jì)算后PC時(shí)代:1995-現(xiàn)在主要特點(diǎn):小型、移動(dòng)、便捷、有限能力移動(dòng)計(jì)算的新潮:PDA、智能、高性能筆記本電腦工業(yè)智能化的趨勢(shì):形形色色的嵌入式系統(tǒng)科技對(duì)世界的概念:超小型計(jì)算工具〔平安、國(guó)防…〕科技締造文明:沒(méi)有想不到,只有做不到智能化的生活環(huán)境:集頂盒、無(wú)線通信網(wǎng)絡(luò)…更先進(jìn)的生產(chǎn)工具:機(jī)器人技術(shù)的蓬勃開(kāi)展更無(wú)限的開(kāi)展空間:信息時(shí)代的終極魅力課程導(dǎo)論34DOS開(kāi)展史DOS其前身是蒂姆·帕特森編寫(xiě)的SCP-DOS。當(dāng)時(shí)的個(gè)人電腦開(kāi)展非常迅速,逐漸成為廣泛的消費(fèi)市場(chǎng)。由于個(gè)人電腦尤其是蘋果電腦的成功,電腦界的巨頭IBM公司坐不住了。1980年,IBM決定開(kāi)發(fā)自己的個(gè)人計(jì)算機(jī)系統(tǒng),并命名為PersonalComputer。為了縮短開(kāi)發(fā)周期,IBM決定找一家軟件公司與之合作開(kāi)發(fā)PC機(jī)的操作系統(tǒng)。這家幸運(yùn)的小公司就是Microsoft公司,也就是現(xiàn)在的微軟公司。微軟公司以5萬(wàn)美元價(jià)格從買下了X86操作系統(tǒng)軟件的使用權(quán),再將其改寫(xiě)成為公司的磁盤操作系統(tǒng)軟件(MSDOS〕。35DOS開(kāi)展史這給了微軟迅速開(kāi)展的時(shí)機(jī),微軟公司對(duì)86-DOS進(jìn)行了較大的改進(jìn),并改名為Microsoft-DOS。1981年,隨著IBM的IBMPC機(jī)的正式發(fā)布,微軟的MSDOS1.0也誕生了。當(dāng)時(shí)的MSDOS遠(yuǎn)不如現(xiàn)在的強(qiáng)大,可用的命令也很少,甚至連目錄的概念也不支持。但比照當(dāng)時(shí)的個(gè)人操作系統(tǒng),已經(jīng)是非常先進(jìn)的。36DOS開(kāi)展史最重要的是,DOS從一開(kāi)始就是全開(kāi)放的系統(tǒng),這為第三方廠商開(kāi)發(fā)的應(yīng)用程序提供了方便可靠的接口,又由于有IBM的強(qiáng)大后盾,吸引了越來(lái)越多的開(kāi)發(fā)商投入到DOS應(yīng)用程序的開(kāi)發(fā)中來(lái),而這以后的DOS獲得了空前的開(kāi)展,成為PC機(jī)的絕對(duì)主流操作系統(tǒng)。37DOS開(kāi)展史在DOS發(fā)布之后的十幾年中,微軟公司不斷推出DOS的新版本,到目前為止,MSDOS的最高版本是7.0。由于Windows操作系統(tǒng)的成功,微軟今后將不再對(duì)DOS升級(jí)。38DOS開(kāi)展史下面是各個(gè)DOS版本的主要功能:DOS1.0:以單面軟盤為根底的第一個(gè)操作系統(tǒng);DOS1.1:支持雙面軟盤并可實(shí)現(xiàn)錯(cuò)誤定位,該系統(tǒng)可支持兼容機(jī);DOS2.0:支持帶硬盤的PC/XT機(jī)并從UNIX操作系統(tǒng)中吸收了許多功能;DOS2.11:改進(jìn)了國(guó)際支持,對(duì)錯(cuò)誤的定位更加準(zhǔn)確;DOS3.0:支持以80286為CPU的PC/AT機(jī),支持1.2M軟盤及更大容量的硬盤;39DOS開(kāi)展史DOS3.1:支持Microsoft網(wǎng)絡(luò),并擴(kuò)展了錯(cuò)誤檢測(cè)功能;DOS2.25:增加了擴(kuò)展的字符集并參加了新的錯(cuò)誤檢查;DOS3.3:是應(yīng)用相當(dāng)廣泛的一個(gè)系統(tǒng),增加了一些新命令,支持高密3英寸盤;DOS3.31:COMPAQ機(jī)器用,允許硬盤容量超過(guò)32M;DOS4.0:增加DOSSHELL,可管理大于32M的硬盤;40DOS開(kāi)展史DOS5.0:支持2.88M軟盤,增加了任務(wù)切換和全屏幕編輯器Editor,擴(kuò)充了DOS的外部命令;DOS6.0:增加了磁盤壓縮增容工具DoubleSpace,提供了防病毒程序。Config.sys具有多重配置塊命令,提供了系統(tǒng)內(nèi)存管理優(yōu)化程序;DOS6.2:增加了拷貝文件的平安性;由于專利原因,DoubleSpace改名為DriveSpace,并增強(qiáng)了Edit全屏幕編輯的功能;41DOS開(kāi)展史DOS6.21:增強(qiáng)了DriveSpace,完善了TSR管理等功能;DOS6.22:最后一個(gè)獨(dú)立存在的MS-DOS版本,支持中文內(nèi)碼,加強(qiáng)了DriveSpace功能;DOS7.0:它不是單獨(dú)存在的,它實(shí)際是Windows95/98的底層引導(dǎo)程序。微軟為了推進(jìn)Windows產(chǎn)品的開(kāi)展,已經(jīng)公開(kāi)表示不再對(duì)DOS的版本進(jìn)行升級(jí),盡管Windows98下的DOS與Windows95下的DOS并不完全相同。42胚胎重演律(OntogenyRecapitulatesPhylogeny)胚胎重演律:一個(gè)胚胎重復(fù)著種系進(jìn)化的過(guò)程。換句話說(shuō)就是,受精后,人類的卵子在變成人類嬰兒之前經(jīng)歷了魚(yú)、豬等等之類的階段?,F(xiàn)代生物學(xué)家認(rèn)為該論點(diǎn)過(guò)于簡(jiǎn)單化,不過(guò)其中仍舊包含著真理的內(nèi)核。計(jì)算機(jī)工業(yè)領(lǐng)域也發(fā)生著類似的事情。每個(gè)新的種系(大型機(jī)、小型機(jī)、個(gè)人計(jì)算機(jī)、嵌入式計(jì)算機(jī)、智能卡等等)似乎都經(jīng)歷了其前輩的開(kāi)展階段。43操作系統(tǒng)大觀大型機(jī)操作系統(tǒng)效勞器操作系統(tǒng)多處理機(jī)操作系統(tǒng)個(gè)人計(jì)算機(jī)操作系統(tǒng)實(shí)時(shí)操作系統(tǒng)嵌入式操作系統(tǒng)智能卡操作系統(tǒng)44大型機(jī)操作系統(tǒng)操作系統(tǒng)的高端是針對(duì)大型機(jī)的,這些房間大小般的計(jì)算機(jī)仍然可以在大型公司的數(shù)據(jù)中心找到。大型機(jī)也被用于高端的Web效勞器(大型電子商務(wù)站點(diǎn)的效勞器)以及b2b(business-to-business)事務(wù)的效勞器。大型機(jī)的操作系統(tǒng)主要面向同時(shí)處理許多作業(yè),而這些作業(yè)絕大局部都需要海量的I/O。它們一般提供三種效勞:批處理、事務(wù)處理和分時(shí)。45效勞器操作系統(tǒng)它們運(yùn)行與效勞器上,這些效勞器可能是大型的個(gè)人計(jì)算機(jī)、工作站,甚或是大型機(jī)。它們通過(guò)網(wǎng)絡(luò)同時(shí)為多個(gè)用戶效勞,并且允許用戶共享硬件和軟件資源。效勞器可以提供打印效勞、文件效勞或者Web效勞。Internet提供商運(yùn)行許多效勞器以支持他們的客戶,Web站點(diǎn)使用效勞器貯存網(wǎng)頁(yè)以及處理呼入(incoming)請(qǐng)求。典型的效勞器操作系統(tǒng)有UNIX和Windows2000。Linux也在效勞器領(lǐng)域逐漸普及了。46多處理機(jī)操作系統(tǒng)在一個(gè)系統(tǒng)中連接多個(gè)CPU,這些系統(tǒng)稱為并行計(jì)算機(jī)、多計(jì)算機(jī)系統(tǒng)或者多處理機(jī)系統(tǒng),這取決于如何連接以及共享哪些設(shè)備。它們需要特殊的操作系統(tǒng),不過(guò)通常都采用效勞器操作系統(tǒng)的變種,加上有關(guān)通信和連通性方面的特性。47個(gè)人計(jì)算機(jī)操作系統(tǒng)它們的任務(wù)就是為單個(gè)用戶提供良好的界面。他們廣泛用于字處理、電子表格和Internet訪問(wèn)。一般的例子有Windows9x/Me/2000/XP、Macintosh操作系統(tǒng)以及Linux。個(gè)人計(jì)算機(jī)操作系統(tǒng)是如此的眾所周知,幾乎無(wú)需再作介紹。事實(shí)上,許多人甚至不知道還有其他類型的操作系統(tǒng)。48實(shí)時(shí)操作系統(tǒng)這些系統(tǒng)的特征就是把時(shí)間作為一個(gè)關(guān)鍵參數(shù)。通常它們必須符合嚴(yán)格的時(shí)間界限。如果動(dòng)作確定必須在確定的時(shí)刻(或者在一個(gè)確定的范圍內(nèi))發(fā)生,如不滿足將會(huì)引起災(zāi)難性的后果,這就是硬實(shí)時(shí)系統(tǒng)(hardreal-timesystem)。
另外一種實(shí)時(shí)系統(tǒng)是軟實(shí)時(shí)系統(tǒng)(softreal-timesystem),在這種系統(tǒng)中,偶爾錯(cuò)過(guò)時(shí)間界限是可以接受的,只造成系統(tǒng)性能下降而不會(huì)帶來(lái)嚴(yán)重惡果。數(shù)字音頻或者多媒體系統(tǒng)就屬于此列。VxWork和QNX是著名的實(shí)時(shí)操作系統(tǒng)。49嵌入式操作系統(tǒng)嵌入式系統(tǒng)運(yùn)行于控制設(shè)備的計(jì)算機(jī)上,而這些計(jì)算機(jī)通常并不被認(rèn)為是計(jì)算機(jī),例如電視機(jī)、微波爐和移動(dòng)。它們通常具有實(shí)時(shí)系統(tǒng)的特征,不過(guò)同時(shí)由于受到尺寸、內(nèi)存以及能量限制而使得它們更為特殊。這種操作系統(tǒng)的例子有PalmOS和WindowsCE(ConsumerElectronics)。50嵌入式操作系統(tǒng)51嵌入式操作系統(tǒng)智能卡移動(dòng)通信計(jì)算機(jī)外設(shè)機(jī)頂盒零售設(shè)備印刷機(jī)復(fù)印機(jī)互聯(lián)網(wǎng)服務(wù)器電話交換設(shè)備52智能卡操作系統(tǒng)最小的操作系統(tǒng)運(yùn)行于智能卡(SmartCard)上。智能卡是一種信用卡大小的、包含CPU芯片的設(shè)備。它們有著非常苛刻的處理能力和內(nèi)存約束。很多智能卡只能處理單個(gè)功能,例如電子支付,不過(guò)其他的可以處理多個(gè)功能。通常這些系統(tǒng)都是專利系統(tǒng)。53計(jì)算機(jī)硬件回憶操作系統(tǒng)與運(yùn)行它的計(jì)算機(jī)硬件是密切相關(guān)的。它擴(kuò)展了計(jì)算機(jī)的指令集,并且管理著計(jì)算機(jī)的資源。為了能夠工作,它必須知道有關(guān)硬件的大量信息,至少要知道硬件如何在程序中出現(xiàn)。從概念上說(shuō),一臺(tái)簡(jiǎn)單的個(gè)人計(jì)算機(jī)可以抽象成如下模型:CPU、內(nèi)存和I/O設(shè)備都聯(lián)結(jié)在系統(tǒng)總線上,并且通過(guò)它進(jìn)行通信。54計(jì)算機(jī)硬件回憶簡(jiǎn)單的個(gè)人計(jì)算機(jī)的組成局部55CPU最重要的硬件就是CPU計(jì)算機(jī)的“大腦〞就是CPU。它從內(nèi)存中讀取指令,并且執(zhí)行它們。程序計(jì)數(shù)器(programcounter)堆棧指針(stackpointer):堆棧指針總是指向棧頂元素的下一個(gè)位置。所以數(shù)據(jù)入棧的時(shí)候,先壓棧,棧頂指針再增加一。出棧的時(shí)候棧頂指針先減去一,在彈出數(shù)據(jù)PSW(ProgramStatusWord,程序狀態(tài)字):程序狀態(tài)字包含狀態(tài)位,反響CPU的當(dāng)前狀態(tài)管線(pipeline):流水線,為了執(zhí)行指令而歸納出的“下一步需要做的事情〞。每一個(gè)指令的執(zhí)行都必須經(jīng)過(guò)相同的步驟,最根底的CPU管線可以被分為5級(jí):1、取指令2、譯解指令3、演算出操作數(shù)4、執(zhí)行指令5、存儲(chǔ)到高速緩存超標(biāo)量(superscalar):超標(biāo)量是通過(guò)內(nèi)置多條流水線來(lái)同時(shí)執(zhí)行多個(gè)處理器,其實(shí)質(zhì)是以空間換取時(shí)間系統(tǒng)調(diào)用(systemcall)56計(jì)算機(jī)硬件回憶(a)三級(jí)流水線(b)超標(biāo)量計(jì)算機(jī)體系結(jié)構(gòu)CPU57存儲(chǔ)器第二個(gè)主要的組件是存儲(chǔ)器存儲(chǔ)器應(yīng)該異常迅捷(比執(zhí)行一條指令還快,這樣CPU就不會(huì)因?yàn)榇鎯?chǔ)器而阻礙)、容量巨大而且非常廉價(jià)?,F(xiàn)在還沒(méi)有技術(shù)可以滿足所有這些要求,因此只能采取其他的方法。存儲(chǔ)器系統(tǒng)是一個(gè)層次結(jié)構(gòu)。58計(jì)算機(jī)硬件回憶存儲(chǔ)器典型的存儲(chǔ)器層次。圖中數(shù)字只是近似的估計(jì)59計(jì)算機(jī)硬件回憶磁盤驅(qū)動(dòng)器的結(jié)構(gòu)60計(jì)算機(jī)硬件回憶(a)一個(gè)基址-界限對(duì)(b)兩個(gè)基址-界限對(duì)61I/O設(shè)備I/O設(shè)備I/O設(shè)備與操作系統(tǒng)的相互作用非常頻繁。I/O設(shè)備一般有兩個(gè)局部組成:控制器和設(shè)備自身。每種類型的控制器需要不同的軟件來(lái)控制。實(shí)現(xiàn)輸入和輸出有三種不同的方式:忙等待(busywaiting)中斷(interrupt)DMA(DirectMemoryAccess,直接存儲(chǔ)器存取)62什么是中斷?是指CPU在正常運(yùn)行程序時(shí),由于內(nèi)部/外部事件或由程序預(yù)先安排的事件,引起CPU中斷正在運(yùn)行的程序,而轉(zhuǎn)到為內(nèi)部/外部事件或?yàn)轭A(yù)先安排的事件效勞的程序中去,效勞完畢,再返回去執(zhí)行暫時(shí)中斷的程序。中斷分硬件中斷和軟件中斷兩種。中斷為計(jì)算機(jī)的硬件設(shè)備和軟件"部件"提供了一種相互交流的途徑,這就是它的作用。63什么是DMA?DMA〔DirectMemoryAccess〕,即直接存儲(chǔ)器存取,是一種快速傳送數(shù)據(jù)的機(jī)制。數(shù)據(jù)傳遞可以從I/O設(shè)備到內(nèi)存,從內(nèi)存到I/O設(shè)備或從一段內(nèi)存到另一段內(nèi)存。利用它進(jìn)行數(shù)據(jù)傳送時(shí)不需要CPU的參與。每臺(tái)電腦主機(jī)板上都有DMA控制器,通常計(jì)算機(jī)對(duì)其編程,并用一個(gè)適配器上的ROM(如軟盤驅(qū)動(dòng)控制器上的ROM)來(lái)儲(chǔ)存程序,這些程序控制DMA傳送數(shù)據(jù)。一旦控制器初始化完成,數(shù)據(jù)開(kāi)始傳送,DMA就可以脫離CPU,獨(dú)立完成數(shù)據(jù)傳送。64計(jì)算機(jī)硬件回憶(a)啟動(dòng)I/O設(shè)備和獲得中斷的步驟(b)CPU的中斷方式65總線大型Pentium系統(tǒng)的結(jié)構(gòu)66總線該系統(tǒng)有八條總線(cache、局部、內(nèi)存、PCI、SCSI、USB、IDE和ISA),每一條的傳輸速率和功能都不一樣。操作系統(tǒng)必須知曉所有這些總線,以便于配置和管理。兩條主要的總線是原始的IBMPCISA(IndustryStandardArchitecture,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))總線和它的后繼PCI(PeripheralComponentInterconnect,外設(shè)部件互連)總線。67幾個(gè)概念PCI橋那么用于對(duì)PCI總線進(jìn)行擴(kuò)展,使多個(gè)PCI總線形成多層次結(jié)構(gòu),以減輕單個(gè)PCI總線的負(fù)載。IDE總線:連接磁盤、CD-ROM一類的的外圍設(shè)備和系統(tǒng)相連接。USB:連接慢速I/O設(shè)備,例如鼠標(biāo)、鍵盤,速度為1.5MB/s。所有的USB設(shè)備共享一個(gè)USB設(shè)備驅(qū)動(dòng)程序,不需為新的USB設(shè)備安裝新設(shè)備驅(qū)動(dòng)程序SCSI:連接需要較大帶寬的設(shè)備,例如高速硬盤、掃描儀,最高可達(dá)160MB/sIEEE1394:蘋果公司提出,適合數(shù)碼相機(jī)等多媒體設(shè)備連接計(jì)算機(jī)68操作系統(tǒng)概念進(jìn)程Processes死鎖Deadlocks內(nèi)存管理MemoryManagement輸入/輸出Input/Output文件Files平安Security外殼TheShell概念的循環(huán)使用RecyclingofConcepts69進(jìn)程進(jìn)程根本上就是正在執(zhí)行的程序。進(jìn)程的定義:程序在并發(fā)環(huán)境中的執(zhí)行過(guò)程。70進(jìn)程進(jìn)程和程序是兩個(gè)完全不同的概念,它們之間的主要區(qū)別是:程序是靜態(tài)概念;進(jìn)程是程序的一次執(zhí)行過(guò)程,是動(dòng)態(tài)概念。進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的單位,它作為資源申請(qǐng)和調(diào)度單位存在;程序是不能作為一個(gè)獨(dú)立運(yùn)行的單位而并發(fā)執(zhí)行的。程序和進(jìn)程無(wú)一一對(duì)應(yīng)關(guān)系各個(gè)進(jìn)程在并發(fā)執(zhí)行過(guò)程中會(huì)產(chǎn)生相互制約的關(guān)系71進(jìn)程每個(gè)進(jìn)程都有其地址空間(addressspace),從某個(gè)最小值(一般為0)到某個(gè)最大值的內(nèi)存位置列表,這是進(jìn)程可以讀寫(xiě)的范圍。該地址空間包括可執(zhí)行程序、程序數(shù)據(jù)以及它的堆棧。同樣,每個(gè)進(jìn)程還有許多存放器,包括程序計(jì)數(shù)器、堆棧指針和其他硬件存放器,以及運(yùn)行該程序的所有其他信息。72進(jìn)程進(jìn)程樹(shù)進(jìn)程A創(chuàng)立了兩個(gè)子進(jìn)程,B和C。進(jìn)程B創(chuàng)立了三個(gè)子進(jìn)程,D,E和F。73死鎖兩個(gè)或多個(gè)進(jìn)程相互影響時(shí),有時(shí)候會(huì)使得它們自己陷入無(wú)法自拔的僵局。這種情形稱為死鎖(deadlock)。74死鎖死鎖(a)潛在的死鎖(b)實(shí)際的死鎖75存儲(chǔ)管理每臺(tái)計(jì)算機(jī)都有一些主存,用于容納執(zhí)行程序。在非常簡(jiǎn)單的操作系統(tǒng)中,一個(gè)時(shí)刻只有一個(gè)程序在內(nèi)存中。要運(yùn)行第二個(gè)程序,必須將第一個(gè)移去,把第二個(gè)放入內(nèi)存。76存儲(chǔ)管理更高級(jí)的操作系統(tǒng)允許多個(gè)程序同時(shí)在內(nèi)存中。為了阻止它們相互阻礙,需要某些保護(hù)機(jī)制。盡管這些機(jī)制必須放在硬件中,但是都是由操作系統(tǒng)來(lái)控制。另一個(gè)不同但同樣重要的、與內(nèi)存相關(guān)的問(wèn)題就是進(jìn)程的地址空間的管理。通常,每個(gè)進(jìn)程都有某些地址可以使用,一般從0到某個(gè)最大值。77輸入/輸出所有的計(jì)算機(jī)都由物理設(shè)備來(lái)獲取輸入,并產(chǎn)生輸出。畢竟,用戶不能告訴計(jì)算機(jī)做什么,也不能得到要求它工作所產(chǎn)生的結(jié)果。輸入和輸出設(shè)備有很多,包括鍵盤、顯示器、打印機(jī)等等。管理這些設(shè)備都取決于操作系統(tǒng)。因此,每個(gè)操作系統(tǒng)都有一個(gè)I/O子系統(tǒng)來(lái)管理I/O設(shè)備。某些I/O軟件是設(shè)備無(wú)關(guān)的,也就是說(shuō),可以同樣地應(yīng)用于許多或者所有的I/O設(shè)備。而其他的那么是針對(duì)特定的I/O設(shè)備,例如設(shè)備驅(qū)動(dòng)程序。78文件所有實(shí)際操作系統(tǒng)都支持的另一個(gè)重要概念就是文件系統(tǒng)。正如前面所提到的,操作系統(tǒng)的一個(gè)主要功能就是隱藏磁盤和其他I/O設(shè)備的特性,給程序員提供一個(gè)合意的、干凈的、關(guān)于設(shè)備無(wú)關(guān)文件的抽象模型。顯然,需要系統(tǒng)調(diào)用來(lái)創(chuàng)立文件、刪除文件、讀文件和寫(xiě)文件。在讀文件之前,必須先定位和翻開(kāi)文件,而讀完之后,應(yīng)該關(guān)閉它,因此需要提供調(diào)用來(lái)完成這些事情。79文件系統(tǒng)文件系統(tǒng)大學(xué)中一個(gè)系的文件系統(tǒng)80文件系統(tǒng)(a)裝配前軟盤上的文件是不可訪問(wèn)的(b)將軟盤裝配到b上軟盤上的文件成為文件層次中的一局部81操作系統(tǒng)概念兩個(gè)進(jìn)程通過(guò)管道連接82平安計(jì)算機(jī)包含大量的、用戶通常希望保密的信息。這些信息可能包括電子郵件、商業(yè)方案、回復(fù)等等。這都要由操作系統(tǒng)來(lái)管理系統(tǒng)平安,這樣,文件只能由授權(quán)用戶訪問(wèn)(方法之一)。除了文件保護(hù)之外,還有許多其他的平安問(wèn)題。保護(hù)系統(tǒng)不受到人類或者非人類的(比方病毒)的有害入侵就是其中之一。83外殼UNIX的命令解釋器,也稱為外殼(shell)。盡管它不是操作系統(tǒng)的一局部,但是它利用了大量操作系統(tǒng)的特性,因而也很好的說(shuō)明了系統(tǒng)調(diào)用是如何使用的。同時(shí),它還是終端用戶和操作系統(tǒng)之間的主要接口,除非用戶使用圖形用戶界面。外殼程序有很多,包括sh,csh,ksh和bash。84WindowsShellWindowsShell為Windows用戶界面提供根本框架,用戶最常體驗(yàn)到的WindowsShell形式是Windows桌面。除了桌面之外,WindowsShell還提供了許多其他功能,使計(jì)算體驗(yàn)中的外觀和感受始終保持一致。WindowsShell可用于以下用途:通過(guò)Windows資源管理器查找文件和文件夾;通過(guò)“開(kāi)始〞菜單中的快捷方式提供啟動(dòng)應(yīng)用程序的一致方式;通過(guò)桌面主題及顏色提供一致的界面。85概念的循環(huán)使用計(jì)算機(jī)科學(xué)和許多領(lǐng)域一樣,都是極大地受到技術(shù)的驅(qū)動(dòng)。正如古羅馬人沒(méi)有汽車并不是因?yàn)樗麄兿矚g走路,而是因?yàn)樗麄儾恢涝趺粗圃炱?。個(gè)人計(jì)算機(jī)的存在也不是因?yàn)槿藗冮L(zhǎng)時(shí)間地渴望擁有自己的電腦,而是因?yàn)榭梢陨a(chǎn)廉價(jià)的電腦。技術(shù)上的改變可能恢復(fù)某些所謂的“廢棄的概念〞。技術(shù)并不是推動(dòng)系統(tǒng)和軟件進(jìn)步的唯一因素。經(jīng)濟(jì)也同樣扮演著主要角色。86系統(tǒng)調(diào)用操作系統(tǒng)和用戶程序之間的接口是由一組操作系統(tǒng)提供的系統(tǒng)調(diào)用來(lái)定義的。這些接口中的系統(tǒng)調(diào)用因操作系統(tǒng)不同而不同(盡管其根本概念上是類似的)。87系統(tǒng)調(diào)用系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口。編程人員通過(guò)系統(tǒng)調(diào)用使用操作系統(tǒng)內(nèi)核所提供的各種功能。系統(tǒng)調(diào)用的執(zhí)行不同于一般用戶程序的執(zhí)行。系統(tǒng)調(diào)用執(zhí)行是在核心態(tài)下執(zhí)行系統(tǒng)于程序,而用戶程序那么是在用戶態(tài)下執(zhí)行。一般來(lái)說(shuō),操作系統(tǒng)提供的系統(tǒng)調(diào)用越多,功能也就越豐富,系統(tǒng)也就越復(fù)雜。88系統(tǒng)調(diào)用OS核心中都有一組實(shí)現(xiàn)系統(tǒng)功能的過(guò)程〔子程序〕,系統(tǒng)調(diào)用就是對(duì)上述過(guò)程的調(diào)用。因此,系統(tǒng)調(diào)用像一個(gè)黑箱子那樣,對(duì)用戶屏蔽了操作系統(tǒng)的具體動(dòng)作而只提供有關(guān)的功能。WindowsAPI(ApplicationProgrammingInterface)提供了功能眾多的函數(shù),可讓程序員深入控制Windows操作系統(tǒng)的絕大局部?jī)?nèi)容。Windows有一個(gè)軟件開(kāi)發(fā)包〔SDK,softwaredevelopmentkit〕提供相應(yīng)的文檔和工具89系統(tǒng)調(diào)用為了更清楚地了解系統(tǒng)調(diào)用的機(jī)制,下面簡(jiǎn)要地介紹read系統(tǒng)調(diào)用。它有三個(gè)參數(shù):第一個(gè)指定文件,第二個(gè)指向緩沖區(qū),第三個(gè)給出讀的字節(jié)數(shù)。與幾乎所有系統(tǒng)調(diào)用一樣,也是通過(guò)調(diào)用庫(kù)函數(shù)從C語(yǔ)言來(lái)調(diào)用的,使用和系統(tǒng)調(diào)用同樣的名稱:read。C語(yǔ)言的調(diào)用就像這樣:count=read(fd,buffer,nbytes);系統(tǒng)調(diào)用(和例程調(diào)用)將實(shí)際讀的字節(jié)數(shù)返回給count。它的值一般和nbytes相同,不過(guò)也可能小一些,例如讀的時(shí)候正好碰到文件結(jié)束。90系統(tǒng)調(diào)用系統(tǒng)調(diào)用的步驟系統(tǒng)調(diào)用read(fd,buffer,nbytes)的11個(gè)步驟91陷阱在系統(tǒng)中為控制系統(tǒng)調(diào)用效勞的機(jī)構(gòu)稱為陷阱〔trap〕處理機(jī)構(gòu).與之相應(yīng),把由于系統(tǒng)調(diào)用引起處理機(jī)中斷的指令稱為陷阱指令〔或稱訪管指令〕。92系統(tǒng)調(diào)用的主要類型設(shè)備管理:該類系統(tǒng)調(diào)用被用來(lái)請(qǐng)求和釋放有關(guān)設(shè)備、以及啟動(dòng)設(shè)備操作等。文件管理:包括對(duì)文件的讀、寫(xiě)、創(chuàng)立和刪除等。進(jìn)程控制:進(jìn)程是一個(gè)在功能上獨(dú)立的程序的一次執(zhí)行過(guò)程。進(jìn)程控制的有關(guān)系統(tǒng)調(diào)用包括進(jìn)程創(chuàng)立、進(jìn)程執(zhí)行、進(jìn)程撤消、執(zhí)行等待和執(zhí)行優(yōu)先級(jí)控制等。93系統(tǒng)調(diào)用的主要類型進(jìn)程通信:該類系統(tǒng)調(diào)用被用在進(jìn)程之間傳遞消息或信號(hào)。存儲(chǔ)管理:包括調(diào)查作業(yè)占據(jù)內(nèi)存區(qū)的大小、獲取作業(yè)占據(jù)內(nèi)存區(qū)的始址等。線程管理:包括線程的創(chuàng)立、調(diào)度、執(zhí)行、撤銷等。94POSIX進(jìn)程管理的系統(tǒng)調(diào)用終止進(jìn)程運(yùn)行并返回狀態(tài)exit(status)替換一個(gè)進(jìn)程的核心映射s=execve(name,argv,environp)等待一個(gè)子進(jìn)程睞終止pid=waitpid(pid,&statloc,options)在同一雙親下創(chuàng)建一個(gè)子進(jìn)程pid=fork()描述調(diào)用POSIX是PortableOperatingSystemInterfaceofUnix的縮寫(xiě)。在源代碼級(jí)別上定義了一組最小的Unix(類Unix)操作系統(tǒng)接口95文件系統(tǒng)的系統(tǒng)調(diào)用移動(dòng)文件指針position=lseek(fd,offset,whence)獲取文件的狀態(tài)信息s=stat(name,&buf)從緩沖區(qū)將數(shù)據(jù)寫(xiě)到文件n=write(fd,buffer,nbytes)從文件讀取數(shù)據(jù)到緩沖區(qū)n=read(fd,buffer,nbytes)關(guān)閉一個(gè)打開(kāi)的文件s=close(fd)打開(kāi)文件以讀、寫(xiě)或讀寫(xiě)fd=open(file,how,…)描述調(diào)用96目錄管理的系統(tǒng)調(diào)用裝配文件系統(tǒng)s=mount(special,name,flag)卸載文件系統(tǒng)s=umount(special)刪除目錄入口s=unlink(name)創(chuàng)建新入口name2指向name1s=link(name1,name2)刪除空目錄s=rmdir(name)創(chuàng)建新目錄s=mkdir(name,mode)描述調(diào)用97其他任務(wù)的系統(tǒng)調(diào)用向進(jìn)程發(fā)送信號(hào)s=kill(pid,signal)從1970年1月1日起的秒數(shù)seconds=time(&seconds)改變文件保護(hù)位s=chmod(name,mode)改變工作目錄s=chdir(name)描述調(diào)用98進(jìn)程管理的系統(tǒng)調(diào)用簡(jiǎn)單的外殼程序:while(TRUE){ //無(wú)限循環(huán)type_prompt(); //顯示提示read_command(command,parameters) //從終端輸入
if(fork()!=0){ //關(guān)閉子進(jìn)程 //父進(jìn)程代碼 waitpid(-1,&status,0); //等待子進(jìn)程退出 }else{ //子進(jìn)程代碼 execve(command,parameters,0); //執(zhí)行命令 }}99進(jìn)程管理的系統(tǒng)調(diào)用接著看如下的一條命令:cpfile1file2上面的命令用于將file1復(fù)制到file2。在外殼程序派生后,子進(jìn)程定位并執(zhí)行文件cp,而且將源文件名和目標(biāo)文件名傳遞給它。cp的主程序(以及大多數(shù)其他C語(yǔ)言的主程序)都包含如下的聲明:main(argc,argv,envp)其中argc是指命令行中有多少個(gè)條目,包括程序名在內(nèi)。如上面的命令,argc為3。第二個(gè)參數(shù)argv是一個(gè)數(shù)組的指針。元素i是指命令行中第i個(gè)字符串。在上面的例子中,argv[0]指向字符串“cp〞,argv[1]指向字符串“file1〞,而argv[2]指向字符串“file2〞。main的第三個(gè)參數(shù)envp是指向環(huán)境的指針,包含形如name=value格式的賦值字符串?dāng)?shù)組,用于諸如終端類型以及程序的原目錄名之類的信息。在圖1?19中,沒(méi)有環(huán)境傳遞給子進(jìn)程,因此execve的第三個(gè)參數(shù)為0。100進(jìn)程管理的系統(tǒng)調(diào)用UNIX中進(jìn)程的內(nèi)存被分為三段:文本段(textsegment)(即程序代碼),數(shù)據(jù)段(datasegment)(即變量)以及堆棧段(stacksegment)。其中數(shù)據(jù)段向上增長(zhǎng),而堆棧段向下增長(zhǎng),如圖1?20所示。堆棧段〔stacksegment〕通常是指采用堆棧方式工作的一段內(nèi)存區(qū)域。在采用段式內(nèi)存管理方式進(jìn)行程序內(nèi)存分配的架構(gòu)中,堆棧段用來(lái)存放局部變量和函數(shù)返回地址。堆棧段是在程序運(yùn)行時(shí)動(dòng)態(tài)分配使用,只需要通過(guò)棧頂指針即可訪問(wèn)。目前大多數(shù)CPU中都有專用存放器可以被用來(lái)存放棧頂?shù)刂贰K鼈冎g為未使用的地址空間間隔。如果需要的話,堆棧自動(dòng)向間隔增長(zhǎng);而數(shù)據(jù)段的擴(kuò)展要通過(guò)系統(tǒng)調(diào)用brk來(lái)顯式地實(shí)現(xiàn)。brk用于指定數(shù)據(jù)段結(jié)束的新地址。101進(jìn)程管理的系統(tǒng)調(diào)用進(jìn)程有三個(gè)段:正文、數(shù)據(jù)和堆棧102文件管理的系統(tǒng)調(diào)用讀或?qū)懸粋€(gè)文件,首先要用open翻開(kāi)該文件。該文件指定要翻開(kāi)的文件名(絕對(duì)路徑名或相對(duì)路徑名都可以),以及使用O_RDONLY,O_WRONLY和RDWR代碼表示翻開(kāi)讀、寫(xiě)或者讀寫(xiě)。要?jiǎng)?chuàng)立新文件,使用O_CREAT。返回的文件描述符可以用于隨后的讀或?qū)懖僮鳌H缓?,通過(guò)close可以關(guān)閉文件。而文件描述符還可以再次用于open操作。103目錄管理的系統(tǒng)調(diào)用有兩個(gè)用戶,ast和jim,每個(gè)人都有其自己的目錄,內(nèi)有一些文件。現(xiàn)在,如果ast執(zhí)行一個(gè)程序包含下面的系統(tǒng)調(diào)用:link(“/usr/jim/memo〞,“/usr/ast/note〞);jim目錄下的文件memo現(xiàn)在就進(jìn)入ast的目錄中了,并且名字為note。此后,/usr/jim/memo和/usr/ast/note就是指同一個(gè)文件。104目錄管理的系統(tǒng)調(diào)用link(“/usr/jim/memo〞,“/usr/ast/note〞);(a)兩個(gè)目錄鏈接之前。(b)鏈接后的目錄105目錄管理的系統(tǒng)調(diào)用mount系統(tǒng)調(diào)用可以把兩個(gè)文件系統(tǒng)合并為一個(gè)。一般情形是將公用命令的二進(jìn)制(可執(zhí)行)版本和其他經(jīng)常使用的文件包含在硬盤的根文件系統(tǒng)中。然后用戶可以在軟盤驅(qū)動(dòng)器中插入軟盤進(jìn)行讀操作。執(zhí)行mount系統(tǒng)調(diào)用,軟盤文件可以連接到根文件系統(tǒng)上,如圖1?22所示。典型的執(zhí)行mount的C語(yǔ)句如下:mount(“/dev/fd0〞,“/mnt〞,0);其中第一個(gè)參數(shù)是驅(qū)動(dòng)器0的塊特殊文件名,第二個(gè)參數(shù)是裝配在樹(shù)中的位置,而第三個(gè)參數(shù)告知裝配上的文件系統(tǒng)是可以讀寫(xiě)還是只讀的。注:/dev/fd0表示軟驅(qū)106目錄管理的系統(tǒng)調(diào)用mount(“/dev/fd0〞,“/mnt〞,0);(a)文件系統(tǒng)裝配之前(b)文件系統(tǒng)裝配之后107其他系統(tǒng)調(diào)用chdir改變當(dāng)前的工作目錄,執(zhí)行如下調(diào)用之后:chdir(“/usr/ast/test〞);翻開(kāi)文件xyz,就會(huì)翻開(kāi)/usr/ast/test/xyz文件。工作目錄的概念可以始終省略鍵入(長(zhǎng)的)絕對(duì)路徑名。108其他系統(tǒng)調(diào)用在UNIX中每個(gè)文件都有一個(gè)模式用于保護(hù)。該模式對(duì)擁有者、同組成員和其他人都有讀-寫(xiě)-執(zhí)行位。chmod系統(tǒng)調(diào)用可以改變一個(gè)文件的模式。例如,執(zhí)行以下調(diào)用可以使文件對(duì)除了擁有者之外的所有人都只讀:chmod(“file〞,0644);109系統(tǒng)調(diào)用一些Win32API調(diào)用獲取當(dāng)前時(shí)間GetLocalTimetimeWin32不支持信號(hào)(none)killWin32不支持安全性(盡管NT可以)(none)chmod改變當(dāng)前工作目錄SetCurrentDirectorychdirWin32不支持裝配(none)umountWin32不支持裝配(none)mount刪除已有文件DeleteFileunlinkWin32不支持鏈接(none)link刪除空目錄RemoveDirectoryrmdir創(chuàng)建新目錄CreateDirectorymkdir獲取文件屬性GetFileAttributesExstat移動(dòng)文件指針SetFilePointerlseek寫(xiě)數(shù)據(jù)到文件中WriteFilewrite從文件中讀取數(shù)據(jù)ReadFileread關(guān)閉文件CloseHandleclose創(chuàng)建文件或打開(kāi)已有文件CreateFileopen中止運(yùn)行ExitProcessexitCreateProcess=fork+execve(none)execve等待進(jìn)程退出WaitForSingleObjectwaitpid創(chuàng)建新進(jìn)程CreatePrrocessfork描述Win32UNIX110WindowsAPI分類〔一〕根底效勞(BaseServices):提供對(duì)Windows系統(tǒng)可用的根底資源的存取接口。比方象:檔案系統(tǒng)〔filesystem〕、外部裝置〔device〕、,進(jìn)程〔process〕、線程〔thread〕以及存取登錄〔Windowsregistry〕和錯(cuò)誤處理機(jī)制〔errorhandling〕。這些功能接口位于,16位Windows下的kernel.exe、krnl286.exe或krnl386.exe系統(tǒng)檔案中;以及32位Windows下的kernel32.dll和advapi32.dll中。圖形裝置接口〔GDI〕,提供功能為:輸出圖形內(nèi)容到顯示器、打印機(jī)以及其它外部輸出裝置。位于gdi32.dll。111WindowsAPI分類〔二〕圖形化使用者接口〔GUI〕:提供的功能有創(chuàng)立和管理屏幕和大多數(shù)根本控件〔control〕,比方按鈕和卷軸。接收鼠標(biāo)和鍵盤輸入,以及其它與GUI有關(guān)的功能。這些調(diào)用界面位于user32.dll。從WindowsXP版本之后,根本控件和通用對(duì)話框控件〔CommonControlLibrary〕的調(diào)用接口放在comctl32.dll中。通用對(duì)話框庫(kù)〔CommonDialogBoxLibrary〕:為應(yīng)用程序提供標(biāo)準(zhǔn)對(duì)話框,比方開(kāi)啟/保存檔案對(duì)話框、顏色對(duì)畫(huà)框和字型對(duì)話框等等。該庫(kù)位于comdlg32.dll中。112WindowsAPI分類〔三〕通用控件庫(kù)〔CommonControlLibrary〕:為應(yīng)用程序提供接口來(lái)存取操作系統(tǒng)提供的一些高階控件。比方像:狀態(tài)列〔statusbar〕、進(jìn)度條〔progressbars〕、工具列〔toolbar〕和標(biāo)簽〔tab〕。該庫(kù)位于comctl32.dll中Windows外殼〔WindowsShell〕:作為WindowsAPI的組成局部,不僅允許應(yīng)用程序存取操作系統(tǒng)shell提供的功能,還對(duì)之有所改進(jìn)和增強(qiáng)。它位于shell32.dll中。網(wǎng)絡(luò)效勞〔NetworkServices〕,為存取操作系統(tǒng)提供的多種網(wǎng)絡(luò)功能提供接口。它包括NetBIOS、Winsock、NetDDE及RPC等。113單體系統(tǒng)目前為止,最常用的組織形式就是單體結(jié)構(gòu)〔整體式系統(tǒng)〕,該方法可以加上副標(biāo)題“大雜燴〞。這種結(jié)構(gòu)其實(shí)就是沒(méi)有結(jié)構(gòu)。這種操作系統(tǒng)就是一堆例程的集合,每個(gè)例程都可以隨意地調(diào)用其他的例程。整體式系統(tǒng)一個(gè)用于激活被請(qǐng)求的效勞例程的主程序一組用于執(zhí)行系統(tǒng)調(diào)用的效勞例程一組支持效勞例程的實(shí)用例程114單體系統(tǒng)整體式系統(tǒng)的簡(jiǎn)單結(jié)構(gòu)模型115分層系統(tǒng)層次式系統(tǒng)THE操作系統(tǒng)結(jié)構(gòu)處理器分配和多道程序0內(nèi)存和磁盤管理1操作員-進(jìn)程通信2輸入/輸出管理3用戶程序4操作員5116分層系統(tǒng)第0層涉及處理器分配,當(dāng)中斷發(fā)生或者計(jì)時(shí)器中止時(shí)切換進(jìn)程,提供了根本的CPU多道程序功能。第1層是用于存儲(chǔ)器管理的。第2層處理每個(gè)進(jìn)程與操作員控制臺(tái)之間的通信。第3層管理I/O設(shè)備以及緩沖進(jìn)出設(shè)備的信息流。在第3層上,進(jìn)程只于具有良好屬性的抽象I/O設(shè)備打交道,而不用管實(shí)際設(shè)備的物理特性。第4層為用戶程序。它們不用擔(dān)憂進(jìn)程、存儲(chǔ)器、控制或者I/O管理。系統(tǒng)操作員進(jìn)程在第5層。117虛擬機(jī)虛擬機(jī)監(jiān)控程序(virtualmachinemonitor)運(yùn)行于裸機(jī)上,具有多道程序功能,為上一層提供了多個(gè)虛擬機(jī),如圖1?26所示。不過(guò),與其它操作系統(tǒng)不同,虛擬機(jī)不是具有文件和其他良好特性的擴(kuò)展機(jī)器。相反,虛擬機(jī)就是裸機(jī)的精確拷貝,包括內(nèi)核/用戶態(tài)、I/O、中斷和其他所有真正計(jì)算機(jī)有的東西。由于每個(gè)虛擬機(jī)與裸機(jī)是相同的,所以每個(gè)虛擬機(jī)都可以直接在裸機(jī)上運(yùn)行任何可以在該裸機(jī)上運(yùn)行的操作系統(tǒng)。不同的虛擬機(jī)可以而且也經(jīng)常運(yùn)行不同的操作系統(tǒng)。118虛擬機(jī)虛擬機(jī)帶CMS的VM/370的結(jié)構(gòu)119虛擬機(jī)虛擬機(jī)的思想現(xiàn)在常用于另外一種環(huán)境:在Pentium(或者其他32位IntelCPU)上運(yùn)行老的MS-DOS。在設(shè)計(jì)Pentium及其軟件時(shí),Intel和Microsoft都意識(shí)到會(huì)有大量老的軟件運(yùn)行于新的硬件上。有鑒于此,Intel在Pentium上提供了虛擬8086模式。在該模式中,機(jī)器像8086(從軟件角度和8088相同)一樣動(dòng)作,包括1MB限制的16位尋址。120虛擬機(jī)虛擬機(jī)還用于另一個(gè)領(lǐng)域,不過(guò)方式略有不同,那就是用于運(yùn)行Java程序。SunMicro-system創(chuàng)造Java時(shí),同時(shí)也創(chuàng)造了一個(gè)虛擬機(jī),稱為JVM(JavaVirtualMachine,Java虛擬機(jī))。Java編譯程序?yàn)镴VM產(chǎn)生代碼,然后,一般由軟件JVM解釋程序來(lái)執(zhí)行。該方法的好處是:JVM代碼可以通過(guò)Internet傳輸?shù)饺魏窝b有JVM解釋程序的計(jì)算機(jī)上運(yùn)行。121外核在最底層的程序稱為外核(exokernel),運(yùn)行于核心態(tài)。它的任務(wù)就是給虛擬機(jī)分配資源,然后確保沒(méi)有哪個(gè)虛擬機(jī)試圖使用其他虛擬機(jī)的資源。每個(gè)用戶級(jí)的虛擬機(jī)可以運(yùn)行其自己的操作系統(tǒng),就像在VM/370和Pentium的虛擬8086上一樣,只不過(guò)每個(gè)虛擬機(jī)都被限制在只能使用它申請(qǐng)并獲分配的資源上。122客戶機(jī)-效勞器模型現(xiàn)代操作系統(tǒng)的一個(gè)開(kāi)展趨勢(shì)就是采用如下的思想:進(jìn)一步將代碼移到更高層次上,盡可能多地從核心態(tài)刪除東西,只留下一個(gè)最小的微核(microkernel)。通常的方法是由用戶進(jìn)程實(shí)現(xiàn)操作系統(tǒng)的大局部功能。為了獲得一個(gè)效勞,比方讀文件塊,用戶進(jìn)程(現(xiàn)在稱為客戶機(jī)進(jìn)程(clientsprocess))將請(qǐng)求發(fā)送給效勞器進(jìn)程(serverprocess),然后效勞器進(jìn)程完成工作,并且把結(jié)果發(fā)送回去。123客戶機(jī)-效勞器模型客戶機(jī)-效勞器模型124客戶機(jī)-效勞器模型在如圖1?27的模型中,內(nèi)核所做的全部工作就是處理客戶機(jī)和效勞器之間的通信。通過(guò)把操作系統(tǒng)分成多個(gè)局部,每個(gè)局部?jī)H處理系統(tǒng)的一個(gè)方面,例如文件效勞、進(jìn)程效勞、終端效勞或者存儲(chǔ)器效勞,這樣每個(gè)局部變得更小,更易于管理。而且,由于所有效勞器都以用戶進(jìn)程的方式運(yùn)行,而不是運(yùn)行于核心態(tài),它們不用直接訪問(wèn)硬件。這樣,如果文件效勞器有bug,文件效勞器可能崩潰,但是這通常不會(huì)導(dǎo)致整個(gè)機(jī)器死機(jī)。125客戶機(jī)-效勞器模型客戶機(jī)-效勞器模型的另一個(gè)優(yōu)點(diǎn)是,它適用于分布式系統(tǒng)(參見(jiàn)圖1?28)。如果客戶機(jī)通過(guò)發(fā)送消息與效勞器通信,客戶機(jī)無(wú)需知道該消息是由本地機(jī)處理,或者是通過(guò)網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程機(jī)器進(jìn)行處理。對(duì)客戶機(jī)而言,兩種情況是一樣的:發(fā)送一個(gè)請(qǐng)求,回來(lái)一個(gè)應(yīng)答。126客戶機(jī)-效勞器模型分布式系統(tǒng)的客戶機(jī)-效勞器模型127操作系統(tǒng)的研究計(jì)算機(jī)科學(xué)是一個(gè)飛速開(kāi)展的領(lǐng)域,而且難于預(yù)測(cè)它將走向何處。ACM ://IEEEComputerSociety ://USENIX ://128操作系統(tǒng)的研究哈佛大學(xué)的VINO,使應(yīng)用得以重用內(nèi)核構(gòu)件猶他州大學(xué)的OSKit,提供構(gòu)造操作系統(tǒng)所需的根底構(gòu)件,也提供高層次構(gòu)件。OSKit可用來(lái)構(gòu)造新的OSMITExokernel,該系統(tǒng)只有一個(gè)極小的核。系統(tǒng)抽象通過(guò)LibraryOperatingSystem完成NASA空間飛行中心(GSFC)研制Beowulf工程開(kāi)始于1994年,用商業(yè)化的微型計(jì)算機(jī),Linux和以太網(wǎng)等構(gòu)造集群。已有世界各地的約六十個(gè)大學(xué)和研究機(jī)構(gòu)在使用加州大學(xué)伯克利分校NOW集群操作系統(tǒng),100臺(tái)UltraSPARC-I處理機(jī)集群,排名于世界最快的200臺(tái)超級(jí)計(jì)算機(jī)之內(nèi)129操作系統(tǒng)的研究加州大學(xué)伯克利分校Millennium工程目的是在校園范圍完成內(nèi)一個(gè)“機(jī)群的機(jī)群(ClusterofClusters)〞。在這個(gè)工程中,層次化的機(jī)群Millennium由五層構(gòu)成,第一層,計(jì)算機(jī)工作站分布在十七個(gè)校園區(qū)內(nèi);第二層,多處理機(jī)效勞器,提供各有關(guān)部門的計(jì)算效勞;第三層,NOW組,每一個(gè)NOW都一個(gè)機(jī)群;第四層,一個(gè)非常大規(guī)模的NOW,供全校園共享;第五層,整體計(jì)算層,它在NOW組上構(gòu)造,用于提供NOW組和校園NOW的共享。130操作系統(tǒng)的研究在Millennium工程根底上,又提出了一個(gè)Vineyard工程:一個(gè)面向未來(lái)的研究工程。作為Millennium的后續(xù)工程,它的目標(biāo)超越了一個(gè)伯克利分校校園范圍內(nèi)的機(jī)群,它要通過(guò)高速網(wǎng)絡(luò)連接其他工作站機(jī)群,從而構(gòu)成了一個(gè)協(xié)同工作站機(jī)群聯(lián)合體。131操作系統(tǒng)的研究有線電視機(jī)頂盒領(lǐng)域,PowerTV移動(dòng)通信領(lǐng)域,EPOC掌上計(jì)算機(jī)領(lǐng)域,PalmOS數(shù)碼影像領(lǐng)域,Digita132操作系統(tǒng)的研究60年代末至70年代初楊芙清院士主持,我國(guó)第一臺(tái)百萬(wàn)次集成電路計(jì)算機(jī)(150)操作系統(tǒng)支持多道程序運(yùn)行,在石油勘探領(lǐng)域成功應(yīng)用70年代中后期楊芙清院士主持,我國(guó)第一個(gè)全部用高級(jí)語(yǔ)言書(shū)寫(xiě)的DJS240機(jī)操作系統(tǒng)DJS200/XT2,層次管程結(jié)構(gòu)模型,PCM設(shè)計(jì)方法,活潑管程結(jié)構(gòu)模式133操作系統(tǒng)的研究GX73多機(jī)實(shí)時(shí)操作系統(tǒng)(1978年)國(guó)防科技大學(xué),1980年裝在“遠(yuǎn)望〞-I號(hào)航天測(cè)量船上,“銀河〞-1YHOS巨型操作系統(tǒng)(1983年)國(guó)防科技大學(xué),用于YH-1、YH-2超級(jí)計(jì)算機(jī),用于我國(guó)的石油勘探、天氣預(yù)報(bào)和核物理研究COSIXv1.X/2.0國(guó)產(chǎn)UNIX類操作系統(tǒng)嵌入式操作系統(tǒng)Hopen〔女?huà)z方案〕Linux類操作系統(tǒng)134操作系統(tǒng)的研究國(guó)產(chǎn)效勞器操作系統(tǒng)“麒麟〞〔Kyli
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合法的金融借款合同
- 出租房租賃合同協(xié)議
- 用于經(jīng)營(yíng)的房屋租賃合同
- 大數(shù)據(jù)風(fēng)控服務(wù)合同
- 汽車租賃書(shū)面合同書(shū)
- 聯(lián)保借款標(biāo)準(zhǔn)合同
- 2025小麥購(gòu)銷合同樣本
- 個(gè)人借款合同合同英文范本
- 提升銷售技巧的培訓(xùn)課程
- 2024年5G通信基礎(chǔ)設(shè)施建設(shè)合同
- 煙草局合同范例
- AutoCAD2024簡(jiǎn)明教程資料
- 紅色大氣財(cái)務(wù)報(bào)銷流程培訓(xùn)課件
- 新能源電站單位千瓦造價(jià)標(biāo)準(zhǔn)值(2024版)
- 原子結(jié)構(gòu) 教學(xué)設(shè)計(jì) 高二化學(xué)人教版(2019)選擇性必修2
- 2024年2孩離婚協(xié)議書(shū)模板2024電子版
- 浪潮銷售在線測(cè)評(píng)題
- 高中語(yǔ)文:選擇性必修中冊(cè)第三單元拓展閱讀
- 耳穴壓豆課件
- 2023年江蘇省南京市中考化學(xué)真題(原卷版)
- 2023年湖北省襄陽(yáng)市中考數(shù)學(xué)真題(原卷版)
評(píng)論
0/150
提交評(píng)論