欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 操作系統(tǒng)結(jié)構(gòu) [打印本頁]

作者: 51黑tt    時間: 2016-3-5 23:16
標題: 操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)與用戶接口
系統(tǒng)調(diào)用
操作系統(tǒng)結(jié)構(gòu)
操作系統(tǒng)特征
3.0用戶與操作系統(tǒng)的接口
1. 命令接口
聯(lián)機接口(交互式):使用系統(tǒng)提供的操作命令,交互地控制程序執(zhí)行和管理計算機系統(tǒng).如系統(tǒng)管理,環(huán)境設置,權(quán)限管理,文件管理等
脫機接口:以作業(yè)說明書的方式提交給系統(tǒng)(批的方式);執(zhí)行過程中,用戶無法干涉
2.程序接口(系統(tǒng)調(diào)用)
系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的唯一接口,編程人員利用系統(tǒng)調(diào)用,完成與機器硬件部分相關的工作.用戶就可以在程序中調(diào)用操作系統(tǒng)所提供的一些子功能.
命令解釋系統(tǒng)
命令解釋系統(tǒng)(外殼,shell):是OS的重要組件之一,是用戶和OS的接口.
作用:讀入用戶的輸入或者文件中的命令,并運行它(們);通常轉(zhuǎn)換為一個或者多個系統(tǒng)調(diào)用
位置:
有的是在內(nèi)核中
有的如MS-DOS和Unix,則將它作為一個特殊程序(它易變,因此更靈活),當一個作業(yè)開始或者分時系統(tǒng)中用戶登陸時,它運行
命令解釋系統(tǒng)的工作流程
首先讀入鍵盤緩沖區(qū)中的命令,判別其文件名,擴展名及驅(qū)動器名是否正確.
若發(fā)現(xiàn)有錯,在給出出錯信息后返回;
若無錯,再識別該命令:
基于表格的方法:
從對應表項中獲得該命令處理程序的入口地址,然后把控制權(quán)交給該處理程序去執(zhí)行該命令.
表格其中的每一表目都是由命令名及其處理程序的入口地址兩項所組成.
3.1 系統(tǒng)調(diào)用-功能
系統(tǒng)調(diào)用(SYSTEM CALL) :
OS核心中都有一組實現(xiàn)系統(tǒng)功能的過程(子程序),系統(tǒng)調(diào)用就是對上述過程的調(diào)用.編程人員利用系統(tǒng)調(diào)用,向OS提出服務請求,由OS代為完成.
每個系統(tǒng)都有上百種系統(tǒng)調(diào)用,涉及進程,文件和設備控制等.
系統(tǒng)調(diào)用運行于核心態(tài);而普通的函數(shù)調(diào)用由函數(shù)庫或用戶自己提供,運行于用戶態(tài).
3.1 系統(tǒng)調(diào)用-舉例
例1: 文件管理:文件讀寫和文件控制(高級語言);
Open 文件打開
Close 文件關閉
Read 讀文件
Write 寫文件
Creat 文件創(chuàng)建
例2. 利用系統(tǒng)調(diào)用實現(xiàn)硬盤文件內(nèi)容讀寫
MOVE DX,OFFSETBUFF
MOVE CX,BYTE
MOVE BX,HANDLE
MOVE AH,3FH
INT 21H
3.1 系統(tǒng)調(diào)用-實現(xiàn)過程
當編程人員給定了系統(tǒng)調(diào)用名和參數(shù)之后,由一個類似于硬件中斷處理的中斷處理機構(gòu)完成-陷入處理機構(gòu).它是在系統(tǒng)中為控制系統(tǒng)調(diào)用服務的機構(gòu).
當用戶使用系統(tǒng)調(diào)用時,產(chǎn)生一條相應的指令(陷入指令,trap指令),CPU在執(zhí)行到該指令時發(fā)生相應的中斷,發(fā)出有關信號給該處理機構(gòu),并啟動相應的處理程序來完成該系統(tǒng)調(diào)用所要求的功能.
陷入指令(或稱訪管指令):由于系統(tǒng)調(diào)用引起處理機中斷的指令
在陷入中斷發(fā)生時,從用戶態(tài)->系統(tǒng)態(tài).這一轉(zhuǎn)換在發(fā)生訪管中斷時由硬件自動實現(xiàn).
3.1 系統(tǒng)調(diào)用-實現(xiàn)過程
系統(tǒng)調(diào)用語句本身是硬件提供的(機器指令),但其所調(diào)用的功能是操作系統(tǒng)提供的.每種機器的機器指令集中都有一條系統(tǒng)調(diào)用指令.
系統(tǒng)調(diào)用與返回
3.1 系統(tǒng)調(diào)用-實現(xiàn)過程
設置系統(tǒng)調(diào)用號和參數(shù).
調(diào)用號作為指令的一部分(如早期UNIX),或裝入到特定寄存器里(如:DOS的 int 21H,AH=調(diào)用號.)
參數(shù)裝入到特定寄存器里,或內(nèi)存區(qū)域
執(zhí)行trap(INT)指令:入口的一般性處理,查入口跳轉(zhuǎn)表,跳轉(zhuǎn)到相應功能的過程.
保護CPU現(xiàn)場(將PC與PSW入棧),改變CPU執(zhí)行狀態(tài)(處理機狀態(tài)字PSW切換,地址空間表切換)
將參數(shù)取到核心空間
執(zhí)行操作系統(tǒng)內(nèi)部代碼;
執(zhí)行iret指令:將執(zhí)行結(jié)果裝入適當位置(類似于參數(shù)帶入),恢復CPU現(xiàn)場(以棧頂內(nèi)容置PSW和PC).
系統(tǒng)調(diào)用表/調(diào)用號
Linux為每個系統(tǒng)調(diào)用都進行了編號(最大為NR_syscall),同時在內(nèi)核中保存了一張系統(tǒng)調(diào)用表,該表中保存了系統(tǒng)調(diào)用編號和其對應的服務例程地址.第n個表項包含系統(tǒng)調(diào)用號為n的服務例程的地址.
系統(tǒng)調(diào)用時需要把系統(tǒng)調(diào)用號一起傳入內(nèi)核.在x86上,這個傳遞動作是通過在執(zhí)行int $0x80前把調(diào)用號裝入eax寄存器實現(xiàn).
這樣系統(tǒng)調(diào)用處理程序一旦運行,就可以從eax中得到數(shù)據(jù),然后再去系統(tǒng)調(diào)用表中尋找相應服務例程了.
現(xiàn)在的系統(tǒng)提供了許多庫函數(shù),用戶編程時也許就是用上層的庫函數(shù),而不是直接使用系統(tǒng)調(diào)用.
Win32 API:如微軟提供了一個Win32 API函數(shù)集合,它實質(zhì)上就是一些庫函數(shù).在這些函數(shù)執(zhí)行時,往往會再去調(diào)用系統(tǒng)的系統(tǒng)調(diào)用.該庫函數(shù)提供了更易用的界面.因此,通過Win32 API程序員就能夠得到操作系統(tǒng)的服務.
如write(,…,…)
教材P49:文件復制
3.1 系統(tǒng)調(diào)用-庫函數(shù)
陷入與中斷的比較
相同點:它們都是由相同的硬件機構(gòu)處理的事件,
陷入是指CPU內(nèi)部事件產(chǎn)生的中斷,它包括程序運算引起的各種錯誤,如地址非法,效驗錯,頁面失效,存取控制錯,從用戶態(tài)到核心態(tài)的切換等都是陷阱的例子
中斷和陷入不同點:
陷入通常由處理機正在執(zhí)行的現(xiàn)行指令引起,而中斷則是由與現(xiàn)行指令無關 的中斷源引起;
陷入處理程序提供的服務為當前進程所用,而中斷處理程序提供的服務則不是為了當前進程的
中斷只能在指令之間被響應,而陷入可以在一條指令執(zhí)行中被響應
陷入處理程序在各自的堆棧上進行,中斷處理程序則在系統(tǒng)堆棧環(huán)境中進行
_軟中斷是通信進程之間用來模擬硬中斷的一種信號通信方式,處理機處理的時機決定于接受軟中斷信號的進程,如果占有處理機,與中斷處理相同,否則相應的處理必須等到接收進程得到處理機才能響應.
3.2.1 整體或模塊結(jié)構(gòu)
3.2.2 分層結(jié)構(gòu)
3.2.3微內(nèi)核結(jié)構(gòu)(客戶-服務器結(jié)構(gòu))
3.2.4 虛擬機
3.2,操作系統(tǒng)結(jié)構(gòu)
整體或模塊結(jié)構(gòu)
整個系統(tǒng)按功能進行設計和模塊劃分.系統(tǒng)是一個單一的,龐大的的軟件系統(tǒng).由眾多服務過程(模塊)組成,可以隨意調(diào)用其他模塊中的服務過程
評價
優(yōu)點:具有一定靈活性,模塊之間轉(zhuǎn)接的靈活性使運行中的高效率;結(jié)構(gòu)緊密,接口簡單直接
缺點:功能劃分和模塊接口難保正確和合理;模塊之間的依賴關系(功能調(diào)用關系)復雜(調(diào)用深度和方向)
3.2,操作系統(tǒng)結(jié)構(gòu)-(1)整體或模塊結(jié)構(gòu)
3.2.1 整體或模塊結(jié)構(gòu)
從資源管理觀點出發(fā),將OS劃分為若干層次.在某一層次上代碼只能調(diào)用低層次上的代碼,使模塊間的調(diào)用變?yōu)橛行蛐?有利于系統(tǒng)的維護性和可靠性.
3.2.2 分層結(jié)構(gòu)
3.2.2 分層結(jié)構(gòu)
按此種模式構(gòu)造的第一個操作系統(tǒng)是E.W.Dijkstra開發(fā)的THE系統(tǒng)(1968年).
一個層次式操作系統(tǒng)
處理器分配和多道程序
0
內(nèi)存和外存管理
1
操作員一進程通信
2
輸入輸出管理
3
用戶程序
4
操作員
5
功 能
層次
3.2.2 分層結(jié)構(gòu)-特點
分層原則
被調(diào)用功能在低層:如文件系統(tǒng)管理-設備管理-設備驅(qū)動程序
活躍功能在低層:提高運行效率
資源管理的公用模塊放在最低層:如緩沖區(qū)隊列,堆棧操作
最低層的硬件抽象層:與機器特點緊密相關的軟件放在最低層.如Windows NT中的HAL--單處理,多處理
資源分配策略放在最外層,便于修改或適應不同環(huán)境
3.2.2 分層結(jié)構(gòu)-特點
優(yōu)點:
功能明確,調(diào)用關系清晰(高層對低層單向依賴),有利于保證設計和實現(xiàn)的正確性
低層和高層可分別實現(xiàn)(便于擴充);高層錯誤不會影響到低層
缺點:
效率低.層次之間的調(diào)用開銷.
3.2.3微內(nèi)核結(jié)構(gòu)(客戶-服務器結(jié)構(gòu))
趨勢:從操作系統(tǒng)中去掉盡可能多的東西,而只留一個最小的核心
微內(nèi)核(micro-kernel):
只給內(nèi)核分配一些最基本的功能,運行在內(nèi)核模式. (如:內(nèi)存,進程間通信,基本調(diào)度等).
其它的OS服務都是由運行在用戶模式下的進程完成,可作為獨立的應用進程,稱為服務進程.
微內(nèi)核提供客戶程序和運行在用戶空間的各種服務之間的通信能力.
如Mach Unix.而Windows NT采用了混合結(jié)構(gòu).(分層結(jié)構(gòu)+微內(nèi)核結(jié)構(gòu))
3.2.3微內(nèi)核結(jié)構(gòu)
3.2.3微內(nèi)核結(jié)構(gòu)
優(yōu)點:
良好的擴充性:只需添加支持新功能的服務進程即可.而且所有新服務被增加到用戶空間中,不需要修改內(nèi)核.
可靠性好:所有服務器以用戶進程的形式運行,而不是運行在核心態(tài),所以它們不直接訪問硬件.假如在文件服務器中發(fā)生錯誤,文件服務器可能崩潰,但不會導致整個系統(tǒng)的崩潰
便于網(wǎng)絡服務,實現(xiàn)分布式處理:微內(nèi)核可以以相同的方式與本地和遠程的服務進程交互(遠程過程調(diào)用 RPC, Remote Procedure Call)
缺點:
消息傳遞比直接調(diào)用效率要低一些 (但可以通過提高硬件性能來補償 )
3.2.3 微內(nèi)核結(jié)構(gòu)
3.2.4 虛擬機
3.2.4 虛擬機
虛擬機:通過某種技術(shù),使物理計算機作為共享資源從而創(chuàng)建虛擬機.
利用CPU調(diào)度,虛擬內(nèi)存技術(shù),OS能創(chuàng)建一種幻覺,從而使進程認為有自己的處理器和自己的內(nèi)存.
每臺虛擬機都與裸機相同,所以每臺虛擬機可以運行一臺裸機所能夠運行的任何類型的操作系統(tǒng).不同的虛擬機可以運行不同的操作系統(tǒng).
3.2.4 虛擬機
使用虛擬機的好處
通過完成保護系統(tǒng)資源,虛擬機提供了一個安全層,每個虛擬機完全與其它虛擬機隔開,從而使系統(tǒng)資源被完全保護
虛擬機允許進行系統(tǒng)開發(fā)而不必中斷正常的系統(tǒng)操作:系統(tǒng)程序員有自己的虛擬機,系統(tǒng)開發(fā)可在虛擬機而不是真實的物理機器上進行.
虛擬機的應用:作為解決系統(tǒng)兼容性問題的一種方法,虛擬機的應用程序不斷增加.
例如在Sun的處理器上運行微軟開發(fā)的基于Intel CPU的系統(tǒng):解決方法是在Sun的處理器上創(chuàng)建虛擬Intel機,其Intel指令被轉(zhuǎn)換為本機指令.
允許windows程序運行在基于Linux的機器上,該虛擬機可以運行Windows應用程序和Windows操作系統(tǒng).
3.2.5 系統(tǒng)設計與實現(xiàn)
設計目標
硬件
系統(tǒng)類型:批處理,分時,分布式...
用戶目標:
使用人員:使用方便,可靠,快速
設計與維護人員:容易設計,實現(xiàn)和維護.
系統(tǒng)目標
區(qū)分機制與策略(細讀P65頁)
機制:決定如何來做
策略:決定做什么
如定時器結(jié)構(gòu).策略可能會隨地點或時間而概念,系統(tǒng)更需要通用機制.
系統(tǒng)實現(xiàn)
傳統(tǒng)OS是用匯編語言寫的,如MS-DOS使用Intel8088 匯編語言寫的
現(xiàn)在的OS都是用高級語言如C或者C++來寫的:使代碼編寫更快,容易理解和調(diào)試,OS更容易移植.但可能降低速度,提高存儲要求.
對于關鍵子程序,可用匯編語言編寫.
3.3 現(xiàn)代操作系統(tǒng)的特征
并發(fā)(concurrency)
共享(sharing)
虛擬(virtual)
異步性(asynchronism)
并發(fā)(concurrency)
并發(fā)指:多個事件在同一時間段內(nèi)發(fā)生.操作系統(tǒng)是一個并發(fā)系統(tǒng),各進程間的并發(fā),系統(tǒng)與應用間的并發(fā).操作系統(tǒng)要完成這些并發(fā)過程的管理.
"在同一段時間內(nèi),多個程序在宏觀上同時運行,微觀上分時地交替執(zhí)行" (在單處理器情況下).
并行(parallel)是指在同一時刻發(fā)生.
共享(sharing)
互斥共享方式(如音頻設備):資源分配后到釋放前,不能被其他進程所用.
同時訪問方式:(如可重入代碼,磁盤文件)
資源分配難以達到最優(yōu)化
多個進程共享有限的計算機系統(tǒng)資源.操作系統(tǒng)要對系統(tǒng)資源進行合理分配和使用.資源在一個時間段內(nèi)交替被多個進程所用.
程序的并發(fā)執(zhí)行能有效改善系統(tǒng)資源的利用率,但使系統(tǒng)復雜化,因此操作系統(tǒng)必須對并發(fā)活動進行控制和管理.
并發(fā)是操作系統(tǒng)最重要的特征,其它特征均以并發(fā)為前提.
并發(fā)和共享是操作系統(tǒng)的兩個最基本的特征 ,二者互為存在條件:
資源的共享是以程序的并發(fā)執(zhí)行為條件.
程序的并發(fā)執(zhí)行也以資源的共享為條件.
虛擬(virtual)
是指通過某種技術(shù)把一個物理實體變成若干個邏輯上的對應物.在OS中利用了多種虛擬技術(shù),分別用來實現(xiàn)虛擬處理機,虛擬內(nèi)存,虛擬外部設備和虛擬信道等.
虛擬是操作系統(tǒng)管理系統(tǒng)資源的重要手段,可提高資源利用率.
CPU--每個用戶(進程)的"虛處理機"
存儲器--每個進程都占有的地址空間(指令+數(shù)據(jù)+堆棧)
顯示設備--多窗口或虛擬終端(virtual terminal)
異步性(asynchronism)
進程的運行速度不可預知:分時系統(tǒng)中,多個進程并發(fā)執(zhí)行,"時走時停",不可預知每個進程的運行推進快慢
判據(jù):無論快慢,應該結(jié)果相同--通過進程互斥和同步手段來保證
難以重現(xiàn)系統(tǒng)在某個時刻的狀態(tài)(包括重現(xiàn)運行中的錯誤)
也稱不確定性,指進程的執(zhí)行順序和執(zhí)行時間的不確定性;
操作系統(tǒng)采用強內(nèi)核結(jié)構(gòu),是基于傳統(tǒng)的集中式操作系統(tǒng)的內(nèi)核結(jié)構(gòu).在這種強內(nèi)核的操作系統(tǒng)中,系統(tǒng)調(diào)用是通過陷入內(nèi)核實現(xiàn)的,在內(nèi)核完成所需要的服務,最后返回結(jié)果給用戶程序.
微內(nèi)核結(jié)構(gòu)是一種新的結(jié)構(gòu)組織形式,它體現(xiàn)了操作系統(tǒng)結(jié)構(gòu)設計的新思想.
① 進程間通信機制; 
② 某些存儲管理; 
③ 有限的低級進程管理和調(diào)度; 
④ 低級I/O.
一臺完全無軟件的計算機系統(tǒng)稱為裸機,即便其性能再強,相對于用戶來講,如果要面對計算機的指令集,存儲組織,I/O總線結(jié)構(gòu)的編程則是十分困難的.對于一般程序員也并不想涉足硬件編程的種種具體細節(jié),而希望針對數(shù)據(jù)結(jié)構(gòu)抽象地使用硬件.如果我們在裸機上覆蓋一層I/O設備管理軟件,用戶便可以利用這層I/O設備管理軟件提供給用戶的接口來進行數(shù)據(jù)的輸入和輸出,那么用戶此時看到的計算機是一臺功能強大,使用方便的計算機,但實際上,計算機的硬件絲毫沒有變化,這樣的計算機稱為軟件擴充的機器,或稱軟件虛擬機.







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1