為什么需要進(jìn)程
通常程序不能并發(fā)執(zhí)行,因?yàn)槌绦虿l(fā)執(zhí)行的結(jié)果,是不可再現(xiàn)的。為了使程序,可以并發(fā)執(zhí)行,且能對其加以描述和控制,引入了進(jìn)程的概念。
進(jìn)程的特征和定義
進(jìn)程是程序的一次執(zhí)行,是系統(tǒng)進(jìn)行資源分配調(diào)度的獨(dú)立單位。
結(jié)構(gòu)特征:為了使程序能夠獨(dú)立運(yùn)行,應(yīng)配置一個進(jìn)程控制塊PCB。進(jìn)程是由程序段,相關(guān)的數(shù)據(jù)段和PCB(進(jìn)程控制塊)三部分構(gòu)成的。
動態(tài)性:進(jìn)程是程序的一次執(zhí)行,由創(chuàng)建而產(chǎn)生,由調(diào)度而執(zhí)行,由撤銷而消亡,進(jìn)程存在一定的生命周期。
并發(fā)性:多個進(jìn)程實(shí)體,同存在于內(nèi)存中,且能在一段時間內(nèi)同時運(yùn)行。
獨(dú)立性:進(jìn)程實(shí)體,是一個能獨(dú)立運(yùn)行,獨(dú)立分配資源,獨(dú)立接收調(diào)度的基本單位。
異步性:進(jìn)程按自己獨(dú)立的不可預(yù)知的速度推進(jìn)。
進(jìn)程的狀態(tài)及轉(zhuǎn)換
創(chuàng)建:保證進(jìn)程的調(diào)度,必須在創(chuàng)建工作完成以后,再進(jìn)行。確保,對進(jìn)程控制塊PCB操作的完整性。
就緒:進(jìn)程已分配到除CPU外的所有必要資源。
執(zhí)行:進(jìn)程已獲得CPU,其指令集正在執(zhí)行。
阻塞/掛起
正在執(zhí)行的進(jìn)程由于發(fā)生某事件導(dǎo)致暫時無法繼續(xù)執(zhí)行。
終止:等待其他進(jìn)程收集完信息后,將刪除該進(jìn)程,清空PCB并返還給系統(tǒng)。
下面是進(jìn)程狀態(tài)圖:
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關(guān)推薦
計(jì)算機(jī)操作系統(tǒng)-進(jìn)程(1)起源、定義、組成、組織、特征
發(fā)表于 06-10 11:41
當(dāng)一個進(jìn)程在執(zhí)行時, CPU的所有寄存器中的值、進(jìn)程的狀態(tài)以及堆棧中的內(nèi)容,比如各個變量和數(shù)據(jù),包括所有的寄存器變量、進(jìn)程打開的文件、內(nèi)存信息等。這些信息被稱為該進(jìn)程的上下文(Cont
發(fā)表于 08-05 07:11
進(jìn)程定義: 可并發(fā)執(zhí)行的程序,在一個數(shù)據(jù)集合上的運(yùn)行過程; 申請/擁有資源的最小單位;
發(fā)表于 08-07 07:56
當(dāng)一個進(jìn)程在執(zhí)行時, CPU的所有寄存器中的值、進(jìn)程的狀態(tài)以及堆棧中的內(nèi)容,比如各個變量和數(shù)據(jù),包括所有的寄存器變量、進(jìn)程打開的文件、內(nèi)存信息等。這些信息被稱為該進(jìn)程的上下文(Cont
發(fā)表于 08-07 08:20
信息的定義有哪些?信息有哪些基本特征?信息系統(tǒng)是由哪些部分組成的?信息系統(tǒng)的計(jì)算模式有哪幾種?
發(fā)表于 09-29 06:42
文章目錄操作系統(tǒng)進(jìn)程和線程什么是進(jìn)程?什么是線程?進(jìn)程和線程有什么區(qū)別?何時使用多進(jìn)程,何時使用多線程?
發(fā)表于 12-24 07:16
Linux進(jìn)程管理
本章主要介紹進(jìn)程的概念、狀態(tài)、構(gòu)成以及Linux進(jìn)程的相關(guān)知識。
掌握進(jìn)程的概念
掌握進(jìn)程的描述、狀態(tài)及轉(zhuǎn)換
理
發(fā)表于 04-28 14:57
?0次下載
線程和進(jìn)程的區(qū)別在于,子進(jìn)程和父進(jìn)程有不同的代碼和數(shù)據(jù)空間,而多個線程則共享數(shù)據(jù)空間,每個線程有自己的執(zhí)行堆棧和程序計(jì)數(shù)器為其執(zhí)行上下文。多
發(fā)表于 07-20 07:48
?1974次閱讀
進(jìn)程凍結(jié)技術(shù)(freezing of tasks)是指在系統(tǒng)hibernate或者suspend的時候,將用戶進(jìn)程和部分內(nèi)核線程置于“可控”的暫停狀態(tài)。
2 為什么需要凍結(jié)技術(shù)
發(fā)表于 05-06 16:00
?779次閱讀
線程是CPU調(diào)度的最小單位(程序執(zhí)行流的最小單元),它被包含在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單元。一條線程是進(jìn)程中一個單一順序的控制流,一個進(jìn)程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的
發(fā)表于 11-20 10:23
?2666次閱讀
Daemon 進(jìn)程生命周期長且在后臺運(yùn)行。編寫daemon進(jìn)程需要遵循哪些規(guī)則呢? 1、執(zhí)行fork()函數(shù),父進(jìn)程退出,子進(jìn)程繼續(xù) 執(zhí)行這
發(fā)表于 12-07 16:24
?1438次閱讀
教程 2:添加特征 - 自定義配置文件創(chuàng)建
發(fā)表于 03-15 19:39
?0次下載
教程 2:添加特征 - 自定義配置文件創(chuàng)建
發(fā)表于 07-06 18:50
?0次下載
進(jìn)程有哪些狀態(tài)?這個問題在面試的時候出現(xiàn)的概率也比較高。
發(fā)表于 07-25 17:06
?1336次閱讀
進(jìn)程中的指令已經(jīng)執(zhí)行完成,但是進(jìn)程PCB結(jié)構(gòu)還沒有回收。
即子進(jìn)程先于父進(jìn)程退出后,子進(jìn)程的PCB
發(fā)表于 11-29 15:52
?7289次閱讀
評論