《計算機操作系統(tǒng)》第2章課件_第1頁
《計算機操作系統(tǒng)》第2章課件_第2頁
《計算機操作系統(tǒng)》第2章課件_第3頁
《計算機操作系統(tǒng)》第2章課件_第4頁
《計算機操作系統(tǒng)》第2章課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

計算機操作系統(tǒng)回顧操作系統(tǒng)概論操作系統(tǒng)基本概念和發(fā)展史操作系統(tǒng)類型操作系統(tǒng)接口及接口實例批處理分時、實時網(wǎng)絡(luò)分布式2進程與線程第章本章目標掌握進程的概念掌握進程調(diào)度的原理掌握進程通信機制了解線程的概念什么是進程什么是進程 進程是一個可并發(fā)執(zhí)行的具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次執(zhí)行過程,也是操作系統(tǒng)進行資源分配和保護的基本單位。簡單的說:程序的一次執(zhí)行就是一個進程。進程的特性一個程序可以派生多個進程。多個不同程序運行時,也會有多個相對應(yīng)進程與其對應(yīng)。進程是動態(tài)的,有始有終,有生命周期,有進程狀態(tài)變化。進程與程序的區(qū)別程序是“靜止”、無生命的,進程是“活動”的。程序可以脫離機器長期保存,而進程是執(zhí)行著的程序。程序不具有并發(fā)特征,不占系統(tǒng)資源,進程則相反,并受到其他進程的制約和影響。一個程序可對應(yīng)多個進程。

進程的三種基本狀態(tài)運行狀態(tài)就緒狀態(tài)等待狀態(tài)進程狀態(tài)的變遷進程調(diào)度的概念進程調(diào)度也稱為處理機調(diào)度,它協(xié)調(diào)和控制各進程對CPU的使用。相應(yīng)的進程調(diào)度程序可叫分配程序或低級調(diào)度程序。進程調(diào)度算法調(diào)度算法先來先服務(wù)最短周期優(yōu)先優(yōu)先級法輪轉(zhuǎn)法多隊列反饋法先來先服務(wù)只考慮進程進入就緒隊列的先后,而不考慮它的下一個CPU周期的長短及其他因素。

p3p2p1進程就緒隊列p2p3p1進程就緒隊列先來先服務(wù)舉例設(shè)P1占CPU時間為24ns,P2為3ns,P3為3ns。則執(zhí)行情況如下所示:

t

0242730P1P2P3結(jié)果

p1需24nsp2需(24+3)nsp3需要t3=(24+3+3)ns平均為(24+27+30)/3=27ns最短周期優(yōu)先法將周期短的進程放在前面,長的放在后面。p1p2p31p1p3p22p2p1p33p3p1p24p3p2p15p2p3p16其他算法優(yōu)先級法:隊列中優(yōu)先級最高的進程投入運行,而不管CPU周期的長短和其他因素。輪轉(zhuǎn)法:按一定時間片(記為q)輪番運行各個進程。如果q是一個定值,則輪轉(zhuǎn)法是一種對各進程機會均等的調(diào)度方法。多隊列反饋法:把就緒進程按優(yōu)先級排成多個隊列,同隊列的進程具有相同的時間片。高優(yōu)先級隊列的時間片比低優(yōu)先級隊列的小。死鎖死鎖就是多個進程競爭資源而形成的一種僵持局面死鎖的起因系統(tǒng)內(nèi)的資源數(shù)量不足進程推進的順序不當防范死鎖機制死鎖預(yù)防死鎖避免(防止系統(tǒng)進入不安全狀態(tài))檢測與恢復(fù)打破資源的互斥和不可剝奪條件打破死鎖的環(huán)路條件進程通信軟中斷(通過發(fā)送信號給進程來實現(xiàn))共享存儲(將信息發(fā)送到存儲區(qū)域,供接受進程讀?。┕蚕砦募ㄟM程間通過共享文件來傳達信息)消息傳遞(把一組比特位傳遞到對方進程的接受地點)信箱(信箱頭和包括若干信格的信箱體組成)共享存儲原理圖進程控制塊進程控制塊(PCB)是描述進程名字、狀態(tài)、程序段與數(shù)據(jù)段的數(shù)據(jù)結(jié)構(gòu)。線程的概念線程是進程的一個實體,被系統(tǒng)獨立調(diào)度和分配。除寄存器和棧等,本身基本不擁有系統(tǒng)資源。

一個線程可以創(chuàng)建和撤銷另一個線程;同一進程中的多個線程之間可以并發(fā)執(zhí)行;線程同樣有就緒、阻塞和執(zhí)行三種基本狀態(tài)。線程與進程的比較線程是調(diào)度和分配的基本單位,而進程是資源擁有的基本單位;進程間可并發(fā)執(zhí)行,進程中的線程亦可并發(fā)執(zhí)行;進程的調(diào)度與切換都是由操作系統(tǒng)內(nèi)核完成,而線程則既可由操作系統(tǒng)內(nèi)核完成,也可由用戶程序進行。

Linux進程的屬性

進程ID;父進程和父進程的ID;用戶ID(UID)和所歸屬的組(GID);進程狀態(tài):分為運行R、休眠S、僵尸Z;進程執(zhí)行的優(yōu)先級;進程所連接的終端名。Linux進程管理工具

Ps:監(jiān)視進程工具;

Pgrep:通過程序的名字來查詢進程的工具;

kill:終止進程;top監(jiān)視系統(tǒng)任務(wù)的工具。CPU調(diào)度實例實例說明實例目的模塊設(shè)計流程圖

模塊測試CPU調(diào)度代碼實踐

實例說明

功能是模擬CPU的調(diào)度,調(diào)度策略為基于動態(tài)優(yōu)先級的調(diào)度策略。實例是使用C語言實現(xiàn),可以在多種編譯工具上進行調(diào)試(比如vc6.0,turboc等)。實例目的強調(diào)編寫代碼規(guī)范;加深理解操作系統(tǒng)的CPU調(diào)度策略;掌握分析方法:流程圖,偽代碼,N-S;掌握用c語言開發(fā)項目的思路;掌握測試方法;學會書寫相關(guān)文檔。模塊設(shè)計voidmain():CPU調(diào)度主函數(shù)voidjobSchedule():進程調(diào)度voidinitJobs():初始化進程控制塊列表voidOSRun():模擬操作系統(tǒng)的運行PCB*createJob():進程創(chuàng)建voidshowJobinfo(PCB*job):顯示進程信息

voiddoJob(PCB*job):運行指定的進程int

random(int

imaxvalue):生成隨機整數(shù)

CPU調(diào)度流程圖進程調(diào)試功能模塊的流程圖進程調(diào)度功能模塊的N-S圖進程調(diào)度功能模塊的偽代碼2-1void

jobSchedule(){

inti;#ifDEBUG

printf(“nowstepintojobSchedulefunction……\n”);#endifCURPCB=null;

for(遍歷進程列表){

if(進程列表項不為空){

釋放進行所占空間;

進程列表項置為空;

continue;

}CURPCB指向進程;}

轉(zhuǎn)下一頁……}進程調(diào)度功能模塊的偽代碼2-2void

jobSchedule(){

……

if(CURPCB不為空){

for(遍歷系統(tǒng)進程列表){

if(進程列表項不為空){CURPCB指向當前遍歷到的進程;}}}

else{SYS_RUN_FLAG=0;}}功能模塊測試測試方式1:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論