操作系統(tǒng)原理與實踐教程-電子教案-周湘貞_第1頁
操作系統(tǒng)原理與實踐教程-電子教案-周湘貞_第2頁
操作系統(tǒng)原理與實踐教程-電子教案-周湘貞_第3頁
操作系統(tǒng)原理與實踐教程-電子教案-周湘貞_第4頁
操作系統(tǒng)原理與實踐教程-電子教案-周湘貞_第5頁
已閱讀5頁,還剩393頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

操作系統(tǒng)原理

PrinciplesofOperatingSystem前言前言一、課程簡介:

《操作系統(tǒng)》是計算機專業(yè)的核心課程之一,屬于專業(yè)基礎(chǔ)課,是一門理論與實踐并重的課程。操作系統(tǒng)是計算機系統(tǒng)配置的基本軟件之一。它在整個計算機系統(tǒng)軟件中占有中心地位。操作系統(tǒng)質(zhì)量的好壞,直接影響整個計算機系統(tǒng)的性能和用戶對計算機的使用。一個精心設(shè)計的操作系統(tǒng)能極大地擴充計算機系統(tǒng)的功能,充分發(fā)揮系統(tǒng)中各種設(shè)備的使用效率,提高系統(tǒng)工作的可靠性。操作系統(tǒng)的作用是對計算機系統(tǒng)進行統(tǒng)一的調(diào)度和管理,提供各種強有力的系統(tǒng)服務(wù),為用戶創(chuàng)造既靈活又方便的使用環(huán)境。操作系統(tǒng)是所有其他軟件與計算機硬件的唯一接口,所有用戶在使用計算機時都要得到操作系統(tǒng)提供的服務(wù)。前言二、為什么要學習操作系統(tǒng)

設(shè)計操作系統(tǒng)或者修改現(xiàn)有的系統(tǒng)存在人們意識不到的大量“操作系統(tǒng)”(如:嵌入式系統(tǒng))加深對使用的OS的理解,有利于深入編程。用戶為了開發(fā)應(yīng)用程序必須與操作系統(tǒng)打交道編程時借鑒操作系統(tǒng)的設(shè)計思想和算法。操作系統(tǒng)中所用的許多概念和技巧可以推廣應(yīng)用到其他領(lǐng)域選擇購買操作系統(tǒng)因我們并不總使用Win98/NT/2000/XP前言三、課程的地位和特點本課程地位

專業(yè)核心課程

考研核心課程

技術(shù)開發(fā)的理論基礎(chǔ)課程的特點實踐性強(從實踐總結(jié)出原理)涉及面廣(并行程序,性能問題,結(jié)構(gòu)問題,程序方法論,軟件工程等等)錯綜復雜,縱橫交錯

前言四、課程任務(wù)和要求

1.任務(wù)

通過本課程的學習,掌握操作系統(tǒng)的基本概念、設(shè)計原理及實施技術(shù),具有初步分析操作系統(tǒng)和設(shè)計、實現(xiàn)、開發(fā)實際操作系統(tǒng)的能力。

2.基本要求

通過理論學習和上機操作,使學生能掌握操作系統(tǒng)的基本概念、基本原理及基本功能.了解Linux操作系統(tǒng)、WINDOWSServer2003操作系統(tǒng)的基本輪廓,具有初步分析實際操作系統(tǒng)、設(shè)計、構(gòu)造和開發(fā)現(xiàn)代操作系統(tǒng)的基本能力。前言五、課程內(nèi)容介紹操作系統(tǒng)的基本概念、基本結(jié)構(gòu)及運行環(huán)境介紹操作系統(tǒng)原理、設(shè)計方法和實現(xiàn)技術(shù)介紹操作系統(tǒng)的演化過程、發(fā)展研究動向、新技術(shù)以及新思想介紹各種有代表性的、典型的操作系統(tǒng)實例培養(yǎng)學生分析問題、解決問題的基本能力,培養(yǎng)創(chuàng)造型人才。前言六、學習要求課前預習教材,獨立完成作業(yè)按時上課,認真聽講研讀參考書,查閱相關(guān)資料,多實踐整理筆記,認真思考,積極討論,善于發(fā)現(xiàn)問題、提出問題并努力尋求問題的答案結(jié)合操作系統(tǒng)學習網(wǎng)站豐富的教學資源,努力尋求問題的答案,掌握基本原理,拓展知識,延伸視野,提高分析問題和解決問題的能力。操作系統(tǒng)原理

PrinciplesofOperatingSystem第1章操作系統(tǒng)概論§1.1操作系統(tǒng)的概念1.1.1計算機系統(tǒng)的結(jié)構(gòu)1.問題的引入:下面列舉了一些大家熟悉的軟件,你能說出它們的區(qū)別嗎?極品飛車、RealonePlayer播放器、VisualC++、Flash、DreamweaverMX2004、Linux、Unix、WindowsXP、Word、Windows優(yōu)化大師、Oracal、升達大學學生管理系統(tǒng)

§1.1操作系統(tǒng)的概念2.計算機系統(tǒng)的層次結(jié)構(gòu)用戶1用戶2用戶3用戶4用戶n財務(wù)系統(tǒng)航空訂票上網(wǎng)瀏覽電子商務(wù)科學計算(應(yīng)用程序)編譯程序匯編程序編輯程序數(shù)據(jù)庫(系統(tǒng)程序)操作系統(tǒng)計算機硬件………

提供了一良好的工作環(huán)境,方便用戶的使用§1.1操作系統(tǒng)的概念2.計算機系統(tǒng)的層次結(jié)構(gòu)

硬件系統(tǒng)(裸機):提供基本的可計算性資源,包括CPU、存儲器(主存、輔存)、I/O系統(tǒng)

操作系統(tǒng)層:對硬件作擴充和改造,提供了操作系統(tǒng)接口,為編譯程序、編輯程序、數(shù)據(jù)庫系統(tǒng)等的設(shè)計者提供有力支撐。

系統(tǒng)軟件:建立在操作系統(tǒng)改造和擴充過的機器上,提供擴展指令集,實現(xiàn)各種語言處理程序、數(shù)據(jù)庫管理系統(tǒng)和其他系統(tǒng)程序。

應(yīng)用軟件:解決用戶不同的應(yīng)用問題§1.1操作系統(tǒng)的概念1.1.2操作系統(tǒng)的視圖(作用)1.操作系統(tǒng)是用戶與計算機硬件之間的接口。用戶A(上網(wǎng))用戶B(欣賞音樂)用戶C(辦公)瀏覽器播放器辦公軟件用戶需求操作界面計算機硬件

操作系統(tǒng)屏蔽計算機硬件的物理特性差異,給用戶提供了接口§1.1操作系統(tǒng)的概念2.操作系統(tǒng)為用戶提供虛擬計算機裸機極難使用,雖有很強的指令系統(tǒng),從功能上來說局限性很大。加上軟件后,就可在硬件基礎(chǔ)上,對其功能和性能進行擴充和完善。例如:如果加上一層窗口管理軟件,由該軟件把一臺物理屏幕改造成多窗口,每個應(yīng)用可以在各自的窗口中操作,用戶可以在窗口環(huán)境中方便地與計算機交互。操作系統(tǒng)是緊靠硬件的第一層軟件,計算機上覆蓋操作系統(tǒng)后,可擴展基本功能,為用戶提供一臺功能顯著增強,使用更加方便,安全可靠性好,效率明顯提高的機器,稱為虛擬計算機,或操作系統(tǒng)虛擬機器(VirtualMachine)。

§1.1操作系統(tǒng)的概念3.操作系統(tǒng)作為計算機系統(tǒng)的資源管理者

在計算機系統(tǒng)中,能分配給用戶使用的硬件和軟件設(shè)施總稱為資源,包括兩大類:硬件資源和信息資源。這些資源是可以共享的。對資源進行抽象研究,找出各種資源共性和個性,有序地管理計算機中的硬件、軟件資源,跟蹤資源使用情況,監(jiān)視資源的狀態(tài),滿足用戶對資源的需求,協(xié)調(diào)各程序?qū)Y源的使用沖突,是現(xiàn)代操作系統(tǒng)的任務(wù)之一?!?.1操作系統(tǒng)的概念操作系統(tǒng)是控制和管理計算機硬件和軟件資源,合理地對各種資源進行分配和調(diào)度,規(guī)范計算機工作流程,方便用戶使用的程序的集合。操作系統(tǒng)是計算機系統(tǒng)的基礎(chǔ)軟件,它常駐內(nèi)存,給用戶程序提供一個支撐環(huán)境,所以,操作系統(tǒng)有哪些成分組成變得非常重要。一個比較公認的定義是操作系統(tǒng)是一直運行在計算機上的系統(tǒng)程序(通常稱為內(nèi)核),其它程序則為應(yīng)用程序,運行在操作系統(tǒng)提供的良好環(huán)境中?!?.1操作系統(tǒng)的概念1.1.3現(xiàn)代操作系統(tǒng)的特點:

現(xiàn)代操作系統(tǒng)盡管種類繁多,功能差別很大,但它們?nèi)匀痪哂幸恍┕餐奶卣鳌,F(xiàn)代操作系統(tǒng)具有并發(fā)性、共享性、虛擬性和不確定性。

1.并發(fā)性(concurrence)

并發(fā)性是指兩個或多個事件或活動在同一時間間隔內(nèi)發(fā)生。操作系統(tǒng)是一個并發(fā)的系統(tǒng),并發(fā)性是它最重要的特性。操作系統(tǒng)的并發(fā)性是指計算機系統(tǒng)中同時存在若干個運行的程序,這些程序在執(zhí)行時間上重疊?!?.1操作系統(tǒng)的概念

2.共享性(sharing)

共享性是現(xiàn)代操作系統(tǒng)的另一個重要特征。共享是指系統(tǒng)中的硬件和軟件資源不再為某個程序所獨占,而是供多個用戶共同使用。資源共享的方式有兩種:(1)互斥訪問。系統(tǒng)中的某些資源,如打印機、磁帶機等,它們雖然可以提供給多個程序使用,但在同一時間段內(nèi)卻只允許一個程序訪問這些資源,即要求互相排斥地使用這些資源。(2)同時訪問。計算機系統(tǒng)中還有一些資源,允許同一時間內(nèi)多個程序?qū)λ鼈冞M行訪問。典型的可同時訪問的設(shè)備是磁盤,各種可重入程序也可被同時訪問?!?.1操作系統(tǒng)的概念3.虛擬性(virtual)

虛擬性是指操作系統(tǒng)采用的一種管理技術(shù),它把一個物理上的實體,變?yōu)槿舾蓚€邏輯上的對應(yīng)物,或者把物理上的多個實體變成邏輯上的一個對應(yīng)物的技術(shù)。很顯然,物理實體(前者)是實的,而后者是虛擬的。

4.異步性(asynchronism)

在多道程序環(huán)境下,允許多個進程并發(fā)執(zhí)行,但由于競爭資源等因素的限制,使進程的執(zhí)行不是“一氣呵成”,而是以“走走停?!钡姆绞竭\行。也就是說,在多道程序環(huán)境下,程序的執(zhí)行是以異步方式進行的?!?.1操作系統(tǒng)的概念1.1.4操作系統(tǒng)的功能

1.處理機管理創(chuàng)建或刪除用戶進程和系統(tǒng)進程;暫?;蛑貑⑦M程;提供進程同步機制;提供進程通信機制;提供死鎖處理機制;§1.1操作系統(tǒng)的概念2.存儲管理

操作系統(tǒng)負責下列內(nèi)存管理的活動:記錄內(nèi)存的哪些部分正在被使用及被誰使用。當內(nèi)存空間可用時,決定哪些進程可以裝入內(nèi)存。根據(jù)需要分配和釋放內(nèi)存空間。確保多道程序環(huán)境下,各個程序的運行只在自己內(nèi)存空間運行,互不干擾。當內(nèi)存空間不足時,采取何種策略去擴展邏輯內(nèi)存?!?.1操作系統(tǒng)的概念

3.設(shè)備管理提供外圍設(shè)備的控制與處理

提供緩沖區(qū)的管理

提供設(shè)備獨立性

外圍設(shè)備的分配和驅(qū)動調(diào)度實現(xiàn)虛擬設(shè)備

§1.1操作系統(tǒng)的概念4.文件管理創(chuàng)建或刪除文件

創(chuàng)建或刪除目錄

提供操作文件和目錄的原語

將文件映射到輔存上

在穩(wěn)定的存儲媒介上備份文件

§1.1操作系統(tǒng)的概念

5.用戶接口管理6.其他功能系統(tǒng)安全網(wǎng)絡(luò)和通信管理§1.2操作系統(tǒng)的形成和發(fā)展1.2.1人工操作階段

由用戶(程序員)采用手工方式直接控制和使用計算機硬件,即由用戶(程序員)將事先準備好的程序和數(shù)據(jù)穿孔在紙帶或卡片上,然后將這些紙帶或卡片裝入紙帶或卡片輸入機,啟動它們將程序和數(shù)據(jù)輸入到計算機,隨后啟動計算機運行。當程序運行結(jié)束取走結(jié)果后,才讓另一個用戶上機。這種人工操作方式有以下缺陷:(1)用戶上機獨占全機資源,造成資源利用率不高,系統(tǒng)效率低下。(2)手工操作多,浪費處理機時間,也極易發(fā)生差錯。(3)數(shù)據(jù)的輸入,程序的執(zhí)行、結(jié)果的輸出均聯(lián)機進行,從上機到下機的時間拉得非常長。

§1.2操作系統(tǒng)的形成和發(fā)展1.2.2管理程序階段——操作系統(tǒng)的雛形

操作員集中一批用戶提交的作業(yè),由管理程序?qū)⑦@批作業(yè)從紙帶或卡片機輸入到磁帶上,每當一批作業(yè)輸入完成后,管理程序自動把磁帶上的第一個作業(yè)裝入內(nèi)存,并把控制權(quán)交給作業(yè)。當該作業(yè)執(zhí)行完成后,作業(yè)又把控制權(quán)繳回管理程序,管理程序再調(diào)入磁帶上的第二個作業(yè)到內(nèi)存執(zhí)行。§1.2操作系統(tǒng)的形成和發(fā)展1.2.3多道批處理系統(tǒng)——現(xiàn)代意義上的操作系統(tǒng)出現(xiàn)所謂多道程序設(shè)計(multiprogramming)是指允許多個程序同時進入一個計算機系統(tǒng)的主存儲器并啟動進行計算的方法。也就是說,計算機內(nèi)存中同時存放多道(二個以上相互獨立的)程序,它們都處于開始和結(jié)束點之間。從宏觀上看是并行的,多道程序都處于運行中,并且都沒有運行結(jié)束;從微觀上看是串行的,各道程序輪流使用CPU,交替執(zhí)行。

§1.2操作系統(tǒng)的形成和發(fā)展§1.2操作系統(tǒng)的形成和發(fā)展例如:設(shè)在內(nèi)存中有三道程序A、B、C,并按A、B、C的優(yōu)先次序執(zhí)行,其內(nèi)部計算和I/O操作時間如下表所示(單位:ms)。操作ABC計算306020I/O403040計算101020若采用單道方式運行這三道程序,總的運行時間為:30+40+10+60+30+10+10+20+40+20=260ms§1.2操作系統(tǒng)的形成和發(fā)展若采用多道方式運行(一個I/O處理機)這三道程序,總的運行時間為:30+40+10+20+30+40+20=190ms

其運行時間關(guān)系圖如下:ABCI/O處理機30404010203040201020190mst§1.2操作系統(tǒng)的形成和發(fā)展操作系統(tǒng)中引入多道程序設(shè)計的好處:

一是提高了CPU的利用率,二是提高了內(nèi)存和I/O設(shè)備的利用率,三是改進了系統(tǒng)的吞吐率,四是充分發(fā)揮了系統(tǒng)的并行性。其主要缺點是:作業(yè)周轉(zhuǎn)時間延長?!?.2操作系統(tǒng)的形成和發(fā)展1.2.4分時系統(tǒng)與實時系統(tǒng)的出現(xiàn)——操作系統(tǒng)步入實用化

1.分時系統(tǒng):允許多個聯(lián)機用戶同時使用一臺計算機系統(tǒng)進行計算的操作系統(tǒng)稱分時操作系統(tǒng)(TimeSharingOperatingSystem)分時操作系統(tǒng)具有以下特性:(1)多路性:允許在一臺主機上同時聯(lián)接多臺聯(lián)機終端,系統(tǒng)按分時原則為每個用戶服務(wù)。(2)獨立性:每個用戶各占一個終端,彼此獨立操作,互不干擾。(3)及時性:用戶的請求能在很短時間內(nèi)獲得響應(yīng)。(4)交互性:用戶可通過終端與系統(tǒng)進行廣泛的人機對話。§1.2操作系統(tǒng)的形成和發(fā)展2.實時操作系統(tǒng):實時操作系統(tǒng)(RealTimeOperatingSystem)指當外界事件或數(shù)據(jù)產(chǎn)生時,能接收并以足夠快的速度予以處理,處理的結(jié)果又能在規(guī)定時間內(nèi)來控制監(jiān)控的生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實時任務(wù)協(xié)調(diào)一致運行的操作系統(tǒng)。實時系統(tǒng)的實現(xiàn):硬實時系統(tǒng):保證任務(wù)按時完成軟實時系統(tǒng):§1.2操作系統(tǒng)的形成和發(fā)展3.操作系統(tǒng)的三種基本類型的比較批處理系統(tǒng)的特點是“多道、成批自動處理”,優(yōu)點是“資源利用率高、系統(tǒng)吞吐量大”,缺點是“等待時間長、沒有交互能力”;分時系統(tǒng)的特點“同時性、交互性、獨立性和及時性”,優(yōu)點是“響應(yīng)快,便于資源共享”;實時系統(tǒng)的特點“響應(yīng)迅速,可靠性高,系統(tǒng)專用”,與分時系統(tǒng)相比,交互性較弱?!?.2操作系統(tǒng)的形成和發(fā)展1.2.5操作系統(tǒng)的進一步發(fā)展

1.微機操作系統(tǒng)現(xiàn)代的微機操作系統(tǒng)具有GUI、多用戶多任務(wù)、虛擬存儲管理、網(wǎng)絡(luò)通信支持、數(shù)據(jù)庫支持、多媒體支持、應(yīng)用程序編程接口(API)支持等功能,以最大程度的滿足個人用戶的使用要求。典型的微機操作系統(tǒng)有Windows、OS2、MACOS和Linux等。§1.2操作系統(tǒng)的形成和發(fā)展2.網(wǎng)絡(luò)和分布式操作系統(tǒng)網(wǎng)絡(luò)操作系統(tǒng)(NetworkOperatingSystem)能夠控制計算機在網(wǎng)絡(luò)中方便的傳送信息和共享資源,并能為網(wǎng)絡(luò)用戶提供各種所需服務(wù)的操作系統(tǒng)。網(wǎng)絡(luò)操作系統(tǒng)主要有兩種工作模式:(1)客戶機/服務(wù)器(Client/Server)模式。(2)對等模式(peer-to-peer)。網(wǎng)絡(luò)操作系統(tǒng)除了具有操作系統(tǒng)的基本功能外,還應(yīng)具有網(wǎng)絡(luò)通信、資源管理和網(wǎng)絡(luò)管理等功能。目前比較流行的網(wǎng)絡(luò)操作系統(tǒng)有:Linux、Unix、WindowsServer2000/2003等?!?.2操作系統(tǒng)的形成和發(fā)展2.網(wǎng)絡(luò)和分布式操作系統(tǒng)分布式計算機系統(tǒng)是一種特殊的計算機網(wǎng)絡(luò)系統(tǒng)。在分布式系統(tǒng)中。每臺計算機高度自治,又相互協(xié)調(diào),能在系統(tǒng)范圍內(nèi)實現(xiàn)資源管理,任務(wù)分配,能并行地運行分布式程序。分布式系統(tǒng)與計算機網(wǎng)絡(luò)的關(guān)鍵區(qū)別在于:在分布式系統(tǒng)中,多臺自主的計算機對用戶是透明的(或者說是不可見的)。也就是說,在分布式系統(tǒng)中,用戶覺察不到多個處理機的存在,用戶面對的是一臺虛擬的單處理機。在計算機網(wǎng)絡(luò)中,用戶必須明確指出在哪臺機器上登錄,明確地運行遞交的任務(wù),明確地指定文件傳輸?shù)哪康牡亍!?.2操作系統(tǒng)的形成和發(fā)展3.并行系統(tǒng)和集群系統(tǒng)多處理機系統(tǒng)(也稱為并行系統(tǒng))有多個緊密通信的處理器,它們共享計算機總線、時鐘,有時還有內(nèi)存和外設(shè)等。多處理機系統(tǒng)有對稱多處理(SMP)和非對稱多處理兩種模式。集群系統(tǒng)(ClusterSystem)將多個CPU集中起來完成計算任務(wù)。然而,集群系統(tǒng)與并行系統(tǒng)不同,它是有兩個或多個獨立的系統(tǒng)耦合起來。集群的定義尚未定形,通常接受的定義是集群計算機共享存儲并通過LAN網(wǎng)絡(luò)緊密連接。

§1.2操作系統(tǒng)的形成和發(fā)展4.嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)指運行在嵌入式(計算機)環(huán)境中,對整個系統(tǒng)及所有操作的各種部件、裝置等資源進行統(tǒng)一協(xié)調(diào)、處理、指揮和控制的系統(tǒng)軟件。嵌入式操作系統(tǒng)具有通常操作系統(tǒng)的功能,包括:與硬件相關(guān)的底層軟件、操作系統(tǒng)核心功能(文件系統(tǒng)、存儲管理、設(shè)備管理、進程管理、處理器管理和中斷處理)、功能強大的還提供圖形界面、通信協(xié)議、小型瀏覽器等設(shè)施。嵌入式操作系統(tǒng)硬件平臺的局限性、應(yīng)用環(huán)境的多樣性、開發(fā)手段的特殊性,使它與一般操作系統(tǒng)有很大不同?!?.2操作系統(tǒng)的形成和發(fā)展1.2.6實例研究:Windows和Linux的發(fā)展歷程

1.Linux系統(tǒng)

Linux是類Unix操作系統(tǒng)大家族中的一員。從20世紀90年代末開始,Linux這位相對較新的成員突然變得非常流行,并且躋身于那些有名的商用Unix操作系統(tǒng)之列。1991年,LinusTorvalds開發(fā)出最初的Linux,它作為一個適用于基于Intel80386微處理器的IBMPC兼容機的操作系統(tǒng)。Linus將這個系統(tǒng)放到Internet上,允許人們自由下載,許多人對Linux進行改進、擴充、完善,做出了關(guān)鍵性貢獻。Linux由最初一個人寫的原型變成在Internet上由無數(shù)志同道合的程序高手們參與的一場運動?!?.2操作系統(tǒng)的形成和發(fā)展2.Windows系統(tǒng)Windows操作系統(tǒng)是由微軟公司開發(fā)的操作系統(tǒng)。從1983年微軟宣布Windows的誕生到現(xiàn)在的WindowsServer2003,Windows已經(jīng)走過了20多年,并且成為風靡全球的微機操作系統(tǒng)。目前個人計算機上采用Windows操作系統(tǒng)的占90%。1983年11月,比爾.蓋茨宣布推出Windows,但是一直到1985年11月微軟公司才正式發(fā)布Windows1.0版。1987年12月,Windows2.0正式供貨。1990年5月22日,微軟推出Windows3.0。從此,在許多獨立軟件開發(fā)商和硬件廠商的支持下,微軟的Windows在市場中逐漸開始取代DOS成為操作系統(tǒng)平臺的主流軟件?!?.3操作系統(tǒng)的結(jié)構(gòu)1.3.1操作系統(tǒng)的設(shè)計

操作系統(tǒng)是一個龐雜的大型系統(tǒng)的軟件,因此,操作系統(tǒng)的設(shè)計是一個復雜的過程。以IBM公司的OS/360系統(tǒng)為例,它由4000個模塊組成,共約100萬條指令,花費5000人年,經(jīng)費達數(shù)億美元。1.操作系統(tǒng)的設(shè)計目標一個高質(zhì)量的操作系統(tǒng)應(yīng)具有可靠性、高效性、可擴充性、易移植性、安全性和兼容性等特征。

2.操作系統(tǒng)的設(shè)計和實現(xiàn)設(shè)計原則:機制與實現(xiàn)相分離

§1.3操作系統(tǒng)的結(jié)構(gòu)1.3.2操作系統(tǒng)的結(jié)構(gòu)

1.整體式結(jié)構(gòu)整體式操作系統(tǒng)的基本設(shè)計思想是:把模塊作為操作系統(tǒng)的基本單位,按照功能需要而不是根據(jù)程序和數(shù)據(jù)的特性把整個操作系統(tǒng)分解成若干個模塊,每個模塊具有一定的功能,若干個關(guān)聯(lián)模塊協(xié)作完成某個功能。各個模塊可以不加控制,自由調(diào)用,每個模塊經(jīng)獨立設(shè)計、編碼和調(diào)試后連接成一個完整的系統(tǒng)。這種結(jié)構(gòu)的優(yōu)點是:程序結(jié)構(gòu)緊密,接口簡單直接,系統(tǒng)效率高,但是也有一定的缺陷,如模塊獨立性差,模塊之間牽連太多,系統(tǒng)結(jié)構(gòu)不清晰,系統(tǒng)的正確性難以保證,可靠性降低,擴充性差等?!?.3操作系統(tǒng)的結(jié)構(gòu)2.層次結(jié)構(gòu)所謂層次結(jié)構(gòu)就是把操作系統(tǒng)所有的功能模塊按照功能的調(diào)用次序分別排成若干層,各層之間的模塊只能是單向依賴或單向調(diào)用(如:只允許上層或外層模塊調(diào)用下層或內(nèi)層模塊)關(guān)系,這樣不但操作系統(tǒng)的結(jié)構(gòu)清晰,而且不構(gòu)成循環(huán)。層次結(jié)構(gòu)的優(yōu)點:整體問題局部化,系統(tǒng)的正確性可通過各層正確性來保證。增加、修改或替換層次不影響其他層次,有利于系統(tǒng)的維護和擴充?!?.3操作系統(tǒng)的結(jié)構(gòu)2.層次結(jié)構(gòu)構(gòu)造層次結(jié)構(gòu)OS分層原則1)把與機器硬件有關(guān)的程序模塊放在最底層

2)反映系統(tǒng)外特性的軟件放在最外層

3)按照實現(xiàn)操作系統(tǒng)命令時模塊間的調(diào)用次序或按進程間單向發(fā)送信息的順序來分層

4)為進程的正常運行創(chuàng)造環(huán)境和提供條件的內(nèi)核程序應(yīng)該盡可能放在底層?!?.3操作系統(tǒng)的結(jié)構(gòu)3.客戶/服務(wù)器(微內(nèi)核)結(jié)構(gòu)客戶/服務(wù)器結(jié)構(gòu)的思想:將操作系統(tǒng)分成兩大部分,一是運行在用戶態(tài)并以C/S方式活動的進程;二是運行在核心態(tài)的內(nèi)核運行在核心態(tài)的內(nèi)核把該消息傳給服務(wù)器;服務(wù)器執(zhí)行相應(yīng)操作,再通過內(nèi)核用消息把結(jié)果返回給用戶。內(nèi)核只實現(xiàn)極少任務(wù),主要起信息驗證、交換的作用,因而,稱微內(nèi)核(Microkernel),這種結(jié)構(gòu)也就稱為客戶/服務(wù)器與微內(nèi)核結(jié)構(gòu)?!?.3操作系統(tǒng)的結(jié)構(gòu)3.客戶/服務(wù)器(微內(nèi)核)結(jié)構(gòu)客戶進程客戶進程進程服務(wù)器終端服務(wù)器文件服務(wù)器內(nèi)存服務(wù)器。。。內(nèi)核(消息轉(zhuǎn)發(fā)站)客戶通過向服務(wù)器進程發(fā)送消息來獲得服務(wù)用戶進程操作系統(tǒng)服務(wù)內(nèi)容§1.4實例研究:Windows和Linux結(jié)構(gòu)1.4.1WindowsServer2003的結(jié)構(gòu)采用基于對象技術(shù),提出了一種C/S系統(tǒng)結(jié)構(gòu),該結(jié)構(gòu)在純微內(nèi)核結(jié)構(gòu)的基礎(chǔ)上做了擴展,融合了層次式結(jié)構(gòu)和純微內(nèi)核結(jié)構(gòu)的特點。對操作系統(tǒng)性能影響很大的組件放在內(nèi)核下運行,其他功能則在內(nèi)核外實現(xiàn)。主要優(yōu)點是模塊化程度高、靈活性大、便于維護、系統(tǒng)性能好?!?.4實例研究:Windows和Linux結(jié)構(gòu)系統(tǒng)線程NTDLL.DLLService.exeRPCSpooler事件日志服務(wù)進程任務(wù)管理器IE瀏覽器用戶程序子系統(tǒng)DLL應(yīng)用程序POSIXOS2WIN32環(huán)境子系統(tǒng)服務(wù)管理器安全驗證Win登錄會話管理器系統(tǒng)進程核心態(tài)用戶態(tài)Win32UserGDI圖形驅(qū)動器硬件抽象層(HAL)設(shè)備驅(qū)動程序內(nèi)核對象管理器核心態(tài)可調(diào)用接口(執(zhí)行程序API)系統(tǒng)服務(wù)調(diào)度進程I/O管理器文件緩存管理進程線程管理安全訪問監(jiān)視虛存管理局部過程調(diào)用注冊表配置管理器電源管理器即插即用管理硬件接口(總線、I/O、時鐘、計時器、中斷、DMA、CACHE控制器)

§1.4實例研究:Windows和Linux結(jié)構(gòu)1.4.2Linux的結(jié)構(gòu)模型用戶程序GNU工具與硬件無關(guān)的代碼(可移植的)系統(tǒng)調(diào)用接口與硬件相關(guān)的代碼(不可移植的)硬件二進制指令系統(tǒng)用戶程序GNU工具系統(tǒng)調(diào)用接口硬件控制程序(不可移植的)硬件二進制指令系統(tǒng)文件子系統(tǒng)進程控制子系統(tǒng)編程工具包內(nèi)核硬件(a)Linux系統(tǒng)結(jié)構(gòu)粗略模型(b)Linux系統(tǒng)結(jié)構(gòu)的詳細模型重點概念和內(nèi)容提示操作系統(tǒng)的概念、特點和功能多道程序設(shè)計操作系統(tǒng)的基本類型:批處理系統(tǒng)分時系統(tǒng)實時系統(tǒng)ThankYouVeryMuch!第2章操作系統(tǒng)的界面§2.1系統(tǒng)生成和啟動2.1.1系統(tǒng)的生成在系統(tǒng)生成過程中,下列信息必須確定:(1)CPU的類型。CPU的類型決定了系統(tǒng)的指令集;(2)內(nèi)存的容量。內(nèi)存容量的確定能夠保證系統(tǒng)在合法的地址范圍內(nèi)活動,合理安排可用內(nèi)存;(3)可用設(shè)備的類型和數(shù)量;系統(tǒng)需要知道如何訪問設(shè)備、設(shè)備的中斷號、設(shè)備類型和模型以及任何特別的設(shè)備特點;(4)操作系統(tǒng)的功能選項或使用的參數(shù)。這些選項或值可能包括需要使用多少和多大的緩沖區(qū),需要什么類型的CPU調(diào)度算法,所支持進程的最大數(shù)量是多少,等等?!?.1系統(tǒng)生成和啟動2.1.2系統(tǒng)的啟動1.初始引導階段現(xiàn)代多數(shù)計算機使用固化在ROM中的BIOS來啟動計算機。BIOS包括中斷服務(wù)程序、系統(tǒng)設(shè)置程序、POST(PoweronSelfTest)上電自檢和BIOS系統(tǒng)啟動自舉程序。BIOS中斷服務(wù)程序來完成硬件設(shè)備的初始化;系統(tǒng)設(shè)置程序用來設(shè)置CMOS的參數(shù),該程序一般通過在啟動計算機時,按Del健進入CMOS設(shè)置過程;POST上電自檢程序完成對硬件配制的檢測,如發(fā)現(xiàn)問題將給出提示或鳴笛警告;而BIOS系統(tǒng)啟動自舉程序是按照系統(tǒng)CMOS中設(shè)置的啟動順序搜尋軟、硬盤驅(qū)動器及CD-ROM等,讀入存放在該設(shè)備特定位置的操作系統(tǒng)引導記錄(該記錄在磁盤的0面0磁道1扇區(qū))到內(nèi)存的特定位置,然后將控制權(quán)交給引導記錄,由該引導記錄將內(nèi)核代碼從文件系統(tǒng)中裝入內(nèi)存,以便完成系統(tǒng)的啟動。

§2.1系統(tǒng)生成和啟動2.核心初始化階段

在操作系統(tǒng)的內(nèi)核代碼裝入內(nèi)存后,引導程序?qū)⒖刂茩?quán)轉(zhuǎn)交給內(nèi)核可執(zhí)行代碼,從此核心代碼開始執(zhí)行。內(nèi)核首先進行初始化工作,包括對硬件以及接口電路的初始化,對內(nèi)核所有數(shù)據(jù)結(jié)構(gòu)進行初始化。

3.系統(tǒng)初始化階段這一階段是前兩個階段的繼續(xù),其主要任務(wù)是做好準備工作,使系統(tǒng)處于命令接受狀態(tài),這時用戶就可使用計算機來完成自己的工作。在這個階段,操作系統(tǒng)為用戶創(chuàng)建工作環(huán)境,接受并解釋執(zhí)行用戶的程序和指令。例如:Window系統(tǒng)啟動出現(xiàn)桌面,Unix/Linux系統(tǒng)啟動出現(xiàn)的命令行界面或X-Window界面,均表明系統(tǒng)已經(jīng)成功啟動,用戶可以使用計算機了?!?.2操作系統(tǒng)的界面2.2.1操作系統(tǒng)提供的服務(wù)

?執(zhí)行程序:系統(tǒng)必須能將程序裝入內(nèi)存并運行該程序。?數(shù)據(jù)I/O:程序運行時可能需要I/O操作。?信息存?。河脩舭凑瘴募麃斫?、讀寫、修改以及刪除文件,使信息的存取更加方便、可靠。

?通信服務(wù):一個進程需要與另外一個進程交換信息。

?錯誤檢測和處理:操作系統(tǒng)通常需要知道可能出現(xiàn)的錯誤?!?.2操作系統(tǒng)的界面2.2.2操作系統(tǒng)接口

操作系統(tǒng)計算機用戶程序接口(系統(tǒng)調(diào)用)命令接口、圖形接口§2.2操作系統(tǒng)的界面2.2.2操作系統(tǒng)的接口1.命令接口在當前幾乎所有的計算機(從大、中型機到微型機)的操作系統(tǒng)都向用戶提供了命令接口,以實現(xiàn)用戶與計算機之間的交互。用戶使用命令接口來與計算機進行交互時,首先必須在終端上鍵入正確的操作命令,由終端處理程序接收用戶鍵入的命令,并將它顯示在終端屏幕上。當一條命令輸入完成后,操作系統(tǒng)的命令解釋程序?qū)τ脩糨斎氲拿钸M行分析,然后執(zhí)行相應(yīng)的命令處理程序。操作系統(tǒng)的命令接口應(yīng)包括一組命令、終端處理程序和命令解釋程序。其中,命令解釋程序的主要作用是在屏幕上給出提示符,請求用戶輸入命令,然后讀入命令,并識別命令,再轉(zhuǎn)到相應(yīng)的命令處理程序去執(zhí)行,并將處理結(jié)果送屏幕上顯示。若用戶鍵入的命令有錯,命令解釋程序未能識別,或在執(zhí)行過程中出現(xiàn)錯誤,則顯示出錯信息?!?.2操作系統(tǒng)的界面大家比較熟悉的命令解釋程序有MS-DOS/windows98的,windows2000的cmd.exe以及UNIX/Linux的shell程序。下面列舉出部分常用DOS內(nèi)部命令(具體的應(yīng)用的含義和應(yīng)用,可用help<command>來查找)磁盤操作類:chkdsk磁盤檢查;fdisk磁盤分區(qū);format磁盤格式化文件和目錄類:md建立目錄;cd設(shè)置或顯示當前目錄;rd刪除目錄;copy復制文件;rename文件更名;del刪除文件;type顯示文件內(nèi)容其他類:ver顯示版本號;time顯示系統(tǒng)時間;date顯示系統(tǒng)日期§2.2操作系統(tǒng)的界面2.圖形用戶接口(GUI)為了方便用戶地使用,Apple公司在20世紀80年代中期推出了圖形用戶接口(GUI)。使用GUI來操作計算機,用戶不需要記憶復雜的操作命令,只需要用鼠標點擊代表相應(yīng)命令的圖形(稱為圖標)來運行程序,因而極大地方便了用戶。3.程序接口程序接口又稱應(yīng)用編程接口API(ApplicationProgrammingInterface),允許運行程序調(diào)用操作系統(tǒng)的服務(wù)和功能?!?.2操作系統(tǒng)的界面程序接口由一組系統(tǒng)調(diào)用(SystemCall))組成,用戶程序使用“系統(tǒng)調(diào)用”就可獲得操作系統(tǒng)的底層服務(wù),使用或訪問系統(tǒng)的各種軟硬件資源。從某種角度上看,進行系統(tǒng)調(diào)用就象進行一個特殊的過程調(diào)用。但是,系統(tǒng)調(diào)用的實現(xiàn)與一般的過程調(diào)用的實現(xiàn)相比,兩者間有很大的差異。系統(tǒng)調(diào)用可以進入操作系統(tǒng)內(nèi)核,而過程調(diào)用則不能進入操作系統(tǒng)的內(nèi)核。對于系統(tǒng)調(diào)用,控制是由原來的用戶態(tài)轉(zhuǎn)換為系統(tǒng)態(tài),這是借助于中斷和陷入機制來完成的,在該機制中包括中斷和陷入硬件機構(gòu)和中斷和陷入處理程序兩部分。§2.2操作系統(tǒng)的界面系統(tǒng)調(diào)用的格式隨計算機的不同而不同,但對任何不同的計算機都有以下共同的特點:(1)每個系統(tǒng)調(diào)用對應(yīng)一個功能號,要調(diào)用操作系統(tǒng)的某一特定例程,必須在指令中給出對應(yīng)的功能號。

(2)按功能號實現(xiàn)調(diào)用的過程大體相同,即都是通過對功能號的解釋分別轉(zhuǎn)入對應(yīng)例行子程序?!?.2操作系統(tǒng)的界面SystemCall用戶程序A0SUB0SUB1SUBiSUBnA1AiAn……系統(tǒng)調(diào)用處理子程序取系統(tǒng)功能號找入口地址表相應(yīng)入口地址結(jié)束處理恢復現(xiàn)場A0A1…Ai…An保護CPU現(xiàn)場陷入指令系統(tǒng)調(diào)用陷入機構(gòu)入口地址表§2.2操作系統(tǒng)的界面Linux系統(tǒng)調(diào)用Linux系統(tǒng)調(diào)用由兩部分組成:核心函數(shù)是實現(xiàn)系統(tǒng)調(diào)用功能的(內(nèi)核)代碼。接口函數(shù)是提供給應(yīng)用程序的API,以庫函數(shù)形式存在Linux的lib.a中。Linux系統(tǒng)調(diào)用入口程序entry.sENTRY(sys-call-table).longSYMBOL-NAME(sys-ni-syscall)0.longSYMBOL-NAME(sys-exit)1.longSYMBOL-NAME(sys-fork)2.longSYMBOL-NAME(sys-read)3.longSYMBOL-NAME(sys-write)4.longSYMBOL-NAME(sys-open)5.longSYMBOL-NAME(sys-close)6

.longSYMBOL-NAME(sys-vfork)190§2.2操作系統(tǒng)的界面Win32API和UNIX/Linux系統(tǒng)調(diào)用粗略對應(yīng)關(guān)系UNIX/LinuxWin32說明forkCreatProcess創(chuàng)建進程

waitpidWaitForSingleObject等待進程終止open/closeCreatFile/CloseHandle創(chuàng)建或打開/關(guān)閉文件read/writeReadFile/WriteFile讀/寫文件lseekSetFilePointer移動文件指針mkdir/rmdirCreat/RemoveDirectory建立/刪除目錄statGetFileAttributesEx獲得文件屬性重點概念和內(nèi)容提示操作系統(tǒng)接口的分類和特點系統(tǒng)調(diào)用的概念和執(zhí)行過程ThankYouVeryMuch!第3章處理機管理§3.1進程的概念3.1.1進程的引入

1.進程的引入:多道程序在執(zhí)行時,需要共享系統(tǒng)資源,從而導致各程序在執(zhí)行過程中出現(xiàn)相互制約的關(guān)系,程序的執(zhí)行表現(xiàn)出間斷性的特征。這些特征都是在程序的執(zhí)行過程中發(fā)生的,是動態(tài)的過程,而傳統(tǒng)的程序本身是一組指令的集合,是一個靜態(tài)的概念,無法描述程序在內(nèi)存中的執(zhí)行情況,即我們無法從程序的字面上看出它何時執(zhí)行,何時停頓,也無法看出它與其它執(zhí)行程序的關(guān)系,因此,程序這個靜態(tài)概念已不能如實反映程序并發(fā)執(zhí)行過程的特征。為了深刻描述程序動態(tài)執(zhí)行過程的性質(zhì),人們引入“進程(Process)”概念。

§3.1進程的概念2.進程的概念:進程的概念是60年代初首先由麻省理工學院的MULTICS系統(tǒng)和IBM公司的CTSS/360系統(tǒng)引入的。進程是一個具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實體。它不只是程序的代碼,還包括當前的活動,通過程序計數(shù)器的值和處理寄存器的內(nèi)容來表示。進程是操作系統(tǒng)中最基本、重要的概念。是多道程序系統(tǒng)出現(xiàn)后,為了刻畫系統(tǒng)內(nèi)部出現(xiàn)的動態(tài)情況,描述系統(tǒng)內(nèi)部各道程序的活動規(guī)律引進的一個概念,所有多道程序設(shè)計操作系統(tǒng)都建立在進程的基礎(chǔ)上。§3.1進程的概念操作系統(tǒng)引入進程的概念的原因:從理論角度看,是對正在運行的程序過程的抽象;從實現(xiàn)角度看,是一種數(shù)據(jù)結(jié)構(gòu),目的在于清晰地刻劃動態(tài)系統(tǒng)的內(nèi)在規(guī)律,有效管理和調(diào)度進入計算機系統(tǒng)主存儲器運行的程序。進程的特征動態(tài)性:進程的實質(zhì)是程序的一次執(zhí)行過程,進程是動態(tài)產(chǎn)生,動態(tài)消亡的。并發(fā)性:任何進程都可以同其他進程一起并發(fā)執(zhí)行獨立性:進程是一個能獨立運行的基本單位,同時也是系統(tǒng)分配資源和調(diào)度的獨立單位;異步性:由于進程間的相互制約,使進程具有執(zhí)行的間斷性,即進程按各自獨立的、不可預知的速度向前推進結(jié)構(gòu)特征:進程由程序、數(shù)據(jù)和進程控制塊三部分組成?!?.1進程的概念進程與程序的關(guān)系程序是指令的有序集合,其本身沒有任何運行的含義,是一個靜態(tài)的概念。而進程是程序在處理機上的一次執(zhí)行過程,它是一個動態(tài)的概念。程序可以作為一種軟件資料長期存在,而進程是有一定生命期的。程序是永久的,進程是暫時的。進程更能真實地描述并發(fā),而程序不能;進程是由程序和數(shù)據(jù)兩部分組成的。進程具有創(chuàng)建其他進程的功能,而程序沒有。同一程序同時運行于若干個數(shù)據(jù)集合上,它將屬于若干個不同的進程。也就是說同一程序可以對應(yīng)多個進程。

§3.1進程的概念3.1.2進程的狀態(tài)

一個進程從創(chuàng)建而產(chǎn)生至撤銷而消亡的整個生命周期,可用一組狀態(tài)加以刻劃,,按進程在執(zhí)行過程中的狀況至少定義三種不同的進程狀態(tài):運行態(tài)(Running)是指當前進程已經(jīng)分配到CPU,它的程序正在處理機上執(zhí)行的狀態(tài)。就緒狀態(tài)(Ready)是指已具備運行條件,但因為其他進程正在占用CPU,使它暫時不能運行而處于等待分配CPU的狀態(tài)。阻塞狀態(tài)(Blocked)是指進程因等待某種事件發(fā)生(例如等待I/O操作完成,等待其他進程發(fā)來的信號)而暫時不能運行的狀態(tài),也就是說,處于阻塞狀態(tài)的進程尚不具備運行條件,即使CPU空閑它也無法使用?!?.1進程的概念§3.1進程的概念引起進程狀態(tài)轉(zhuǎn)換的具體原因運行態(tài)→等待態(tài):等待使用資源或某事件發(fā)生;等待態(tài)→就緒態(tài):資源得到滿足或事件發(fā)生;運行態(tài)→就緒態(tài):運行時間片到;出現(xiàn)有更高優(yōu)先權(quán)進程。就緒態(tài)→運行態(tài):CPU空閑時選擇一個就緒進程?!?.1進程的概念進程五態(tài)模型及其轉(zhuǎn)換運行態(tài)就緒態(tài)等待態(tài)選中落選出現(xiàn)等待事件等待事件結(jié)束新建態(tài)終止態(tài)§3.1進程的概念新建態(tài)對應(yīng)進程剛被創(chuàng)建的狀態(tài)。為一個新進程創(chuàng)建必要的管理信息,它并沒有被提交執(zhí)行,而是在等待操作系統(tǒng)完成創(chuàng)建進程的必要操作。進程的終止,首先,等待操作系統(tǒng)進行善后,然后,退出主存。進入終止態(tài)的進程不再執(zhí)行,但依然臨時保留在系統(tǒng)中等待善后。一旦其他進程完成了對終止態(tài)進程的信息抽取之后,系統(tǒng)將刪除該進程。

§3.1進程的概念掛起狀態(tài)的引入掛起等待事件結(jié)束出現(xiàn)等待事件解除掛起掛起落選選中運行態(tài)就緒態(tài)等待事件結(jié)束終止態(tài)新建態(tài)掛起就緒態(tài)解除掛起掛起掛起等待態(tài)等待態(tài)提交提交§3.1進程的概念例題:

1.如果系統(tǒng)中有N個進程,運行的進程最多幾個,最少幾個;就緒進程最多幾個最少幾個;等待進程最多幾個,最少幾個?[解答]:在單處理機系統(tǒng)中,處于運行狀態(tài)的進程最多為1個,最少為0個;處于就緒進程最多為N-1個,最少為0個;處于阻塞的進程最多為N個,最少為0個。2.有沒有這樣的狀態(tài)轉(zhuǎn)換,為什么? (1)等待—運行;(2)就緒—等待§3.1進程的概念3.1.3進程的描述——進程控制塊進程在內(nèi)存的活動可以用進程上下文(ProcessContext)來描述。在操作系統(tǒng)中,把進程的物理實體和支持進程運行的環(huán)境合稱為進程上下文。進程的運行被認為是在進程的上下文中執(zhí)行的。在操作系統(tǒng)中,進程的上下文由用戶級上下文、系統(tǒng)級上下文和寄存器上下文組成。進程控制塊(PCB)是進程組成中最關(guān)鍵的部分,是系統(tǒng)對進程進行控制和管理的依據(jù),是進程存在的唯一標志。當系統(tǒng)創(chuàng)建一個新進程就要為它創(chuàng)建一個PCB;當進程終止后,系統(tǒng)收回其PCB,該進程在系統(tǒng)中就不存在了。進程與PCB是一一對應(yīng)的?!?.1進程的概念進程控制塊的組成:進程名特征信息進程狀態(tài)信息調(diào)度優(yōu)先權(quán)通信信息現(xiàn)場保護區(qū)資源需求進程實體信息族系關(guān)系其他信息§3.1進程的概念§3.1進程的概念進程控制塊的組織:§3.1進程的概念3.1.4實例研究——Linux進程在Linux內(nèi)核中,代表一個進程的內(nèi)核數(shù)據(jù)結(jié)構(gòu)是structtask_struct,它就是前面提到的具有實際意義的進程控制塊,Linux把它命名為task_struct結(jié)構(gòu),原代碼見include/linux/sched.h文件。每一個可以獨立調(diào)度的進程必須擁有它自己的進程控制塊,或者說進程和進程控制塊之間是一一對應(yīng)的。Linux定義了五種進程狀態(tài):TASK_RUNNING、TASK_INTERRUPTIBLE

、TASK_UNINTERRUPTIBLE

、TASK_MOMBIE

和TASK_STOPPED

。§3.1進程的概念TASK_RUNNING狀態(tài):該狀態(tài)表示進程要么在CPU上執(zhí)行,要么在就緒隊列中等待調(diào)度程序調(diào)度執(zhí)行。TASK_INTERRUPTIBLE狀態(tài):該狀態(tài)表示進程處于可中斷的等待狀態(tài),也就是說處于等待隊列中的進程,可被其他進程產(chǎn)生的一個信號或一個硬件中斷所喚醒,使其狀態(tài)變?yōu)門ASK_RUNNING狀態(tài)。TASK_UNINTERRUPTIBLE狀態(tài):該狀態(tài)表示進程處于不可中斷的等待狀態(tài)。不可中斷的等待狀態(tài)是指等待進程不能被其他進程產(chǎn)生的一個信號所喚醒或改變成另一個狀態(tài)。當進程打開一個設(shè)備文件時,才會用到這種狀態(tài)?!?.1進程的概念TASK_MOMBIE狀態(tài):該狀態(tài)表示進程中止執(zhí)行,并且釋放了運行時的大部分資源,但尚未釋放自己的進程控制塊時所處的一種狀態(tài)。TASK_STOPPED狀態(tài):該狀態(tài)表示進程的執(zhí)行被暫停。當一個進程被另一個進程監(jiān)控時,任何信號都可以把這個進程的狀態(tài)變成暫停狀態(tài)。另外,當進程收到信號SIGSTOP、SIGTSTP、SIGTTIN和SIGTOU時,也將轉(zhuǎn)變成暫停狀態(tài)?!?.1進程的概念僵死TASK_ZOMBIE就緒TASK_RUNNING不可中斷TASK_UNINTERRUPTIBLE可中斷TASK_INTERRUPTIBLE停止TASK_STOPPED占有CPU運行調(diào)度schedulle

時間片到申請資源未果,調(diào)用interruptible_sleep_on()申請資源未果,調(diào)用sleep_on()申請資源可用后wake_up()申請資源可用,收到信號、wake_up()wake_up_interruptible()創(chuàng)建do_fork()執(zhí)行do_exit()跟蹤系統(tǒng)調(diào)用,執(zhí)行syscall_trace()sys_exit()schedulle()收到SIG_KILL或SIG_CONT后,執(zhí)行wake_up()§3.2進程控制3.2.1進程控制機構(gòu)

1.操作系統(tǒng)內(nèi)核

操作系統(tǒng)內(nèi)核就是操作系統(tǒng)的核心,它是基于硬件的第一層軟件擴展,提供操作系統(tǒng)最基本的功能,是操作系統(tǒng)工作的基礎(chǔ)?,F(xiàn)代操作系統(tǒng)設(shè)計中,通常將一些與硬件相關(guān)的模塊,如中斷處理程序、各種常用設(shè)備的驅(qū)動程序以及運行頻率較高的模塊等,將它們常駐內(nèi)存,以提高操作系統(tǒng)的運行效率,并對它們加以特殊的保護。通常把這一部分程序稱為操作系統(tǒng)的內(nèi)核。§3.2進程控制2.原語

原語(primitive)是機器指令的延伸,是由若干條指令構(gòu)成,用于完成特定功能的過程。原語是操作系統(tǒng)核心,它不是由進程而是由一組程序模塊所組成,是操作系統(tǒng)的一個組成部分,它必須在管態(tài)(一種機器狀態(tài))下執(zhí)行.原語都是原子操作.所謂原子操作是指一個操作中所有動作,要么全做,要么全不做,即原子操作是一個不可分割的操作。

§3.2進程控制3.2.2進程控制

1.進程的創(chuàng)建

進程在執(zhí)行過程中,能通過系統(tǒng)調(diào)用創(chuàng)建多個新進程,創(chuàng)建進程稱為父進程,而新進程稱為該進程的子進程。這些新進程仍然可以再創(chuàng)建其他進程,從而形成了進程樹。根ABCGFED祖先§3.2進程控制

1.進程的創(chuàng)建

創(chuàng)建進程必須調(diào)用創(chuàng)建原語來實現(xiàn)。創(chuàng)建原語的主要功能是創(chuàng)建一個指定標識符的進程,形成進程的PCB。一個典型的進程創(chuàng)建原語可描述如下:Create(s0,m0,pi){p=Get_New_PCB();//分配新的PCBpid=Get_New_PID();//分配進程的PIDp—>ID=pid;//設(shè)置進程的PIDp->CPU_State=s0;//CPU的狀態(tài)

p->Memory=m0;//內(nèi)存p->Priority=pi;//優(yōu)先級p->Status.Type=‘Ready’;//進程狀態(tài)p->Status.List=RL;//進程隊列……Insert(RL,p);//將進程p插入就緒隊列

Scheduler();//調(diào)度程序}§3.2進程控制

2.進程的阻塞

正在運行的進程因為提出服務(wù)請求(如I/O操作)未被操作系統(tǒng)立即滿足,或者所需數(shù)據(jù)尚未到達等原因,只能轉(zhuǎn)變?yōu)樽枞麪顟B(tài),等待相應(yīng)事件出現(xiàn)后再把它喚醒。阻塞原語可描述如下:Block(){p=Get_PCB();//獲取當前進程的進程控制塊s=p->Status.Type;//保存當前進程的狀態(tài)cpu=p->Processor_ID;//處理機狀態(tài)p->CPU_State=Interrupt(cpu);//保存處理機現(xiàn)場

p->Status.Type=‘Blocked’;//將進程的狀態(tài)改為阻塞

Insert(BL,p);//將進程插入等待隊列

Scheduler();}§3.2進程控制

3.進程的喚醒

當阻塞的進程所等待的事件出現(xiàn)時(如所需數(shù)據(jù)已到達,或者等待的I/O操作已經(jīng)完成),則由另外的與阻塞進程相關(guān)的進程(如完成I/O操作的進程)調(diào)用喚醒原語,將等待該事件的進程喚醒。阻塞進程不能喚醒自己。喚醒原語的執(zhí)行過程如下:

Wakeup(pid){P=Get_PCB(pid);//獲取進程控制塊Remove(p->Status.List,p);//從阻塞隊列中移出進程pp->Status.Type=‘Ready’;//進程的狀態(tài)改為就緒Insert(RL,p);//將進程插入到就緒隊列Scheduler();//調(diào)度程序}§3.2進程控制

4.進程的終止

進程完成了任務(wù),或者在執(zhí)行過程發(fā)生異常,這時系統(tǒng)就要終止當前進程的執(zhí)行。終止進程的執(zhí)行,可用進程終止原語來實現(xiàn)。一個典型進程終止原語如下:Destroy(pid){P=Get_PCB(pid);//獲取進程控制塊Kill_Tree(p);//刪除整個進程樹Scheduler();//調(diào)度器}§3.2進程控制Kill_Tree(P){for(eachqinp->Creation.Tree.Child)Kill_Tree(q);//刪除當前進程的所有子進程qif(p->Status.Type=‘Running’){cpu=p->Processor_ID;Interrupt(cpu);}Remove(p->Status.List,p);Release_all(p->Memory);Release_all(p->Other_Resources);Close_all(p->Open_Files);Delete_PCB(p);}§3.2進程控制3.2.3實例研究:Linux和Windows系統(tǒng)創(chuàng)建進程

1.Linux系統(tǒng)中進程創(chuàng)建——fork

在Linux系統(tǒng)中,用戶或系統(tǒng)可以使用系統(tǒng)調(diào)用fork來創(chuàng)建一個新的進程。fork的函數(shù)原形為:

pid_tfork()當一個進程調(diào)用fork創(chuàng)建一個子進程后,父進程和子進程都在自己獨立的地址空間內(nèi)執(zhí)行。它們之間不共享任何地址空間,但是父子進程具有相同的程序代碼、數(shù)據(jù)和堆棧段,因此,為了區(qū)別運行中的父子進程,fork系統(tǒng)調(diào)用向父子進程返回不同的值。它向子進程返回0,而向父進程返回子進程的PID?!?.2進程控制……..Beforefork()After……..forkfork執(zhí)行前一個控制流進入內(nèi)核fork模塊。。。。Beforefork()After………。。。。Beforefork()After………forkfork執(zhí)行后調(diào)用后,從fork返回兩個控制流父進程子進程/*Thefilecreate.cintroducestheuseoffork.*/#include<stdio.h>main(){intpid;printf(“Before:mypidis%d.\n”,getpid());pid=fork();//createnewprocessif(pid==-1)//出錯處理perror(“Cannotforkprocess!”);//errorelseif(pid==0)//子進程代碼printf(“Iamthechild.Mypidis%d.\n”,getpid());else//父進程代碼printf(“Iamtheparent.Mychildis%d.\n”,pid);}§3.2進程控制2.Windows系統(tǒng)中進程的創(chuàng)建——CreateProcess

在windows系統(tǒng),一個進程可以調(diào)用win32API的CreateProcess函數(shù)來創(chuàng)建一個新的進程及其主線程,以執(zhí)行指定的任務(wù)。在利用CreateProcess建立進程時,操作系統(tǒng)要為新進程分配新的地址空間和資源,建立新的主線程。一旦新進程建立,父進程仍然使用原來的地址空間繼續(xù)執(zhí)行,而新進程則在新的地址空間執(zhí)行一個新的程序。CreateProcess含有10個參數(shù)來指定建立進程的方式,具體參數(shù)的含義可參考相關(guān)的Win32API手冊。#include<windows.h>#include<stdio.h>#include<string.h>…………STARTUPINFOstartInfo;PROCESS_INFORMATIONprocessInfo;……strcpy(lpCommandLine,“c:\\WINNT\\SYSTEM32\\NOTEPAD.EXEtemp.txt”);ZeroMemory(&startupInfo,sizeof(startInfo));startInfo.cb=sizeof(startInfo);if(!CreateProcess(NULL,lpCommandLine,NULL,NULL,FALSE,HIGH_PRIORTY_CLASSCREATE_NEW_CONSOLE,NULL,NULL,&startInfo,&processInfo)){fprintf(stderr,”CreateProcessfailed!”);ExitProcess(1);}……CloseHandle(&processInfo.hThread);§3.3線程3.3.1線程的概念1.單線程程序的缺點:進程切換開銷大進程通信代價大進程之間的并發(fā)性粒度較粗,并發(fā)度不高不適合并行計算和分布并行計算的要求不適合客戶/服務(wù)器計算的要求。§3.3線程2.線程概念:線程(Thread)是進程內(nèi)的一個執(zhí)行單位或進程內(nèi)的一個可調(diào)度的實體,是CPU使用的基本單元。它由線程ID、程序計數(shù)器、寄存器集合和堆棧組成。它與屬于同一進程的其他線程共享其代碼段、數(shù)據(jù)段和其他操作系統(tǒng)資源(如打開文件和信號)。在引入線程的現(xiàn)代操作系統(tǒng)中,進程是資源分配的單位,而線程是處理機調(diào)度的單位。一個進程可以創(chuàng)建一個或多個線程,因而一個進程中的多個線程就會爭奪CPU,在不同的狀態(tài)之間進行轉(zhuǎn)換。也就是說,與進程類似,線程也是一個動態(tài)的概念,也有一個從創(chuàng)建到消亡的生命過程,在這一過程中它具多種狀態(tài),如運行、就緒、阻塞和終止等幾個狀態(tài)。§3.3線程§3.3線程線程應(yīng)用舉例:例1:LAN中的一個文件服務(wù)器,在一段時間內(nèi)需要處理幾個文件請求。有效的方法是:為每一個請求創(chuàng)建一個線程。例2:一個線程顯示菜單,并讀入用戶輸入;另一個線程執(zhí)行用戶命令。例3:考慮一個應(yīng)用:由幾個獨立部分組成,這幾個部分不需要順序執(zhí)行,則每個部分可以以線程方式實現(xiàn)。當一個線程因I/O阻塞時,可以切換到同一應(yīng)用的另一個線程。§3.3線程多線程編程具有以下優(yōu)點:(1)響應(yīng)程度高(2)資源共享(3)經(jīng)濟(4)多處理器體系結(jié)構(gòu)的利用

§3.3線程3.進程與線程的比較地址空間:不同進程的地址空間是獨立的,而同一進程內(nèi)的線程共享同一地址空間。一個進程的線程在另一個進程內(nèi)是不可見的。調(diào)度:在支持線程的操作系統(tǒng)中,進程是資源分配的基本單位,而線程是處理機調(diào)度的基本單位。并發(fā)性:同一進程內(nèi)的線程可以并發(fā)執(zhí)行,不同進程間的線程也可以并發(fā)執(zhí)行,并發(fā)能力進一步增強。系統(tǒng)開銷:進程切換時將涉及到有關(guān)資源指針的保存以及地址空間的變化等問題,線程切換時,由于同一進程內(nèi)的線程共享資源和地址空間,將不涉及資源信息的保存和地址變化問題,從而減少了操作系統(tǒng)的開銷時間。

§3.3線程3.3.2線程的實現(xiàn)1.用戶級線程用戶線程在內(nèi)核之上支持,并在用戶層通過線程庫來實現(xiàn)。線程庫提供對線程的創(chuàng)建、調(diào)度和管理的支持而無須內(nèi)核支持。由于內(nèi)核并不知道用戶級的線程,所以所有線程的創(chuàng)建和調(diào)度都是在用戶空間內(nèi)進行的,而無須內(nèi)核的干預。用戶級線程通常能快速的創(chuàng)建和管理,但它們也有缺點。例如,如果內(nèi)核是單線程的,那么任何一個用戶級線程若執(zhí)行阻塞系統(tǒng)調(diào)用,就會引起整個進程阻塞,即使還有其他線程可以在應(yīng)用程序內(nèi)運行。

§3.3線程2.內(nèi)核級線程內(nèi)核級線程由操作系統(tǒng)直接支持,內(nèi)核在其空間內(nèi)執(zhí)行線程的創(chuàng)建、調(diào)度和管理。因為線程管理是由操作系統(tǒng)完成的,所以內(nèi)核線程的創(chuàng)建和管理要慢于用戶線程的創(chuàng)建和管理。由于內(nèi)核管理線程,當一個線程執(zhí)行阻塞系統(tǒng)調(diào)用時,內(nèi)核能調(diào)度應(yīng)用程序內(nèi)的另一個線程以便執(zhí)行。而且,在多處理器環(huán)境下,內(nèi)核能在不同處理器上調(diào)度線程。

§3.3線程3.3.3多線程模型1.多對一模型多對一模型將許多用戶級線程映射到一個內(nèi)核線程。線程管理是在用戶空間進行的,因而效率比較高,但是如果一個線程執(zhí)行了阻塞系統(tǒng)調(diào)用,那么整個進程就會阻塞。而且,因為任何時刻只有一個線程訪問內(nèi)核,多個線程不能并行運行在多處理器上。在這種模型中,處理機調(diào)度的單位仍然是進程。Greenthread,Solaris2所提供的線程庫就是用了這種模型。另外,在不支持內(nèi)核級線程的操作系統(tǒng)上所實現(xiàn)的用戶級線程庫也使用多對一模型?!?.3線程2.一對一模型一對一模型將每個用戶線程映射到一個內(nèi)核線程。該線程模型在一個線程執(zhí)行阻塞時,能允許另一個線程繼續(xù)執(zhí)行,所以它提供了比多對一模型更好的并發(fā)功能。它也允許多個線程運行在多處理機系統(tǒng)上。這種模型的缺點是創(chuàng)建一個用戶線程就需要創(chuàng)建一個相應(yīng)的內(nèi)核線程。創(chuàng)建內(nèi)核線程的開銷會影響應(yīng)用程序的性能,所以這種模型的絕大多數(shù)實現(xiàn)限制了系統(tǒng)所支持的線程數(shù)量。WindowsNT/2000/xp和OS/2實現(xiàn)了一對一模型。§3.3線程3.多對多模型多對多模型多路復用了許多用戶級線程到同樣數(shù)量或更小數(shù)量的內(nèi)核線程上。內(nèi)核線程的數(shù)量可能與特定應(yīng)用程序或特定機器有關(guān)。

多對多模型克服前面兩種模型的缺點,開發(fā)人員可以創(chuàng)建任意多的必要的線程,并且相應(yīng)內(nèi)核線程能在多處理器系統(tǒng)上并行運行。而且,當一個線程執(zhí)行阻塞系統(tǒng)調(diào)用時,內(nèi)核能調(diào)度另一個線程來執(zhí)行。

§3.3線程用戶空間線程庫P內(nèi)核空間2)用戶級線程用戶空間P內(nèi)核空間1)內(nèi)核級線程用戶空間線程庫PP內(nèi)核空間3)混合式線程ULTKLTProcessP§3.3線程3.3.4線程池線程池的的實現(xiàn)思想如下:在進程建立時就創(chuàng)建若干線程,把它們放在一個“池中”,它們在那里等待工作。當服務(wù)器收到一個請求時,就喚醒池中的一個線程(如果有可用線程的話),并將要處理的請求傳給它。一旦線程完成了它的任務(wù),它會返回到池中再等待其他工作。如果池中沒有可用的線程,那么服務(wù)器就會一直等到直到有空閑線程為止。線程池具有以下優(yōu)點:(1)通常用現(xiàn)有線程處理請求比等待創(chuàng)建新線程要快;(2)線程池限定了任何時候可存在線程的數(shù)量?!?.3線程3.3.5實例研究

1.WindowsServer2003線程WindowsServer2003的線程是內(nèi)核線程,系統(tǒng)的處理機調(diào)度對象為線程。線程的上下文主要包括寄存器、線程環(huán)境塊、核心棧和用戶棧。WindowsServer2003把線程的狀態(tài)分成待調(diào)度就緒狀態(tài)、就緒狀態(tài)、備用狀態(tài)、運行狀態(tài)、等待狀態(tài)、就緒掛起狀態(tài)、轉(zhuǎn)換狀態(tài)、終止狀態(tài)和初始化狀態(tài)。WindowsServer2003內(nèi)核中與線程調(diào)度相關(guān)的主要數(shù)據(jù)結(jié)構(gòu)有處理機數(shù)據(jù)結(jié)構(gòu)和幾個全局數(shù)據(jù)結(jié)構(gòu)。它們是一個待調(diào)度就緒線程隊列、一個分成32個優(yōu)先級的就緒線程隊列、一個備用線程變量和一個運行線程變量?!?.3線程WindowsServer2003有一組相關(guān)的系統(tǒng)調(diào)用,應(yīng)用程序可用它們來進行線程控制。CreateThread完成線程的創(chuàng)建,在調(diào)用進程的地址空間上創(chuàng)建一個線程,以執(zhí)行指定的函數(shù),它的返回值為所創(chuàng)建線程的句柄。ExitThread用于結(jié)束當前線程。SuspendThread可掛起指定線程。ResumeThread可激活指定線程,它的對應(yīng)操作是遞減指定線程的掛起計數(shù),當掛起計數(shù)為0時,線程恢復執(zhí)行?!?.3線程2.Pthread線程Pthread是指POSIX標準(IEEE1003.1c)定義的,它定義線程創(chuàng)建API和同步API。這是線程行為的規(guī)范,而不是實現(xiàn)。操作系統(tǒng)設(shè)計者可以根據(jù)意愿來采取任何實現(xiàn)形式。通常,實現(xiàn)Pthread規(guī)范的庫局限于基于UNIX的系統(tǒng),Windows操作系統(tǒng)通常并不支持Pthread。Pthread線程函數(shù)調(diào)用:(1)Pthread_create()函數(shù)——創(chuàng)建一個線程(2)Pthread_join()函數(shù)——掛起當前線程直到所等待線程結(jié)束(3)Pthread_exit()函數(shù)——終止當前線程§3.4處理機調(diào)度3.4.1處理機調(diào)度的層次1.高級調(diào)度

高級調(diào)度又稱為作業(yè)調(diào)度或宏觀調(diào)度。其主要功能是根據(jù)一定的算法,從輸入的一批任務(wù)(作業(yè))中選出若干個作業(yè),分配必要的資源,如內(nèi)存、外設(shè)等,為它建立相應(yīng)的用戶作業(yè)進程和為其服務(wù)的系統(tǒng)進程(如輸入/輸出進程),最后把它們的程序和數(shù)據(jù)調(diào)入內(nèi)存,等待進程調(diào)度程序?qū)ζ鋱?zhí)行調(diào)度,并在作業(yè)完成后作善后處理工作?!?.4處理機調(diào)度2.中級調(diào)度中級調(diào)度涉及進程在內(nèi)外存間的交換。為緩解內(nèi)存緊張問題,在許多系統(tǒng)中設(shè)立了中級調(diào)度。中級調(diào)度的主要功能是在內(nèi)存使用緊張時,將一些暫時不能運行的進程從內(nèi)存對換到外存上等待。以后,當外存有足夠的空閑空間時,再將合適的進程重新?lián)Q入內(nèi)存,等待進程調(diào)度。引入中級調(diào)度的主要目的是為了提高內(nèi)存的利用率和系統(tǒng)吞吐量。

§3.4處理機調(diào)度3.低級調(diào)度低級調(diào)度又稱進程調(diào)度或微觀調(diào)度,其主要功能是根據(jù)一定的算法,將CPU分派給就緒進程隊列中的一個進程。執(zhí)行低級調(diào)度功能的程序稱為進程調(diào)度程序,由它實現(xiàn)CPU在進程間的切換。進程調(diào)度是操作系統(tǒng)中最基本的一種調(diào)度,在一般的操作系統(tǒng)中都必須有進程調(diào)度,而且它的策略的優(yōu)劣直接影響整個系統(tǒng)的性能。§3.4處理機調(diào)度作業(yè)CPU就緒,掛起隊列阻塞,掛起隊列阻塞隊列就緒隊列時間片到進程調(diào)度作業(yè)調(diào)度中級調(diào)度中級調(diào)度事件發(fā)生交互式用戶等待事件進程完成§3.4處理機調(diào)度3.4.2進程調(diào)度1.引起進程調(diào)度的典型事件當一個進程從運行狀態(tài)切換到等待狀態(tài)(例如,I/O請求)。當一個進程從運行狀態(tài)切換到就緒狀態(tài)(例如,當出現(xiàn)中斷時)。當一個進程從等待狀態(tài)切換到就緒狀態(tài)(例如,I/O完成)。當一個進程終止時。§3.4處理機調(diào)度2.進程調(diào)度的方式非搶占方式(Nonpreemptive):在這種調(diào)度方式下,一旦一個進程被選中運行,它就一直運行下去,直到它完成工作、自愿放棄CPU,或者因等待某一事件而被阻塞時為止,才把CPU出讓給其他進程,即得到CPU的進程不管運行多長時間,都一直運行下去,絕不會因為時鐘中斷等原因而被迫讓出CPU。搶占方式(Preemptive):搶占方式允許調(diào)度程序根據(jù)某種策略中止當前運行進程的執(zhí)行,將其移入就緒隊列,并選擇另一個進程投入運行。

§3.4處理機調(diào)度3.4.3調(diào)度算法的選擇原則

(1)CPU利用率:(2)吞吐量:(3)作業(yè)周轉(zhuǎn)時間

Ti=tci-tsi

平均周轉(zhuǎn)時間:T=(Σti)/n

(4)如果作業(yè)i的周轉(zhuǎn)時間為ti,所需運行時間為tk,則稱wi=ti/tk為該作業(yè)的帶權(quán)周轉(zhuǎn)時間。平均作業(yè)帶權(quán)周轉(zhuǎn)時間W=(Σwi)/n§3.5調(diào)度算法3.5.1先來先服務(wù)按照作業(yè)進入系統(tǒng)的先后次序來挑選作業(yè),先進入系統(tǒng)的作業(yè)優(yōu)先被挑選。算法容易實現(xiàn),效率不高,只顧及作業(yè)等候時間,沒考慮作業(yè)要求服務(wù)時間的長短,不利于短作業(yè)而優(yōu)待了長作業(yè)。FCFS是非強占調(diào)度方式。§3.5調(diào)度算法3.5.2短作業(yè)(進程)優(yōu)先SJF算法以進入系統(tǒng)的作業(yè)所要求的CPU時間為標準,總選取估計計算時間最短的作業(yè)投入運行。算法易于實現(xiàn),效率不高,主要弱點是忽視了作業(yè)等待時間,會出現(xiàn)饑餓現(xiàn)象。SJF算法可能是搶占的或非搶占的。當新進程的運行時間與當前進程的剩余運行時間相比,可能更短時,可搶占SJF算法可能搶占當前運行進程,而非搶占SJF算法會允許當前運行進程先執(zhí)行直到釋放CPU為止。可搶占SJF調(diào)度有時稱為最短剩余時間優(yōu)先(shortest-remaining-time-first)調(diào)度。

例題3-1:假如5個就緒進程其到達系統(tǒng)和所需CPU時間如下表所示(單位:毫秒),如果忽略I/O以及其他開銷分別計算采用FCFS、非搶占式SJF和搶占式SJF調(diào)度算法進行CPU調(diào)度的平均周轉(zhuǎn)時間和平均帶權(quán)周轉(zhuǎn)時間。進程到達和運行時間進程到達時間運行時間A03B26C44D65E82解答如下:(1)采用FCFS的調(diào)度順序為:ABCDE039131820平均周轉(zhuǎn)時間為:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論