4 任務(wù)管理與調(diào)度

4 任務(wù)管理與調(diào)度

ID:13882107

大?。?12.50 KB

頁(yè)數(shù):8頁(yè)

時(shí)間:2018-07-24

4 任務(wù)管理與調(diào)度_第1頁(yè)
4 任務(wù)管理與調(diào)度_第2頁(yè)
4 任務(wù)管理與調(diào)度_第3頁(yè)
4 任務(wù)管理與調(diào)度_第4頁(yè)
4 任務(wù)管理與調(diào)度_第5頁(yè)
資源描述:

《4 任務(wù)管理與調(diào)度》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)

1、任務(wù)的管理與調(diào)度一、進(jìn)程和線(xiàn)程這一節(jié)我們要解決三個(gè)問(wèn)題:什么是進(jìn)程?什么是線(xiàn)程?進(jìn)程和線(xiàn)程之間的區(qū)別?1、進(jìn)程的定義提問(wèn):什么是進(jìn)程,什么是程序,進(jìn)程和程序之間的區(qū)別?程序是存放在磁盤(pán)上的一系列代碼和數(shù)據(jù)的可執(zhí)行映像,是一個(gè)靜止的實(shí)體。也就是說(shuō)存儲(chǔ)到文件系統(tǒng)中的一個(gè)文件。進(jìn)程:正在執(zhí)行的一個(gè)文件,是動(dòng)態(tài)的。程序是靜止的,程序是動(dòng)態(tài)的。2、進(jìn)程四要素我們學(xué)習(xí)操作系統(tǒng)的時(shí)候,有的同學(xué)學(xué)過(guò)操作系統(tǒng),對(duì)進(jìn)程有一定的了解,有沒(méi)有學(xué)過(guò)操作系統(tǒng)?操作系統(tǒng)原理當(dāng)中描述的進(jìn)程是什么?進(jìn)程是資源分配的最小單位,線(xiàn)程是調(diào)度的基本單位,這是很抽象的

2、,操作系統(tǒng)中很多概念都是很抽象的。那么怎么去衡量,到底什么是進(jìn)程,實(shí)際上在linux操作系統(tǒng)當(dāng)中,我得到進(jìn)程的四要素,我們從內(nèi)核情景分析摘錄出來(lái),很經(jīng)典,講怎么衡量一個(gè)進(jìn)程。第一、作為一個(gè)進(jìn)程,要有一段程序供其執(zhí)行。這段程序不一定是某個(gè)進(jìn)程所專(zhuān)有,可以與其他進(jìn)程公用。這是最基本的條件。第二、有進(jìn)程專(zhuān)用的內(nèi)核空間堆棧。程序在執(zhí)行的過(guò)程當(dāng)中都需要有堆棧的。在參數(shù)傳遞的時(shí)候要用到堆棧,局部變量分配的時(shí)候要用到堆棧,用戶(hù)空間用到用戶(hù)空間堆棧,進(jìn)程在內(nèi)核空間運(yùn)行的時(shí)候要有內(nèi)核空間堆棧,因此要有內(nèi)核空間堆棧。第三、在內(nèi)核中有一個(gè)task

3、_struct數(shù)據(jù)結(jié)構(gòu),即通常所說(shuō)的“進(jìn)程控制塊”。有沒(méi)有同學(xué)聽(tīng)說(shuō)過(guò)PCB?進(jìn)程控制塊有什么作用?保存進(jìn)程的狀態(tài)以及調(diào)度信息,這是操作系統(tǒng)原理所提出來(lái)的PCB這樣的概念,在Linux系統(tǒng)當(dāng)中,PCB這個(gè)數(shù)據(jù)結(jié)構(gòu)實(shí)際上對(duì)應(yīng)了task_struct數(shù)據(jù)結(jié)構(gòu),也就是說(shuō)task_struct數(shù)據(jù)結(jié)構(gòu)就充當(dāng)了PCB,保存了進(jìn)程狀態(tài)信息,要想成為一個(gè)進(jìn)程,還有PCB。有了這個(gè)數(shù)據(jù)結(jié)構(gòu),進(jìn)程才能夠成為內(nèi)核調(diào)度的基本單位接收內(nèi)核的調(diào)度。第四、有獨(dú)立的用戶(hù)空間,非常關(guān)鍵。如果有獨(dú)立的用戶(hù)空間,則肯定是進(jìn)程;如果不滿(mǎn)足,還要看,如果沒(méi)有獨(dú)立的用

4、戶(hù)空間,但是還有用戶(hù)空間,那分為兩種:一種是完全沒(méi)有用戶(hù)空間,一種是和別人共享的用戶(hù)空間。如果完全沒(méi)有用戶(hù)控件,就是內(nèi)核線(xiàn)程;如果有共享的用戶(hù)空間,就是用戶(hù)線(xiàn)程。在Linux系統(tǒng)當(dāng)中存在:進(jìn)程,用戶(hù)線(xiàn)程,內(nèi)核線(xiàn)程這三個(gè)概念,你以后經(jīng)常會(huì)遇到這三個(gè)概念,怎么去區(qū)分它們??jī)H僅這兩個(gè)條件就可以區(qū)分。你以后去面試,面試操作系統(tǒng)相關(guān)的開(kāi)發(fā),尤其是嵌入式開(kāi)發(fā),經(jīng)常會(huì)問(wèn)到進(jìn)程和線(xiàn)程的區(qū)別,怎么回答這個(gè)問(wèn)題?首先,說(shuō)一下操作系統(tǒng)原理中怎么說(shuō)進(jìn)程和線(xiàn)程,進(jìn)程是資源分配的最小單位,線(xiàn)程是調(diào)度的最小單位;第二,在Linux系統(tǒng)當(dāng)中怎么去劃分的,把

5、這個(gè)圖給他畫(huà)出來(lái),非常清晰。如果說(shuō)你把這個(gè)圖畫(huà)出來(lái),那對(duì)這個(gè)內(nèi)核真正的理解,不是說(shuō)僅僅是看過(guò)幾頁(yè)書(shū)而已。要背下來(lái)的。3、線(xiàn)程的引入很多同學(xué)沒(méi)有學(xué)習(xí)過(guò)操作系統(tǒng),對(duì)線(xiàn)程及相應(yīng)的概念并不是很清楚。線(xiàn)程技術(shù)在上個(gè)世紀(jì)60年代被提出來(lái)的。提問(wèn):為什么有了進(jìn)程,還要引入線(xiàn)程?使用線(xiàn)程究竟有哪些好處?第一,線(xiàn)程非?!肮?jié)儉”。創(chuàng)建一個(gè)子進(jìn)程,代碼段和父進(jìn)程是共享的,數(shù)據(jù)段是共享的么?要拷貝,需要重新建立的,堆棧是共享的么?也不是,也是需要重新建立的。如果我們使用線(xiàn)程呢,所有這些都是共享的,這樣,就少了很多額外的工作,這就是節(jié)儉的一個(gè)表現(xiàn)之一

6、。第二,有多個(gè)線(xiàn)程,同屬于同一個(gè)進(jìn)程的,使用同樣的數(shù)據(jù)段,還需要管道,消息隊(duì)列實(shí)現(xiàn)兩個(gè)進(jìn)程間的通信么?不需要,只需要簡(jiǎn)單定義一個(gè)變量,比如說(shuō)定義一個(gè)全局變量,屬于進(jìn)程的數(shù)據(jù)段,可以讓屬于這個(gè)進(jìn)程的所有線(xiàn)程都可以看到這個(gè)變量,這可以使線(xiàn)程的通信變得簡(jiǎn)單。優(yōu)點(diǎn):多線(xiàn)程程序作為一種多任務(wù)、并發(fā)執(zhí)行與多進(jìn)程具備同樣的優(yōu)點(diǎn)。引入線(xiàn)程的概念后,可以把進(jìn)程和線(xiàn)程的使用分為以下幾種模型:?jiǎn)芜M(jìn)程/單線(xiàn)程模型(如MS-DOS):整個(gè)系統(tǒng)只有一個(gè)進(jìn)程、一個(gè)線(xiàn)程。單進(jìn)程/多線(xiàn)程模型:在單進(jìn)程/多線(xiàn)程模型中,整個(gè)系統(tǒng)有一個(gè)進(jìn)程、多個(gè)線(xiàn)程多進(jìn)程/單線(xiàn)程

7、模型(如傳統(tǒng)的UNIX):在多進(jìn)程/單線(xiàn)程模型中,整個(gè)系統(tǒng)有多個(gè)進(jìn)程,每個(gè)進(jìn)程只有一個(gè)線(xiàn)程多進(jìn)程/多線(xiàn)程模型(如WindowsNT、Solaris、Mach等):在多進(jìn)程/多線(xiàn)程模型中,系統(tǒng)有多個(gè)進(jìn)程,每個(gè)進(jìn)程又可包含多個(gè)線(xiàn)程大多數(shù)實(shí)時(shí)內(nèi)核都把整個(gè)應(yīng)用當(dāng)做一個(gè)沒(méi)有定義的進(jìn)程來(lái)對(duì)待,應(yīng)用則被劃分為多個(gè)任務(wù)的形式來(lái)進(jìn)行處理,即單進(jìn)程/多線(xiàn)程模型,簡(jiǎn)稱(chēng)任務(wù)模型。二、任務(wù)1、任務(wù)的定義:任務(wù)是一個(gè)具有獨(dú)立功能的無(wú)限循環(huán)的程序段的一次運(yùn)行活動(dòng),是實(shí)時(shí)內(nèi)核調(diào)度的單位。2、任務(wù)的特性:動(dòng)態(tài)性:任務(wù)狀態(tài)是不斷變化的。任務(wù)狀態(tài)一般分為就緒態(tài)、

8、運(yùn)行態(tài)和等待態(tài)。在多任務(wù)系統(tǒng)中,任務(wù)的狀態(tài)將隨著系統(tǒng)的需要不斷進(jìn)行變化。并行性:系統(tǒng)中同時(shí)存在多個(gè)任務(wù),這些任務(wù)在宏觀上是同時(shí)運(yùn)行的。異步獨(dú)立性:每個(gè)任務(wù)各自按照相互獨(dú)立的不可預(yù)知的速度運(yùn)行,走走停停3、任務(wù)的內(nèi)容①任務(wù)包含:代碼:一段可執(zhí)行的程序。數(shù)據(jù):程序所需要的相關(guān)數(shù)據(jù)(變量、工作空

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。