linux中進程與程序的區別是什么

linux中進程與程序的區別:1、程序是靜態的,它只是一組指令的集合,不具有任何的運行意義;而進程是動態的,它是程序運行的動態過程。2、進程的生命周期是相對短暫的,而程序是永久的。3、一個進程只能對應一個程序,一個程序可以對應多個進程。4、進程具有并發性和交往性,而程序不具有,它是封閉的。

linux中進程與程序的區別是什么

本教程操作環境:linux7.3系統、Dell G3電腦。

一,什么是程序?

程序是完成特定任務的一系列指令集合

二,什么是進程?

從用戶的角度來看進程是程序的一次動態執行過程

從操作系統的核心來看,進程是操作系統分配的內存、CPU時間片等資源的基本單位。

進程是資源分配的最小單位

每一個進程都有自己獨立的地址空間與執行狀態。

unix這樣的多任務操作系統能夠讓許多程序同時運行,每一個運行著的程序就構成了一個進程

三,進程數據結構

進程的靜態描述:由三部分組成:PCB、有關程序段和該程序段對其進行操作的數據結構集。

進程控制塊(PCB):用于描述進程情況及控制進程運行所需的全部信息,是操作系統用來感知進存在的一個重要數據結構。

代碼段:是進程中能被進程調度程序在CPU上執行的程序代碼段。

數據段:一個進程的數據段,可以是進程對應的程序加工處理的原始數據,也可以是程序執行后產生的中間或最終數據

進程=代碼段(編譯后形成的一些指令)+數據段(程序運行時需要的數據)+段(程序運行時動態分配的一些內存)+PCB(進程信息,狀態標識等)

數據段包括:

  • 只讀數據段:常量

  • 已初始化數據段:全局變量,靜態變量

  • 位初始化數據段(bss)(0初始化段):未初始化的全局變量和靜態變量(實際上不分配內存,因為都為0,只有一些標記信息)

四,進程與程序區別

1、進程是動態的,程序是靜態的

程序是靜態的,它只是一組指令的集合,不具有任何的運行意義。而進程是程序運行的動態過程

2、進程的生命周期是相對短暫的,而程序是永久的。

3、一個進程只能對應一個程序,一個程序可以對應多個進程。

進程和程序并不是一 一對應的關系,相同的程序運行在不同的數據集上就是不同的進程

4、進程還具有并發性和交往性,而程序卻是封閉的

相關推薦:《Linux視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享