操作系統(tǒng)的架構(gòu)是什么 是怎樣分類的
操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)結(jié)構(gòu)是指操作系統(tǒng)的構(gòu)成結(jié)構(gòu)。在操作系統(tǒng)的發(fā)展過(guò)程中,產(chǎn)生了多種多樣的系統(tǒng)結(jié)構(gòu),幾乎每一個(gè)操作系統(tǒng)在結(jié)構(gòu)上都有自己的特點(diǎn),從總體上看,根據(jù)出現(xiàn)的時(shí)間,操作系統(tǒng)結(jié)構(gòu)依次可以分為整體式結(jié)構(gòu)、模塊化結(jié)構(gòu)、層次式結(jié)構(gòu)和微內(nèi)核結(jié)構(gòu)。
操作系統(tǒng)結(jié)構(gòu)的分類
整體式結(jié)構(gòu)
整體式結(jié)構(gòu)也叫簡(jiǎn)單結(jié)構(gòu)或無(wú)結(jié)構(gòu),在早期設(shè)計(jì)開(kāi)發(fā)操作系統(tǒng)時(shí),設(shè)計(jì)者只是把注意力放在功能的實(shí)現(xiàn)和獲得高的效率上。整個(gè)操作系統(tǒng)的功能由一個(gè)一個(gè)的過(guò)程來(lái)實(shí)現(xiàn),這些過(guò)程之間又可以相互調(diào)用,導(dǎo)致操作系統(tǒng)變?yōu)橐欢堰^(guò)程的集合,其內(nèi)部結(jié)構(gòu)復(fù)雜又混亂。因此這種操作系統(tǒng)沒(méi)有結(jié)構(gòu)可言。
這種早期的整體式結(jié)構(gòu)的最大優(yōu)點(diǎn)就是接口簡(jiǎn)單直接,系統(tǒng)效率高 但是卻有很多的缺點(diǎn):沒(méi)有可讀性,也不具備可維護(hù)性,一旦某一個(gè)過(guò)程出了問(wèn)題,凡是與之存在調(diào)用關(guān)系的過(guò)程都要修改,所以給調(diào)試和維護(hù)人員帶來(lái)許多麻煩,有時(shí)為了修改系統(tǒng)中的錯(cuò)誤還不如重新設(shè)計(jì)開(kāi)發(fā)一個(gè)操作系統(tǒng)。因此,這種早期的整體式結(jié)構(gòu)已經(jīng)淘汰不用了。
模塊化結(jié)構(gòu)
模塊化結(jié)構(gòu)是指將整個(gè)操作系統(tǒng)按功能劃分為若干個(gè)模塊,每個(gè)模塊實(shí)現(xiàn)一個(gè)特定的功能。模塊之間的通信只能通過(guò)預(yù)先定義的接口進(jìn)行?;蛘哒f(shuō)模塊之間的相互關(guān)系僅限于接口參數(shù)的傳遞。
在這種模塊化結(jié)構(gòu)中,模塊的劃分并不是隨意的.而是要遵循一一定的原則,即模塊與f其塊之間的關(guān)聯(lián)要盡可能地少,而模塊內(nèi)部的關(guān)聯(lián)要盡可能地緊密這樣劃分出來(lái)的模塊之間具備一定的獨(dú)立性,從而減少了模塊之間的復(fù)雜的調(diào)用關(guān)系,使得操作系統(tǒng)的結(jié)構(gòu)變得清晰:而模塊內(nèi)部各部分聯(lián)系緊密,使得每個(gè)模塊都具備獨(dú)立的功能。
層次結(jié)構(gòu)
所謂的層次結(jié)構(gòu),就是把操作系統(tǒng)所有的功能模塊按照功能調(diào)用次序分別排成若干層,各層之間的模塊只有單向調(diào)用關(guān)系(例如,只允許上層或外層模塊調(diào)用下層或內(nèi)層模塊)。分層的優(yōu)點(diǎn)是:
(1)把功能實(shí)現(xiàn)的無(wú)序性改成有序性,可顯著提高設(shè)計(jì)的準(zhǔn)確性。
(2)把模塊間的復(fù)雜依賴關(guān)系改為單向依賴關(guān)系,即高層軟件依賴于低層軟件。
E.W.Dijkstra于1968年發(fā)表的THE多道程序設(shè)計(jì)系統(tǒng)第一次提出了操作系統(tǒng)的分層結(jié)構(gòu)方法。整個(gè)THE系統(tǒng)分為6層。
軟件系統(tǒng)的架構(gòu)設(shè)計(jì)方案
定義架構(gòu)的最短形式是:“架構(gòu)是一種結(jié)構(gòu)”,這是一種正確的理解,但世界還沒(méi)太平。若做一個(gè)比喻,架構(gòu)就像一個(gè)操作系統(tǒng),不同的角度有不同的理解,不同的關(guān)切者有各自的著重點(diǎn),多視點(diǎn)的不同理解都是架構(gòu)需要的,也只有通過(guò)多視點(diǎn)來(lái)考察才能演化出一個(gè)有效的架構(gòu)。
從靜態(tài)的角度,架構(gòu)要回答一個(gè)系統(tǒng)在技術(shù)上如何組織;從變化的角度,架構(gòu)要回答如何支持系統(tǒng)不斷產(chǎn)生的新功能、新變化以及適時(shí)的重構(gòu);從服務(wù)質(zhì)量的角度,架構(gòu)要平衡各種和用戶體驗(yàn)有關(guān)的指標(biāo);從運(yùn)維的角度,架構(gòu)要回答如何充分利用計(jì)算機(jī)或網(wǎng)絡(luò)資源及其擴(kuò)展策略;從經(jīng)濟(jì)的角度,架構(gòu)要回答如何在可行的基礎(chǔ)上降低實(shí)現(xiàn)成本等等.
軟件系統(tǒng)架構(gòu)(SoftwareArchitecture)是關(guān)于軟件系統(tǒng)的結(jié)構(gòu)、行為、屬性、組成要素及其之間交互關(guān)系的高級(jí)抽象。任何軟件開(kāi)發(fā)項(xiàng)目,都會(huì)經(jīng)歷需求獲取、系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、編碼研發(fā)、系統(tǒng)運(yùn)維等常規(guī)階段,軟件系統(tǒng)架構(gòu)設(shè)計(jì)就位于系統(tǒng)分析和系統(tǒng)設(shè)計(jì)之間。做好軟件系統(tǒng)架構(gòu),可以為軟件系統(tǒng)提供穩(wěn)定可靠的體系結(jié)構(gòu)支撐平臺(tái),還可以支持最大粒度的軟件復(fù)用,降低開(kāi)發(fā)運(yùn)維成本。如何做好軟件系統(tǒng)的架構(gòu)設(shè)計(jì)呢?軟件系統(tǒng)架構(gòu)設(shè)計(jì)方法步驟基于體系架構(gòu)的軟件設(shè)計(jì)模型把軟件過(guò)程劃分為體系架構(gòu)需求、設(shè)計(jì)、文檔化、復(fù)審、實(shí)現(xiàn)和演化。
<div>
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科