計(jì)算機(jī)操作系統(tǒng)中的進(jìn)程管理_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)中的進(jìn)程管理_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)中的進(jìn)程管理_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)中的進(jìn)程管理_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)中的進(jìn)程管理_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)中的進(jìn)程管理演講人:日期:CATALOGUE目錄進(jìn)程管理概述進(jìn)程描述與控制進(jìn)程同步與通信進(jìn)程調(diào)度算法死鎖預(yù)防、檢測(cè)與解除線程概念及應(yīng)用進(jìn)程管理概述01進(jìn)程定義獨(dú)立性異步性結(jié)構(gòu)性并發(fā)性動(dòng)態(tài)性進(jìn)程是操作系統(tǒng)中進(jìn)行資源分配和調(diào)度的基本單位,它是程序的執(zhí)行過(guò)程,具有動(dòng)態(tài)性、并發(fā)性、獨(dú)立性、異步性和結(jié)構(gòu)性等基本特征。進(jìn)程是程序的執(zhí)行過(guò)程,具有生命周期,因創(chuàng)建而產(chǎn)生,因調(diào)度而執(zhí)行,因等待資源或事件而被阻塞,因完成任務(wù)而被撤銷。多個(gè)進(jìn)程實(shí)體同存于內(nèi)存中,能在一段時(shí)間內(nèi)同時(shí)運(yùn)行。引入進(jìn)程的目的就是為了使程序能與其他進(jìn)程的程序并發(fā)執(zhí)行,以改善資源利用率和提高系統(tǒng)吞吐量。進(jìn)程實(shí)體是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)中獨(dú)立獲得資源和獨(dú)立調(diào)度的基本單位。進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。每個(gè)進(jìn)程都配置一個(gè)PCB對(duì)其進(jìn)行描述,從結(jié)構(gòu)上看,進(jìn)程由程序段、數(shù)據(jù)段及PCB組成。進(jìn)程定義與特性進(jìn)程與程序關(guān)系進(jìn)程與程序關(guān)系進(jìn)程更能真實(shí)地描述并發(fā),而程序不能只有在建立了進(jìn)程后才可以并發(fā)執(zhí)行。進(jìn)程具有創(chuàng)建其他進(jìn)程的功能,而程序沒(méi)有在采用多道程序技術(shù)設(shè)計(jì)的系統(tǒng)中,往往先啟動(dòng)一個(gè)然后激活其他程序運(yùn)行。不同的進(jìn)程可以包含同一程序只要該程序所對(duì)應(yīng)的數(shù)據(jù)集不同。進(jìn)程和程序的組成不同進(jìn)程的組成包括程序、數(shù)據(jù)和進(jìn)程控制塊(即進(jìn)程狀態(tài)信息)。就緒狀態(tài)當(dāng)進(jìn)程已分配到除CPU以外的所有必要資源后,只要再獲得CPU,便可立即執(zhí)行,進(jìn)程這時(shí)的狀態(tài)就稱為就緒狀態(tài)。在一個(gè)系統(tǒng)中處于就緒狀態(tài)的進(jìn)程可能有多個(gè),通常將它們排成一個(gè)隊(duì)列,稱為就緒隊(duì)列。執(zhí)行狀態(tài)指進(jìn)程已獲得CPU,其程序正在執(zhí)行。在單處理機(jī)系統(tǒng)中,只有一個(gè)進(jìn)程處于執(zhí)行狀態(tài);在多處理機(jī)系統(tǒng)中,則有多個(gè)進(jìn)程處于執(zhí)行狀態(tài)。阻塞狀態(tài)正在執(zhí)行的進(jìn)程由于發(fā)生某事件而暫時(shí)無(wú)法繼續(xù)執(zhí)行時(shí),便放棄處理機(jī)而處于暫停狀態(tài),亦即程序的執(zhí)行受到阻塞,把這種暫停狀態(tài)稱為阻塞狀態(tài),有時(shí)也稱為等待狀態(tài)或封鎖狀態(tài)。進(jìn)程狀態(tài)及轉(zhuǎn)換進(jìn)程描述與控制02進(jìn)程控制塊PCB是進(jìn)程存在的唯一標(biāo)識(shí),包含進(jìn)程的描述信息和控制信息。PCB中通常包含進(jìn)程標(biāo)識(shí)符、處理機(jī)狀態(tài)、進(jìn)程調(diào)度信息和進(jìn)程控制信息等內(nèi)容。PCB的組織方式有鏈接方式和索引方式兩種,鏈接方式將同一狀態(tài)的PCB鏈接成一個(gè)隊(duì)列,索引方式則是根據(jù)進(jìn)程狀態(tài)的不同建立幾張索引表。進(jìn)程控制塊PCB進(jìn)程創(chuàng)建創(chuàng)建一個(gè)新進(jìn)程需要為其分配唯一的進(jìn)程標(biāo)識(shí)符,并申請(qǐng)必要的資源,如內(nèi)存空間、I/O設(shè)備等。同時(shí),需要初始化PCB中的相關(guān)信息,如進(jìn)程狀態(tài)、優(yōu)先級(jí)等。進(jìn)程終止當(dāng)進(jìn)程完成其任務(wù)或發(fā)生異常時(shí),需要終止該進(jìn)程并釋放其占用的資源。終止進(jìn)程時(shí)需要將其從所在隊(duì)列中移除,并回收其占用的資源。進(jìn)程創(chuàng)建與終止當(dāng)進(jìn)程需要等待某個(gè)事件發(fā)生(如I/O操作完成)時(shí),它會(huì)將自己阻塞并放入等待隊(duì)列中。阻塞原語(yǔ)會(huì)將進(jìn)程狀態(tài)設(shè)置為阻塞態(tài),并將其PCB插入到相應(yīng)事件的等待隊(duì)列中。進(jìn)程阻塞當(dāng)?shù)却氖录l(fā)生時(shí),相應(yīng)的喚醒原語(yǔ)會(huì)被執(zhí)行,將等待隊(duì)列中的進(jìn)程喚醒。喚醒后的進(jìn)程將被放入就緒隊(duì)列中,等待處理機(jī)分配。同時(shí),需要修改PCB中的相關(guān)信息,如進(jìn)程狀態(tài)、等待事件等。進(jìn)程喚醒進(jìn)程阻塞與喚醒進(jìn)程同步與通信03臨界區(qū)問(wèn)題多個(gè)進(jìn)程同時(shí)訪問(wèn)共享資源時(shí),可能會(huì)導(dǎo)致數(shù)據(jù)不一致或資源訪問(wèn)沖突的問(wèn)題?;コ怄i通過(guò)加鎖機(jī)制確保同一時(shí)間只有一個(gè)進(jìn)程能夠訪問(wèn)臨界區(qū)資源。信號(hào)量使用信號(hào)量機(jī)制對(duì)臨界區(qū)資源進(jìn)行計(jì)數(shù)和訪問(wèn)控制。原子操作通過(guò)硬件或軟件實(shí)現(xiàn)的操作原子性,確保臨界區(qū)代碼在執(zhí)行過(guò)程中不會(huì)被中斷。臨界區(qū)問(wèn)題及解決方法信號(hào)量與PV操作信號(hào)量一個(gè)整型變量,用于表示可用資源的數(shù)量。P操作(Proberen,嘗試)請(qǐng)求資源,將信號(hào)量減1,若信號(hào)量小于0則進(jìn)程阻塞。V操作(Verhogen,增加)釋放資源,將信號(hào)量加1,若信號(hào)量小于等于0則喚醒等待隊(duì)列中的一個(gè)進(jìn)程。信號(hào)量與PV操作在進(jìn)程同步中的應(yīng)用實(shí)現(xiàn)進(jìn)程間的互斥與同步,保證對(duì)共享資源的正確訪問(wèn)。通過(guò)信號(hào)量和PV操作實(shí)現(xiàn)生產(chǎn)者和消費(fèi)者之間的同步,避免生產(chǎn)者生產(chǎn)過(guò)多產(chǎn)品而消費(fèi)者消費(fèi)不及的情況。生產(chǎn)者-消費(fèi)者問(wèn)題五個(gè)哲學(xué)家圍坐在圓桌旁,思考并進(jìn)餐。需要確保任意時(shí)刻只有一個(gè)哲學(xué)家能夠拿起左右兩邊的筷子,避免死鎖和資源浪費(fèi)。哲學(xué)家進(jìn)餐問(wèn)題允許多個(gè)讀者同時(shí)讀取數(shù)據(jù),但只允許一個(gè)寫者寫入數(shù)據(jù)。需要確保讀者和寫者之間的同步,以及寫者之間的互斥。讀者-寫者問(wèn)題經(jīng)典同步問(wèn)題解析進(jìn)程調(diào)度算法04調(diào)度基本概念操作系統(tǒng)中的進(jìn)程調(diào)度是指按照某種策略和原則,將處理機(jī)分配給就緒隊(duì)列中的一個(gè)進(jìn)程,以執(zhí)行其任務(wù)。進(jìn)程調(diào)度是操作系統(tǒng)核心功能之一,直接影響系統(tǒng)性能。調(diào)度分類根據(jù)調(diào)度的發(fā)生時(shí)間、頻率和范圍,可以將進(jìn)程調(diào)度分為長(zhǎng)程調(diào)度(作業(yè)調(diào)度)、中程調(diào)度(內(nèi)存調(diào)度)和短程調(diào)度(CPU調(diào)度)。調(diào)度基本概念及分類先來(lái)先服務(wù)(FCFS):按照進(jìn)程到達(dá)的先后順序進(jìn)行調(diào)度,簡(jiǎn)單易實(shí)現(xiàn),但可能導(dǎo)致長(zhǎng)作業(yè)等待時(shí)間過(guò)長(zhǎng)。短作業(yè)優(yōu)先(SJF):根據(jù)進(jìn)程預(yù)計(jì)運(yùn)行時(shí)間進(jìn)行調(diào)度,優(yōu)先執(zhí)行預(yù)計(jì)運(yùn)行時(shí)間短的進(jìn)程,有利于提高系統(tǒng)吞吐量,但需要預(yù)知進(jìn)程運(yùn)行時(shí)間。優(yōu)先級(jí)調(diào)度:為每個(gè)進(jìn)程分配一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)高的進(jìn)程優(yōu)先獲得處理機(jī)??梢愿鶕?jù)進(jìn)程類型、資源需求等因素設(shè)置優(yōu)先級(jí)。時(shí)間片輪轉(zhuǎn)(RR):將CPU時(shí)間劃分為固定長(zhǎng)度的時(shí)間片,每個(gè)進(jìn)程分配一個(gè)時(shí)間片。當(dāng)時(shí)間片用完時(shí),進(jìn)程被切換到就緒隊(duì)列末尾等待下一個(gè)時(shí)間片。該算法兼顧了短作業(yè)和長(zhǎng)作業(yè)的需求,但可能導(dǎo)致一定的上下文切換開(kāi)銷。常見(jiàn)調(diào)度算法介紹算法原理:多級(jí)反饋隊(duì)列調(diào)度算法結(jié)合了優(yōu)先級(jí)調(diào)度、時(shí)間片輪轉(zhuǎn)等多種算法的思想。它將就緒隊(duì)列劃分為多個(gè)不同優(yōu)先級(jí)的隊(duì)列,每個(gè)隊(duì)列采用不同的調(diào)度策略和時(shí)間片長(zhǎng)度。進(jìn)程根據(jù)其行為和需求被分配到不同優(yōu)先級(jí)的隊(duì)列中。優(yōu)點(diǎn):該算法能夠動(dòng)態(tài)調(diào)整進(jìn)程的優(yōu)先級(jí)和時(shí)間片長(zhǎng)度,以適應(yīng)不同負(fù)載和進(jìn)程行為的變化。它既能保證短作業(yè)的快速響應(yīng),又能避免長(zhǎng)作業(yè)的長(zhǎng)時(shí)間等待。同時(shí),通過(guò)優(yōu)先級(jí)調(diào)整和時(shí)間片長(zhǎng)度的動(dòng)態(tài)變化,可以在一定程度上實(shí)現(xiàn)公平性和效率之間的平衡。實(shí)現(xiàn)方式:多級(jí)反饋隊(duì)列調(diào)度算法的實(shí)現(xiàn)需要維護(hù)多個(gè)不同優(yōu)先級(jí)的隊(duì)列,并為每個(gè)隊(duì)列設(shè)置相應(yīng)的調(diào)度策略和時(shí)間片長(zhǎng)度。當(dāng)進(jìn)程創(chuàng)建或狀態(tài)發(fā)生變化時(shí),根據(jù)其歷史行為和當(dāng)前需求將其放入合適的隊(duì)列中。在調(diào)度過(guò)程中,首先選擇優(yōu)先級(jí)最高的非空隊(duì)列進(jìn)行調(diào)度,若存在多個(gè)相同優(yōu)先級(jí)的隊(duì)列,則按照某種規(guī)則(如FCFS或SJF)選擇其中一個(gè)進(jìn)行調(diào)度。多級(jí)反饋隊(duì)列調(diào)度算法死鎖預(yù)防、檢測(cè)與解除05死鎖定義01死鎖是指兩個(gè)或兩個(gè)以上的進(jìn)程在執(zhí)行過(guò)程中,由于競(jìng)爭(zhēng)資源或者由于彼此通信而造成的一種阻塞的現(xiàn)象,若無(wú)外力作用,它們都將無(wú)法向前推進(jìn)。競(jìng)爭(zhēng)資源02當(dāng)系統(tǒng)中供多個(gè)進(jìn)程共享的資源如打印機(jī)、公用隊(duì)列等,其數(shù)目不足以滿足諸進(jìn)程的需要時(shí),會(huì)引起諸進(jìn)程對(duì)資源的競(jìng)爭(zhēng)而產(chǎn)生死鎖。進(jìn)程間推進(jìn)順序非法03進(jìn)程在運(yùn)行過(guò)程中,請(qǐng)求和釋放資源的順序不當(dāng),也同樣會(huì)導(dǎo)致產(chǎn)生進(jìn)程死鎖。死鎖定義及產(chǎn)生原因破壞“請(qǐng)求和保持”條件第一種方法靜態(tài)地分配資源,從而剝奪了進(jìn)程對(duì)資源的請(qǐng)求權(quán)利,因此破壞了“請(qǐng)求”條件。第二種方法規(guī)定了當(dāng)進(jìn)程請(qǐng)求資源得不到滿足時(shí),它必須釋放已經(jīng)占有的所有資源,從而破壞了“保持”條件。破壞“不剝奪”條件當(dāng)某進(jìn)程請(qǐng)求的資源得不到滿足時(shí),便釋放已占有的資源。破壞“環(huán)路等待”條件系統(tǒng)將所有資源按類型進(jìn)行線性排隊(duì),并賦予不同的序號(hào),所有進(jìn)程對(duì)資源的請(qǐng)求必須嚴(yán)格按資源序號(hào)遞增的順序提出,從而破壞了“環(huán)路等待”條件。死鎖預(yù)防策略死鎖檢測(cè):為了能對(duì)系統(tǒng)是否已經(jīng)發(fā)生了死鎖進(jìn)行檢測(cè),必須提供一種算法,利用上述信息來(lái)檢測(cè)系統(tǒng)是否已進(jìn)入死鎖狀態(tài)。死鎖解除:當(dāng)發(fā)現(xiàn)有進(jìn)程死鎖后,便應(yīng)立即把它從死鎖狀態(tài)中解脫出來(lái),永久性地撤銷進(jìn)程或暫時(shí)地把它掛起,盤點(diǎn)資源使用情況,確定資源的占用情況。用一種數(shù)據(jù)結(jié)構(gòu)來(lái)保存資源的請(qǐng)求和分配信息;死鎖檢測(cè)與解除方法線程概念及應(yīng)用06線程是操作系統(tǒng)中進(jìn)行運(yùn)算調(diào)度的最小單位,它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。線程定義線程具有就緒、阻塞和運(yùn)行三種基本狀態(tài),并具有就緒狀態(tài)、執(zhí)行狀態(tài)和阻塞狀態(tài)之間的轉(zhuǎn)換關(guān)系。線程還具有許多屬性,如線程ID、線程狀態(tài)、優(yōu)先級(jí)、棧指針、程序計(jì)數(shù)器等。線程屬性線程定義及屬性123用戶級(jí)線程在用戶空間實(shí)現(xiàn),不依賴于操作系統(tǒng)核心,應(yīng)用開(kāi)發(fā)者可以自由控制線程的創(chuàng)建、同步和調(diào)度等。用戶級(jí)線程內(nèi)核級(jí)線程由操作系統(tǒng)內(nèi)核管理和調(diào)度,線程的創(chuàng)建、同步和切換等都需要內(nèi)核的支持。內(nèi)核級(jí)線程混合實(shí)現(xiàn)方式結(jié)合了用戶級(jí)線程和內(nèi)核級(jí)線程的特點(diǎn),既可以利用用戶級(jí)線程的靈活性,又可以獲得內(nèi)核級(jí)線程的高效性?;旌蠈?shí)現(xiàn)方式

溫馨提示

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

評(píng)論

0/150

提交評(píng)論