全書教學課件:操作系統原理及應用(Windows-Server-2008)_第1頁
全書教學課件:操作系統原理及應用(Windows-Server-2008)_第2頁
全書教學課件:操作系統原理及應用(Windows-Server-2008)_第3頁
全書教學課件:操作系統原理及應用(Windows-Server-2008)_第4頁
全書教學課件:操作系統原理及應用(Windows-Server-2008)_第5頁
已閱讀5頁,還剩800頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

操作系統原理及應用(WindowsServer2008)課件1.1.1什么是操作系統1.1.2操作系統的地位1.1.3操作系統的功能1.1操作系統概述

返回上級目錄1.1.1什么是操作系統

我們都知道,一個計算機系統由系統軟件組成,系統硬件包括中央處理器(CPU)、內部存儲器、輸入/輸出設備等,系統軟件包括操作系統、各種語言處理程序、系統實用程序等。一臺沒有任何軟件支持的計算機稱之為裸機,用戶直接使用裸機來編制和運行程序是相當困難的,幾乎是不可能的。必須有計算機廠商提供的系統軟件的支持,計算機系統才能為用戶程序提供一個良好的編制與運行環境。因此,實際呈現在用戶面前的計算機系統已是經過若干層次軟件改造的計算機。操作系統是直接控制和管理計算機硬件、軟件資源的最基本的系統軟件,用以方便用戶充分、有效地利用資源并增強整個計算機的處理能力。

如圖1.1所示,可把整個計算機系統,按功能上劃分為四個層次,即硬件、系統實用軟件和應用軟件。這四個層次表現為一種單向服務關系,即外層可以使用內層提供的服務,反之則不行。

圖1.11.1.2操作系統的地位

系統硬件是計算機系統的基礎,操作系統及其他軟件最終還是要以機器指令來訪問和控制各種硬件資源。硬件系統的組織結構也在不斷地改進。目前大、中、小型計算機經常采用的一種硬件系統組織方式是以主存為中心,CPU和I/O系統充分地并行工作,并且通過這個雙端口的主存相互通信。I/O通道實際上是一臺專用的I/O處理機,它接收CPU的委托,獨立地執行自己的通道程序,以字節多路通道、組成多路通道和選擇通道分別控制低速、中速和高速外圍設備的工作。I/O通道使CPU擺脫了對各種I/O設備的繁雜控制,而且還可使各種外圍設備之間并行工作。即這種大、中、小型計算機系統是以CPU和I/O系統之間以及各I/O設備之間盡可能地并行工作來組織硬件系統,以換取更高的性能/價格比的。微型計算機系統普遍采用總線結構,以使擴充靈活、維護方便。CPU通過系統總線(含地址、數據和控制信息)與存儲器、I/O接口相連,各種外圍設備通過I/O接口掛接到系統總線上。例如,IBMPC和PC/XT微型計算機使用的標準PC總線(62引腳)支持8位數據傳輸和20位地址,IBMPC/AT微型計算機使用的擴展PC總線(62+36引腳)支持16位數據傳輸和24位地址在IBMPC系統微機中,是將接口控制卡(適配器卡)插入機箱內的“I/O擴展槽”與系統總線連接,I/O擴展槽也稱為I/O通道,但它實際上只是系統總線的延伸。在計算機系統的層次結構中,包圍著系統硬件的一層就是操作系統(OperatingSystem,簡寫為OS)。它是最基本的系統軟件,控制和管理著系統硬件(處理機、內存和外圍設備),向上層的實用程序和用戶應用程序提供一個屏蔽硬件工作細節的良好使用環境。即正是操作系統把一個裸機變成了一個可“操作”的、方便靈活的計算機系統。另一方面,因為計算機中的程序數據大多以文件形式存放在外存儲器中,而構成文件系統,接受操作系統的管理。所以,盡管操作系統處于系統軟件的最低層,但卻是其他所有軟件的管理者。我們看到,操作系統層在計算機系統層次結構中是特殊的、極為重要的一層,它不僅接受硬件層提供的服務并向上層的系統實用軟件層、應用軟件層提供服務,而且還管理著全系統的硬件和軟件資源。系統實用軟件層由一組系統實用程序(utility)組成,如語言編譯程序(compiler)、文本編輯程序(texteditor)、調試程序(debuggingutility)、連接程序(linker)和系統維護程序(maintenanceprogram)等。系統實用程序的功能是為應用軟件以及用戶加工自己的程序和數據提供服務,并為管理員對系統進行日常維護提供手段。例如:Microsoft32位Windows操作系統的基礎是32位內核,由內核進行系統調度和內存管理。另外由于32位操作系統支持32位設備驅動器,因此操作系統和設備間的通信就更為迅速。32位Windows操作系統的其他許多特性來源于它對Win32API的支持。這個API集合只能由32位內核系統,如WindowsNT和Windows95/98方能完全實現。使用Win32API的好處是支持長文件名,可安裝32位文件系統,并能更好地管理系統資源。應用軟件層中的各類軟件,如數據庫管理系統、辦公自動化系統、事務處理系統等等。

1.1.3操作系統的功能

前面我們從計算機系統的層次結構的觀點,討論了操作系統這個最基本的系統軟件與系統硬件以及上層的系統實用軟件、應用軟件的關系。現在再從資源管理的觀點,進一步看看操作系統應具備哪些功能。

引入操作系統的目的有如下兩方面:

(1)操作系統要方便用戶使用。一個好的操作系統應給用戶使用計算機提供一個良好的界面,使用戶不必了解硬件和系統軟件的細節就可方便地使用計算機。這里的“用戶”是一個廣義的概念,不僅包括系統的一般用戶、系統管理員,還應包括系統實用軟件的設計者。(2)操作系統應最大限度地發揮計算機系統資源的使用效率。這里的系統資源既包括CPU、內存、外圍設備等硬件資源,也包括程序和數據等軟件資源(亦稱信息資源)。應合理地組織計算機的工作流程,使這些硬、軟件資源為多個用戶所共享。為了實現上述目標,操作系統通常具備以下五個方面的功能。1.進程管理

進程管理主要是對處理機進行管理。CPU是計算機系統中最寶貴的硬件資源。為了提高它的利用率,采用了多道程序技術。如果一個程序因等待某一條件而不能運行下去時,就把處理機占用權轉交給另一個可運行的程序。或者出現了一個比當前運行的程序更重要的可運行的程序時,后者應能搶占CPU。為了描述多道程序的并發執行,就要引入進程的概念。通過進程管理協調多道程序之間的關系,以使CPU資源得到最充分的利用。2.存儲管理

內存(又稱主存)是另一寶貴的硬件資源。雖然RAM芯片的集成度不斷地提高、價格不斷地下降,但需求量大,內存整體的價格仍較昂貴,而且受CPU靈址能力的限制,內存的容量也有限。因此,當多個程序共享有限的內存資源時,如何為它們分配內存空間,使它們既彼此隔離、互不侵擾,又能保證在一定條件下調用,尤其是當內存不夠用時,如何把當前未運行的程序及數據及時調出內存,要運行時再從外存調入內存等等,都是存儲管理的任務。3.設備管理

設備管理是指計算機系統中除了CPU和內存以外的所有輸入、輸出設備的管理。除了進行實際I/O操作的設備外,還包括諸如設備控制器、DMA控制器、通道等支持設備。外圍設備的種類繁多。功能差異很大。這樣,設備管理的首要任務是為這些設備提供驅動程序或控制程序,以使用戶不必詳細了解設備及接口的技術細節,就可方便地對這些設備進行操作。另一任務就是利用中斷技術,DMA技術和通道技術,使外圍設備盡可能與CPU并行工作,以提高設備的使用效率并提高整個系統的運行速度。4.文件管理

程序和數據以文件形式存放在外存儲器(如磁盤、光盤、磁帶)中,需要時在把它們裝入內存。文件包括的范圍很廣,例如用戶作業、源程序、目標程序、初始數據、結果數據等等,而且各種系統軟件甚至操作系統本身也是文件。因此,文件是計算機系統中除CPU、內存,外圍設備以外的另一類資源即軟件資源。有效的組織、存儲、保護文件,以使用戶方便、安全地訪問它們,是操作系統文件管理的任務。對上述四種資源的管理,其彼此之間并非是完全獨立的它們之間存在著相互依賴的關系。對每一種資源的管理,操作系統都要做到:記錄資源的使用情況;以某種策略分配資源;回收資源。操作系統常借助于一些表、隊列等數據結構來實施管理功能。除了上述四功能之外,操作系統還應該向用戶直接提供使用它自己的手段,這就是操作系統的作業管理功能。5.作業管理

所謂作業,就是用戶在一次算題過程中,或一次事物處理中,要求計算機系統所做工作的集合。例如,我們用FORTRAN語言編制了一個算題程序,那么要經過下列步驟:把源程序讀入系統,對源程序進行編譯,運行目標程序,打印輸出結果。上述每一步驟稱為作業步,它們的總和完成了一個作業。用戶應該如何向系統提交作業,操作系統應該如何組織和調度它們的運行來提高整個系統的運行效率?這就是作業管理的任務。以系統層次結構和資源管理兩個角度考察操作系統后,我們可以較完整地了解什么是操作系統了。

中和上述我們給出了操作系統的定義:操作系統是一種管理計算機系統資源(軟、硬件),控制系統工作流程,方便用戶使用計算機的系統軟件。1.2操作系統分類

不同的硬件結構,尤其是不同的應用環境,應有不同類型的操作系統,以實現不同的追求目標。通常,將操作系統分成如下三類:批處理系統(BatchProcessingSystem)

分時系統(Time-sharingSystem)

實時系統(Real-timeSystem)

1.2.1批處理系統1.2.2分時系統1.2.3實時系統1.2.4網絡操作系統1.2.5通用操作系統1.2.1批處理系統

批處理系統的設計目標是提高系統資源的使用效率和作業吞吐量(單位時間里處理作業的個數)。這類操作系統要求用戶使用系統提供的作業控制語言,來描述自己對作業運行的控制意圖,并將這些控制信息連同自己的程序和數據一起作為一個作業提交給操作員。操作員啟動有關程序將一批作業輸入到計算機外存,由操作系統去控制、調試各作業的運行并輸出結果。由于作業進入計算機系統后,用戶不再對作業的運行進行人工干預,從而提高了系統的運行效率。早期的批處理系統是單道的,一個作業調入內存后要直到正常運行結束或因某種原因運行不下去而中途退出后,系統才去調入下一個作業。作業總是一個地順序運行,當一個作業運行時它便獨占了全機所有資源。顯然,盡管這種單道批處理系統減少了作業交接時的機時浪費,但整個系統資源利用率和運行效率還是很低的。其主要原因是處理機和輸入/輸出設備的串行工作方式,當作業進行輸入/輸出操作時處理機在空閑著,等待輸入/輸出操作的完成,這就浪費了大量的處理機時間。為提高處理機資源的利用率,應盡可能地使處理機與輸入/輸出設備并行工作,這樣便相應地出了多道技術。多道(multiprpgramming)是指在內存中同時存放若干道用戶作業允許這些作業在系統中交替地運行。如果這些作業搭配得合理,就能使處理機與輸入/輸出設備高度并行工作,當然,這還需要道和中斷機構等硬件的支持。多道技術看似簡單,實踐起來并不容易,如何使內存中的多道作業有條不

地運行,如何為它們分配資源,這促進了操作系統的重大進步。將多道技術引入批處理系統,就成為一個多道批處理系統。現代計算機上的批處理系統,差不多是多道批處理系統。其工作流程大致如下:各用戶使用操作系統提供的作業控制語言,描述作業運行時的控制意圖以及對資源的需求,然后將程序、數據以及這些信息一并交給操作員;操作員可隨時把一批批作業交給系統。在外存中存放在量后備作業,系統根據一定的原則從后備作業中選擇搭配合理的若干作業調入內存。搭配合理主要是指作業的選擇既能充分利用系統各類資源又能滿足不同用戶的響應時間要求。在內存中的作業按多道方式組織它們的運行。單道程序技術和多道程序系統的對比圖

例如:某個作業因等待輸入輸出操作的完成而暫時不能繼續運行下去時,系統就使另一作業投入運行。這樣,內存中的多個作業交替運行,某個作業運行完畢,系統輸出它的運行結果并回收分配給它的資源,系統再從外存中調入另一個作業。作業不斷地流入系統,形成一個不斷的作業流。這樣的系統,系統資源利用率高,作業吞吐量大。

批處理系統的主要缺點是用戶使用不太方便。用戶把作業提交給系統后,無法對作業運行中可能出現的意外情況進行干預,于是可能是程序中一個很小的錯誤就導致了它無法繼續運行。這種情況特別不利于程序的調試。1.2.2分時系統

一臺計算機連接多個終端,用戶通過各自的終端把作業送入計算機,計算機又通過終端向各用戶報告其作業的運行情況。這種計算機分時輪流地為各終端用戶服務并能及時地對用戶服務請求予以響應,這就構成了分時系統。

分時系統的主要優點是它和多個終端用戶的交互會話工作方式,方便了用戶使用計算機并可大大加快程序的調試過程。因此,分時系統設計的主要目標是對用戶請求的及時響應,并在可能條件下盡量提高系統資源的利用率。分時操作系統

分時概念并不陌生。例如,硬件設計技術中的I/O通道與CPU分時使用內存;又如,多道程序技術中的多道程序分時共享硬、軟件資源。分時系統中的分時則不然,它是把CPU的運行時間劃分成一個個長短相等(或基本相等)的時間片,并把這些時間片依次輪流地分配給各終端用戶程序。系統中的終端數目是有限的,只要時間片的長短確定得適當,那么一個終端用戶程序從放棄CPU到下次再得到CPU,只需經過不太長的而且可確定的一段時間(例如2~3s)。多道批處理系統中,用戶無法干預程序的運行,其中一個原因就是用戶不知道系統何時把他的程序投入運行,在分時系統中,用戶程序從微觀上看是“走走停停”,但從宏觀上看卻總是在“走”,用戶的任何干預總能在2~3s時間內得到及時響應。用戶的感覺好像是一臺CPU速度變慢的計算機在專門為他服務。

不難看出,分時系統的基本特征是:

(1)

同時性。若干個用戶同時使用一臺計算機。微觀上看是各用戶輪流使用計算機;宏觀上看是各用戶在并行工作。

(2)

獨立性。用戶之間可以相互獨立操作,互不干涉;系統保證各用戶程序運行的完整性,不會發生相互混淆或破壞現象。

(3)

及時性。系統可對用戶的輸入及時作出響應。分時系統性能的主要指標之一是響應時間,是指從終端發出命令到系統予以應答所需的時間。(4)交互性。用戶可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使用戶與系統進行人一機對話的工作方式,明顯得有別于批處理系統,因而分時系統又被稱交互系統。

IBM公司于1968年推出的SS/360也是一個成功的分時系統。目前廣為流行的UNIX系統也是一個分時操作系統,但它是每隔一秒就產生一次時鐘中斷來重新計算所有進程的優先數,按動態優先數來分配CPU,而不是采用固定時間片輪轉法。1.2.3實時系統

實時系統的應用環境是需要對外部事件及時響應并處理的那些場合.實時系統可分成兩類:(1)

實時控制系統。把計算機用于飛機飛行、導彈發射等的自動控制時,要求計算機能盡快處理測量系統測得的數據,及時地對飛機或導彈進行控制,或將有關信息通過顯示終端提供給決策人員。把計算機用于軋鋼、石化、機加工等工業生產過程控制時,也要求計算機能及時處理由各類傳感器送來的數據,然后控制相應的執行機構。

(2)

實時信息處理系統。把計算機用于預定飛機票、查詢有關航班、航線、票價等事宜時,或把計算機用于銀行系統、情報檢索系統時,都要求計算機能對終端設備發來的服務請求及時予以正確的回答。實時系統設計的目標是實時響應及處理的能力和高可靠性。對系統資源利用率,實時系統要求不高,甚至為保證高可靠性而在硬件上采用冗余措施。實時系統與批處理系統和分時系統有何不同?(1)

無論批處理系統還是分時系統,都是屬于處理用戶作業的通用系統,系統本身只起管理、調度、服務的作用。而許多實時系統則是為某種應用而專門設計的專用系統,系統本身就包含有實時控制過程或實時信息處理的專用程序。有些實時系統也有一定范圍內的通用性,但應具有較強的系統生成能力,以便根據需要來剪裁或貼補系統功能,與實際應用環境相適應。(2)

分時系統也要求及時響應,但那是以人所能接受的等待時間來定,一般為2~3s,稍長、稍短一些都不會帶來“災難性”后果。而實時系統則不然,及時響應要求是以具體的控制過程或信息處理過程所能接受的延遲時間來定。對于某些實時控制過程,及時響應要求的時間可達毫秒甚至微秒數量級。實時系統,特別是實時控制系統,應具備強有力的中斷機制、實時鐘管理機制和快速的任務切換機制。

(3)

在一些實時信息處理系統,如民航訂票系統中也有多個終端用戶的問題。但與分時系統中的多終端用戶相比,其與系統的交互作用要受到限制。實時系統僅允許終端操作員訪問有限的專用程序,而不能編寫程序或修改已存程序。(4)

可靠性對實時系統至關重高要。實時系統常采用雙工體制,即兩臺完全相同的計算機,一臺作為值班一臺作為后備機,兩機并行運行,任一時刻都有著完全相同的CPU現場,一但值班機發生故障,后備機立即切入。操作系統軟件也要特別可靠,并應具備某種防護機構來保證任務過載時系統仍能正常運行。與批處理系統、分時系統相比,實時系統的資源利用率一般較低。實時系統的特征及時性:對用戶的請求或外部事件處理必須在指定時間內完成。過載保護:緩沖區排隊,丟棄某些任務,動態調整任務周期;過載是指進入系統的任務數目超出系統的處理能力。高度可靠性和安全性:容錯能力(如故障自動復位)和冗余備份(雙機,關鍵部件);專用性:它與應用程序以及外界環境關系密切。專用系統:許多實時系統是專用系統,而批處理與分時系統通常是通用系統。實時控制:實時系統用于控制實時過程,要求對外部事件的迅速響應,具有較強的中斷處理機構。高可靠性:實時系統用于控制重要過程,要求高度可靠,具有較高冗余。如雙機系統。交互性:實時系統的工作方式使得交互性受到限制。可與通用系統結合成通用實時系統:實時處理前臺作業,批處理為后臺作業。實時系統與批處理系統和分時系統的區別1.2.4網絡操作系統

將地理位置不同、具有獨立功能的多個計算機系統,通過通信設備和通信線路連接起來,在功能完善的網絡系統軟件(網絡協議、信息交換方式、控制程序和網絡操作系統)的支持下,以實現更加廣泛的硬件資源、軟件資源的共享,這就是計算機網絡。單機操作系統是封閉的,而網絡操作系統恰恰相反,它是開放系統。因為只有“開放”,才適應網絡中多用戶之間的交往和全網資源的共享。一個計算機系統入網后,不但大大擴大了本機用戶的可用資源范圍,同時也使該機的用戶范圍從本機用戶擴大到全網用戶。這就要求網絡環境下操作系統,既要為本機用戶提供有效地使用網絡資源的手段,又要為網絡用戶使用本機資源提供服務。因此,網絡操作系統除了應具有單機操作系統的功能之外,還應有網絡管理模塊,其主要功能是支持網絡通信和提供各種網絡服務。

依網絡作用的地理范圍不同,可將計算機網絡分成兩大類:廣域網和局域網。廣域網的地理范圍從幾百公里到幾千公里,甚至上萬公里,可以覆蓋一個地區、一個國家,甚至跨洲。局域網的地理范圍是幾公里到幾十公里,一個企業或一個大學內都可組建局域網。廣域網和局域網是一個相對概念。局域網的系統軟件,通常由網絡協議及協議軟件、網絡通信軟件和網絡操作系統三部分組成。局域網的網絡操作系統屬于網絡層次結構的高層協議,其主要功能是實現系統共享資源的管理。1.2.5通用操作系統

上面介紹的批處理系統、分時系統和實時系統是操作系統的三種基本類型.如果一個系統兼有批量處理、分時處理和實時三者,那就形成了通用操作系統。例如,把批處理與分時處理相結合,系統有分時用戶時,系統及時對他們的請求作出響應,而當系統暫時沒有分時用戶或用戶較少時,就可利用一些空閑的時間片去處理無需及時響應的批作業。類似地,也可把批處理與實時處理相結合,有實時請求時進行實時處理,沒有實時請求時運行批作業。這都可提高系統資源的利用率。

在通用操作系統中,往往把批處理作業作為后臺(background),而需要及時響應的用戶作業作為前臺(foreground)。前、后臺作業的區別在于:只有前臺作業不需要使用處理機,后臺作業才能得處理機的控制權;一旦前臺作業可以開始工作時,后臺作業要立即讓出處理機。如UNIX、MicrosoftWindowsNT、Windows95/98等。衡量一個操作系統性能時,常采用如下一些指標:

(1)系統的RAS。RAS是可靠性、可維護性和可用性三者的總稱;

(2)系統的吞吐率;

(3)系統的響應時間

(4)系統資源利用率;

(5)可移植性,即把一個操作系統從一種硬件環境移植到另一種硬件環境所需要的工作量。

至于操作系統是否方便用戶使用,有無良好的用戶界面,是無法定量評判,但這卻是操作系統性能優劣的一個重要方面1.3微機操作系統的形成和發展1.3.1MS-DOS操作系統1.3.2微機多任務操作系統1.3.3Windows操作系統1.3.4UNIX操作系統

1.3.1.MS-DOS操作系統

MS-DOS是美國微軟公司(Microsoft)的產品,主設計人是TimPaterson。IBM公司與Microsoft公司簽定協議,使用MS-DOS作為IBM個人計算機(PersonalComputer)的操作系統,并更名為PC-DOS。于是,除系統文件名稱有些不同外,PC-DOS與MS-DOS沒有什么不同。進入90年代,兩公司在發展策略上出現分歧,只有MS-DOS5.0版。最后Microsoft公司又推出6.0、6.2版。1.3.2.微機多任務操作系統

在一臺計算機上同時運行多個應用程序的能力,十年前還只是大、中、小型計算機操作系統才具備的。而今,隨著高檔微機的涌現,具備多任務能力的微機操作系統受到廣大用戶的歡迎。圖形用戶界面(GUI)、多任務能力是當今微機操作系統的發展趨勢。目前,已推出十幾種微型機多任務操作系統。按系統結構它們可分成內在式(built-in)和貼附式(bolt-on)兩類。內在式是指操作系統開始設計就把多任務功能構筑其中,如UNIX操作系統。貼附式是指把多任務功能附加到一個單任務操作系統中而形成,如Microsoft的Windows就是在DOS基礎上加入多任務功能而構成的多任務操作系統。按任務調度方式它們可分成先決式(preemptive)和協作式(cooperative)兩類。

先決式是指由系統內部時鐘來決定CPU由一個任務轉移去執行另一個任務的時刻,轉移時刻是系統以某種分配策略預先確定的,應用程序無權干預。于是,任務之間切換頻繁,切入切出需要保護和恢復的信息量大。OS/2和UNIX都是先決式多任務操作系統的例子。所謂協作式是指,幾個應用程序聯合動作,通過某種通信方式來分享CPU。于是,任務切換可選擇在安全、方便的時刻進行,切換時需保存和恢復的信息量也少;但它常要依賴于任務主動讓出CPU,遇到一個“貪婪”的程序不肯讓出的話,則多任務運行將會失敗。Windows和Novell公司的Netware網絡操作系統是以協作式來工作的。

1.3.3.Windows操作系統

MS-DOS提供的是一種以字符為基礎的用戶接口,不了解硬件和操作系統的話,便難以稱心如意使用PC機。人們企望能把PC機變成一個更直觀、易學、好用的工具。Microsoft公司響應千百萬MS-DOS用戶的愿望,提供了一種圖形用戶界面(GUI)方式的新型操作系統,也就是Windows。Windows的早期版本有2.0版、2.1版和2.11版,并在1987年推出了386PC機專用的Windows/386。但是,直到1990年5月推出Windows3.0,1992年3月推出了Windows3.1版,1995年推出了Windows95版,1998年推出了Windows98版及Windowsserver2008。引起計算機界的強烈反響,使得計算機(特別是PC機)的操作方法和軟件開發過程產生了革命性的變化。Windows在PC系列微型機操作系統中占主導地位。

Windows9.X是一個圖形窗口操作環境軟件。它代替了DOS環境下的命令行操作方式,而代之以“對話”、“圖標”、“菜單”等圖形畫面和符號的全新操作方式。它有如下特點。

(1)豐富多采的圖形操作界面,使PC機易于掌握和使用。

(2)支持多任務運行,各任務之間即易于轉換,又可方便地交換信息。

(3)突破了DOS內存640KB的限制,提供了實模式、標準模式、386增強模式等操作模式,提供了虛擬存儲管理能力。(4)提供了程序管理、文件管理、打印管理、控制面板等作方便的管理工具,可完成任務、文件、設備等的并行管理工作。

(5)提供了多種方便實用的工具軟件,包括:字處理程序,畫圖軟件,終端通信軟件、多媒體、網絡以及時鐘、日歷、計算器、卡片、便箋、記錄器等一套桌面辦公用具軟件。

Windows最重要的改進之一是它使用的存儲管理方式與MS-DOS不同,Windows采取動態內存管理方式。為了共存多個應用程序,它對應用程序以段為單位進行管理。在內存中保留程序運行所必要的段,廢棄不使用的段。于是,為確保存儲器的連續,必須經常進行段的再配置。另外,重復啟動同一應用程序時,采取只保留個別數據段,而共用初始加載的代碼段,被廢棄的代碼段在以后需要時,再重新從外存加載。顯而易見,沒有足夠的內參空間就要頻繁地進行段的廢棄和重新裝入,程序運行速度就會大大降低,再加上Windows本身占據的內存也不少,因此,若想同時運行幾個應用程序,并且可對較大的文本文件進行操作,Windows必須突破原內

內存只有640KB的限制,而能夠訪問高檔PC機所提供的擴充內存(expandedmemory)和延伸內存(extendedmemory)。

Windows9.x具備的多任務能力,基本上是協作式的,它使用協作方式為Windows應用程序獲得較高效率和較佳的多任務控制。Windows具有動態數據交換(DDE)和動態鏈接庫(DLL)功能。DDE是Windows應用程序之間彼此通信的一種手段,以服務器客戶方式進行通信。DLL是調用時加載于內存的例行程序的庫文件,它可作為應用程序的一部分來使用,改寫DLL能擴充應用程序的功能,也能利用其他程序的DLL。用DDE和DLL,可實現多個Windows應用程序的協作運行、聯合動作。1.3.4.UNIX操作系統

UNIX是一個多用戶、多任務的分時操作系統。最早是由美國電話與電報公司(AT&T)貝爾實驗室(BellLab)的KenThompson和DennisRitchie兩人在DEC的PDP-7機上開始設計的。從1962年至今,它不斷地發展、演變并被廣泛地應用于小型機、超級小型、大型機甚至超大型機,80年代以來又憑借其性能的完善和可移植性,在微型機上也日益流行起來。UNIX名揚計算機界,眾多用戶爭先恐后地使用它。由于UNLX的巨大成功和它對計算機科學所作的貢獻,兩位主設計人曾獲得國際計算機界的“諾貝爾獎”——ACM的圖靈獎。

UNIX系統在不太長時間內取得很大成功的根本原因在于UNIX本身的性能和特點。正如圖靈獎評選委員會對UNIX的評價中指出的那樣。UNIX系統的成功在于它對一些關鍵思想所作的恰如其分的選擇和精悍的實現。UNIX系統關于程序設計的新的思想方法成了整整一代軟件設計師的楷模。UNIX的天才在于它為程序員提供了一種可以利用別人工作成果的機構”。具體地說,UNIX系統有如下特點:(1)內核的短小精悍,與核外程序的有機結合。UNIX系統在結構上分成兩大層:內核和核外程序,即我們在1.1節所提到的操作系統層和系統實用程序層;內核包括進程管理、存儲管理、設備管理和文件管理。UNIX系統內核設計得非常精巧,合理的取舍使之提供了最基本的服務。核外程序充分利用內核的支持,向用戶提供大量的服務,甚至終端命令解釋程序也放在核外程序層。核外程序與普通的用戶程序被一樣看待,它們都作為文件保存在文件系統當中。把常駐內存的內核與不必常駐內存的核外

程序分開而又有機地結合,不僅使核心不龐大繁雜,便于使用和維護,也使UNIX用戶能不斷把一些優秀程序加到核外程序層中去,使UNIX系統便于擴充。(2)

采用樹形結構的文件系統。文件有普通文件、目錄文件、特殊文件之分。一個文件系統保持有一個根目錄,其下有若干文件和目錄,每個目錄下都可擁有若干文件和子目錄,等等。這樣的文件組織方式不僅便于文件進行分類和查找,而且容易實現文件的保護和保密。UNIX系統還允許用戶在自己的可裝卸的文件存儲設備上建立一個(子)文件系統,并把它連接到原有文件系統的某個未端節點上,從而成為一個子樹。當用戶不用它時,還可把此(子)文件系統卸下來。

(3)把設備如同文件一樣看待。系統中所配置的每一種設備,包括磁盤、磁帶、終端、打印機、通信線路等等,UNIX都有一個特殊文件與之一一對應。用戶可使用普通的文件操作手段。對設備進行I/O操作。例如,用戶可用文件復制命令,把磁盤的某個文件內容復制到打印機這一特殊文件上,從而有打印機輸出這個文件的內容。特殊文件與普通文件在用戶面前有相同的語法和語義,使用相同的機制,這即簡化了系統設計又便于用戶使用。(4)UNIX是一個真正的多用戶、多任務操作系統。系統初啟時,引導程序把系統內核放入內存低地址的48DB內。然后經過內部的初起程序為系統建立了進程0和進程1。進程0是所有進程的祖先,也是系統中唯一的核心態進程,它負責把盤上準備運行的進程換入內存,有時也把它稱為交換進程。進程1負責為每個終端建立一個進程,執行Shell解釋程序。每個終端的Shell進程等待用戶輸入命令,一旦有命令輸入就要對其分析,找到相應的命令執行文件,并為之建立一個子進程來執行這個命令,命令執行完,相應的子進程即被撤消。用戶還可以指定一個命令在后臺運行,同時在前臺執行其他命令。UNIX系統的各種版本比較多。從1970年至1978年,不斷改進而推出新的版本。從1981年AT&T發表UNIXSystemⅢ(S3)開始,UNIX不在采用版本(Version)號排列,而該為按系統(System)號排列。最近的是1989年推出的UNIXSystemv的4.0版。另外一個系列是美國加利福尼亞大學伯克利分校開發的帶有虛擬存儲功能的UNIX系統,它們是1.0BSD,2.0BSD,…直到1983年的4.2BSD等系統。(5)UNIX向用戶提供了一個良好的界面。這包括兩種界面:一種是用戶在終端上通過使用命令和系統進行交互作用的界面,成為用戶界面;另一種是面向用戶程序的界面,稱為系統調用。UNIX系統的用戶界面就是操作系統的外殼Shell。Shell即起著命令解釋程序的作用,同時又是一種程序設計語言,具有許多高級語言所具備的復雜控制結構與變量運算功能。因此,也可用來編寫程序,即所謂Shell編程。

所謂系統調用界面,是指操作系統內核提供了一組諸如文件讀寫、設備I/O操作、進程控制等功能子程序,用戶程序通過一些特殊的指令來調用這些子程序,從而訪問系統的各種硬、軟件資源并取得操作系統的服務。UNIX不僅在匯編語言級,而且也在C語言一級中提供了系統調用得手段,著給程序設計帶來了很大方便。XENIX與UNIX雖有一些差別,但核內差別大而核外差別小。從用戶使用的角度看,Shell命令解釋程序、基本命令和主要使用程序的用法幾乎完全一樣。XENIX只是在微型計算機上運行的UNIX,兩者本質上沒有什么不同。

在提供多任務處理、調度、內存管理和磁盤信息管理等許多方面,微機多任務操作系統都類似于傳統的多任務操作系統。但是,微機的應用環境不同于大、中、小型計算機的應用環境,因此,它們的追求目標也不同,傳統的多任務操作系統追求的是系統資源利用率和作業的吞吐量,而微機多任務操作系統追求的是充分提高對用戶的響應能力及使用的方便性。1.4Windowsserver2008簡介

眾所周知,BillGates(比爾.蓋茨)和Windows推動了3-D界面的發展與應用,沒有誰能否認Microsoft的Windows系列產品改變了計算機的使用方法這一事實。MicrosoftWindows圖形用戶界面(GUI)確實令人信服。正是Microsoft和BillGates的信譽使得Windows步入成熟,并產生了WindowsNT這一強壯可靠的操作系統。要知道WindowsNT是什么,了解16位和32位的Windows版本內容,另外還要大致知道WindowsNT和MS-DOS的聯系。1.4.1Windowsserver2008的發展1.4.2Windowsserver2008的特點

1.4.1Windowsserver2008的發展

1988年BillGates提出開發新的操作系統。新操作系統的設計前提是系統的可移植性、安全性、兼容性、可伸縮性、可擴展性和國際通用性。這就意味著:只須作最小的改動,系統就可在不同硬件平臺上運作;它符合NSA的C2級標準,利用軟件可實現鎖定;服從POSIX,并可運行已有Windows應用程序;支持對稱多處理(SMP);利用良好定義的API,可輕松地實現擴展;能在多種語言下運行,而只須對軟件作小小改動。如表1-1所示。前提描述

可移植性

只須作小小變動,系統就可在不同硬件平臺上運行

安全性符合NSA的C2級標準、能實現軟件所定

兼容性

服從POSIX,能運行已有Windows應用程序,支持開發國際標準

可伸縮性支持對稱處理(SMP)

可擴展性

借助定義良好的API編程可輕松實現擴展

國際通用性只須對軟件作小小修改,就能移植到多種語言中

表1-1Windowsserver2008基礎

為設計這樣的系統,Microsoft聘用DEC公司的操作系統設計師DavidCutler及其同事。David由于DEC操作系統的工作成就而聲名遠揚,包括RSX-11M(借此DEC的PDP-11取得了世界的成功)。同時他在VAX結構上的工作也卓有成效。直到五年過后,投資了數億美元的WindowsNT才投放市場。最初的版本為WindowsNT3.1,意指它于Windows3.1用戶界面聯系緊密,并能運行許多Windows3.1程序。然而這種相識性只到此為止。

WindowsNT完全從頭編寫并采用了與UNIX相類似的微內核類型結構,借此WindowsNT實現了多任務。另外WindowsNT還利用了CarnagieMellon的MACH操作系統的一個流行概念——線程,以支持對稱多處理。利用微內核作為基礎,Cutler小組加入大量特征和服務,其中包括集成安全子系統、抽象的虛擬化硬件接口、強大的多協議網絡支持、容錯性和集成化GUI管理工具等等。當WindowsNT最終發行時,Microsoft拿出了兩個不同版本:WindowsNT3.1和WindowsNTAdvancedServer3.1.它們在取得巨大成功的同時也暴露了許多不足,其中包括與已有Windows程序兼容性差,對硬件要求過高。后者使它在Novell的NetWare占優勢的網絡操作系統市場中未能有驚人之舉。

1994年秋,NT3.5發行,它作了大量重要的改動與增強,如利用點到點協議(PPP)的多協議遠程訪問服務;簡化內存腳本;擴展錯誤修復;重新編寫的TCP/IP堆棧等。另外Microsoft還將它們更名為WindowsNTWorkstation和WindowsNTServer,同時伴隨著兩者內部結構的進一步優化,將更有助于準確地定義各自充當的角色。

Windowsserver2008是WindowsNT的升級版本,包括Windowsserver2008Profession和Windowsserver2008Server兩個版本。其Server版本繼承了WindowsNT的所有服務器管理特性,增加并改進了一些網絡服務,因而成為當前最流行的網絡操作系統之一。

Windowsserver2008是一種32位網絡操作系統,是面向分布式圖形應用程序的完整的平臺系統。Windowsserver2008具有工作站和小型網絡操作系統具有的所有功能。主要包括:文件及文件管理系統、具有優先級的多任務/多線程環境、支持對稱的多機處理系統、擁有兼容于分布計算的環境。由于WindowsNT具有良好的用戶界面,并且操作方便,所以世界各著名軟硬件生產廠商都宣布支持Windowsserver2008。

1.4.2Windowsserver2008的特點

(1)采用32位操作系統

如果有人詢問有關16位操作系統和32位操作系統有何不同時,將會得到形形色色的回答。兩者的最根本的不同點是它們處理內部結構時所采用的方式。另外有些處理器在某個特定大小的結構下運行是最優的

(注:最近Microsoft宣布將研究開發NT的準64位版本。盡管新系統不是完全的64位,單它允許64位的數據結構并支持64位淺內存空間。作這樣改動,獲益最大的是數據庫,利用64位尋址可支持超大數據庫。)實際上當我們討論MicrosoftWindows操作系統時,16位和32位版本區別太大!舉個例子來說,32位Microsoft操作系統支持32位的淺內存保護模式,這樣它的內存管理比16位Windows更為清晰,同時還允許程序創建更大的數據結構并對它進行尋址。32位Windows操作系統的基礎是32位內核,由內核進行系統調度和內存管理。另外由于32位操作系統支持32位設備驅動器,因此操作系統和設備間的通信就更為迅速。32位Windows操作系統的其他許多特性來源于它對Win32API的支持。這個API集合只能由32位內核系統,如WindowsNT和

Windows9X方能完全實現。使用Win32API的好處是支持長文件名,可安裝32位文件系統,并能更好地管理系統資源。(2)不在需要DOSWindowsserver2008最偉大的成就恐怕是對DOS的完全摒棄!實際上當Microsoft開始NT工程時,并沒有固定的方案說它要能運行DOS或Windows應用程序。只要想想NT事實上是一群新加盟Microsoft的編程人員所設計的,就該確信在Windowsserver2008里沒有理由再保留DOS。(注Windowsserver2008在操作系統中沒有再保留DOS代碼,每件事都是通過仿真標準DOS調用來完成的。相比之下,Windows95依舊依賴于實際的DOS代碼來運行DOS應用程序。Windows95實際上有兩套完整的操作系統——Windows4.0和DOS7.0。)盡管Windowsserver2008沒有DOS,但絕大多數DOS程序依舊能在Windowsserver2008上運行,只要這些程序不直接訪問硬件設備,也不需要特殊的設備驅動程序即可。NT創建一個稱為NTVirtulDOSMachine(NTVDM)的虛擬DOS環境,DOS程序就在這樣一個仿真DOS環境下運行。NT設置DOS調用陷阱,并將它們轉換成標準的Win32API調用。事實上,這種除了意味著某些DOS程序,如磁盤增強程序,在Windowsserver2008下運行反而比在標準的DOS下運行還要快。另外,因為NTVDM提供了諸如鼠標、網卡和CD-ROM等驅動程序的訪真支持,所以在NTVDM中可獲得比運行真正的MS-DOS還要多的常規內存。盡管Windowsserver2008提供了對ASCII代碼集的全面支持,但Windowsserver2008在貯存和處理所有內部數據結構時均采用Unicode標準,從而使得Microsoft在不同國家和地區迅速而輕松地實現Windowsserver2008的本地化,包括全面支持日本的片假名和中國的簡、繁體漢字。(注:Windows95也支持Unicode。然而盡管Windowsserver2008完全使用Unicode保存內部數據,但Windows95依舊用到了大量非Unicode領域的替代品,以保證向后兼容,)

(11)安全性在創建Windowsserver2008時,很重要的一個問題是安全性認證標準問題。針對這種情況,Microsoft開發的Windowsserver2008符合美國國家安全機構(NSA)的C2級檢測標準。在良好的安全模型下開發的Windowsserver2008保證了它能勝任大多數有安全性要求的場合。什么是網絡操作系統?

網絡操作系統在傳統上認為是網絡客戶在和服務器通信時所用手段及協議的描述。其中最常提到的是文件和打印服務。這種說法極為簡化,但設計時這又是最典型部分。更準確地講,NOS集中在服務器這一部分。但Microsoft對此有不同看法,盡管上述概念Novell公司已經嚴正聲明過。大部分Microsoft的網絡方面產品,在操作系統和網絡操作系統之間沒有很明確的分界線,Windowsserver2008對此更不例外。當我們逐步進入計算機網絡時代時,網絡操作系統這一概念和對其的需求會逐漸消失。若要注明時,要強調的可能是分立操作系統。1.5Windowsserver2008模塊結構

前面一節讓我們了解了Windowsserver2008的來源及設計目標,諸如可伸縮性、可靠性和兼容性等等。為達到這些目標,Microsoft首先要設計強壯的內核,使它不僅能處理今日之需,而且還能輕松擴展以備明日之用。本節將討論NT模塊結構,以及它是如何達到這些設計目標的。1.5.1Windowsserver2008結構縱覽

1.5.2用戶模式與內核模式的比較

1.5.3NT結構部件

1.5.1.Windowsserver2008結構縱覽

在討論Windowsserver2008結構時,有兩個詞需要牢記:模塊化和客戶/服務器。模塊的意思是它內部分成許多小而獨立的單元,每個單元的任務明確,定義清晰,模塊化是計算機編程的各方面要求達到的目標,操作系統也不例外.模塊化代碼更易于維護,因此它意圖清楚,并且整個代碼段可被取代,而對要調用它的所有其他子程序不產生影響.

模塊設計的概念與早期操作系統用到的分立設計方法相反。在分立設計中,操作系統運行在特許處理器模式下,代碼塊提供多個功能,但缺乏清晰分工,這樣雖然可以取得更小、更緊湊的代碼,但整個系統可移植性變差。當人們聽說Windowsserver2008是客戶/服務器方式的操作系統時,他們通常認為這是指NT可用于客戶/服務器數據庫,或可用作網絡系統。盡管NT可以當作這種應用的明智選擇,但從NT的結構來看,這并不確切,真正的含義是指NT內部的各部分是以客戶/服務器方式來進行通信的。說的更為規范些,是指NT的模塊成員是按照客戶/服務器方式來設計開發的,如圖1.5.1所示。當其中某一個小塊代碼有需求時,它是作為客戶的;而能滿足該需求的代碼則是服務器。譬如要求在屏幕上畫一幅圖的用戶程序就是個客戶,它利用定義明確的消息向另一段代碼發出請求(在本例中可能是指Win32子系統)要求畫圖,此時Win32子系統就是服務器——這樣構成了客戶/服務器。客戶應用程序顯示

內存和I/O

管理文件系統網絡內核

用戶模式內核模式WindowsNT體系結構1.5.2用戶模式與內核模式的比較

NT與當今先進的操作系統同樣采用的是將操作系統任務多級化,這一點是和微處理器支持的實際模式相聯系的。現在大多數微處理器支持多重模式(有時稱為環)程序就在其間運行。這些模式給運行在其中的程序不同級別的特許權訪問硬件,并讓其他一些程序在系統中運行。Windowsserver2008采用特許模式和非特許模式,即通常所說的內核模式和用戶模式。運行在內核模式下的程序可直接訪問硬件和系統中的軟件資源。在Windowsserver2008中只有操作系統的關鍵片段才允許在內核模式下運行,這樣做是為了保證系統的安全性和可靠性,NTExecutive——它包括微內核、硬件抽象層及設備驅動程序——是Windowsserver2008中唯一能在微處理器特許內核模式下運行的部件。

所有不運行在內核模式下的程序都運行在用戶模式下。大部分Windowsserver2008代碼以用戶模式運行,包括環境子系統(如Win32子系統和POSIX子系統)和所有用戶應用程序。這些程序只能訪問它們自己的32位地址和與系統其他部分的接口。這一切都是通過客戶/服務器實現的,這將在以后介紹。對于Windowsserver2008,設計者盡可能地使操作系統運行在用戶模式下,這樣有助于確保系統可靠性和安全性。與此同時,當他們需要對基本部件修改時,也會變得簡單。Windowsserver2008對NT操作系統作了結構上的重大改動,它將兩大主要子系統——USER和GDI代碼段移到了NTExecutive中,從而運行在內核模式下,借此提高了系統性能,降低了開銷,但也有人認為這會降低可靠性。1.5.3NT結構部件

為理解Windowsserver2008如何運行,以及為何如此運行,觀察一下操作系統不同成分及其接口是十分重要的。如今我們已對NT有了一些了解,讓我們在深入一層進行了解。圖1.5.2顯示了Windowsserver2008中各關鍵層及其邏輯聯系。用戶應用程序Win32子系統OS/2子系統Win32子系統

系統服務(NTExecutive)

用戶模式內核模式

系統服務(NTExecutive)

微內核(NTExecutive)

硬件抽象(HAL)硬件

圖1.5.2Windowsserver2008中各關鍵層及其邏輯聯系。

(接上圖)

NT結構中的四個重要組成部分是:硬件抽象層(HAL)、內核、NTExecutiveServices、環境子系統。模塊中的每一部分各司其職,Windowsserver2008也就借此運行。

1、硬件抽象層硬件抽象層(HAL)是硬件與操作系統其余部分的一個軟件接口,它通過動態鏈接庫(DLL)實現,并負責屏蔽掉硬件特征對NT其余部分的影響,如中斷控制和I/O接口。這抽象使NT更易于移植,因為此時操作系統其余部分不必再關心它所處的硬件平臺是什么了。每個運行NT的硬件平臺要有一特定的HAL。這樣設計的好處是,當NT移植到一新型處理器結構上時,只需重新為該新型處理器編寫HAL,而其余部分只需進行重新編譯。這使NT的移植極為容易。

HAL還提供了對稱多處理(SMP)接口。NTServer為每種處理器結構(Intel,MIPS,PowerPC和Alpha)都提供了兩種HAL,第一種HAL用于支持單個處理器;而第二種HAL用于支持多達四個處理器。硬件銷售商還可提供其他的HAL,實現對NTServer多達32個處理器的支持。對計算機中每個實際的處理器,HAL提供給微內核一個虛擬處理器,借此將處理器所有的特殊特征隱藏起來,從而使得各個處理器對操作系統來說并無區別。舉例來說,如果有兩套多處理器系統,其中之一是用IntelPentium處理器;另一套是用DECAlphaAXP處理器,雖然每套系統上的HAL可能不同,但HAL提供給微內核的虛擬處理器則是完全一樣的。在SMP系統中,HAL為每個物理處理器向微內核提供一個虛擬處理器,再由微內核將其等效為有三個處理器的IntelPentium系統。盡管Windowsserver2008的目標是讓所有的與硬件有關的調用都通過HAL,但事實是少量的設備驅動程序和內核調用繞過了HAL,而直接與硬件打交道。

HAL模式最大的副作用是導致NT與原有DOS和Windows版本的程序不兼容,因為這些程序直接對硬件進行讀寫。但這種不兼容性只是HAL在為我們帶來安全性和易移植性的同時所收取的一丁點兒代價罷了。2、內核

Windowsserver2008內核權力無邊。內核負責處理系統的所有操作,而且幾乎是所有的系統功能都要經過內核。Windowsserver2008的微內核的本質意思是執行某個功能時所必須要的內核。(注:請忽混淆內核(或微內核)和內核模式。盡管它們是有聯系的,但不是同一回事兒。內核是指各個獨立的代碼片段,這些代碼片段組成操作系統的核心。內核模式是指處理器支持一種特許操作狀態。在Windowsserver2008中,微內核運行在內核模式下,也即指微內核運行在特許處理器模式下,從而微處理器承擔起使內核免受破壞的責任)。

Windowsserver2008中的微內核設計將許多操作正常地分派給內核,該內核稱為NTExecutive,而傳統的操作系統是將操作分配給一組程序。NTExecutive運行在處理器的特許內核模式下,而NT微4、保護下的環境子系統在Windowsserver2008的設計目標中,有兩個設計目標是個性化和兼容性的設計,這兩點是通過保護下的環境子系統實現的。個性化是指Windowsserver2008提供多組應用程序接口(API),并且能有效地承擔另一種操作系統的角色。Windowsserver2008除了Win32、Win16和DOS個性外還包括了POSIX和OS/2個性。盡管在現實中人們擁有多重個性是件壞事,但對操作系統而言則是保持兼容的有效途徑。Windowsserver2008若僅能完全運行已有DOS和Windows軟件的話,就不會有如此大的成功了。在Windowsserver2008中有三種保護的環境子系統:Win32子系統、POSIX子系統、OS/2子系統。(注:盡管Win16和DOS也是Windowsserver2008個性,但他們不屬于保護下的環境子系統,因為實際上它們是Win32子系統的一部分)。保護下的子系統是用戶級應用程序和NTExecutive的中間媒介。記住我們所說的,NTExecutive及其部件是在內核模式下運作的,而其他的任何程序基本上都是處于用戶模式的,其中包括所有環境子系統,它們是完全工作在用戶模式下的。當某應用程序要調用某環境子系統時,它是通過系統服務層傳送到NTExecutive的。每個環境子系統保留了各自進程的磁道并與其他子系統分開獨立工作,每個應用程序也只能在其設計時所處的相應子系統下運行。當Windowsserver2008中引導應用程序時,NT察看文件映像頭后,再決定該應用程序在哪種子系統中運行。(1)許DOS程序不作改動就可運行。

(2)允許絕大部份16位的Windows應用程序不用改動就可運行。(3)使系統和其他32位應用程序不受16位及DOS程序的干擾。(4)允許在R1SC平臺上運行16位Windows和DOS程序。

(5)提供32位和16位Windows程序數據共享機制。許多人認為Windows3.x是操作系統,但從技術眼光來看,它不是真正的操作系統,它只是DOS下的一個用戶界面罷了,DOS才是真正的操作系統。

3)POSIXMicrosoft在開發Windowsserver2008時對各種開放系統標準都十分關注,他們意識到支持開放系統是進軍先進操作系統這一新市場并取得成功的途徑。Windowsserver2008經常說起其所支持的標準是POSIX兼容。POSIX是portableoperatingsysteminterface(可移植操作系統界面)的縮寫,是由IEEE開發用于支持UNIX平臺應用程序的可移植,然而現今POSIX已經集成到許多非UNIX系統中去了。POSIX兼容性分為許多級,從POSIX.0到POSIX.12不等。這些等級包括一系列的建議,并不是所有建議都已經作為標準。(3)文件系統橫向檢驗,這由用戶bypasstra-rersechecking(忽略橫向檢驗)來控制。為實現某個特定用戶的POSIX兼容,必須將該用戶的此權限取消。每個POSIX應用程序在各自內存地址空間中運行,屬搶先式多任務。對于Windowsserver2008中為什么要引入POSIX子系統,不同的人有不同的看法,有些人認為這樣做對終端用戶來說提高了應用程序的使用率,有些人認為這符合開放系統標準;也有人認為這是為了驗證NT和UNIX平臺的互操作性。對此看法不同。盡管POSIX子系統實現得不錯,但有人還是認為將POSIX子系統加入NT中的全部理由是為了符合政府購買標準。對那些對此不熟悉的人來說,會覺得政府機關要求某一特殊操作系統必須符合多開放系統標準是很奇怪的。例證之一是FederalInformationProcessingStandards(政府信息處理標準)(FIPS)。只有加入了POSIX子系統后,Windowsserver2008才可在該巨大市場內出售;若不支持這一標準它就會被排斥在外。因此這只是NT運行市場滲透的策略,用以避免人們用貿易標準將Windowsserver2008排除在外。NT是一個優秀的操作系統。NT輕易地包容POSIX子系統只是NT功能和靈活性的一個體現。盡管如此,不要受到欺騙而去大力使用該POSIX子系統。1.6NTExecutive的重要組件1.6.1對象管理器(ObjectManager)1.6.2進程管理器(ProcessManager)1.6.3虛擬內存管理器(VirtualMemoryManager)1.6.4本地過程調用功能(LocalProcedureCallFacility)1.6.5安全參考監視器(SecurityReferenceMonitor)1.6.6I/O管理器(I/OManager)

1.6.1對象管理器(ObjectManager)

NTExecutive的ObjectManager用于所有系統要用到的對象的產生、修改和刪除,這些對象組成了NTExecutive。對象是抽象數據類型,代表操作系統資源。NTExecutive同時還向操作系統其余部分提供對象狀態信息。對象可以是具體的(如設備端口);也可以比較抽象(如線程)。當對象創建時會被賜予一個名稱,其他程序通過該名稱就能訪問該對象了。當另外一個進程想訪問該對象時,它會向ObjectManager申請對象句柄(Objecthandle),對象句柄提供一指針,用于實際對象的定位,同時它還提供對對象進行訪問和訪問控制信息。訪問控制信息由NT安全子系統提供。ObjectManager還通過維護不同對象類型的引用來確保單個對象沒有占用過多的資源(一般指系統內存)。另外,ObjectManager還負責清除沒有所有者的單獨的對象,這就是眾所周知的垃圾回收技術。Windows3.x中缺少類似的程序是導致麻煩的重要原因。在Windows3.x中,若某個程序崩潰了,或不能正確處理系統資源時,程序所用到的系統資源就會無法正確地返回到系統池中,從而產生缺少該系統資源的出錯消息。實際上這是所謂的內存泄漏。1.6.2進程管理器(ProcessManager)ProcessManager負責所有進程和線程的創建、刪除和修改,同時還向系統其余部分提供進程和線程狀態信息。(注:在進程的定義中,包括一虛擬地址空間,一個或多個線程,一段可執行程序代碼和一系列系統資源;一個線程是屬于單個進程的一個可執行對象,它包括一個程序計數器,它指向本進程可指行代碼段當前位置),兩個堆棧和一系列寄存器值。和其他所有NTExecutive成員一樣,ProcessManager在整個操作系統中扮演一個重要的角色。當啟動一個應用程序時,相應地就要創建一個進程,這需調用ProcessManager;又因為每個進程至少須包含一個線程,因此ProcessManager被再次調用產生一線程,如圖2—5所示的流程圖。雖然ProcessManager管理線程,但它本身沒有權力決定何時創建進程和線程,也無權對它們進行調度,這由微內核本身決定。1.6.3虛擬內存管理器(VirtualMemoryManager)

VirtualMemoryManager(VMM)用于系統虛擬內存池的管理。虛擬內存是用磁盤資源模擬實際的系統內存,也即將內存中那些不使用的頁移出到磁盤中,而當需要使用這些頁時,再將它們恢復到內存中。

VMM是Windowsserver2008的一個主要部分,它給每個進程分配32位地址空間,而不管系統的實際內存是多大。每個進程分配4GB虛擬內存空間,其中高端的2GB保留給系統使用,低端的2GB則為進程使用。進程對內存尋址時,會假定其間只有它本身在使用。VMM負責將進程的內存地址轉換成實際系統內存地址。如果進程的內存地址指向的內存段位于磁盤頁面VMM從磁盤檢索該頁。1.6.4本地過程調用功能(LocalProcedureCallFacility)

LocalProcedureCall(LPC)功能是Windowsserver2008的客戶/服務器設計中所必備的功能,它是運行在本地Windowsserver2008系統上所有客戶與服務器進程的接口。

LPC結構和遠程過程調用(RPC)極為相似,只是前者只支持本地機上客戶和服務器進程之間的通信。更確切地說,LPC是這樣的一種機制,它使不同進程的兩個線程能相互交換信息。記住我們所說的:Win32子系統是用戶模式應用程序,且運行在它自己的內存空間里。當某個程序想和Win32子系統通信請求服務時,它從適當的DLL文件中調用一固定子程序,這個固定子程序再利用LPC功能向Win32子系統進程傳遞請求,請求經其處理并執行要求的動作后,再通過LPC返回有關請求完成的消息。1.6.5安全參考監視器(SecurityReferenceMonitor)SecurityRefenceMonitor(SRM)是Windowsserver2008所有安全的基礎,同時它還負責強化本地計算機的所有安全措施。SPM是通過注冊進程(LogonProcess)及本地安全權限(Localsecurityauthority)運行期子程序共同來實現的。當用戶注冊到Windowsserver2008會對其身份進行確認,注冊進程子系統會給用戶申請一安全訪問令牌(Cecurityaccesstoken)(SAT)。SAT也包含用戶特許權及組成員關系列表,是用戶在注冊過程中的鑰匙。無論何時用戶想干點什么,SAT經遞交審核后就可決定該用戶是否能執行該動作。這也是SRM和ObjectManager緊

溫馨提示

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

評論

0/150

提交評論