linux中進(jìn)程與程序的區(qū)別是什么
Linux中進(jìn)程與程序的區(qū)別:1、程序是靜態(tài)的,它只是一組指令的集合,不具有任何的運(yùn)行意義;而進(jìn)程是動態(tài)的,它是程序運(yùn)行的動態(tài)過程。2、進(jìn)程的生命周期是相對短暫的,而程序是永久的。3、一個(gè)進(jìn)程只能對應(yīng)一個(gè)程序,一個(gè)程序可以對應(yīng)多個(gè)進(jìn)程。4、進(jìn)程具有并發(fā)性和交往性,而程序不具有,它是封閉的。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
一,什么是程序?
程序是完成特定任務(wù)的一系列指令集合
二,什么是進(jìn)程?
從用戶的角度來看進(jìn)程是程序的一次動態(tài)執(zhí)行過程
從操作系統(tǒng)的核心來看,進(jìn)程是操作系統(tǒng)分配的內(nèi)存、CPU時(shí)間片等資源的基本單位。
進(jìn)程是資源分配的最小單位
每一個(gè)進(jìn)程都有自己獨(dú)立的地址空間與執(zhí)行狀態(tài)。
像UNIX這樣的多任務(wù)操作系統(tǒng)能夠讓許多程序同時(shí)運(yùn)行,每一個(gè)運(yùn)行著的程序就構(gòu)成了一個(gè)進(jìn)程
三,進(jìn)程數(shù)據(jù)結(jié)構(gòu)
進(jìn)程的靜態(tài)描述:由三部分組成:PCB、有關(guān)程序段和該程序段對其進(jìn)行操作的數(shù)據(jù)結(jié)構(gòu)集。
進(jìn)程控制塊(PCB):用于描述進(jìn)程情況及控制進(jìn)程運(yùn)行所需的全部信息,是操作系統(tǒng)用來感知進(jìn)存在的一個(gè)重要數(shù)據(jù)結(jié)構(gòu)。
代碼段:是進(jìn)程中能被進(jìn)程調(diào)度程序在CPU上執(zhí)行的程序代碼段。
數(shù)據(jù)段:一個(gè)進(jìn)程的數(shù)據(jù)段,可以是進(jìn)程對應(yīng)的程序加工處理的原始數(shù)據(jù),也可以是程序執(zhí)行后產(chǎn)生的中間或最終數(shù)據(jù)
進(jìn)程=代碼段(編譯后形成的一些指令)+數(shù)據(jù)段(程序運(yùn)行時(shí)需要的數(shù)據(jù))+堆棧段(程序運(yùn)行時(shí)動態(tài)分配的一些內(nèi)存)+PCB(進(jìn)程信息,狀態(tài)標(biāo)識等)
數(shù)據(jù)段包括:
只讀數(shù)據(jù)段:常量
已初始化數(shù)據(jù)段:全局變量,靜態(tài)變量
位初始化數(shù)據(jù)段(bss)(0初始化段):未初始化的全局變量和靜態(tài)變量(實(shí)際上不分配內(nèi)存,因?yàn)槎紴?,只有一些標(biāo)記信息)
四,進(jìn)程與程序區(qū)別
1、進(jìn)程是動態(tài)的,程序是靜態(tài)的
程序是靜態(tài)的,它只是一組指令的集合,不具有任何的運(yùn)行意義。而進(jìn)程是程序運(yùn)行的動態(tài)過程
2、進(jìn)程的生命周期是相對短暫的,而程序是永久的。
3、一個(gè)進(jìn)程只能對應(yīng)一個(gè)程序,一個(gè)程序可以對應(yīng)多個(gè)進(jìn)程。
進(jìn)程和程序并不是一 一對應(yīng)的關(guān)系,相同的程序運(yùn)行在不同的數(shù)據(jù)集上就是不同的進(jìn)程
4、進(jìn)程還具有并發(fā)性和交往性,而程序卻是封閉的
相關(guān)推薦:《Linux視頻教程》
以上就是linux中進(jìn)程與程序的區(qū)別是什么的詳細(xì)內(nèi)容,更多請關(guān)注其它相關(guān)文章!
版權(quán)聲明:
本站所有文章和圖片均來自用戶分享和網(wǎng)絡(luò)收集,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系網(wǎng)站客服處理。