五月激情开心网,五月天激情社区,国产a级域名,婷婷激情综合,深爱五月激情网,第四色网址

操作系統論文優選九篇

時間:2022-07-11 04:42:49

引言:易發表網憑借豐富的文秘實踐,為您精心挑選了九篇操作系統論文范例。如需獲取更多原創內容,可隨時聯系我們的客服老師。

操作系統論文

第1篇

關鍵字組件重用操作系統OSKit

1引言

當前,操作系統的功能不斷擴展,操作系統的類型呈現出多樣化的趨勢。一個小規模的開發小組已經不可能完全從頭開始實現一個實用的操作系統,而一般情況下,研究人員只對操作系統的一些特定領域感興趣,而對于另外一些元素,如啟動加載代碼、核心啟動代碼、設備驅動程序和內存分配代碼等往往不感興趣,但是一個可運行的原型系統又必須包含這些內容。編寫這些基礎結構延緩了操作系統研究項目的進度,同時也增加了進行操作系統研究的代價。為了解決這一問題,猶他大學的FLUX研究小組開發了OSKit,它提供了一個框架和一組模塊化的、具有簡單接口的庫以及一組清晰的、可重用的OS組件。OSKit可以用來構建操作系統內核、外層服務和其他核心OS功能模塊。OSKit提供了各種功能模塊,諸如簡單自舉,一個可用于內核的最小化POSIX環境、與物理內存和其約束一致的內存管理、廣泛的調試支持,以及高層子系統如協議棧和文件系統。開發者可以根據自己的研究興趣或所要考慮的性能來使用這些模塊,或用他們自己的模塊來替代標準的OSKit模塊。

OSKit公開了它內部的實現細節,允許用戶從成熟的操作系統中不加修改地提取代碼,然后通過一小部分經過仔細設計的粘接代碼將它們合并到一起,隔離它們的依賴性,并輸出良好定義的接口。OSKit使用這一技術整合了許多穩定而成熟的源代碼,包括設備驅動、文件系統、網絡協議等等。實踐表明,使用組件軟件架構和重用技術會給操作系統實現領域帶來大的影響。

2組件技術簡介

組件技術是一種較新的軟件開發技術。到目前為止,還難以確定組件技術的明確定義。比如,對組件技術的常見說法有以下這些:“二進制軟件單元”、“任意場合可部署的軟件”、“特別適合第三方開發”和“規范定義的接口”等等。大致上可以這樣理解:所謂組件,其實就是一種可部署軟件的代碼包,其中包括某些可執行模塊。組件單獨開發并作為軟件單元使用,它具有明確的接口,軟件就是通過這些接口調用組件所能提供的服務,多種組件可以聯合起來構成更大型的組件乃至直接建立整個系統。組件的實現必須支持一種或者多種其用戶所希望獲得的接口。實現組件并不一定需要采用面向對象語言。為了構造新應用程序,軟件開發人員找出適當的組件,將這些組件加入到正在開發中的應用程序,同時對應用程序進行測試并保證應用程序的組裝工作按照預定的規劃正常進行。采用組件技術能降低開發、測試和維護成本,提高可靠性和穩定性。

3Oskit組件綜述

OSKIT的組件庫提供了一般情況下更高層的功能,它通常只對外開放一些相關的公用調用接口。目標系統通過OSKit的面向對象的COM接口來與這些組件進行交互。以下幾節概述了OSKit所提供的組件。

3.1引導程序

大多數操作系統多有自身的啟動加載機制,彼此互不兼容。這種加載機制的多樣性并不是由于每個OS所要求的自舉服務不同而引起,而是由于構建啟動加載器的特定方式造成的。因為從操作系統研究的立場來看,啟動加載器是一個令人不敢興趣的領域,因此OS開發者通常進行一個最小化、快捷的設計。由于設計理念和要求的輕微差別,每個啟動加載器都不適用于下一個OS。為了解決這個問題,OSKit直接支持多啟動標準,這一標準是由幾個OS項目的成員共同設計的,它的目的是提供一個簡單而通用的啟動加載器與OS內核間的接口,從而允許一個啟動加載器加載任何兼容的OS。

在進行操作系統研究時,多啟動標準非常有用,這其中的主要原因是啟動加載器在加載內核自身的同時還具有加載附加文件或者啟動模塊的能力。這里的一個啟動模塊只是一個普通文件,啟動加載器不以任何方式解釋它,而僅僅把它隨同內核映像一起加載到保留物理內存塊中。在啟動內核時,啟動加載器提供給內核以下內容:物理地址的列表、所有已加載的啟動模塊的大小,以及與每個模塊相聯系的由用戶定義的字符串。這些啟動模塊和與它們相聯系的用戶定義的字符串由內核解釋。這樣做的目的是為了通過提供內核啟動時需要的數據,諸如初始化程序、設備驅動和文件系統服務器,來減輕內核啟動的負擔。

3.2核心支持庫

OSKit核心支持庫的主要用途是讓客戶OS更容易訪問硬件設施。它包含了一個較大的實用函數和符號定義的集合,該集合對于管理模式代碼是非常具體的。與此相對應,OSKit的大多數其他庫在用戶模式代碼中通常很有用。和OSKit的其余部分所不同的是,多數核心支持代碼必須是針對特定系統結構的,而這些特定機器的細節對客戶OS也是有用的。例如,在x86機器上,核心支持庫包含一些函數,用來創建和操縱x86頁表和段寄存器。其他OSKit組件通常提供建立在這些低層機制上的與體系結構無關的設施,但是為了提供最大的靈活性,與特定結構相關的接口始終可以被訪問。

OSKit核心支持庫在x86體系結構上尤為重要,因為該體系結構的OS級編程環境特別復雜和模糊。核心支持庫仔細地設置了一個基本的32位執行環境(為了與MS-DOS兼容,x86處理器通常以16位模式開始),初始化段和頁轉換表,安裝一個中斷向量表,并提供缺省的陷阱和中斷處理程序。當然,客戶OS能夠修改或重載這些行為。然而,在缺省情況下,核心支持庫自動地做所有必要的工作,以便使處理器進入一個方便的執行環境,此時中斷、陷阱、調試以及其他標準設施已經如預期的那樣開始工作。該庫在缺省情況下自動地定位所有隨內核加載的啟動模塊,并保留它們所在的物理內存。接下來,應用程序可以很容易使用它們。客戶OS只需以標準C語言風格提供一個main()函數。一切都設置好以后,內核支持庫將用所有參數和由啟動加載器傳遞過來的環境變量來調用它。

3.3內存管理庫

如同在一個標準C語言庫中實現的malloc()一樣,內存管理代碼典型地用于用戶空間。通常并不適用于內核。設備驅動常常需要分配特定類型的內存,并伴隨具體的調整屬性。例如,對于內建的DMA控制器只能訪問最初的16M物理內存。為解決這些內存管理問題,OSKit包含了兩個簡單而靈活的內存管理庫:(1)基于隊列的內存管理器(或稱LMM),它提供了功能強大且高效的原語來進行分配管理,并支持在一個池中管理多種類型的內存。(2)地址映射管理器(或稱AMM)被設計用來管理不必直接映射到物理內存或虛擬內存的地址空間,它對OS的其他方面提供了類似的支持,諸如進程地址空間、分頁、空閑塊或IPC名字空間的管理。盡管這些庫可以很容易地應用在用戶空間,但實際上它們是被特別設計用來滿足OS內核的需求。超級秘書網

3.4最小C語言庫

成熟的OS內核一般都包含著相當數量的僅僅用來重新實現基本的C語言庫函數如printf()和malloc()的代碼。與此形成對比的是,OSKit提供了一個最小化C語言函數庫,它圍繞著最小化依賴性而不是最大化函數性和性能的原則來設計。

3.5調試支持

OSKit的一個最實用的好處是:給定一個適當的硬件設置,它立刻就能提供給OS開發者一個完全源代碼級的內核調試環境。OSKit內核支持庫包括一個可用于GNU調試器(GDB)的串行存根模塊,它在客戶OS環境中處理陷阱,并使用GDB的標準遠程調試協議通過一個串行程序與運行在另一臺機器上的GDB通信。甚至當客戶機OS執行自己的陷阱處理時,OSKit的GDB存根模塊也是可用的。如果客戶OS提供適當的鉤子,它甚至支持多線程調試。除了基本的調試器支持,OSKit也提供了一個內存分配調試庫,它可以跟蹤內存分配并檢測一般的錯誤,如緩沖區溢出和釋放已釋放的內存。這個庫提供了與許多普通應用程序調試器相似的功能性,所不同的是它運行在由OSKit提供的最小內核環境中

3.6設備驅動支持

在OS開發和維護中最艱巨的一個任務是支持多種多樣的I/O硬件。這些復雜的設備常會含有潛在的錯誤,而新硬件的又常常伴隨著不兼容的軟件接口。由于這些原因,OSKit采用了為現有內核開發的穩定的、經過充分測試的驅動程序。OSKit使用了一種封裝技術,將現有的驅動程序代碼基本上未加修改地合并到OSKit中。這些現有的驅動程序被一個OSKit粘結代碼層所包裝,從而使得這些驅動程序可以在與開發它們的環境完全不同的環境中工作。目前,來自Linux的大多數以太網卡、SCSI和IDE磁盤的設備驅動程序被包括進來,總數超過了五十種。用同樣的方式,來自FreeBSD的八個字符設備驅動程序也被包含了進來,它們支持標準PC控制臺和串口及不同的多串口板。由于OSKit把這些驅動仔細地進行了包裝,FreeBSD驅動程序可以與Linux驅動程序一起工作。

3.7協議棧

OSKit提供了一個完整的TCP/IP網絡協議棧。如同驅動程序一樣,有關網絡的代碼也可以通過封裝機制被合并進來。OSKit當前可以從Linux中獲取網絡設備驅動程序,它們是PC平臺可獲得的最大的免費資源。OSKit的網絡組件繼承于FreeBSD4.4,它通常被認為具有更多成熟的網絡協議。這顯示了使用封裝機制將現有軟件包裝成靈活的組件的第二個優點:即從不同的資源中獲取最好的組件,并讓它們一起被使用。

3.8文件系統

通過使用封裝技術,OSKit吸收了NetBSD的基于磁盤的文件系統代碼。NetBSD之所以被選擇為首要資源庫,是因為在可用的系統中,它的文件系統代碼被最清晰地分離了出來,而FreeBSD和Linux的文件系統與它們的虛擬內存系統結合的更緊密。當前,OSKit也把Linux文件系統合并了進來,以便能夠支持多種類型的文件系統格式,如Windows95、OS/2和SystemV的文件系統格式等等。

OSKit文件系統輸出的COM接口類似于許多Unix文件系統所使用的內部VFS接口。這些接口具有很好的粒度,使我們可以不必接觸OSKit文件系統的內部。例如,OSKit接口只接受簡單的路徑名組件,允許安全封裝的代碼執行適當的訪問許可檢查。

4OSKit的現狀

自從在1996年6月了OSKit的第一個公開發行版以來,OSKit已經更新了多次,每次更新都增加了一些算法,并修正了一些錯誤。最新的發行版是2002年3月的版本。由此可見,OSKit一直處于操作系統開發平臺的前沿,其自身也在不斷完善和發展。

5結論

作為一個操作系統研究與開發的平臺,OSKit大大減輕了操作系統研究與開發者的負擔。它可以讓開發人員避開復雜的底層,而把興趣集中與他們所感興趣的領域。開發者可以用自己編寫的組件來取代OSKit中的部分組件,以滿足自己特定的需要,從而豐富了操作系統的應用層。總之,OSKit滿足了實際客戶系統的需求,有助于操作系統的研究與開發。

第2篇

考核內容及計分方法

A地區通信公司根據當前所管轄的網絡系統維護單位的具體情況,要求各單位網絡運維工作的考核由網絡運行質量管理、市場支撐管理、網絡運維成本管理、基礎管理等指標構成(考核指標分類、主要指標、權重等信息見表1)

考核辦法實施

對于日常工作完成情況,A地區通信公司考核網絡運維生產各專業,包括網管、交換、傳輸、數據、電源空調、本地網線路、接入網、無線市話、大客戶業務響應、資源管理等專業,網絡運維部在年底組織對單位網絡運維工作現場檢查,對重點考核內容打分。

對于專項重點工作完成情況考核,主要是考核各維護單位對市公司全年安排的重點工作完成情況,如末梢設備整治、無線市話網絡優化及網絡運維巡檢等重點工作。

考核內容以“大客戶電路故障恢復及故障報告提供及時率”為例進行列示。在考核的過程中,為了防止網絡系統問題帶來的損失,還制定了“否決內容”(指對各單位指標完成情況進行檢查或抽查),對于發生以下情況之一的單位,取消全年考核資格,以0分計:一是未能按時、按質完成重要通信、搶險救災、戰備以及其它應急通信任務,造成嚴重后果;二是拒不服從省、市公司的生產調度令造成嚴重網絡責任事故;三是在發生重大故障后,不按照省、市公司相關管理規定進行報告,或者故意隱瞞故障、在故障原因報告中惡意歪曲事實、在故障調查中有明顯舞弊行為;四是因違反互聯互通原則給企業造成重大負面影響;五是在考核指標數據采樣點的設置或數據上報中存在弄虛作假行為。

對考核數據的統計及保存,各單位應根據本考核細則中的各項指標定義解釋、數據來源及計分方法,認真完成與指標相關的原始數據測試、統計、匯總和報送工作,并且妥善保管測試報告、電路調單、故障報告、網管數據等原始記錄。

具體考核指標與準則舉例

由于網絡系統內部控制考核項目較多,指標繁雜,本文列示了“大客戶電路故障恢復及故障報告提供及時率”的指標定義、計算與方法說明如下:第一,指標定義:統計期內電路故障及時恢復比率和及時提供故障報告比率的加權平均。

第二,指標值:全年累計100%。

第三,計算公式:考核的范圍為所有通過省大客戶故障處理系統受理的大客戶業務故障。大客戶電路故障恢復及故障報告提供及時率=第四,考核不含不可抗力和客戶原因等造成的超時電路業務障礙。對故障原因不明且電路障礙業務恢復超時故障,則障礙受理方和有關責任方各計未及時恢復業務1次;對故障原因不明且電路障礙業務恢復未超時故障,則障礙受理方和有關責任方各計未及時恢復業務0.5次。

大客戶電路故障恢復時限按照《通信業務故障處理及故障報告管理規定》執行,要求提供故障報告數為管理規定要求提供的報告數(包括超時故障、重要客戶故障、重保期間故障,客戶或客服部門要求提供故障報告的故障,上級維護部門要求提供報告等)。

第五,數據來源及統計報送周期。數據來源于省內大客戶故障處理系統的統計數據,大客戶業務響應部按月統計、匯總,并在年終計算各單位指標完成情況。第六,計分方法。完成或超過指標值的得基本分,不能完成核定指標值的,每低0.5個百分點扣1分,直至扣完為止。第七,評分標準。具體的大客戶業務相應考核標準如表2所示。

A地區通信公司對網絡系統考核評價的啟示

網絡系統的運行維護和安全措施是通信公司的基礎工作,也是非常重要的一項內部控制工作。相關啟示如下:第一,考核指標與業務工作緊密結合,具有很強的實際操作性。

第3篇

一、課程教學難點

1.理論性強

該課程教學內容理論性強、概念抽象、涉及知識面廣,學生時其整體實現思想和技術往往難以理解,學習時有較大難度,大部分學生有一種畏難情緒。因此學生很容易陷入疲于記憶的狀態,忽略了對課程各部分間關系和課程教學目標的把握。因而該課程是計算機專業中教師“最難教”,學生“最難學”的課程之一。

2.學習效果見效不快

很多學生對學后有立竿見影效果的課程興趣較大,如程序設計語言,學生學會了便很快可以就某個問題編寫程序上機運行,頗有成就感;而對諸如操作系統這樣原理性強,實驗要求高,設計一個操作系統又不現實的課程,一些學生因感覺學習后效應不會立即顯現而對課程重視度較低。

二、教學目標

操作系統是目前最復雜、技術含量最高的軟件,在計算機專業軟、硬件課程的設置上起著承上啟下的作用,其中的許多設計思想、技術和算法都可以推廣和應用到大型的、復雜的系統設計,以及其他領域。因此,其教學目標應重在培養學生理解和掌握計算機操作系統的基本工作原理、設計技術及設計方法,培養學生開發系統軟件和大型應用軟件的意識和能力,同時還要讓學生了解現代操作系統的新思想、新技術和發展研究動向。

三、課程知識體系設計

鑒于以上課程教學難點,教師若能從繁雜抽象的理論中理出一個脈絡清晰的課程知識體系呈現給學生,將為有效達到教學目標要求起到事半功倍的作用。該課程教學內容有縱、橫兩條主線,縱線主要指操作系統各功能的設計思想、處理機制,橫線主要指功能實現的具體技術方法、不同環境下的實現差異。因此,整個課程知識體系可按縱、橫兩條線展開,遵循知識、能力、素質協調發展的原則,從知識模塊、知識單元和知識點3個層次來設計。其中知識模塊代表特定學科子領域,可包括若干知識單元;知識單元代表知識模塊中的不同方向,可包括若干知識點;知識點代表知識模塊中單獨的主題,是教學活動中傳遞教學信息的基本單元。

1.縱向功能線

本文的縱向功能線是從資源管理功能出發來設計,通過基于操作資源管理功能的知識建構,學生能明確所學內容在知識體系中的層次、位置、關系。此處為使結構更清晰,按操作系統資源管理功能出發的縱向功能線細化為進程管理、處理機管理、存儲器管理、設備管理、文件管理和用戶接口六個知識模塊,由此設計的縱向功能線知識結構如下:

(1)進程管理知識模塊包括進程概念、進程調度、進程互斥、進程同步、進程通信、進程死鎖各知識單元。進程概念包含進程特征、進程狀態與轉換、進程控制各知識點;進程調度包含調度時機、調度算法、調度過程各知識點;進程互斥包含與時間有關的錯誤、臨界資源與臨界區、臨界區使用原則、臨界區互斥訪問的解決途徑、臨界區互斥訪問的解決途徑各知識點;進程同步包含信號量同步機制、生產者與消費者問題、讀者與寫者問題、哲學家進餐問題各知識點;進程通信包含忙等待策略、睡眠和喚醒策略、消息傳遞策略各知識點;進程死鎖包含產生原因、必要條件、解決途徑各知識點。

(2)處理機管理知識模塊包括分級調度、調度算法、算法評價各知識單元。分級調度包含作業調度、交換調度、進程調度各知識點;調度算法包含作業調度算法、進程調度算法各知識點;算法評價包含作業調度算法評價、進程調度算法評價各知識點。

(3)存儲器管理知識模塊包括存儲管理功能、存儲管理方案各知識單元。存儲管理功能包含內存分配與回收、地址映射、內存共享、內存保護、內存擴充各知識點;存儲管理方案包含分區存儲管理、頁式存儲管理、段式存儲管理、段頁式存儲管理各知識點。

(4)設備管理知識模塊包括數據傳送控制方式、并行技術各知識單元。數據傳送控制方式包含程序直接控制方式、中斷方式、DMA方式、通道控制方式各知識點;并行技術包含通道技術、中斷技術、緩沖技術、分配技術、虛擬技術各知識點。

(5)文件管理知識模塊包括文件結構、文件存儲空間管理、文件目錄管理、文件存取控制各知識單元。文件結構包含文件邏輯結構與文件存取、文件物理結構與存儲設備各知識點;文件存儲空間管理包含空閑文件目錄、空閑塊鏈、位示圖各知識點;文件目錄管理包含文件目錄形式、文件共享與保護、目錄檢索各知識點;文件存取控制包含文件存取控制方法。

(6)用戶管理知識模塊包括命令接口和系統調用知識單元。命令接口包含脫機控制命令、聯機控制命令知識點;系統調用包含設備管理類命令、文件管理類命令、進程管理類命令、存儲管理類命令、線程管理類命令各知識點。

2.橫向技術線

操作系統知識點看似繁雜,但究其原理,在對不同系統資源功能進行管理時,所采取的策略和方法有很多是相同的。因此通過對重要方法和機制進行貫穿式的橫向技術線,可使被條塊分割的教學內容有效關聯起來;通過橫縱交錯的連接,可使看似離散的知識有穩固而緊密銜接的結構。從操作系統四種重要實現技術出發的橫向技術線包括中斷技術、共享技術、虛擬技術和緩沖技術。當然,有些技術在其它相關課程中已有介紹,也可看出其在整個計算機系統中的重要程度,由此設計橫向技術線知識結構如下:

(1)中斷技術知識模塊是實現程序并發執行與設備并行操作的基礎,它包括中斷類型、中斷優先級、中斷事件各知識單元。中斷類型知識單元包括外中斷、內中斷知識點;中斷優先級知識點在不同的系統中有不同的規定;中斷事件知識單元包括進程創建與撤消、進程阻塞與喚醒、分時時間片、缺頁中斷與缺段中斷、I/O操作、文件操作各知識點。

(2)共享技術知識模塊是提高資源利用率的必然途徑,它包括處理機共享、存儲共享、設備共享、文件共享各知識單元。處理機共享包含進程的并發執行;存儲共享包含外存儲器共享、內存儲器共享知識點;設備共享包含SPOOLing系統;文件共享包含便于共享的文件目錄。:

(3)虛擬技術知識模塊是把一個物理實體變為若干面向用戶的邏輯單元,使資源的用戶使用與系統管理相分離,從而提高資源利用率和安全性方,它包括虛擬處理機、虛擬存儲器、虛擬存儲器方法、虛擬設備、虛擬文件各知識單元。虛擬處理機包含多進程管理;虛擬存儲器包含地址轉換、中斷處理過程、置換知識點;虛擬存儲器方法包含頁式管理、段式管理、段頁式管理各知識點;虛擬設備包含設備共享;虛擬文件包含文件共享。

(4)緩沖技術知識模塊是異步技術的實現前提,可大大提高相關資源的并行操作程度,它包括存儲管理緩沖技術、設備管理緩沖技術、文件管理緩沖技術各知識單元。存儲管理緩沖技術包含快表;設備管理緩沖技術包含硬緩沖、軟緩沖、SPOOLing系統中的輸入/輸出井知識點;文件管理緩沖技術包含記錄成組技術、文件表的打開。

四、課程知識體系操作

知識體系的設計顯然要有必要的操作作為支持才能使其與學習者間進行互動,形成交流并達到知識的內化。依據上述的知識體系設計,該課程教學可采用以下兩個步驟進行操作,一是以“核心拓展”的方式進行縱向功能學習,二是以“小組學習和共同學習相結合”方式進行橫向技術綜合學習。

“核心拓展”方式中核心指六大知識模塊,它們也是該課程的核心內容,教師應結合具體系統的具體實例以講授方式進行,講授過程中對于一些關鍵算法一定要以具體實例加以講解,不能照本宣科。“小組學習和共同學習相結合”方式可采用將多次出現的具體技術單獨提出來,討論哪些功能應用了該技術。分小組,一個小組負責總結一項技術,然后以小組宣講共同討論的方式來加深技術對功能的應用。

通過這兩個步驟的操作,整個課程的知識體系便可以橫、縱兩條線的形式清晰地呈現在學生面前,為培養學生從離散到系統性的學習和思維習慣創造條件。

參考文獻:

第4篇

關鍵字:計算機軟件、計算機語言、軟件開發

自軟件開發到現在已有四十多年歷史了,在整個軟件發展歷史過程中,已經取得了劃時代的成就,為了更好的理解計算機軟件是計算機的靈魂并了解她的今天,這里讓我們一起來回顧她的昨天。

我們將悠久的計算機軟件歷史分成三個階段:

開創階段:1955年到1965年

穩定階段:1965年到1985年

發展階段:1985年到現在

開創階段

計算機在1946年出現時,占地2百余平方米,用電數千瓦,價值百萬美元,而運行速度只有每秒千次,但它卻為破譯密碼和武器彈道運算立了大功。六十年代大型計算機已發展到每秒百萬次以上,能夠進行快速復雜的計算,隨著科研、金融和政府部門的需要而逐步形成了較大的計算機市場。

而計算機軟件歷史真正開始是在美國和歐洲的實驗室里,大多數研究結果也產生于實驗室。它們多數來自于學術界,其余產生于政府和私人公司。

在1955年到1965年這個期間,運算速度越來越快、價格越來越便宜的新計算機不斷涌現,軟件工作人員就需要不斷針對不同計算機寫出新的軟件。這種變化速度令軟件人員應接不暇。

在此階段,計算機硬件向著專門用途發展,科學與商業領域需要的是完全不同的機器硬件。商業計算機具有變字長的特性,即有“清字標記”和“置字標記”,指令集為十進制。而科學計算機使用的是固定字長,當時定36位為一個字,而不是采用二進制計算。這種不同用途的機器使用不同字長,這給編程帶來難以想象的困難。

頻繁重寫相同的軟件觸發了另一思想——軟件移植,工業界中的軟件研究人員試圖將一臺機器上匯編語言自動移植到另一臺,但是卻失敗了。原因是60%或80%代碼較容易移植,而余下的40%或20%必須人工移植,又是較復雜的代碼,因此非常困難。多年來仍然不能完全解決問題,直到高級語言的產生。最早的FORTRAN語言在五十年代中期誕生的,五十年代后期出現了第一版COBOL語言,而ALGOL語言產生于六十年代早期。當時,高級語言不能被編制人員所接受,他們認為真正的編程人員應當使用匯編語言。

之后,軟件業從計算機工業中獨立出來,成為一枝新秀。那時,硬件廠商開放了他們的系統軟件(由于沒有這種開放,不能進一步推銷他們的產品),有幾個公司開始提供定制軟件的服務,然而那時沒有專門經銷軟件的公司。由于軟件免費,用戶相互贈送,使軟件不斷重用與推廣,并鼓勵共享軟件的發展。例如,IBM科學用戶組織SHARE提供了軟件重用的目錄清單,包含了三角函數分類和合并計算的多個數學程序,并對進入了SHARE目錄中的軟件產品,能給予此領域的最高榮譽。

60年代初期,學術上還沒有計算學科、計算機科學和信息系統,然而卻在實踐中產生了以后稱為“軟件工程”的萌芽。軟件工作者開始學習模塊編程的方法,并涵蓋了基本數據結構有關的子程序,從而使其易訪問。現在,人們稱為數據提取,并進一步拓寬到面向目標,但是那時的軟件人員就已經意識到它的思想與價值。

此階段,曾經出現過軟件危機。即軟件方面投入的資金和人力無法控制,軟件開發完成的時間無法確定,軟件的可靠性等等。例如,1962年7月22日美國飛往金星的火箭控制系統中的指令,DO5I=1,3誤寫成DO5I=1.3,使火箭偏離軌道,被迫炸毀。

此階段是激動人心的年代,隨著計算機硬件以令人生畏和驚奇的快節奏發展,計算機軟件在計算機業中越來越占據著重要的地位,她開創了自己的事業,從計算機業中獨立出來。

穩定階段

這期間,出現了IBM等計算機大公司,是大型機硬件導向占主導地位的階段。此時計算機成為專業人員使用的專門設備,普通老百姓用不了,也用不起。年產量不足數萬臺,市場有限,這樣IBM360計算機將軟件工業帶入了穩定發展階段。

IBM360采用了系列機的思想,開創了CISC時代(復雜指令系統計算機),目的能使指令系統兼容。新型機或高檔機的指令系統在原有機型上只能擴充而不能減少任何一條指令,以達到軟件兼容的目的,這樣就導致日趨龐大的指令系統使計算機硬件的研制周期變長、運行速度慢、可靠性差、難以調試和維護。為了改進,提出了RISC(精簡指令系統計算機)技術。RISC技術使指令數量大大減少,再加上一些其他措施(如指令系統面向寄存器,使數據能直接存儲),從而大大減少指令執行所需要的周期數,極大的提高了計算機的計算速度。同時IBM360機為軟件領域帶來了重要發展。它使科學與商業應用合二為一,且同時使用十進制和二進制兩種算法,它不再有討厭的變字長。

隨后,又產生了笨重的工作控制語言(JCL),使程序員只要把卡片塞進讀卡機,然后按“啟動”就可以運行程序。JCL要求用全新的語言編寫程序,它能告訴計算機和操作系統按人的需求做相應工作。JCL太繁瑣,這也許因為它包括了科學和商務所需的一切服務功能。然而JCL是360機上最不受歡迎的程序語言。

隨著360機匯集科學和商務應用在一臺計算機上,IBM也希望將所有的計算機語言合成一種語言。PL/1就這樣誕生了,它不僅包含科學計算FORTARN和商務計算COBOL語言的功能,而且還具有新生語言ALGOL的功能。

除了IBM360帶來的軟件發展外,在穩定階段,形成了軟件的獨立經銷。幾個敢于冒險的軟件商開始銷售他們的軟件產品。這在當時極其不易,因為硬件廠商為阻礙軟件發展,防止軟件分離以形成獨立行業,故意將軟件的價格壓得很低,無利潤可賺。隨著軟件領域的穩定發展和新軟件產品的問世,它們逐漸成為公司和市場的商品,價值連城。軟件維護與更新也成為一項日益重要的工作。從而形成了計算機軟件市場經濟。

穩定階段中開始出現了計算機學科的學術討論。第一個計算機科學程序在六十年代晚期奠基,不久以后又編制了第一個管理信息系統程序。當時計算機軟件工程還沒有從計算機學科中分離出來,直到微型計算機年代才獨立成為一門學科。盡管當時沒有形成學科,然而軟件工程研究一直在進行,重點聚集在計算機語言的問題上。

在此階段,一些計算機科學家大力宣傳他們引入的新思想。人工智能就是第一個竭力宣揚的學科,即稱之為“有知覺”的機器,可以模仿人類大腦的功能,并期望代替人類大腦去做任何事情。

隨后又出現了“控制領域”的議題。反控制反壟斷的戰斗打響了,美國司法部門IBM公司,聲稱它發展太快,且正在壟斷計算機行業。當時,許多人將硬件工業比喻為“白雪公主和七個小矮人”,這里IBM是白雪公主,其他計算機硬件小公司是七個小矮人。例如RGA、GE和Xeroe等等公司。這些小公司逐漸萎縮,直到從計算機行業中消失。標準化組織也成為當時反控制反壟斷的急先鋒。它堅持只有統一計算機標準,各個公司才能參與并達到公平競爭。

同時,軟件商與硬件商也開始競爭。硬件商努力保持軟件的低價,以阻礙軟件行業的形成。但是無論怎樣阻擋,總有一些軟件商脫穎而出,成為勝利的嬌嬌者。

此階段由于計算機硬件變化節奏緩慢一些,屬于較平穩的年代,計算機軟件隨著平穩發展,并確立軟件在市場的重要地位,成為商品并逐漸變得被人們理解和接收。

發展階段

此階段是再一次激動人心年代,計算機已經普及和無處不有,同時軟件業在計算機行業成為不可缺少部分并取得了輝煌勝利。

這個階段是軟件發展過程中最重要的時期。因為PC機和工作站以半年更新一代的令人目不暇接的速度,勢不可擋地入侵小型機、中型機甚至大型機領域,從而使計算機無處不在,計算機走出了象牙塔,走進了平常百姓家庭,走進了普通人辦公室。在家里、辦公室、銀行、郵局等生活工作的周圍,處處可見計算機的應用業績,普及流行速度極快,蓬勃向前。

過去存在的大量問題被解決了。老的JCL問題已經由友好用戶、友好程序界面解決。圖形用戶界面(GUI)普及與流行,業已成為八十年代計算機領域最偉大的功績。以前的FORTRAN和COBOL語言都沒能解決用戶界面的友好問題,而可視化軟件編程才改變了這一現狀。

由于VLSI的迅速發展,RISC的控制器又很簡單,這就使RISC能集成在一個芯片上。CISC控制器需占芯片面積50%以上,而RISC的控制器僅占6-10%,這使RISC芯片具有極高的性能。到九十年代RISC技術被引入了到PC機內,使同樣功能的計算機成本只有CISC的一半不到。隨著VLSI進一步發展,已使巨型機上使用的并行處理技術能融入到RISC中。一方面采用新材料、新工藝,進一步提高主頻,另一方面采用了超級流水線技術、并行流水線技術和超長指令字VLIM技術,極大地提高了RISC芯片的并行處理能力,使RISC進入了具有劃時代的時期。

軟件作用和價值牢固地樹立起來了。人工智能、知識工程、專家系統以及神經網絡領域的研究得以發展與深化。軟件市場在世界范圍內比較快的速度增長,在美國猶他州已出現以軟件為主的第二高技術產業區。目前軟件的發展速度已超過硬件產業,占信息產業的主導地位。美國壟斷世界軟件市場的格局,一時很難發生變化。微軟公司軟件巨頭比爾.蓋茨在五年前已成為美國首富,現在又是世界首富。隨著市場分割,過去反控制反壟斷的競爭也被分解了。IBM公司成為大型機之首;Intel公司是計算機芯片之王,也可以稱為計算機硬件之王;Microsoft公司成為微機軟件之冠。但是希望成為大型機軟件之王的競爭仍然在繼續。

軟件特性體現為:軟件進入結構化生產時期,以結構化分析和設計,結構化評審,結構化程序設計以及結構化測試為特征;從八十年代中期開始,軟件生產進入以過程為中心的開發階段;從1995年開始,逐步進入以軟件過程,面向對象和構件重用等技術為基礎的軟件工業化生產時代。

此階段軟件業績為:

1)軟件重用技術

軟件重用的目的是使非結構化、非標準化程序變為結構化、標準化,并形成大量能重用的計算機構件和模塊。軟件重用技術使軟件的開發基本上變成了搭積木,把需要的對象和功能模塊拼起來即可。它節省了大量的人力與物力,減少了重復開發。這種技術可以應用在數據庫管理和信息系統管理上,MicrosoftAccess等軟件均采用此軟件技術,它們集成了大量應用的基本構件和模塊便于重用。

只有可維護性軟件才有可能最大限度地重用,而重用部分越多,維護成本越低,效率就越高。不可維護性到可維護性軟件的重構是維護方法學的關鍵。最大限度地重用現存軟件是軟件維護方法學的重要思想原則。可重用是可維護性的基本屬性和最大特征。

就軟件重用而言,可有四個層次的重用:

(1)開發過程重用

主要指開發規范、開發方法及工具、軟件標準等的重用,也稱為開發支持環境重用。

(2)軟件構件重用

這里軟件構件指文檔、程序及數據。應該將軟件構件可重用性作為主要設計指導思想。

(3)用戶業務知識重用

用戶現存系統的業務處理過程、特定專業領域的需求特征等知識的重用。

(4)市場知識重用

應用領域標準、行業標準、市場規律知識的重用。

2)面向對象技術

八十年代中期以來,各個領域的發展和變化越來越快,對應用軟件不斷提出新的功能要求,這就使以功能為基礎的軟件體系改動較大,甚至推倒重來。八十年代末發現,使用面向對象技術能極大的提高軟件的可維護性。而且它還有很多其他的優點,例如提高軟件開發率,提高軟件的可靠性和安全性等等。面向對象技術獲得了極大歡迎,終于成為九十年代軟件界最大的熱點。隨著發展,面向對象技術形成了OOP(面向對象編程)、OOD(面向對象設計)、OOA(面向對象分析),成為完整的軟件開發方法學。

現實世界中的事物抽象到問題空間就稱為對象。在面向對象技術中,對象被定義為“對一組信息和在其上的操作”,其中的信息就是數據,它反映的是對象的屬性狀態,操作則是對對象的處理。面向對象系統就是由對象組成的復雜系統,系統中所有對象的狀態共同構成系統的狀態,對象總是從一個初始狀態出發,在對象之間的相互作用過程中不斷改變著自身的狀態。一個對象請求另一個對象執行某一處理或回答某些信息的要求稱為“消息”,對象與對象之間的相互作用就是通過消息來實現的。

面向對象技術的最大優點就是軟件的可維護性好。

3)集成工具與CASE技術

今天,已將過去單個的工具集成在一個系統中,用于軟件開發,形成了集成工具。例如,我們經常使用的字處理工具,它只有一個工具菜單,但是卻包含拼寫檢查、語法檢查、詞庫和字詞計數等功能。我們期待用于軟件開發的系統收集了所有必需的工具,它必須支持文本和圖像,也含有相關的數據庫,能自動移植并進行計算機低層設計等。編程系統不僅含有編譯程序,還應該支持編輯、調試與測試,最好能支持程序建立并在建立過程中檢測它們的結構。

而CASE技術,即稱謂“支持軟件工程方法學的計算機輔助手段”。它為實現從軟件工程誕生起就面臨著如何組織人員進行集體作業和如何逐步代替人進行編程的兩大任務。而且首先是解決前者———確定有次序、有效率、科學的工程作業方法,然后才能一步步用計算機取代各工程階段的人工編程。軟件工程的最終目的就在于軟件自動化。

CASE技術有兩個突出特點,使開發支持工具與開發方法學統一和結合起來,通過實現分析、設計、程序開發與維護的自動化,提高整個軟件開發工程的效率。如果方法驅動器理論得以實現,軟件自動化將成為現實。盡管目前真正實現的還僅限于方法指導系統,但CASE的迅速發展仍超出了輔助軟件工程的范圍。

綜上所述,CASE的發展有待于軟件工程方法的發展。它不僅給傳統軟件工程方法以新生,也推動著各種軟件工程方法的演變、合并和淘汰,為新軟件工程方法理論實用化開辟著道路。所以今后的軟件工程應是“方法學+CASE技術”,兩者共同協助開發人員控制和管理軟件。當方法驅動器理論變為現實后,CASE與軟件自動化可能會變成同義詞。雖然今天的軟件自動化尚不完全,但為了區別傳統軟件工程,我們以更明確的CASE軟件工程概念來表述CASE與軟件工程方法學的結合。

4)圖形用戶界面

用戶界面一般是由菜單窗口和對話框等元素構成,它為用戶提供了一個使用軟件交互過程的環境,它提高了軟件的使用效率,靈活便捷,并且易于修改維護程序,充分體現了“所見即所得”圖形界面的現代軟件設計風格,使用戶能以簡單自然的方式與軟件系統交流信息;提供對鍵盤及鼠標兩種輸入設備的雙重支持;引導用戶正確、快速、方便地使用軟件系統;易學易懂,盡可能地減少用戶必須記憶的信息。

八十年代圖形技術有了迅速的發展,出現了不少優秀的圖形軟件工具,例如,X-Windows、MicrosoftWindows和MacintoshWindows都是建立在圖形用戶界面的技術上,他們提供了圖形交互所需的各種手段與方法。

AutoCAD是又一個優秀的圖形軟件工具。它提供了圖形顯示控制、圖形編輯和存儲以及三維繪圖、三維動態顯示、陰影與透視等功能。隨著圖形用戶界面的成功,不少高級語言也增加了圖形功能,使這種可視化編程日益廣泛與流行。

5)多媒體技術

它是曾經被炒得沸沸揚揚的話題,也是計算機科學在九十年代的一個熱點。多媒體技術是將文字、聲音、圖形、視頻圖象集成在一起的技術。它包括多媒體計算機原理、多媒體數據庫、多媒體通信和多媒體表現技術等等。它的一個重要方面是將圖像、圖形、聲音、文字等集成一體,再按1比10或1比30壓縮比進行圖象數據壓縮,最后以高質量再現給用戶。

由于多媒體技術提供了更多的交互手段,給人以更多的方便,所以有著極其廣闊的應用前景,如電視、電子游戲、電子報刊、電視會議等等。正因為如此,多媒體技術不僅是計算機科學的熱點,而且也是國民經濟以及社會生活許多領域的熱點。

然而在整個計算機發展歷史過程中,軟件領域仍然存在一些問題,相對于微處理器芯片和內存設備而言,計算機軟件只是在不斷發展而沒有進行大的改革。例如,編程人員都知道,自從第一臺IBM和第一個Intel電子芯片問世以來,硬件結構的軟件部分──指令集和中斷結構就沒有發生大的變化。在程序設計語言中也沒有大的變革,現在用得最多的語言仍然是十五年前C和C++,甚至是四十年前的FORTRAN和COBOL語言。第四代語言并沒有達到某些人預先聲稱“無需程序員的編程”的功能。整個軟件領域發展限制在一個應用領域──數據庫上。

不過也有一些希望的象征。面向對象程序設計是一項新的技術,前景看好,它以一種完全不同方法來構造軟件;客戶/服務器技術和Internet/Intranet技術,它們大大地推動了軟件行業的改革。Internet的TCP/IP協議使成千上萬個不同的操作系統和應用程序能相互通信,使得網絡訪問容易,瀏覽眾多的數據庫和站點信息,從而產生了較大經濟效益和社會效益。當談起計算機軟件的現代歷史,Internet/Intranet將作為人-機通信原理的里程碑,而WWW、HTML、VRM和Java將是這個里程碑的組成部分。

軟件行業的成功,尤其是1995年以來的迅速崛起的Internet/Intranet技術為主的網絡軟件以及數據庫挖掘、人工智能、神經網絡等軟件,為人類進入二十一世紀奠定了堅實的基礎。新世紀將是一個更全面的信息化時代,計算機的普及與使用將會更廣更寬,從而對計算機軟件的需求更高,本世紀的成果與經驗,將帶入下一世紀,并不斷被軟件人員發展、完善,以適應新世紀人類的需要,并發揚光大。

第5篇

關鍵詞:RTOS嵌入式系統嵌入式應用嵌入式開發工具

隨著互聯網應用的迅速發展,嵌入式微處理器的應用日益廣泛,無處不在,從波音飛機到移動電話,都有嵌入式微處理器的存在。在嵌入式微處理器的應用開發中,嵌入式實時操作系統(簡稱RTOS)是核心軟件,就像我們日常所用計算機的桌面系統中,微軟公司的Windows98一樣重要。RTOS已經在全球形成了1個產業,據美國EMF(電子市場分析)報告,1999年全球RTOS市場產值達3.6億美圓,而相關的整個嵌入式開發工具(包括仿真器、邏輯分析儀、軟件編譯器和調試器)則高達9億美圓。

一、RTOS發展歷史

從1981年ReadySystem發展了世界上第1個商業嵌入式實時內核(VRTX32),到今天已經有近20年的歷史。20世紀80年代的產品還只支持一些16位的微處理器,如68k,8086等。這時候的RTOS還只有內核,以銷售二進制代碼為主。當時的產品除VRTX外,還有IPI公司的MTOS和80年代末ISI公司的PSOS。產品主要用于軍事和電信設備。進入20世紀90年代,現代操作系統的設計思想,如微內核設計技術和模塊化設計思想,開始滲入RTOS領域。老牌的RTOS廠家如ReadySystem(在1995年與MicrotecResearch合并),也推出新一代的VRTXsa實時內核,新一代的RTOS廠家Windriver推出了Vxwork。另外在這個時期,各家公司都有力求擺脫完全依賴第三方工具的制約,而通過自己收購、授權或使用免費工具鏈的方式,組成1套完整的開發環境。例如,ISI公司的Prismt、著名的Tornado(Windriver)和老牌的Spectra(VRTX開發系統)等。

進入20世紀90年代中期,互聯網之風在北美日漸風行。網絡設備制造商、終端產品制造商都要求RTOS有網絡和圖形界面的功能。為了方便使用大量現存的軟件代碼,他們希望RTOS廠家都支持標準的API,如POSIX,Win32等,并希望RTOS的開發環境與他們已經熟悉的UNIX,Windows一致。這個時期代表性的產品有Vxwork,QNX,Lynx和WinCE等。

二、RTOS市場和技術發展的變化

可以看出,進入20世紀90年代后,RTOS在嵌入式系統設計中的主導地位已經確定,越來越多的工程師使用RTOS,更多的新用戶愿意選擇購買而不是自己開發。我們注意到,RTOS的技術發展有以下一些變化:

1.因為新的處理器越來越多,RTOS自身結構的設計更易于移植,以便在短時間內支持更多種微處理器。

2.開放源碼之風已波及RTOS廠家。數量相當多的RTOS廠家出售RTOS時,就附加了源程序代碼并含生產版稅。

3.后PC時代更多的產品使用RTOS,它們對實時性要求并不高,如手持設備等。微軟公司的WinCE,PlamOS,JavaOS等RTOS產品就是順應這些應用而開發出來的。

4.電信設備、控制系統要求的高可靠性,對RTOS提出了新的要求。瑞典Enea公司的OSE和WindRiver新推出的VxworkAE對支持HA(高可用性)和熱切換等特點都下了一番功夫。

5.Windriver收購了ISI,在RTOS市場形成了相當程度的壟斷,但是由于Windriver決定放棄PSOS,轉為開發Vxwork與PSOS合二為一版本,這便使得PSOS用戶再一次走到重新選擇RTOS的路口,給了其他RTOS廠家1次機會。

6.嵌入式Linux已經在消費電子設備中得到應用。韓國和日本的一些企業都推出了基于嵌入式Linux的手持設備。嵌入式Linux得到了相當廣泛的半導體廠商的支持和投資,如Intel和Motorola。

三、RTOS的未來

未來RTOS的應用可能劃分為3個不同的領域:

1.系統級:指RTOS運行在1個小型的計算機系統中完成實時的控制作用。這個領域將主要是微軟與Sun競爭之地,傳統上Unix在這里占有絕對優勢。Sun通過收購,讓他的Solaris與Chrousos(原歐洲的1種RTOS)結合,微軟力推NT的嵌入式版本“EmbeddedNT”。此外,嵌入式Linux將依托源程序碼開放和軟件資源豐富的優勢,進入系統級RTOS的市場。

2.板級:傳統的RTOS的主要市場。如Vxwork,PSOS,QNX,Lynx和VRTX的應用將主要集中在航空航天、電話電訊等設備上。

3.SOC級(即片上系統):新一代RTOS的領域:主要應用在消費電子、互聯網絡和手持設備等產品上。代表的產品有Symbian的Epoc、ATI的Nucleus,Expresslogic的Threadx。老牌的RTOS廠家的產品VRTX和Vxwork也很注意這個市場。

從某種程度講,不會出現1個標準的RTOS(像微軟的Windows在桌面系統中的地位一樣),因為嵌入式應用本身就極具多樣性。在某個時間段以及某種行業,會出現1種絕對領導地位的RTOS,比如今天在寬帶的數據通信設備中的Vxwork和在亞洲手持設備市場上的WinCE就是一例子。但是,這種壟斷地位也并不是牢不可破的,因為在某種程度上用戶和合作伙伴更愿意去培養1個新的競爭對手。比如,Intel投資的Montivista和Motorola投資的Lineo,這兩家嵌入式Linux系統,就是說明半導體廠商更愿意看到1個經濟適用的、開放的RTOS環境。

四、RTOS在中國

中國將是世界上最大的RTOS市場之一。因為中國有著世界上最大的電信市場。據信息產業部預計,在未來2~3年內,中國將是世界上最大的手機市場(每1部手機都在運行1個RTOS)。這樣龐大的電信市場就會孕育著大量的電信設備制造商,這就造就了大量的RTOS和開發工具市場機會。目前,中國的絕大多數設備制造商在采用RTOS時,首先考慮的還是國外產品。目前,在中國市場上流行的RTOS主要有Vxwork,PSOS,VRTX,Nucleus,QNX和WinCE等。由于多數RTOS是嵌入在設備的控制器上,所以多數用戶并不愿意冒風險嘗試1種新的RTOS。

但是我們同時也注意到,目前RTOS在中國市場的銷售額還很小,這主要是2個原因:

1.中國設備制造商的規模普遍還無法與國外公司相比,開發和人員費用相對還較高,所以RTOS對于中國用戶來講是比較貴的。

2.多數國內用戶還沒有開始購買RTOS的版稅,其主要原因有:產品未能按計劃批量生產,沒有交版稅的意識。應該注意,大多數二進制的RTOS必須在產品量產時交版稅,或者按數量買或者與廠家討論一次性買斷,而由廠家直接發給你授權協議書。據國外某家RTOS廠家稱,他們年收入的30%來自版稅。

第6篇

關鍵字組件重用操作系統OSKit

1引言

當前,操作系統的功能不斷擴展,操作系統的類型呈現出多樣化的趨勢。一個小規模的開發小組已經不可能完全從頭開始實現一個實用的操作系統,而一般情況下,研究人員只對操作系統的一些特定領域感興趣,而對于另外一些元素,如啟動加載代碼、核心啟動代碼、設備驅動程序和內存分配代碼等往往不感興趣,但是一個可運行的原型系統又必須包含這些內容。編寫這些基礎結構延緩了操作系統研究項目的進度,同時也增加了進行操作系統研究的代價。為了解決這一問題,猶他大學的FLUX研究小組開發了OSKit,它提供了一個框架和一組模塊化的、具有簡單接口的庫以及一組清晰的、可重用的OS組件。OSKit可以用來構建操作系統內核、外層服務和其他核心OS功能模塊。OSKit提供了各種功能模塊,諸如簡單自舉,一個可用于內核的最小化POSIX環境、與物理內存和其約束一致的內存管理、廣泛的調試支持,以及高層子系統如協議棧和文件系統。開發者可以根據自己的研究興趣或所要考慮的性能來使用這些模塊,或用他們自己的模塊來替代標準的OSKit模塊。

OSKit公開了它內部的實現細節,允許用戶從成熟的操作系統中不加修改地提取代碼,然后通過一小部分經過仔細設計的粘接代碼將它們合并到一起,隔離它們的依賴性,并輸出良好定義的接口。OSKit使用這一技術整合了許多穩定而成熟的源代碼,包括設備驅動、文件系統、網絡協議等等。實踐表明,使用組件軟件架構和重用技術會給操作系統實現領域帶來大的影響。

2組件技術簡介

組件技術是一種較新的軟件開發技術。到目前為止,還難以確定組件技術的明確定義。比如,對組件技術的常見說法有以下這些:“二進制軟件單元”、“任意場合可部署的軟件”、“特別適合第三方開發”和“規范定義的接口”等等。大致上可以這樣理解:所謂組件,其實就是一種可部署軟件的代碼包,其中包括某些可執行模塊。組件單獨開發并作為軟件單元使用,它具有明確的接口,軟件就是通過這些接口調用組件所能提供的服務,多種組件可以聯合起來構成更大型的組件乃至直接建立整個系統。組件的實現必須支持一種或者多種其用戶所希望獲得的接口。實現組件并不一定需要采用面向對象語言。為了構造新應用程序,軟件開發人員找出適當的組件,將這些組件加入到正在開發中的應用程序,同時對應用程序進行測試并保證應用程序的組裝工作按照預定的規劃正常進行。采用組件技術能降低開發、測試和維護成本,提高可靠性和穩定性。

3Oskit組件綜述

OSKIT的組件庫提供了一般情況下更高層的功能,它通常只對外開放一些相關的公用調用接口。目標系統通過OSKit的面向對象的COM接口來與這些組件進行交互。以下幾節概述了OSKit所提供的組件。

3.1引導程序

大多數操作系統多有自身的啟動加載機制,彼此互不兼容。這種加載機制的多樣性并不是由于每個OS所要求的自舉服務不同而引起,而是由于構建啟動加載器的特定方式造成的。因為從操作系統研究的立場來看,啟動加載器是一個令人不敢興趣的領域,因此OS開發者通常進行一個最小化、快捷的設計。由于設計理念和要求的輕微差別,每個啟動加載器都不適用于下一個OS。為了解決這個問題,OSKit直接支持多啟動標準,這一標準是由幾個OS項目的成員共同設計的,它的目的是提供一個簡單而通用的啟動加載器與OS內核間的接口,從而允許一個啟動加載器加載任何兼容的OS。

在進行操作系統研究時,多啟動標準非常有用,這其中的主要原因是啟動加載器在加載內核自身的同時還具有加載附加文件或者啟動模塊的能力。這里的一個啟動模塊只是一個普通文件,啟動加載器不以任何方式解釋它,而僅僅把它隨同內核映像一起加載到保留物理內存塊中。在啟動內核時,啟動加載器提供給內核以下內容:物理地址的列表、所有已加載的啟動模塊的大小,以及與每個模塊相聯系的由用戶定義的字符串。這些啟動模塊和與它們相聯系的用戶定義的字符串由內核解釋。這樣做的目的是為了通過提供內核啟動時需要的數據,諸如初始化程序、設備驅動和文件系統服務器,來減輕內核啟動的負擔。

3.2核心支持庫

OSKit核心支持庫的主要用途是讓客戶OS更容易訪問硬件設施。它包含了一個較大的實用函數和符號定義的集合,該集合對于管理模式代碼是非常具體的。與此相對應,OSKit的大多數其他庫在用戶模式代碼中通常很有用。和OSKit的其余部分所不同的是,多數核心支持代碼必須是針對特定系統結構的,而這些特定機器的細節對客戶OS也是有用的。例如,在x86機器上,核心支持庫包含一些函數,用來創建和操縱x86頁表和段寄存器。其他OSKit組件通常提供建立在這些低層機制上的與體系結構無關的設施,但是為了提供最大的靈活性,與特定結構相關的接口始終可以被訪問。

OSKit核心支持庫在x86體系結構上尤為重要,因為該體系結構的OS級編程環境特別復雜和模糊。核心支持庫仔細地設置了一個基本的32位執行環境(為了與MS-DOS兼容,x86處理器通常以16位模式開始),初始化段和頁轉換表,安裝一個中斷向量表,并提供缺省的陷阱和中斷處理程序。當然,客戶OS能夠修改或重載這些行為。然而,在缺省情況下,核心支持庫自動地做所有必要的工作,以便使處理器進入一個方便的執行環境,此時中斷、陷阱、調試以及其他標準設施已經如預期的那樣開始工作。該庫在缺省情況下自動地定位所有隨內核加載的啟動模塊,并保留它們所在的物理內存。接下來,應用程序可以很容易使用它們。客戶OS只需以標準C語言風格提供一個main()函數。一切都設置好以后,內核支持庫將用所有參數和由啟動加載器傳遞過來的環境變量來調用它。

3.3內存管理庫

如同在一個標準C語言庫中實現的malloc()一樣,內存管理代碼典型地用于用戶空間。通常并不適用于內核。設備驅動常常需要分配特定類型的內存,并伴隨具體的調整屬性。例如,對于內建的DMA控制器只能訪問最初的16M物理內存。為解決這些內存管理問題,OSKit包含了兩個簡單而靈活的內存管理庫:(1)基于隊列的內存管理器(或稱LMM),它提供了功能強大且高效的原語來進行分配管理,并支持在一個池中管理多種類型的內存。(2)地址映射管理器(或稱AMM)被設計用來管理不必直接映射到物理內存或虛擬內存的地址空間,它對OS的其他方面提供了類似的支持,諸如進程地址空間、分頁、空閑塊或IPC名字空間的管理。盡管這些庫可以很容易地應用在用戶空間,但實際上它們是被特別設計用來滿足OS內核的需求。

3.4最小C語言庫

成熟的OS內核一般都包含著相當數量的僅僅用來重新實現基本的C語言庫函數如printf()和malloc()的代碼。與此形成對比的是,OSKit提供了一個最小化C語言函數庫,它圍繞著最小化依賴性而不是最大化函數性和性能的原則來設計。

3.5調試支持

OSKit的一個最實用的好處是:給定一個適當的硬件設置,它立刻就能提供給OS開發者一個完全源代碼級的內核調試環境。OSKit內核支持庫包括一個可用于GNU調試器(GDB)的串行存根模塊,它在客戶OS環境中處理陷阱,并使用GDB的標準遠程調試協議通過一個串行程序與運行在另一臺機器上的GDB通信。甚至當客戶機OS執行自己的陷阱處理時,OSKit的GDB存根模塊也是可用的。如果客戶OS提供適當的鉤子,它甚至支持多線程調試。除了基本的調試器支持,OSKit也提供了一個內存分配調試庫,它可以跟蹤內存分配并檢測一般的錯誤,如緩沖區溢出和釋放已釋放的內存。這個庫提供了與許多普通應用程序調試器相似的功能性,所不同的是它運行在由OSKit提供的最小內核環境中。3.6設備驅動支持

在OS開發和維護中最艱巨的一個任務是支持多種多樣的I/O硬件。這些復雜的設備常會含有潛在的錯誤,而新硬件的又常常伴隨著不兼容的軟件接口。由于這些原因,OSKit采用了為現有內核開發的穩定的、經過充分測試的驅動程序。OSKit使用了一種封裝技術,將現有的驅動程序代碼基本上未加修改地合并到OSKit中。這些現有的驅動程序被一個OSKit粘結代碼層所包裝,從而使得這些驅動程序可以在與開發它們的環境完全不同的環境中工作。目前,來自Linux的大多數以太網卡、SCSI和IDE磁盤的設備驅動程序被包括進來,總數超過了五十種。用同樣的方式,來自FreeBSD的八個字符設備驅動程序也被包含了進來,它們支持標準PC控制臺和串口及不同的多串口板。由于OSKit把這些驅動仔細地進行了包裝,FreeBSD驅動程序可以與Linux驅動程序一起工作。

3.7協議棧

OSKit提供了一個完整的TCP/IP網絡協議棧。如同驅動程序一樣,有關網絡的代碼也可以通過封裝機制被合并進來。OSKit當前可以從Linux中獲取網絡設備驅動程序,它們是PC平臺可獲得的最大的免費資源。OSKit的網絡組件繼承于FreeBSD4.4,它通常被認為具有更多成熟的網絡協議。這顯示了使用封裝機制將現有軟件包裝成靈活的組件的第二個優點:即從不同的資源中獲取最好的組件,并讓它們一起被使用。

3.8文件系統

通過使用封裝技術,OSKit吸收了NetBSD的基于磁盤的文件系統代碼。NetBSD之所以被選擇為首要資源庫,是因為在可用的系統中,它的文件系統代碼被最清晰地分離了出來,而FreeBSD和Linux的文件系統與它們的虛擬內存系統結合的更緊密。當前,OSKit也把Linux文件系統合并了進來,以便能夠支持多種類型的文件系統格式,如Windows95、OS/2和SystemV的文件系統格式等等。

OSKit文件系統輸出的COM接口類似于許多Unix文件系統所使用的內部VFS接口。這些接口具有很好的粒度,使我們可以不必接觸OSKit文件系統的內部。例如,OSKit接口只接受簡單的路徑名組件,允許安全封裝的代碼執行適當的訪問許可檢查。

4OSKit的現狀

自從在1996年6月了OSKit的第一個公開發行版以來,OSKit已經更新了多次,每次更新都增加了一些算法,并修正了一些錯誤。最新的發行版是2002年3月的版本。由此可見,OSKit一直處于操作系統開發平臺的前沿,其自身也在不斷完善和發展。

5結論

作為一個操作系統研究與開發的平臺,OSKit大大減輕了操作系統研究與開發者的負擔。它可以讓開發人員避開復雜的底層,而把興趣集中與他們所感興趣的領域。開發者可以用自己編寫的組件來取代OSKit中的部分組件,以滿足自己特定的需要,從而豐富了操作系統的應用層。總之,OSKit滿足了實際客戶系統的需求,有助于操作系統的研究與開發。

參考文獻

(1)湯海京基于面向對象操作系統開發平臺(OSKit)的分析與程序設計www-/developerWorks/linux/kernel/oskit/part1/index.shtml

(2)MichaelHohmuthUsingtheOSKitasabaseforL4applications

第7篇

論文關鍵詞:服務器,虛擬化技術,數字化校園

 

1.引言

隨著計算機技術的快速發展,有效地推動了數字化校園的建設和發展,特別是數字化學習港的建設,為學校的人才培養、學科建設和學科研究服務提供了堅實的技術支持。隨著各種應用系統的不斷增加,校園網服務器數量越來越多,這就帶來了校園網服務器管理復雜、資源利用率低和數據備份困難等問題。如何更加合理地分配資源,提高服務器的利用率,是數字化校園建設中必須認真解決的一個突出問題。

2.服務器系統應用現狀

經過多年的發展,我校的網絡中心已有各類服務器30多臺,組成了龐大的服務器系統。隨著服務器設備的不斷增加,系統配置管理的時間增多,維護費用增加、靈活性和可靠性降低,系統資源閑置的問題日益明顯。服務器系統實際利用率平均在35%左右。經過研究和分析認為,造成服務器系統適應能力差、利用率低下的主要有以下四種原因:

1)缺乏統一規劃。隨著學校教學工作的不斷深入,很多教學系統、管理系統都需要增加服務器以支持其新的應用,結果導致服務器數量不斷上升。各新增系統往往都采用單獨的服務器部署,而實際應用服務所占用的系統資源容量比服務器計劃訂購的資源容量小很多。

2)軟硬件資源配備復雜多樣。多種多樣的硬件平臺、操作系統和應用程序,衍生了紛雜的信息服務系統論文參考文獻格式。一些傳統的應用程序使用老式的操作系統數字化校園,通常這些應用在編寫的時候就已經確定了不能與其他應用共享一臺服務器。必然造成部分系統資源被閑置。

3)學校的快速發展與服務系統的升級脫節。隨著遠程開放教育的不斷發展,學員數量不斷增加,同時網上考試的科目越來越多,給現有的服務器資源帶來了巨大的壓力,另一方面,利用率低的獨立服務器造成資源閑置,但又無法投入使用。

面臨系統架構越來越復雜的現狀,單純機械的堆積服務器是不能解決應用增加與服務系統部分資源閑置的問題的,最有效的辦法就是進行服務器虛擬化。服務器虛擬化技術是當今信息產業界最受關注的新技術之一,其價值已在許多環境中得到驗證,越來越多的高校開始考慮借助虛擬化技術提高服務系統的處理效率。

3.服務器虛擬化技術簡介

3.1服務器虛擬化的概念

服務器虛擬化(Server Virtualization)是指多個操作系統在同一時間運行在同一臺主機上。通過這種技術,在一臺機器上可以支持Linux,Windows,UNIX等操作系統同時運行,而不需要重啟機器就能切換操作系統。簡單地講,就是將物理機器、操作系統及其應用程序“打包”成為一個文件,稱之為虛擬機。

圖1 服務器虛擬化模型

服務器虛擬化技術的實質是一種方法,通過區分資源的優先次序并隨時隨地將服務器資源分配給最需要它們工作的負載,來簡化管理和提高效率,從而減少為單個工作負載峰值而儲備資源的方法。它從兩方向入手,幫助服務器更加合理地實現資源的分配。一種方向是將服務器物理資源抽象成邏輯資源,讓一臺服務器變成幾臺甚至上百臺相互隔離的虛擬服務器,用戶可以在這些看似獨立的虛擬服務器上運行不同的操作系統和應用程序;另一個方向就是把若干分散的物理服務器虛擬成一臺大的邏輯服務器,使用戶可以像使用同一臺服務器的資源一樣來支配這些物理上獨立的服務器,從而達到最大化利用資源的目的。

目前,服務器虛擬化技術分為硬件層次的完全虛擬化技術和操作系統層次的虛擬化。完全虛擬化是以VMware為代表,這種虛擬化使用一個虛擬機,在客戶操作系統和原始硬件之間進行協調,完成虛擬化所需要的工作,完全虛擬化的最大優點是操作系統無需任何修改就可以直接運行,但缺點是操作系統必須要支持底層硬件。操作系統虛擬化位于操作系統的頂部,在操作系統之上實現服務器的虛擬化,主操作系統負責多個虛擬服務器的資源分配,并讓這些服務器相互獨立。

3.2服務器虛擬化技術的現實意義

1)減少服務器的數量,虛擬化技術可以支持實現物理資源和資源池的動態共享,可通過動態資源配置提高服務系統對應用的靈活適應力數字化校園,滿足不斷變化的應用需求,將極大的提高每臺服務器的利用率,從而降低整個服務器基礎架構的總體擁有成本。

2)降低管理復雜度,通過服務器虛擬化減少了物理服務器的數量,也就減少了相應的物理資源管理;隱藏物理資源的部分復雜性;簡化了服務器部署、管理和維護工作,降低了管理費用。通過實現自動化、獲得更好的信息和實現中央管理來簡化公共管理任務;實現負載管理自動化。

3) 提高數據備份的可靠性,支持快速轉移和復制虛擬服務器,提供一種簡單便捷的災難恢復解決方案,虛擬化技術可以實現較簡單的共享機制無法實現的隔離和劃分,可實現對數據和服務進行可控和安全的訪問,帶來具有透明負載均衡、動態遷移、故障自動隔離、系統自動重構的高可靠服務器應用環境。

4.構建高效數字化校園服務器虛擬化系統

校園信息化建設經過十多年的持續發展,已經進入了服務器的更新期。目前有兩種選擇,一是購買一兩臺高性能的服務器;二是按常規購買6~7臺普通的服務器。前者采用虛擬化技術就能達到后者所能提供的性能和存儲要求,并能實現簡化管理、降低運行和維護成本、提高效率的目的。服務器虛擬化的優點的顯而易見的,從主機到主流,服務器虛擬化已經是大勢所趨,是數字化校園建設和發展面臨的新挑戰和機遇論文參考文獻格式。

4.1服務器虛擬化的架構設計

針對各種數字化信息資源數據庫種類和信息服務方式等特點,規劃數字化校園網服務器虛擬化實施步驟,具體包括以下幾個方面:

1)按照不同的操作系統的應用服務進行物理服務器分類,建立Windows、UNIX、Linux等物理服務器,在此基礎上建立各自的虛擬服務器。

2)的物理服務器上根據各個數據庫應用負載、存儲空間、并發用戶數和用戶滿足度等各項參數,配置相應的小你服務器,包括分配CPU、內存、硬盤大小及虛擬網絡類型等,建立冗余的虛擬應用環境,既滿足數據的快速拷貝,又能滿足數據系統的災難恢復的需要。

3)將需要用到的Oracle、SQL Server等數據庫電子資源數據庫進行整合,利用虛擬工具中的遷移助手將多個不同物理服務器中的系統遷移到虛擬服務器上,建立獨立的數據庫集群虛擬機,這樣既可以保證了數據庫后臺的高可用性,同事也極大地提高了服務器的實際使用率,提升了應用平臺的整體性能和降低了過來復雜度。

4)根據休息資源種類不同,將功能相同或相近的應用進行整合,建立虛擬服務器機群,如Web服務、FTP服務、APP服務、E-Mail服務等轉移到相同的虛擬機上,使用虛擬IP地址,提高系統安全性能。

5)根據傳統應用使老式操作系統機這些應用在編寫時就必須獨占服務器的特點數字化校園,利用虛擬化技術合并傳統應用,使服務器能夠快速頻繁地重新分配。

4.2服務器虛擬化方案

本方案拓撲架構如圖2所示:硬件采用聯想萬全R630 G7服務器,每臺服務器均配置雙HBA卡,通過兩臺光纖交換機分別連接到Lenovo-HDSAMS2100存儲陣列的雙控制器上,保證了整個硬件平臺的冗余。軟件選用VMware vSphere4.0 Enterprise版本,提供了諸如HA、DRS、Vmotion的高級功能特性,方便用戶快速調整虛擬機的分布、資源的利用及當故障出現時的快速恢復能力,配合其提供的Data Recovery或者VCB備份接口功能則可對虛擬機文件進行快速的備份及恢復,另外虛擬化所具備的克隆技術則可以大大縮短新的業務平臺或測試平臺建設時間。獨立的虛擬機管理服務器則提供了對整個虛擬化平臺的集中化管理能力,通過集中化管理來大大提升整個平臺的管理效率。通過虛擬化技術的使用也解決了很多數據中心存在的硬件設備資源利用低及大量硬件設備所造成的數據中心供電、散熱等問題,保護用戶投資。

圖2 服務器虛擬化拓樸結構圖

5.結束語

服務器虛擬化技術雖然不算是新技術,但是對于很多人來說,還是要有一個了解和接受的過程。在過去的數字化校園建設重在IT基礎架構建設,現在和未來必將側重于建設領先的虛擬化IT環境。服務器虛擬化技術在飛速發展的同時,虛擬化的基礎架構也受到了很大的挑戰,突出的問題是一個籃子里放了太多的雞蛋是否安全?如果運行著10臺虛擬服務器的主機出了故障,造成的損失能否補救?其實,這個問題已經有了很多的解決辦法,不久的將來還會有新的解決方案供用戶選擇。相信在虛擬化廠商和用戶的不懈努力下,虛擬化過程遇到的困難和問題鄢會一一被解決,虛擬化的明天必將更美好。

[參考文獻]

[1]譚文輝.利用VMware實現數據中心服務器虛擬化[J]. 艦船電子工程,2008,6.

[2]周鐵成.虛擬化技術在數據中心架構中的應用研究[J]. 現代計算機,2009,4.

[3]張文盛.虛擬化服務器的應用研究[J]. 辦公自動化, 2010,8.

第8篇

《操作系統原理》是計算機專業的核心課程,具有很強的實踐性與實用性。大多學生都認為該課程容易學,就是掌握一些算法,比如進程調度算法、死鎖避免算法、磁盤調度算法等。這反映出目前計算機教學中普遍存在的一些問題,即課程與課程之間相對獨立,課程的章節之間相對獨立,使得大部分學生缺乏系統結構觀,只注重解決局部的編程和應用問題[1]。筆者發現,對《操作系統原理》課程的學習如果僅注重于細節的算法,難以真正培養學生的系統思維能力。讓學生通過該課程的學習,構建大型軟件的系統和結構化思維至關重要。 

在課程體系中,操作系統論文被安排在程序設計、數據結構、匯編語言、計算機組成原理等課程之后,是第一門側重研究大型計算機軟件組成結構的課程。目前,計算機專業的系統能力培養已經被國內計算機教育專家所重視[1],有條件的學校已進行了課程體系重構,而對目前尚未改革的學校而言,操作系統課程可以擔當起該職責。 

本文結合筆者在教學中的體會,提出應在操作系統原理教學過程強化結構概念和培養結構思維,從多方面探討操作系統課程中無處不在的結構概念及其對教學的作用。 

1結構的含義 

操作系統是一個大型系統,所謂系統,是由相互作用和相互依賴的若干要素結合而成的、具有特定功能的有機整體[2]。所謂結構,是指系統內部各組成要素之間在時間或空間上排列和組合的具體形式。與結構相對應,系統的外延是系統對外呈現的功能,例如操作系統作為用戶接口和服務提供者、操作系統作為資源管理者和控制者,都是從功能角度來闡述操作系統的外在表現。“結構決定功能”。系統論認為,功能是系統內部固有能力的外部表現,它終究是由系統的內部結構所決定。對于操作系統這樣的大型軟件而言,結構的好壞決定了軟件的可移植性、可靠性、健壯性和可擴展性。 

結是結合之義,構是構造之義。在科學研究和工程設計中,人們總是孜孜不倦地追求通過定義最小的本元集合和構造規則來產生某個目標系統。老子言:“道生一,一生二,二生三,三生萬物。”這與中國古代人講究的“金、木、水、火、土”一樣,都是樸素的探索世界結構的例子。這些與現代科學的認知殊途而同歸。現代科學表明,物質都由相同的最基本粒子構成,結構的差異產生不同的物質,碳原子的同素異形體石墨和鉆石便是最好的詮釋。在計算機科學中,這一方法也被廣泛應用,例如:程序由數據結構和控制結構決定。數據結構的本元是基本數據類型,而通過線性構造規則、層次構造規則和網狀構造規則可以創建任意復雜的數據類型。控制程序的基本要素是語句,理論上通過順序結構、分支結構和循環結構可以構造出任何程序。 

結構在人類的認知過程中也扮演著非常重要的角色。結構化思維方法是以事物的結構為思維對象,以對事物結構的積極建構為思維過程,力求得出事物客觀規律的一種思維方法。認知結構學習理論的創立者布魯納指出“掌握事物的結構,就是以使許多別的東西與它有意義地聯系起來的方式去理解它。簡單而言,學習結構是指學習事物是如何相互關聯的。 

綜上所述,結構一方面強調構造,另一方面強調聯系。因此,在教學過程中,應該重視結構概念和結構思維,注重操作系統各要素的組合方式和相互之間的聯系,引導學生掌握操作系統構造的一般性規律。 

2操作系統中結構的概念 

可以說,結構貫穿于操作系統原理課程教學的始終。有效識別《操作系統原理》課程中的結構并理解其對操作系統原理教學的重要作用對于提高學生的認知效率非常關鍵。 

2.1操作系統整體結構 

操作系統的結構方面,較為普遍的是如圖1所示的自底向上的由硬件、操作系統、應用程序等組成的層次化靜態結構圖。從靜態的角度看,一個計算機系統由各種物理特性和傳輸速度各異的硬件、實現不同功能的資源管理模塊和眾多應用程序組成。這些是計算機系統的基本要素。抽象和分層將這些要素組合成一個有機整體。在這一結構圖中,以內核為基準,向下,通過硬件驅動程序屏蔽具體硬件的類型差異,使內核能夠獨立于紛繁蕪雜的硬件設備而演化;向上,提供統一的系統調用接口,作為運行于用戶態的應用程序訪問內核功能的門戶,從而使上層應用程序可以獨立于內核而演化。無論是Windows XP操作系統、Unix操作系統、還是Android操作系統,都可以看作是這一基本結構的演化。 

2.2內核結構 

具體到內核本身,其發展歷程中也經歷了多種結構的演變,從早期的整體式單內核結構到后來的層次式單內核結構再到微內核結構。Unix和Linux都是單內核結構,而Windows XP和Mach屬于微內核結構。圖2給出了層次式單內核和微內核的結構示意圖[3]。鑒于操作系統軟件的復雜性,內核的結構對操作系統軟件的正確性、效率、可擴展性、可移植性等具有重要作用,是“結構決定功能”的典型范例。 

整體式結構存在于上世紀50年代,當時對結構的關心甚少,內核被劃分成功能相對獨立的模塊,而模塊之間可以不加控制地自由調用。這一結構的優點是結構緊密、組合方便、系統效率高,但缺點也很明顯,即模塊之間調用關系復雜,系統結構不清晰,可移植性差,當系統規模變大時難以保證正確性。

層次式結構則將模塊依照功能的調用次序排列成若干層次,各層之間單向調用。其優點是接口少而簡單,下層模塊的正確性為上層模塊的正確性提供了基礎。然而,嚴格的層次難以界定,嚴格的分層也降低了系統效率。此外,由于一層包括了非常多的功能,對于某個層次進行大的增刪可能會對相鄰層產生意想不到的影響。因此,很難在某個操作系統基礎上通過適當增/刪功能實現定制的操作系統,而這一點正是微內核的初衷。 

微內核認為只有最核心的操作系統功能(例如進程切換、消息傳遞、設備驅動等)需要運行于內核態,而其它服務可以建立在微內核之上,作為服務進程運行在用戶態,相互之間依賴于微內核的消息傳遞進行交互。通過這一結構的改變,微內核操作系統具備了可擴展性強、移植性好、可靠性高和易于支持分布式實現等諸多優點。 

2.3進程結構 

2.3.1內核功能組織和進程映像邏輯結構 

在教學過程中,筆者發現部分學生會將操作系統看作是一種獨立而神秘的特殊程序。確實,操作系統有其特殊性,例如其運行在內核態。但更重要的是,操作系統程序和普通程序一樣,需要獲得處理器后才能執行;操作系統程序并不一直占用處理器,只要有可能,就會主動放棄對處理器的控制。為了深入理解操作系統程序和普通程序的異同,則必須理解操作系統內核功能的組織模型和進程映像結構。 

在多道程序操作系統中,用戶程序被組織為進程在用戶模式執行,而操作系統的功能是否也需要被組織成獨立的進程,則有不同的選擇。一種早期的組織方式是,操作系統的功能運行在任何進程之外,擁有自己獨立的地址空間和運行棧。第二種組織方式是讓大部分內核功能在用戶進程內執行,將OS看成是一組用戶進程經常會調用的常用功能的集合。為此,每個進程映像不僅包括用戶程序執行所需的環境,還需要包含為執行操作系統內核程序執行所需的代碼、數據和堆棧。這一執行模型很好地詮釋了進程和程序的關系并非是1對1的。在同一個進程內,可以執行用戶程序和操作系統程序,而在不同進程中執行的操作系統程序是相同的(通過共享地址空間共享)。最后一種方式是將大部分操作系統功能也組織成進程,與用戶進程一樣可被獨立調度。這種方式的好處在于一些非關鍵的操作系統功能可以按照某個優先級和其它進程交錯運行,同時,在多處理器環境下,也便于操作系統服務在不同的處理器中運行,從而提高性能。圖3為上述3種操作系統的內核功能組織方式。這一差別導致了進程映像邏輯結構的不同,如圖4所示。在教學的過程中,學生經常難以理解為何用戶進程映像還需要包括內核棧,在對內核功能的組織方式和進程映像結構有了基本了解后,應該可以釋疑。 

2.3.2多線程環境下的進程結構 

引入線程后,進程成為地址分配和保護的基本單位,而線程是CPU調度的基本單位。為了讓學生更深入理解同一進程中的多個線程對進程地址空間的共享和線程切換的代價,有必要對多線程環境的進程結構有所了解。圖5給出了單線程進程和多線程進程的結構示意圖。當引入線程后,多個線程共享進程的地址空間,因此一個線程對數據所做的改變對其它線程可見,這要求多個線程之間采用某種互斥/同步機制以解決線程并發可能造成的數據不一致問題,為后續并發并同步相關內容教學作好鋪墊。 

引入線程后,原有的進程控制塊相關信息進一步分解,與進程有關的如存儲管理信息、打開文件列表等依然保存在進程控制塊中,而線程執行相關的寄存器上下文則保存在各線程控制塊中。當在同一個進程內進行線程切換時,僅需保存線程控制塊中的信息即可,進程控制塊中的信息無需保存,因此線程的切換開銷更小。 

2.4存儲管理中的結構 

在存儲管理相關內容的教學過程中,筆者發現學生雖然能夠掌握復雜的存儲管理策略的地址轉換方法,但對地址轉換的發生時刻卻仍然模糊。觀察發現,如果讓學生對程序生命周期的編譯、鏈接、裝入和運行這4個階段的關系有明確的認識,學生會對整個存儲管理結構更加了解。圖6給出了源程序經過編譯、鏈接和裝入后變成內存可執行程序的過程。編譯和鏈接后的程序都使用邏輯地址空間,鏈接同時會進行全部或部分的符號解析。邏輯地址和物理地址的轉換既可以在裝入時即發生(靜態重定位),也可以在運行時發生(動態重定位)。由于動態重定位能支持進程運行過程中在內存移動(例如進程被掛起后又被激活,頁面/分段在虛擬存儲管理中被替換出內存后又被載入),因此廣受青睞。 

虛擬內存是存儲管理中的另一項重點教學內容。理解虛擬內存首先必須理解由于技術和經濟因素決定的層次化存儲系統設計和各個存儲層次之間的聯系,圖7給出了一個現代的多核處理器的層次化存儲結構。在這一層次化結構中,每個上層的存儲設備都可以被看成是下層存儲設備的緩存。在此基礎上,進一步掌握虛擬地址空間、內存映射表、物理內存和外部磁盤存儲器的關系。在理解層次結構和各組成要素關系的基礎上,掌握虛擬內存的管理就會變得更加容易。 

2.5文件系統結構 

文件的邏輯結構和物理結構是文件系統教學的一大重點。文件的邏輯結構是指文件的邏輯組織方式,從構成文件的基本元素而言,有字節和記錄兩種。流式文件指將文件看成由字節按順序排列而成,記錄式文件指將文件看成由記錄按順序排列而成,而索引文件則將記錄按照某種規則排序,并建立記錄的索引項提供快速的文件檢索。現代操作系統大部分都支持流式文件,而將記錄的重構交給應用程序完成。從結構的角度而言,流式文件僅支持最本元的字節操作,無法體現任何語義,但其也具有最大的靈活性。 

文件的物理結構則是文件的物理組織方式,與物理磁盤的結構緊密相關。物理文件的基本組成單元是磁盤塊。物理文件的結構指邏輯上連續的字節以物理磁盤塊為基礎單位的排列組合方式,也即邏輯文件到物理文件的映射方式。文件的物理結構決定了對文件進行修改和擴充的能力、對文件進行順序訪問和隨機訪問的性能等。連續文件需要以物理上連續的磁盤塊來存儲文件,因此文件難以擴充和修改,但類似于數組,順序訪問和隨機訪問效率高。連接文件允許以離散的磁盤塊存放邏輯上連續的字節,易于修改和擴充,但類似于鏈表,需要按序讀取,隨機訪問效率低。FAT文件簡單地將這些離散的以鏈接方式存儲的映射信息集中起來存放,在文件被訪問時載入內存,因此較之連接文件訪問速度大大提升。索引文件同樣是將映射信息集中存放,但是以索引表的方式,因此既方便文件的修改和擴充,也能支持快速的隨機存取。

文件系統的另一項重點教學內容是文件的目錄結構及物理實現方式。文件目錄采用哪種結構決定了文件系統中文件保護和共享的能力。例如,早期的單級或兩級目錄結構不利于文件的共享和保護;純粹的樹形結構能實現文件保護,但不利于文件共享;而DAG(Directed Acyclic Graph)結構有利于文件共享;更通用的圖結構則不利于文件檢索。 

3教學過程中的結構思維培養 

《操作系統原理》課程教學中,教學人員一般都會對上述結構予以講解,但為何會出現本文開篇所提及的學生在學完課程后普遍認為《操作系統原理》就是學算法的課程,這一點值得深思。筆者認為,沒有強化結構概念是導致這一結果的原因之一。操作系統的教學人員已經認識到應該在操作系統教學過程中幫助學生建立整體概念[45],強化結構概念和注重結構思維培養是幫助建立整體概念的主要途徑。 

一般而言,教學過程都遵循自頂向下的原則,即先介紹整體結構,再介紹局部功能以及提高該局部性能的具體算法。但這一方法的問題在于,在初次介紹整體結構時,學生并未能對結構中的構成元素產生感性認知,因此對結構的作用感受不深。筆者建議按照圖8的方法來加強學生對結構的認識。首先,通過自頂向下的結構分解建立學生對操作系統結構的初步印象;其次,在具體層次的功能講解過程中,對存在的結構進行強化教學,注重各要素之間的聯系;再次,對于重要的結構概念,注重在不同的教學單元進行交叉強化。例如,圖7所示的層次化存儲結構可以在不同的章節得到強化,包括進程七態模型的掛起態、多核CPU的進程或線程調度算法、存儲管理中的快表、虛擬存儲、文件系統的磁盤緩沖區和內存映射I/O等。進程的系統上下文概念也可以在進程映像結構、存儲管理、I/O管理和文件管理中得到強化;最后,在講授完主要層次后,通過自底向上的方式再次完成操作系統整體結構的重構。例如,圖9給出了操作系統中的三大概念(進程、虛擬存儲和文件系統)之間的結構關系。文件系統建立在I/O的基礎上,對上層軟件簡化了外設操作。虛擬內存則是對包括主存和外存在內的存儲進行抽象,從而使得用戶可以按照內存操作的方式來訪問文件。更進一步,進程則是對處理器資源和存儲資源管理的抽象,構成了操作系統的核心概念。這一結構關系的重構可以在講授完文件管理之后開展。基于圖8所示的教學方法對結構概念從不同角度予以強化,學生對操作系統的整體認識將會產生由量變到質變的過程。 

4結語 

本文以“結構”作為《操作系統原理》課程教學的抓手,在教學過程中注重操作系統各要素的組合方式和相互之間的聯系,引導學生掌握操作系統構造的一般性規律,探討了操作系統中無處不在的結構概念,通過自頂向下分解、單元教學強化、交叉強化和自頂向上重構4個過程,深化了學生對操作系統結構的認識。 

參考文獻參考文獻: 

第9篇

關鍵詞:計算機科學導論;教學方法;考核方式

《計算機科學導論》課程是計算機專業的引導性課程,為計算機專業的新生提供了關于該專業學科的入門介紹。使學生能夠全面掌握計算機的基礎知識,并了解該專業的學生在該領域工作應具有的職業道德和應遵守的法律準則。《計算機科學導論》課程在大一第一個學期開設,新生雖然具有計算機的基本使用能力,但在計算機理論知識上的專業性不夠,大部分的知識對新生來說都是第一次接觸。如果一味地想把如此廣的知識介紹給學生,理解上的難度會影響他們學習的積極性,效果并不好。根據該課程近幾年的教學實踐,筆者總結出了教學中存在的一些問題,并對教學內容的選取、教學方法和考核方式給出思考。

教學中存在的問題

計算機科學導論的教學內容雖然相對淺顯,但是涵蓋的知識面很廣,幾乎包括計算機領域所有的理論知識,應用技術、熱點研究問題等。在授課中不僅要把基本的概念介紹清楚,還要對最新的專業動態有所介紹。在教學過程中主要存在以下幾個問題。

1.合適教材難以選擇

我國的計算機科學導論教材非常多,按其內容主要有以下三種:一、內容為計算機各種辦公軟件的使用,使學生具有使用計算機的初步能力,和非計算機專業開設的《大學計算機文化基礎》課程等同[1];二、將計算機專業學生大學四年要學的專業核心課程進行了濃縮,內容涉及面廣;三、計算機和計算的本質屬性用高度抽象的數學模型來刻畫[2],內容進行系統化、形式化的概括。由于目前中小學已開始開設了相關的課程,新生都具有不同程度的使用計算機的能力。所以選擇第一種教材對于計算機專業的學生會過于簡單,失去“專業引導”課程的本質屬性;第二種教材在廣度和深度上是比較難以把握的;第三種教材過于抽象,教師難講,一般院校的學生難以理解。再加之計算機科學技術和應用技術的發展變化非常快[3],可謂日新月異,許多教材內容的更新速度嚴重滯后。

2.理論教學過于復雜

新生非常渴望專業知識,計算機專業的新生對第一學期開設的計算機科學導論課程抱有很大的期望。教師希望通過講授該課程給學生初步建立整個學科的框架,指明計算機專業學習的方向,激發他們的學習興趣。但是把如數據結構,操作系統,數據庫系統,編譯原理等專業課濃縮為一章進行敘述[4],敘述方式上又較少考慮新生的知識背景和理解能力。理論教學中勉強把計算機科學系統知識精裝到學生的知識結構中[5],不斷出現的新概念、新理論和新知識使學生難以真正理解,又要求他們在短期內消化吸收,這樣不但起不到很好的專業引導,反而使學生對計算機的學習望而生畏。

3.實驗內容與理論教學相對獨立

本課程配有相應的實驗內容,但一般是以Windows操作系統和常用辦公軟件的操作為主,與理論教學相對獨立。

4.考核方式傳統化

對學生來說,最熟悉的考試方式是閉卷考試,這種考試方式注重對知識的記憶、理解和應用。在大學學習期間,很多課程沒有單元測試、期中考試,采取的是直接的期末考試。學生到了期末死記硬背搞突擊,平時很少去細細思索所學內容。本課程不只是介紹一些計算機專業的知識,更應該引導學生思考相關的一些問題。

教學的幾點思考

1.教材內容和補充新信息相結合

教材的內容對基本知識介紹得比較全面,但為了提高教學質量和教學的有效性,在教學內容上教師需要適當地選擇一些專業領域的新知識進行補充,如計算機技術和產品的最新發展、新成果、未來發展趨勢等[6]。學生在掌握計算機基本知識的基礎上對專業新知識有所了解,緊跟時代的新發展,與學生實際生活中接觸到的產品和概念有所共鳴,這樣可以激發他們學習本專業知識的興趣。

2.構建啟發式教學模式

傳統的教學模式是非常封閉的,教師講解學生聽課,兩者的交流比較少。學生的這種被動局面制約了他們學習主動性的發揮。啟發式教學模式就是讓學生的學習方式從被動變為主動。教師在對基礎知識的介紹過程中,根據相應的知識點設置相關問題,對學生進行分組選擇相應問題;進行前期的文獻查找,撰寫論文培訓后,讓學生自己去查閱相關資料,提煉內容,形成一份綜合的材料,并在課堂上講解給同學們;教師及時對學生所講內容進行總結評述。把課堂的某些時間讓學生掌控,教學中充分調動教師和學生的交流,在問題中探討學習,在參與中掌握相關知識。在這個過程中讓學生學會檢索文獻,整理資料,初步閱讀計算機專業文獻等;鼓勵學生從問題出發,去鉆研去思考,逐步訓練專業的創新能力;在團隊中學會合作;鍛煉學生的表達能力;提高辦公軟件的使用能力;培養學生專業自信心;充分發揮學生的主動性。

3.適當增加理論教學的實驗

Windows操作系統和常用辦公軟件的操作這些操作技能需掌握,但課堂上講到的有些內容最好配合相應的實踐,給學生實實在在的接觸,這樣能使理論教學的效果更理想。

4.改變考核方式

大學的課程在考核上一般采取期末考試成績和平時成績相結合的方法。計算機導論課程內容多,授課中若不采取傳統的教學方式,而是結合專題講座、學生參與教學的方式,該課程的部分考核可以在教學過程中完成。例如,可采取分組合作課題和獨立選題論文相結合的考核形式。分組合作課題在授課中完成,學生按所在分組,分工合作完成相關課題,上臺講演,并通過各小組之間的評比給出相應成績,這項成績在教學中完成;獨立選題論文,學生自主選取與計算機領域相關的選題,以論文形式上交,培養學生獨立思考能力,這項考核在結課后一定時間內完成。兩者結合,不增加學生記憶的壓力,又給了學生充分的自。

結束語

《計算機科學導論》課程在專業知識整體介紹的同時要激發學生學習本專業的興趣,發揮學生學習的主動性。課程難度和廣度不容易把握,教師要不斷更新教學內容,改進教學方法,使《計算機科學導論》課程真正起到引導的作用。

參考文獻:

[1]許晴媛.《計算機導論》課程內容探索與改革[J].寧德師范學院學報(自然科學版),2011,23(3):303-306.

[2]何昭青.《計算機導論》課程內容體系構建的研究與實踐[J].湖南第一師范學院學報,2010,10(5):63-66.

[3]李明東,等.《計算機導論》課程內容及體系結構改革研究[J].四川師范學院學報(自然科學版),2003,24(1):6-8.

[4]薄樹奎.“計算機導論”課程教學方法初探[J].鄭州航空工業管理學院學報(社會科學版),2011,30(4):182-184.

相關文章
相關期刊
主站蜘蛛池模板: 国产久草视频在线 | 久久99精品久久久久久久不卡 | 大色综合色综合资源站 | 免费黄色在线视频观看 | 国产小视频你懂的 | 国产欧美日韩高清专区手机版 | 欧美日韩亚洲国产无线码 | 五月亭亭激情五月 | 毛片视频网站在线观看 | 国产精品久久久久久久9999 | 六月婷婷激情 | 国产午夜精品福利 | 免费色视频 | 国产门事件xxx | 五月天综合激情 | 美人图在线播放 | 国产精品视频永久免费播放 | 亚洲综合伊人 | 免费av一区二区三区 | 99国产精品热久久久久久夜夜嗨 | 国产高清吹潮免费视频 | 国产亚洲精品看片在线观看 | 国产伦码精品一区二区三区 | 免费视频色 | 国产一级高清视频 | 婷婷丁香激情五月 | 狠狠a| 精品久久久久久中文字幕女 | 视频一区二区三区自拍 | 丁香激情综合 | 四虎精品影院永久在线播放 | 国产福利观看 | 91av国产精品 | 四虎www.| 国产精品成人亚洲 | 国内自拍视频网站 | 国产精品推荐天天看天天爽 | 视色4se影院在线播放 | 色99色| 国产成人免费观看 | 九九九精品视频 |