資源描述:
《UNIX操作系統(tǒng)介紹71緒言UNIX操作系統(tǒng)的結(jié)構(gòu)課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第七章UNIX操作系統(tǒng)介紹7.1緒言一、UNIX操作系統(tǒng)的結(jié)構(gòu)與的特點(diǎn)UNIX操作系統(tǒng)的結(jié)構(gòu)操作系統(tǒng)(內(nèi)核)系統(tǒng)實(shí)用程序(核外或外殼)內(nèi)核:就是操作系統(tǒng)本身,是常駐內(nèi)存部分,它包括進(jìn)程管理、存儲管理、設(shè)備管理、文件系統(tǒng)管理四大經(jīng)典管理技術(shù)及其他重要技術(shù)。外殼:從內(nèi)核分離出來以核外形式出現(xiàn)并在用戶環(huán)境下運(yùn)行的核外部分。SHELL2.UNIX操作系統(tǒng)的特點(diǎn)A、交互式分時多用戶多任務(wù)。UNIX系統(tǒng)是一個可供多用戶同時操作的會話式分時操作系統(tǒng)。B、UNIX向用戶提供了兩種友好的用戶界面或接口。程序一級的界面----------系統(tǒng)調(diào)用系統(tǒng)調(diào)用是程序一級的編程接口,是用戶程序取得操作系統(tǒng)服務(wù)的唯一
2、方式,也是用戶程序與系統(tǒng)內(nèi)核的接口。操作一級的界面------------命令命令是用戶與系統(tǒng)的交互式操作,它由Shell進(jìn)行解釋,并調(diào)用系統(tǒng)內(nèi)核的相應(yīng)部分執(zhí)行。Shell有三類特征:命令語言,命令解釋程序和程序設(shè)計(jì)語言。C、UNIX具有一個可裝卸的分層樹型結(jié)構(gòu)的文件系統(tǒng)。D、UNIX系統(tǒng)把所有的外部設(shè)備都當(dāng)作文件,并分別賦予它們對應(yīng)的文件名。E、可移植性。UNIX系統(tǒng)核心程序的絕大部分源程序系統(tǒng)上的支持軟件都用C語言寫的。三、UNIX的系統(tǒng)可分為四層:1、硬件層2、最內(nèi)層的UNIX操作系統(tǒng)核心(內(nèi)核層)。它包括文件控制系統(tǒng)和進(jìn)程控制系統(tǒng)兩部分。3、中間層是SHELL命令解釋層(核外層)
3、、用程序,庫函數(shù)。4、最外層是用戶程序(應(yīng)用層),包括許多應(yīng)用軟件。7.2UNIX進(jìn)程管理一、UNIX進(jìn)程的概念UNIX進(jìn)程由三部分組成:進(jìn)程控制塊、數(shù)據(jù)段、共享正文段。數(shù)據(jù)段:由進(jìn)程運(yùn)行時用到的數(shù)據(jù)及工作區(qū)構(gòu)成。是一個非常駐內(nèi)存的整體部分。數(shù)據(jù)段分成三部分:系統(tǒng)數(shù)據(jù)區(qū),用戶數(shù)據(jù)區(qū)和用戶棧區(qū)。共享正文段:能夠被多個進(jìn)程共享的程序進(jìn)程控制塊:由基本控制塊proc結(jié)構(gòu)和擴(kuò)充控制塊use結(jié)構(gòu)兩部分組成。Proc結(jié)構(gòu)記錄著一個進(jìn)程最基本、中、最常用的信息。不管進(jìn)程當(dāng)前是否占用處理機(jī),系統(tǒng)都要經(jīng)常對每一個進(jìn)程的proc結(jié)構(gòu)內(nèi)容進(jìn)行查詢和處理,因此一個進(jìn)程創(chuàng)建后它的proc結(jié)構(gòu)常駐內(nèi)存。Use結(jié)構(gòu)記
4、錄著存放著只有進(jìn)程運(yùn)行時才用到的數(shù)據(jù)和狀態(tài)信息。其為非常駐內(nèi)存部分。UNIX進(jìn)程三個部分的聯(lián)系:(看圖)二、進(jìn)程的用戶態(tài)、核心態(tài)執(zhí)行操作系統(tǒng)程序的進(jìn)程稱為“系統(tǒng)進(jìn)程”,執(zhí)行用戶程序的進(jìn)程稱為“用戶進(jìn)程”。UNIX中一個進(jìn)程既可以執(zhí)行用戶程序也可以執(zhí)行操作系統(tǒng)程序。進(jìn)程執(zhí)行的兩種狀態(tài):核心態(tài):進(jìn)程在執(zhí)行操作系統(tǒng)程序,并可以訪問所有的內(nèi)存空間和對象。在進(jìn)程此狀態(tài)時是不可剝奪。用戶態(tài):進(jìn)程在執(zhí)行用戶程序,在進(jìn)程此狀態(tài)時是可剝奪。這兩種狀態(tài)會在一定時機(jī)時進(jìn)行轉(zhuǎn)換。進(jìn)程從用戶態(tài)轉(zhuǎn)入核心態(tài),由中斷或陷阱實(shí)現(xiàn)進(jìn)程從核心態(tài)轉(zhuǎn)入用戶態(tài),需通過設(shè)置狀態(tài)寄存器PSW才能實(shí)現(xiàn)。其中0#進(jìn)程只在核心態(tài)運(yùn)行。三、進(jìn)
5、程的創(chuàng)建UNIX系統(tǒng)中還未創(chuàng)建出其他新用戶進(jìn)程之前,只有0#進(jìn)程,1#進(jìn)程,以及終端管理進(jìn)程與shell進(jìn)程存在。除0#、1#進(jìn)程之外,UNIX系統(tǒng)中的其他進(jìn)程都是由父進(jìn)程創(chuàng)建的,人們稱1#進(jìn)程是所有用戶進(jìn)程的祖先。父進(jìn)程通過系統(tǒng)調(diào)用fork()函數(shù)來創(chuàng)建子進(jìn)程。0#進(jìn)程功能:啟動系統(tǒng)時加載相關(guān)的數(shù)據(jù)結(jié)構(gòu)。系統(tǒng)調(diào)用fork完成的功能:⑴為子進(jìn)程在proc結(jié)構(gòu)表中分配一個空項(xiàng)⑵為子進(jìn)程賦一個唯一的進(jìn)程標(biāo)識號pid⑶復(fù)制一個父進(jìn)程上下文的邏輯副本。(只復(fù)制不共享的部分)⑷增加與父進(jìn)程相關(guān)聯(lián)的有關(guān)文件系統(tǒng)的進(jìn)程引入計(jì)數(shù)。⑸對父進(jìn)程返回子進(jìn)程的進(jìn)程標(biāo)識號,對子進(jìn)程返回零。當(dāng)父進(jìn)程使用fork()
6、創(chuàng)建了子進(jìn)程后,子進(jìn)程就繼承了父進(jìn)程的正文段,數(shù)據(jù)段和棧。子進(jìn)程的狀態(tài)為創(chuàng)建態(tài)。四、進(jìn)程生命期的狀態(tài)(9種):1、進(jìn)程的初始狀態(tài)2、內(nèi)存中就緒3、就緒且換出4、進(jìn)程在核心態(tài)下的執(zhí)行態(tài):5、進(jìn)程在用戶態(tài)下的執(zhí)行態(tài):6、內(nèi)存中睡眠7、睡眠且換出8、被剝奪狀態(tài)9、僵死狀態(tài)睡眠且換出就緒且換出內(nèi)存中睡眠內(nèi)存中就緒初始狀態(tài)核心態(tài)執(zhí)行用戶態(tài)執(zhí)行被剝奪態(tài)僵死狀態(tài)間的轉(zhuǎn)換fork內(nèi)存足夠內(nèi)存不夠換出換入調(diào)度返回系統(tǒng)調(diào)用、中斷調(diào)度,剝奪返回exit等待,sleep換出喚醒喚醒五、進(jìn)程調(diào)度1、調(diào)度算法:在UNIX中,對進(jìn)程的調(diào)度采用的是多級反饋輪轉(zhuǎn)調(diào)度方式。即系統(tǒng)給進(jìn)程分配一個時間片,當(dāng)時間片結(jié)束時,動態(tài)計(jì)
7、算進(jìn)程的優(yōu)先級,若有進(jìn)程的優(yōu)先級高于當(dāng)前進(jìn)程的內(nèi)存就緒進(jìn)程時,系統(tǒng)調(diào)度該進(jìn)程運(yùn)行。2、優(yōu)先級:A、分類:核心級優(yōu)先級、用戶級優(yōu)先級B、優(yōu)先數(shù)的算法:優(yōu)先數(shù)=最近使用CPU的時間/2+基本的用戶優(yōu)先數(shù)六、進(jìn)程通信軟中斷通信:軟中斷通信是對硬件中斷的一種模擬,發(fā)送軟中斷就是向接收進(jìn)程的進(jìn)程表項(xiàng)結(jié)構(gòu)中的相應(yīng)項(xiàng)發(fā)送一個軟中斷信號。接收進(jìn)程在收到軟中斷信號后將按事先的規(guī)定去執(zhí)行一個軟中斷處理程序。但是軟中斷處理程序不是收到信號后立即被啟動,它