簡介:UNIX操作系統(tǒng),主講陳笑蓉貴州大學計算機科學與技術(shù)學院,UNIX操作系統(tǒng)是一個功能很強而且是十分靈活的操作系統(tǒng)和計算機環(huán)境;是使用非常方便的軟件開發(fā)環(huán)境;是當代最有代表性的多用戶多任務(wù)分時系統(tǒng)。,主要內(nèi)容,UNIX操作系統(tǒng)的發(fā)展和特點UNIX的系統(tǒng)結(jié)構(gòu)UNIX進程管理進程調(diào)度進程通信UNIX存儲管理UNIX設(shè)備管理UNIX操作系統(tǒng)的文件管理,91UNIX操作系統(tǒng)的發(fā)展和特點,20世紀60~70年代,ATC語言的誕生,為了寫UNIX1978年UNIXV7產(chǎn)生,1982年UNIXSYSTEMIII(V7PWBUNIX/RT)1978年BERKELEY分校發(fā)布3BSD(虛擬存儲器支持、按需分頁支持),1979年4BSD(INTERNET支持),1993年44BSD(新文件系統(tǒng)),,43BSD,43BSD,43BSDTAHOE,SVR31,SVR30,44BSD,,,,,,SVR32,SVR4,POSIX1,ANSIC,XPG3,1986,1987,1988,1989,1990,1991,1992,,,,,,,,,,,,,,,SVRSYSTEMV,UNIX標準化,80年代UNIX版本的劇增以及各種UNIX版本之間的差別不斷擴大導致了許多用戶(例如美國政府)要求對其標準化,以增強各種應用程序在這些UNIX操作系統(tǒng)之間的可移植性。其中幾個重要的標準包括ANSIC、IEEEPOSIX以及X/OPENXPG。所有這些標準只是界面的規(guī)格說明(例如,網(wǎng)絡(luò)界面,進程間的通信,系統(tǒng)管理等),而具體實施則留給制造商。,UNIX的基本特點,多用戶多任務(wù)的分時系統(tǒng)良好的界面可移植性強配置靈活具有一個可裝卸的分層樹型結(jié)構(gòu)文件系統(tǒng)安全機制完善豐富的網(wǎng)絡(luò)功能,UNIX的界面,UNIX有兩種界面,一個是命令控制界面,一個是編程界面。命令控制界面是通過SHELL提供給用戶使用。編程界面是UNIX系統(tǒng)的系統(tǒng)調(diào)用以標準實用子程序形式提供給用戶編程中使用,從而減少用戶程序設(shè)計和編程難度,節(jié)省用戶的程序設(shè)計和編程時間。,基本命令控制界面包括系統(tǒng)訪問命令,例如LOGIN,LOGOUT等。編輯和文件管理命令,例如VI,EMACS,CP,RM和LS等。編程、鏈接命令,例如CC,LINK等。維護、管理命令,例如ADDUSER,CHOWN等調(diào)試命令,例如DBX等。記帳、日期等命令,例如DATE等。網(wǎng)絡(luò)通信命令,例如MAILX等。,特殊命令包括后臺命令“FOPENWRITEREADCLOSEFCLOSE進程控制類FORKWAITKILLSIGNALPIPESLEEP信號與時間類TIMESTIMEDATE具體使用請用MAN幫助。如MANFOPEN,92UNIX的系統(tǒng)結(jié)構(gòu),UNIX系統(tǒng)結(jié)構(gòu)分為三層最內(nèi)層是UNIX操作系統(tǒng)核心,它包括文件控制系統(tǒng)和進程控制系統(tǒng)兩大部分。中間層是SHELLL命令解釋層、實用程序、庫函數(shù)。該層中的SHELL解釋程序是用戶和UNIX操作系統(tǒng)的界面。最外層是用戶程序,包括許多應用軟件。UNIX的系統(tǒng)結(jié)構(gòu)如下圖(92)所示,,UNIX系統(tǒng)核心的體系結(jié)構(gòu),在UNIX操作系統(tǒng)的核心部分有兩個子系統(tǒng)文件子系統(tǒng)進程控制子系統(tǒng)核外程序通過引用兩組被明確定義的系統(tǒng)調(diào)用與核心交往,其中一組用于與文件系統(tǒng)的交互作用,另一組與進程控制子系統(tǒng)的交互作用。如圖9-3所示。,系統(tǒng)調(diào)用接口系統(tǒng)調(diào)用接口是操作系統(tǒng)提供給編程人員的接口。編程人員通過系統(tǒng)調(diào)用使用操作系統(tǒng)內(nèi)核提供的各種功能。系統(tǒng)調(diào)用的執(zhí)行不同于一般用戶程序的執(zhí)行。系統(tǒng)調(diào)用執(zhí)行是在核心態(tài)下執(zhí)行系統(tǒng)子程序,而用戶程序則是在用戶態(tài)下執(zhí)行。,UNIX的系統(tǒng)調(diào)用由一條訪管指令陷阱或陷阱指令實現(xiàn)(TRAP)。該指令是一條機器指令,其操作數(shù)部分對應于系統(tǒng)調(diào)用的編號。另外,在系統(tǒng)中有一張系統(tǒng)調(diào)入口表,用來指示各系統(tǒng)調(diào)用處理程序的入口地址。,文件子系統(tǒng)文件管理用于為文件分配存儲空間,管理空閑盤塊,控制對文件的存取,以及為用戶檢索數(shù)據(jù)。高速緩沖機制緩沖機制與I/O設(shè)備驅(qū)動程序間交互作用,以控制各種外設(shè)到核心的數(shù)據(jù)傳送和核心到外設(shè)的數(shù)據(jù)傳送。設(shè)備驅(qū)動程序用以控制I/O設(shè)備進行操作的核心模塊,進程控制子系統(tǒng)進程控制FORK,EXEC,EXIT,進程通信原語,軟中斷,管道,SOCKET,存儲器管理采用了段頁存儲管理方式進程調(diào)度多級反饋輪轉(zhuǎn)調(diào)度算法。,93UNIX進程管理,整個UNIX系統(tǒng)就是一個進程家族,有一個最高的祖先。一般情況下,UNIX系統(tǒng)的進程家族樹如下圖94所示,0#進程和1#進程是UNIX系統(tǒng)中兩個最重要的進程,其中0#進程是UNIX系統(tǒng)中唯一只在核心態(tài)下運行的進程。它有三種功能調(diào)度分配處理器、管理進程交換和創(chuàng)建1#進程,所有其他進程都由1#進程直接或間接創(chuàng)建。,進程的數(shù)據(jù)結(jié)構(gòu)在UNIX系統(tǒng)V中,把PCB分成兩部分,一是進程表項,稱為PROC結(jié)構(gòu)。其中含有最常用的信息,由核心對它們進行存??;另一部分是U區(qū),稱為USER結(jié)構(gòu)。存放進程表項的一些擴充信息,它只能被運行在核心態(tài)的進程所存取。,UNIX系統(tǒng)把一個進程的虛擬地址空間劃分為若干個連續(xù)的邏輯區(qū),有正文區(qū)、數(shù)據(jù)區(qū)、棧區(qū)等。為了對區(qū)進行管理,在核心中設(shè)置了一個系統(tǒng)區(qū)表(簡稱區(qū)表),各表項中記錄了描述活動區(qū)的有關(guān)信息。進程區(qū)表中每一項記錄一個區(qū)的起始虛地址及指向系統(tǒng)區(qū)表中對應的區(qū)表項。,表項區(qū),進程的狀態(tài),用戶態(tài)運行在CPU上執(zhí)行用戶程序;核心態(tài)運行在CPU上執(zhí)行核心程序;在內(nèi)存就緒具備運行條件,只要內(nèi)核調(diào)度就能執(zhí)行;在內(nèi)存睡眠進程處于內(nèi)存中,只有等到某事件發(fā)生后才能執(zhí)行;在外存就緒進程處于就緒狀態(tài),但是在其被內(nèi)核調(diào)度去執(zhí)行之前必須被交換進內(nèi)存;在外存上睡眠進程在等待某事件發(fā)生,并被交換到外存上;被剝奪狀態(tài)被調(diào)度程序剝奪了處理機后的進程狀態(tài);創(chuàng)建態(tài)新進程被創(chuàng)建,還不能運行;終止態(tài)進程終止自己。,進程上下文,用戶級上下文由進程的用戶程序段部分編譯而成的用戶正文段、用戶數(shù)據(jù)、用戶段和共享存儲器組成。共享存儲區(qū)用于實現(xiàn)進程間的通信寄存器上下文;系統(tǒng)級上下文靜態(tài)級上下文和動態(tài)級兩部分。靜態(tài)部分包括PCB結(jié)構(gòu)(PROC結(jié)構(gòu)和USER結(jié)構(gòu))、進程區(qū)表項、系統(tǒng)區(qū)表項和頁表以及核心棧,區(qū)表和頁表用于實現(xiàn)進程的虛地址到物理地址的轉(zhuǎn)換,核心棧主要用來裝載進程中所使用系統(tǒng)調(diào)用的調(diào)用序列。動態(tài)部分包括進程在執(zhí)行時使用的核心棧、若干層寄存器上下文,94進程調(diào)度,UNIX系統(tǒng)是分時系統(tǒng),因而未設(shè)置作業(yè)調(diào)度。對進程的調(diào)度采用多級反饋隊列輪轉(zhuǎn)調(diào)度方式。相應地,在系統(tǒng)中便為就緒進程設(shè)置了多個就緒隊列。調(diào)度程序在進行調(diào)度時,總是先從最高優(yōu)先級隊列中,取出排在隊列最前面的進程。僅當最高優(yōu)先隊列中沒有進程時,才從次高優(yōu)先級隊列中找出其隊首進程,令他執(zhí)行一個時間片后,又剝奪該進程的執(zhí)行,將該進程放到下一個優(yōu)先級隊列的末尾,再從優(yōu)先級最高的隊列中取出下一個就緒進程投入運行。,95進程通信,UNIXSYSTEMV的進程通信有三種方式信號是對硬件中斷的一種模擬,也稱為軟中斷。這種方式是利用軟中斷信號實現(xiàn)同一用戶的各進程之間的通信。這種通信的目的是通知對方發(fā)生了異步事件。管道一個管道的執(zhí)行將用到兩個FILE數(shù)據(jù)結(jié)構(gòu),它們其中一個進程可以向管道寫,而另一個進程從管道讀IPC機制(進程間通信)IPC機制包括消息隊列、共享內(nèi)存和信號量三種,96UNIX存儲管理,UNIX系統(tǒng)V中采用了請求分頁存儲管理機制和對換機制。這樣,當進程運行時不必整個進程的映象都在內(nèi)存,而只需在內(nèi)存保留當前用到的頁面。當進程訪問到某些尚未在內(nèi)存的頁面時,就由核心把這些頁面裝入內(nèi)存。,緩存技術(shù),UNIX采用了一系列涉及到高速緩存的內(nèi)存管理技術(shù)。緩沖區(qū)緩存頁緩存交換緩存硬件緩存,UNIX使用最近最少使用策略(LRU)決定把哪個頁面換出。頁面的“年齡”變量表示頁面的被訪問次數(shù)。初始值默認為3,每訪問一次,值增加3,直到最大值20;每當交換進程嘗試換出一頁時,年齡值減1,直到0。變量“年齡”值越小,頁面越“老”,老的頁面,首先被換出。,97UNIX設(shè)備管理,UNIX系統(tǒng)中也將設(shè)備分為兩類,塊設(shè)備和字符設(shè)備。對這些設(shè)備管理的目的之一是使特定硬件設(shè)備的特性與用戶無關(guān),這種特征稱為透明性,在UNIX中,大部分I/O設(shè)備的特性由于I/O系統(tǒng)的緣故甚至對內(nèi)核也是透明的。I/O系統(tǒng)是由一個超高速緩存系統(tǒng)、一般設(shè)備的驅(qū)動程序和特殊設(shè)備的驅(qū)動程序構(gòu)成的、現(xiàn)又增加了一種網(wǎng)絡(luò)界面,主要用于支持網(wǎng)絡(luò)的I/O操作。,設(shè)備驅(qū)動程序,UNIX系統(tǒng)中每類設(shè)備都有一個驅(qū)動程序,設(shè)備驅(qū)動程序是驅(qū)動物理設(shè)備和DMA控制器或I/O控制器等直接進行I/O操作的子程序集合。它們負責設(shè)置相應設(shè)備有關(guān)寄存器的值,啟動設(shè)備進行I/O操作,指定操作的類型和數(shù)據(jù)流向等。,98文件管理,UNIX文件系統(tǒng)具有四個顯著特點1.有層次的多級樹型目錄結(jié)構(gòu),而且還是可以靈活裝卸的文件系統(tǒng);2.把輸入/輸出的硬件和特別文件連接起來;3.對I/O設(shè)備的存取和對普通磁盤文件的存取一樣看待,統(tǒng)一化為文件處理,從而簡化了用戶的操作;4.對文件提供了良好的保護機構(gòu)。,文件系統(tǒng)存儲結(jié)構(gòu),索引點是指在UNIX的文件系統(tǒng)中,每一個文件都有一個且僅有一個主結(jié)點,簡稱I結(jié)點。I結(jié)點中包含的是對應文件的特征參數(shù),如文件類型,文件長度,文件存放位置等。所有文件的I結(jié)點組成系統(tǒng)的I結(jié)點表,它存放了該文件系統(tǒng)中的所有I結(jié)點,主結(jié)點從0號開始依次向后編號,文件的尋址,1.直接尋址方式2.一次間接尋址方式3.多次間接尋址方式(二次間接尋址、三次間接尋址),空閑盤塊的管理,UNIX系統(tǒng)采用成組鏈接法對空閑磁盤加以組織,系統(tǒng)將若干空閑塊組成一個組,將每組中的盤,目錄文件,文件的常用命令,1.文件管理命令LS列當前目錄文件;CP復制文件;2.文本加工命令CAT顯示文件內(nèi)容;PR打印機打印文件內(nèi)容;3.軟件開發(fā)CCC語言編譯程序;VI全屏幕編輯程序。4.進程管理PS顯示當前各進程狀況;KILL終止進程;SLEEP使進程睡眠;使命令在后臺執(zhí)行。5.通信6.系統(tǒng)維護和服務(wù)MOUNT安裝文件卷到指定目錄;UNMOUNT拆文件卷WHO顯示系統(tǒng)各用戶狀態(tài)。,
下載積分: 6 賞幣
上傳時間:2024-01-05
頁數(shù): 43
大小: 0.54(MB)
子文件數(shù):