linux系統程式設計之程式(一):程式與程式

mickole發表於2013-07-12

本節目標:

  • 什麼是程式
  • 什麼是程式
  • 程式資料結構
  • 程式與程式區別與聯絡

一,什麼是程式?

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

二,什麼是程式?

  • 從使用者的角度來看程式是程式的一次動態執行過程
  • 從作業系統的核心來看,程式是作業系統分配的記憶體、CPU時間片等資源的基本單位。
  • 程式是資源分配的最小單位
  • 每一個程式都有自己獨立的地址空間與執行狀態。
  • 像UNIX這樣的多工作業系統能夠讓許多程式同時執行,每一個執行著的程式就構成了一個程式

三,程式資料結構

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

程式控制塊(PCB):用於描述程式情況及控制程式執行所需的全部資訊,是作業系統用來感知進存在的一個重要資料結構。

程式碼段:是程式中能被程式排程程式在CPU上執行的程式程式碼段。

資料段:一個程式的資料段,可以是程式對應的程式加工處理的原始資料,也可以是程式執行後產生的中間或最終資料

程式=程式碼段(編譯後形成的一些指令)+資料段(程式執行時需要的資料)+堆疊段(程式執行時動態分配的一些記憶體)+PCB(程式資訊,狀態標識等)

資料段包括:

  • 只讀資料段:常量
  • 已初始化資料段:全域性變數,靜態變數
  • 位初始化資料段(bss)(0初始化段):未初始化的全域性變數和靜態變數(實際上不分配記憶體,因為都為0,只有一些標記資訊)

四,程式與程式區別與聯絡

  • 程式是動態的,程式是靜態的
  • 程式的生命週期是相對短暫的,而程式是永久的。
  • 程式資料結構PCB
  • 一個程式只能對應一個程式,一個程式可以對應多個程式。

相關文章