linux進(jìn)程與線程匯總課件_第1頁
linux進(jìn)程與線程匯總課件_第2頁
linux進(jìn)程與線程匯總課件_第3頁
linux進(jìn)程與線程匯總課件_第4頁
linux進(jìn)程與線程匯總課件_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、教學(xué)內(nèi)容進(jìn)程的概念進(jìn)程的特性進(jìn)程的狀態(tài)及其轉(zhuǎn)換進(jìn)程的控制Linux中的進(jìn)程控制線程第1頁,共47頁。教學(xué)要求掌握程序、進(jìn)程、線程的區(qū)別掌握進(jìn)程的基本狀態(tài)及狀態(tài)轉(zhuǎn)換了解進(jìn)程控制塊(PCB)的內(nèi)容重點(diǎn)掌握linux系統(tǒng)中進(jìn)程相關(guān)的命令、系統(tǒng)調(diào)用、庫函數(shù)第2頁,共47頁。單道與多道程序設(shè)計(jì)多道程序設(shè)計(jì)的提出單道程序設(shè)計(jì)執(zhí)行特點(diǎn):靜態(tài)的、孤立的具體特性:順序性、封閉性、可再現(xiàn)性、資源獨(dú)占性并發(fā)執(zhí)行及“與時(shí)間有關(guān)的錯(cuò)誤”并發(fā)執(zhí)行,是指多個(gè)程序段之間在執(zhí)行時(shí)間上重疊。多程序段同時(shí)在系統(tǒng)中運(yùn)行宏觀上并行,微觀上串行資源共享問題:資源沖突,甚至死鎖“與時(shí)間有關(guān)的錯(cuò)誤”為了充分有效地利用計(jì)算機(jī)的有限資源,提出了

2、多道程序設(shè)計(jì)第3頁,共47頁。單道與多道程序設(shè)計(jì)多道程序設(shè)計(jì)單道程序設(shè)計(jì)第4頁,共47頁。進(jìn)程的定義進(jìn)程的定義:進(jìn)程是可并發(fā)執(zhí)行的程序在一個(gè)數(shù)據(jù)集合的運(yùn)行過程。它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,是系統(tǒng)進(jìn)行資源分配的獨(dú)立單位。啟動(dòng)瀏覽器IE后,得到的進(jìn)程第5頁,共47頁。進(jìn)程與程序及其分類進(jìn)程與程序的關(guān)聯(lián)進(jìn)程是程序的一次執(zhí)行過程,即一個(gè)執(zhí)行實(shí)例程序與進(jìn)程存在:1:1、1:n的關(guān)系進(jìn)程與程序存在:1:1、1:n的關(guān)系進(jìn)程與程序的區(qū)別程序:靜態(tài)、指令集合、無生命周期、可保存、不是進(jìn)程調(diào)度和分配資源的單位進(jìn)程:動(dòng)態(tài)、執(zhí)行過程、有生命周期、不可保存、是進(jìn)程調(diào)度和分配資源的單位進(jìn)程是由程序、數(shù)據(jù)和進(jìn)程控制塊

3、三部分組成;進(jìn)程具有創(chuàng)建其他進(jìn)程的功能,而程序沒有。進(jìn)程和程序的分類系統(tǒng)進(jìn)程(系統(tǒng)程序的執(zhí)行過程)用戶進(jìn)程(用戶程序的執(zhí)行過程)第6頁,共47頁。生活中的程序與進(jìn)程舉例進(jìn)程程序按照菜譜做菜的過程菜譜簡單理解:所有正運(yùn)行的程序都叫做進(jìn)程,程序只有在被系統(tǒng)載入了內(nèi)存并運(yùn)行后才能夠叫做進(jìn)程。第7頁,共47頁。進(jìn)程的產(chǎn)生與終止進(jìn)程的產(chǎn)生交互式環(huán)境中,合法用戶終端登陸。批處理環(huán)境中,為響應(yīng)一個(gè)任務(wù)的要求而產(chǎn)生進(jìn)程。當(dāng)運(yùn)行中獲取用戶程序提出的某種請求后,OS可以代用戶程序產(chǎn)生進(jìn)程以實(shí)現(xiàn)某種功能?;趹?yīng)用進(jìn)程的需要,由已存在的進(jìn)程產(chǎn)生另一個(gè)進(jìn)程,以便使新程序以并發(fā)運(yùn)行方式完成特定任務(wù)。當(dāng)一個(gè)進(jìn)程生成另一個(gè)進(jìn)

4、程時(shí),生成進(jìn)程稱為父進(jìn)程,而被生成進(jìn)程稱為子進(jìn)程。進(jìn)程的終止正常結(jié)束、超時(shí)限制、內(nèi)存不足、I/O失敗、非法指令等第8頁,共47頁。進(jìn)程的特性進(jìn)程的特性:動(dòng)態(tài)性:進(jìn)程的實(shí)質(zhì)是程序的一次執(zhí)行過程,進(jìn)程是動(dòng)態(tài)產(chǎn)生,動(dòng)態(tài)消亡的;并發(fā)性:任何進(jìn)程都可以同其他進(jìn)程一起并發(fā)執(zhí)行;獨(dú)立性:進(jìn)程是一個(gè)能獨(dú)立運(yùn)行的基本單位,同時(shí)也是系統(tǒng)分配資源和調(diào)度的獨(dú)立單位;異步性:由于進(jìn)程間的相互制約,使進(jìn)程具有執(zhí)行的間斷性,即進(jìn)程按各自獨(dú)立的、不可預(yù)知的速度向前推進(jìn)。 第9頁,共47頁。進(jìn)程的基本狀態(tài)運(yùn)行態(tài)(Running)進(jìn)程占有CPU,并在CPU上運(yùn)行。在單CPU系統(tǒng)中,最多只有一個(gè)進(jìn)程處于運(yùn)行態(tài)。就緒態(tài)(Ready)

5、一個(gè)進(jìn)程已經(jīng)具備運(yùn)行條件,但由于無CPU暫時(shí)不能運(yùn)行的狀態(tài)(當(dāng)調(diào)度給其CPU時(shí),立即可以運(yùn)行)。處于就緒狀態(tài)的進(jìn)程可以有多個(gè)。隊(duì)列的排列次序一般按優(yōu)先級大小來排列。阻塞態(tài)(Blocked)指進(jìn)程因等待某種事件的發(fā)生而暫時(shí)不能運(yùn)行的狀態(tài),即使CPU空閑,該進(jìn)程也不可運(yùn)行。處于阻塞狀態(tài)的進(jìn)程可以有多個(gè)。第10頁,共47頁。進(jìn)程的狀態(tài)及其轉(zhuǎn)換運(yùn)行進(jìn)程占有CPU就緒具備運(yùn)行條件,但暫無CPU阻塞等待某事件或資源。進(jìn)程狀態(tài)之間的轉(zhuǎn)換進(jìn)程被調(diào)度獲得CPU時(shí)間片用完或被搶占因等待某種事件或者資源而無法運(yùn)行,即使CPU空閑,該進(jìn)程也不可運(yùn)行已獲得事件或等待的資源第11頁,共47頁。運(yùn)行就緒被搶占被調(diào)度等待高優(yōu)

6、睡眠低優(yōu)睡眠高優(yōu)睡眠低優(yōu)睡眠內(nèi)存就緒喚醒等待事件或資源外存就緒喚醒換出換出換出換入等待exitsleepwaitUnix進(jìn)程狀態(tài)及其變遷第12頁,共47頁。進(jìn)程的組成操作系統(tǒng)控制結(jié)構(gòu)內(nèi)存表用來跟蹤主存和輔存。I/0表用來管理I/0設(shè)備和通道。文件表提供當(dāng)前存在文件中的信息。進(jìn)程表用來管理進(jìn)程。進(jìn)程的組成程序段:進(jìn)程所對應(yīng)的可執(zhí)行程序;數(shù)據(jù)段:程序運(yùn)行過程中要用到的數(shù)據(jù)或工作區(qū);進(jìn)程控制塊(PCB):為管理進(jìn)程設(shè)置的一個(gè)專門的數(shù)據(jù)結(jié)構(gòu),用于記錄進(jìn)程的外部特征,描述進(jìn)程的運(yùn)動(dòng)變化過程。進(jìn)程映像:程序和數(shù)據(jù)是進(jìn)程的靜態(tài)部分,可見PCB是進(jìn)程的動(dòng)態(tài)部分,不可見第13頁,共47頁。進(jìn)程控制塊PCB進(jìn)程控

7、制塊(PCB)PCBProcess Control Block記錄了OS控制和管理進(jìn)程的所需的所有信息,是進(jìn)程屬性的動(dòng)態(tài)描述(PCB在Linux中對應(yīng)task_struct,也稱為PD;PCB在Unix中對應(yīng)于proc和user結(jié)構(gòu)) 進(jìn)程控制塊與進(jìn)程關(guān)系:每個(gè)進(jìn)程有唯一的PCB。操作系統(tǒng)(OS)根據(jù)PCB管理進(jìn)程。利用PCB實(shí)現(xiàn)進(jìn)程的動(dòng)態(tài)、并發(fā)。PCB是進(jìn)程存在的唯一標(biāo)志。 第14頁,共47頁。進(jìn)程控制塊PCBPCB的內(nèi)容標(biāo)識信息:進(jìn)程標(biāo)識、用戶名說明信息:進(jìn)程狀態(tài)、等待原因、進(jìn)程程序和數(shù)據(jù)的存儲(chǔ)信息現(xiàn)場信息:記錄重要寄存器、時(shí)鐘等內(nèi)容,用于恢復(fù)斷點(diǎn)管理調(diào)度信息:進(jìn)程優(yōu)先級、進(jìn)程隊(duì)列指針、消

8、息隊(duì)列指針、進(jìn)程使用的資源清單、進(jìn)程家族關(guān)系、進(jìn)程當(dāng)前打開的文件第15頁,共47頁。Linux系統(tǒng)中的PCBLinux系統(tǒng)中的PCB在Linux中,任務(wù)和進(jìn)程是同一概念Linux中的PCB即任務(wù)數(shù)據(jù)結(jié)構(gòu):task_strcut,也稱為進(jìn)程描述符PD (Processor Descriptor)定義在include/linux/sched.h中第16頁,共47頁。Linux系統(tǒng)中的PCBLinux PCB(task_struct)包含進(jìn)程所有信息task_struct數(shù)據(jù)結(jié)構(gòu)很龐大,但并不復(fù)雜,按功能將所有域劃分:1、進(jìn)程狀態(tài)(State) 2、進(jìn)程調(diào)度信息(Scheduling Informa

9、tion)3、各種標(biāo)識符(Identifiers)4、進(jìn)程通信有關(guān)信息(IPC:Inter_Process Communication)5、時(shí)間和定時(shí)器信息(Times and Timers)6、進(jìn)程鏈接信息(Links)7、文件系統(tǒng)信息(File System)8、虛擬內(nèi)存信息(Virtual Memory)9、頁面管理信息(page)10、對稱多處理器(SMP)信息11、和處理器相關(guān)的環(huán)境(上下文)信息(Processor Specific Context)12、其它信息 第17頁,共47頁。Linux PCB中的進(jìn)程狀態(tài)(state)可運(yùn)行狀態(tài)進(jìn)程正在運(yùn)行(運(yùn)行態(tài))、或者正準(zhǔn)備運(yùn)行(就緒

10、態(tài))正在運(yùn)行的進(jìn)程就是當(dāng)前進(jìn)程準(zhǔn)備運(yùn)行的進(jìn)程只要得到CPU就可以立即投入運(yùn)行,CPU是這些進(jìn)程唯一等待的系統(tǒng)資源可中斷等待態(tài)、不可中斷等待態(tài)進(jìn)程正等待某個(gè)事件(event)或某個(gè)資源一定處于系統(tǒng)中的某個(gè)等待隊(duì)列(wait_queue)中兩種等待態(tài)的差異:可中斷等待態(tài):可被信號喚醒,被喚醒后進(jìn)入可運(yùn)行態(tài),等待被調(diào)度;不可中斷等待態(tài):因等待硬件資源,如某個(gè)通道、端口等,在任何情況下都不能被打斷,直到資源滿足。資源滿足后只能用特定的方式來喚醒它,例如喚醒函數(shù)wake_up()等 第18頁,共47頁。暫停狀態(tài)進(jìn)程暫時(shí)停止運(yùn)行以接受某種特殊處理通常當(dāng)進(jìn)程接收到SIGSTOP、SIGTSTP、SIGTTI

11、N或 SIGTTOU信號后就處于這種狀態(tài)(關(guān)于信號,將在以后講述)例如,正接受調(diào)試的進(jìn)程就處于這種狀態(tài) 僵死狀態(tài)進(jìn)程執(zhí)行了exit()函數(shù)后進(jìn)入該狀態(tài),即進(jìn)程被終止此狀態(tài)將由父進(jìn)程執(zhí)行wait()系統(tǒng)調(diào)用而“喚醒”,真正終止該進(jìn)程,并回收其資源處于該狀態(tài)的進(jìn)程是死進(jìn)程,屬于系統(tǒng)中的垃圾,必須進(jìn)行相應(yīng)處理以釋放其占用的資源 死亡狀態(tài):僵死進(jìn)程被父進(jìn)程回收后的狀態(tài)Linux PCB中的進(jìn)程狀態(tài)(state)第19頁,共47頁。Linux的進(jìn)程狀態(tài)轉(zhuǎn)換模型第20頁,共47頁。Linux中與進(jìn)程相關(guān)的命令PSps Processes Snapshot句法:ps OPTIONS功能:對系統(tǒng)中的進(jìn)程進(jìn)行監(jiān)

12、控OPTION參數(shù)如下:l:長格式輸出u:按用戶名和啟動(dòng)時(shí)間順序來顯示進(jìn)程j:用任務(wù)格式來顯示進(jìn)程f:用全格式來顯示進(jìn)程a:顯示所有用戶的所有進(jìn)程x:顯示無控制終端的進(jìn)程第21頁,共47頁。-A:列出所有的行程-w:顯示加寬可以顯示較多的資訊-au:顯示較詳細(xì)的資訊-aux:顯示所有包含其他使用者的行程-e:顯示所有進(jìn)程,環(huán)境變量-f:全格式-h:不顯示標(biāo)題-l:長格式注意區(qū)分“ps aux”和“ps -aux”命令PSLinux中與進(jìn)程相關(guān)的命令第22頁,共47頁。kill關(guān)閉進(jìn)程:kill 進(jìn)程號kill -9 進(jìn)程號(強(qiáng)行關(guān)閉)kill -1 進(jìn)程號(重啟進(jìn)程)結(jié)束所有進(jìn)程:killal

13、l查找服務(wù)進(jìn)程號:pgrep 服務(wù)名稱關(guān)閉進(jìn)程:pkill 進(jìn)程名稱Linux中與進(jìn)程相關(guān)的命令第23頁,共47頁。TOP句法:top OPTIONS功能:實(shí)時(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況TOP命令是一個(gè)動(dòng)態(tài)顯示過程,可以通過用戶按鍵來不斷刷新當(dāng)前狀態(tài)。TOP命令是Linux下常用的性能分析工具Linux中與進(jìn)程相關(guān)的命令第24頁,共47頁。操作系統(tǒng)內(nèi)核CPU的兩種執(zhí)行狀態(tài):系統(tǒng)態(tài)和用戶態(tài)系統(tǒng)態(tài)/核心態(tài)(特態(tài)或管態(tài)):該狀態(tài)下,CPU能執(zhí)行指令集中任何指令;用戶態(tài)(常態(tài)或目態(tài)):該狀態(tài)下,CPU只能執(zhí)行一般的指令,不能執(zhí)行特權(quán)指令。操作系統(tǒng)內(nèi)核功能中斷處理時(shí)鐘管理原語操作進(jìn)程管理存儲(chǔ)器管理

14、設(shè)備管理第25頁,共47頁。進(jìn)程的創(chuàng)建進(jìn)程創(chuàng)建的時(shí)機(jī)用戶登錄作業(yè)調(diào)度提供服務(wù)應(yīng)用請求進(jìn)程創(chuàng)建的過程取得一個(gè)空白PCB,生成一個(gè)唯一的進(jìn)程標(biāo)識號(一般是數(shù)字形式)為新進(jìn)程分配必要的資源初始化PCB將新進(jìn)程的PCB插入就緒隊(duì)列第26頁,共47頁。進(jìn)程的創(chuàng)建Linux中的進(jìn)程創(chuàng)建init_task:Linux在啟動(dòng)時(shí)運(yùn)行在核心態(tài),這時(shí)只有初始化程序在執(zhí)行是系統(tǒng)的第一個(gè)進(jìn)程,因此稱為初始進(jìn)程。init_task在系統(tǒng)初始化結(jié)束后,初始進(jìn)程啟動(dòng)一個(gè)核心進(jìn)程,稱為init。然后執(zhí)行空閑循環(huán),什么也不做。當(dāng)系統(tǒng)沒有其他工作時(shí),調(diào)度程序會(huì)運(yùn)行這個(gè)空閑進(jìn)程。init:init進(jìn)程的進(jìn)程標(biāo)識號為1,是系統(tǒng)中第一個(gè)

15、真正的進(jìn)程有自己的PCB。是系統(tǒng)中其他進(jìn)程的祖先。除init外,Linux所有進(jìn)程都由其他進(jìn)程創(chuàng)建;用戶態(tài)中,可調(diào)用fork或clone來創(chuàng)建子進(jìn)程。第27頁,共47頁。進(jìn)程的創(chuàng)建Linux的進(jìn)程創(chuàng)建fork()函數(shù)fork()函數(shù)返回值= -1:創(chuàng)建失敗= 0:創(chuàng)建成功,并從子進(jìn)程返回 0:創(chuàng)建成功,并從父進(jìn)程返回,返回的是子進(jìn)程PIDfork()函數(shù)為系統(tǒng)調(diào)用fork()函數(shù)完成的事務(wù)檢查現(xiàn)有進(jìn)程數(shù)目分配PCB(task_strcut)及PID繼承父進(jìn)程的資源創(chuàng)建進(jìn)程映像(如靜態(tài)的程序,動(dòng)態(tài)的PCB)并設(shè)置就緒返回:調(diào)用進(jìn)程返回子進(jìn)程的PID,被調(diào)度執(zhí)行返回0第28頁,共47頁。進(jìn)程的創(chuàng)建

16、fork()函數(shù)返回后的處理可依據(jù)父進(jìn)程和子進(jìn)程返回的值,做相應(yīng)處理一般程序架構(gòu)如下:main() int pid; /子進(jìn)程的標(biāo)識符PID while ( (pid=fork() = -1) ;/直到子進(jìn)程創(chuàng)建成功 if (pid = 0) /子進(jìn)程返回,也稱調(diào)度返回 / 插入子進(jìn)程返回時(shí)處理的程序段 else / 父進(jìn)程返回,也稱調(diào)用返回 / 插入父進(jìn)程返回時(shí)處理的程序段 小課驗(yàn)證第29頁,共47頁。進(jìn)程的終止進(jìn)程終止的時(shí)機(jī)進(jìn)程的正常結(jié)束進(jìn)程執(zhí)行期間調(diào)用exit系統(tǒng)調(diào)用在main函數(shù)中執(zhí)行return語句main函數(shù)執(zhí)行完進(jìn)程的異常結(jié)束進(jìn)程運(yùn)行時(shí)出現(xiàn)錯(cuò)誤或故障被迫結(jié)束。如數(shù)組越界、除數(shù)為0

17、、電源故障等進(jìn)程終止的過程取得當(dāng)前進(jìn)程的PCB歸還進(jìn)程所占的資源進(jìn)入進(jìn)程調(diào)度程序第30頁,共47頁。進(jìn)程的終止Linux中的進(jìn)程終止調(diào)用exit()、執(zhí)行return語句、main函數(shù)執(zhí)行完,最終都要調(diào)用內(nèi)核函數(shù)do_exit()do_exit()需要做的工作如下:根據(jù)PCB中的內(nèi)容進(jìn)行資源的歸還和涉及信息的善后處理將進(jìn)程的狀態(tài)改為TASK_ZOMBIE設(shè)置exit_code通知父進(jìn)程和子進(jìn)程“我即將結(jié)束”調(diào)用內(nèi)核函數(shù)schedule()重新調(diào)度第31頁,共47頁。進(jìn)程的阻塞和喚醒阻塞和喚醒的時(shí)機(jī)進(jìn)程請求系統(tǒng)為它服務(wù),系統(tǒng)不能馬上為它服務(wù),就進(jìn)入阻塞狀態(tài);啟動(dòng)了無法馬上完成的操作(I/O),進(jìn)

18、入阻塞狀態(tài);進(jìn)程間相互合作時(shí),需要等待其他進(jìn)程的運(yùn)算結(jié)果;系統(tǒng)啟動(dòng)時(shí)創(chuàng)建的服務(wù),如果沒有其他進(jìn)程的請求,處于阻塞。第32頁,共47頁。進(jìn)程的阻塞和喚醒進(jìn)程阻塞的過程使當(dāng)前進(jìn)程停止執(zhí)行將狀態(tài)改為阻塞態(tài)插入適當(dāng)?shù)牡却枞?duì)列調(diào)用schedule()重新進(jìn)行進(jìn)程調(diào)度進(jìn)程喚醒的過程取出阻塞隊(duì)列的第一個(gè)進(jìn)程將狀態(tài)改為就緒態(tài)插入到就緒隊(duì)列第33頁,共47頁。進(jìn)程的阻塞和喚醒Linux中的進(jìn)程阻塞和喚醒使當(dāng)前進(jìn)程停止執(zhí)行若進(jìn)程等待一個(gè)特定的事件發(fā)生,則調(diào)用函數(shù)來阻塞當(dāng)前進(jìn)程:sleep_on():進(jìn)程狀態(tài)被設(shè)置為TASK_INTERRUPTIBLEinterruptible_sleep_on():進(jìn)程狀態(tài)被

19、設(shè)置為TASK_UNINTERRUPTIBLE當(dāng)進(jìn)程等待的事件發(fā)生時(shí),調(diào)用內(nèi)核函數(shù)來喚醒進(jìn)程:wake_up():wake_up_process():對某個(gè)睡眠進(jìn)程的喚醒。將狀態(tài)設(shè)置為TASK_RUNNING第34頁,共47頁。注意:sleep_on()和wake_up()都是內(nèi)核中提供的函數(shù),應(yīng)用程序中不能直接調(diào)用。Linux中的進(jìn)程阻塞系統(tǒng)調(diào)用wait():等待子進(jìn)程終止而進(jìn)入睡眠子進(jìn)程執(zhí)行exit()而終止自身,并給父進(jìn)程發(fā)信號父進(jìn)程執(zhí)行wait()等待子進(jìn)程終止信號庫函數(shù)sleep(n):進(jìn)程延時(shí)n秒進(jìn)程的阻塞和喚醒第35頁,共47頁。未引入線程的操作系統(tǒng)中,進(jìn)程的兩個(gè)基本屬性:進(jìn)程是

20、一個(gè)擁有資源的獨(dú)立單位 給每個(gè)進(jìn)程分配一虛擬地址空間,保存進(jìn)程映像,控制一些資源(文件,I/O設(shè)備),有狀態(tài)、優(yōu)先級、調(diào)度進(jìn)程是一個(gè)被處理機(jī)獨(dú)立調(diào)度和分配的基本單位 以上兩個(gè)屬性構(gòu)成進(jìn)程并發(fā)執(zhí)行的基礎(chǔ)線程的引入第36頁,共47頁。系統(tǒng)必須完成的操作:創(chuàng)建進(jìn)程、撤消進(jìn)程、進(jìn)程切換缺點(diǎn):每啟動(dòng)一個(gè)新的進(jìn)程都必須分配獨(dú)立的地址空間進(jìn)程的每次調(diào)度都需要保護(hù)和恢復(fù)CPU現(xiàn)場信息,開銷過大進(jìn)程間通信速度較慢,有些時(shí)刻顯得不太友好為此,希望將進(jìn)程的某些屬性展開。使得:作為獨(dú)立調(diào)度的基本單位,不同時(shí)作為占有資源的基本單位對占有資源的基本單位又不頻繁切換線程的引入第37頁,共47頁。線程線程的定義:有時(shí)稱輕量級進(jìn)程,是進(jìn)程中的一個(gè)執(zhí)行線路或線索,是一個(gè)相對獨(dú)立的、可獨(dú)立調(diào)度和指派的執(zhí)行單元。資源的擁有者還是進(jìn)程,線程將原來進(jìn)程的兩個(gè)屬性分開處理。第38頁,共47頁。線程的性質(zhì):是進(jìn)程內(nèi)的一個(gè)相對獨(dú)立的可執(zhí)行單元;是操作系統(tǒng)中的基本調(diào)度單元,在線程中包含調(diào)度所需的信息。一個(gè)進(jìn)程至少有一個(gè)線程,可有多個(gè)線程,因進(jìn)程已不是被調(diào)度的單元。線程并不擁有資源,而是共享和使用包含它的進(jìn)程所擁有的所有資源。線程在需要時(shí)也可創(chuàng)建其他線程。線程有自己的生命期,也有狀態(tài)變化。線程第39頁,共47頁。單進(jìn)程、單線程單進(jìn)程、多線程多進(jìn)程、一個(gè)進(jìn)程一個(gè)線程多進(jìn)程、一個(gè)進(jìn)程多個(gè)線程線程和進(jìn)程的關(guān)系第40頁

溫馨提示

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

評論

0/150

提交評論