簡介
在面向對象作業系統中,對象作為一種並發單位,所有系統資源,包括檔案、進程、記憶體塊等都被認為是一種對象,對系統資源韻所有操作都是通過使用對象服務來完成的。
以對象為基礎建造作業系統,可以減少作業系統在其整個生命期內所做修改時對系統本身的影響。例如,如果硬體發生了變化,將迫使作業系統也做出改動,在這種情況下只要改變代表該硬體資源的對象和對該對象進行操作的服務即可,而那些僅使用該對象的代碼則不需要改變。同樣,當系統需要支持新的資源時,一個新的對象被生成,並加入到系統中,而不會打亂現成的代碼,這使得系統的可擴充性比較好。
開發方法
面向對象作業系統的開發方法是以對象為基本元素來構造作業系統的方法。而作業系統中的對象是作業系統所管理的信息和資源的抽象。面向對象作業系統的開發方法一般可分為以下三步:
1.問題定義
問題定義是將所需解決的問題以對象為單位進行對象的劃分,並對整體對象需求進行分析。劃分對象通常有以下兩種基本方法:一種是像
面向對象語言smalltalk那樣,把系統內的所有物體都看成對象;另一種則是除了系統內部定義的預設對象外,只提供一個對象生成工具,由用戶根據需要自定義對象或生成對象實例。
對於前一種方法,當在網路環境下實現時,如果超類、類、子類以及對象實例之間的依賴關係不在同一個主機中,則其實較為困難。因此,在作業系統中較為常用的是後一種方法,即定義預設對象和提供生成對象與對象實例的工具。這樣,在單機系統中,可以按照
smalltalk或
C++等面向對象語言的方法把系統內所有物體看作局部對象,而把網路環境下的l對象看作廣域對象且具有不同的類型,從而可以解決網路環境下對象的繼承問題。
2.對象的設計與定義
這一步需要對對象進行較詳細的設計和定義,並可以充分利用已有的對象.在不同系統中,對象的定義各異。不過,一般來說一個對象應包括三部分,即:
{對象名,對象類型,對象狀態}
其中,對象名是對象的邏輯標識符,系統內的所有對象構成了一個對象名空間,對象類型指明該對象所屬的類和可允許的操作;對象狀態是該對象所存儲的數據集合的權能。
在定義對象類型之後,還必須定義控制和操作對象實倒用的過程.對不同的對象實例,能改變其狀態的過程是不同的。而且,正如前面所提到的那樣,過程在系統中也被看作對象,它們具有自己的權能表和執行域,且執行域可由過程對象的權能表給出.另外,由於同一過程可被不同的進程對象調用,因此,過程對象的執行域不是固定的,過程對象的執行域在過程被調用時發生轉換。
3.建立對象之間的聯繫
為了達到問題的要求,須將各個對象聯繫起來。對象之間的聯繫通過訊息傳遞來實現。一個對象通過傳送訊息去啟動另一對象的過程進行操作,一個對象不能在沒有訊息的情況下自由地進行操作。
分類
根據面向對象作業系統所提供的保護範圍,把現有的面向對象作業系統簡單地分為以下三類。數據受保護的系統;數據和過程受保護的系統;數據、過程和處理機受保護的系統。
1.數據受保護的系統
數據受保護的系統是指那種把執行時所必須的狀態數據和管理用數據定義為對象加以保護的系統。在這種系統中,受保護的
數據可以是進程控制塊、設備控制表和頁表等,而對對象進行操作的過程則是另外定義的。
2.數據和過程受保護的系統
數據和過程受保護的系統是指那些在對象中包括數據和對這些數據進行操作的過程的系統。但執行這些過程進行有關操作的
處理機未包括在對象中。由於過程需要由非對象的處理機來執行,故這種對象仍然是靜態的和被動的。在這種系統中,過程的執行可分為靜態連線執行和動態連線執行兩種方式。對於動態連線執行方式,它涉及到如何動態地進行對象選擇和切換,比靜態連線方式要複雜得多。
將對象和處理機分開考慮的模型也稱為“對象執行緒模型”。其中,執行緒代表處理機,它只擁有狀態信息和
堆疊等所必須的最小上下文。在這種模型中,作業系統由提供地址空間和過程的對象以及在該地址空間上執行有關過程的執行緒所構成,對象間的通信靠過程調用或遠程調用來完成。
3.數據、過程和處理機受保護的系統
數據、過程和處理機同時受保護的對象是指那些本身具有執行能力的對象。用這種對象建立的系統又被稱為動態對象模型系統。在這種系統中,對象包括了數據、過程以及執行這些過程的處理機;對象內的處理機除了完成一般操作外,還負責管理對象內部的資源。至於對象間的通信,需要依靠事先規定的協定來完成。
動態對象模型系統的最一般實現方法是在通常的進程上建立一個面向對象的環境。這樣,對象的動態性可由進程得到,對象間的通信可由進程間的通信來完成。
優點
作業系統中可以作為對象描述的成分包括:進程、執行緒、訊息、檔案、設備、存儲區、緩衝區、信號量、過程等。
採用面向對象作業系統設計的好處有以下幾點。
(1)作業系統需要管理眾多的信息和資源,如
處理機、
存儲器、外設和檔案等,用對象來描述它們,顯得直觀、自然、符合人的思維方式;
(2)由於引入了對象概念,使作業系統中的管理和保護,通信和同步等都變得易於實現,且便於維護;
(3)在
網路作業系統和
分散式作業系統中,每個結點都可以描述成多個對象的集合,這樣可以提供大量不同特性的結點,使系統更為協調、靈活;