linux系統程式設計之程序(一)
阿新 • • 發佈:2019-02-13
本節目標:
- 什麼是程式
- 什麼是程序
- 程序資料結構
- 程序與程式區別與聯絡
一,什麼是程式?
程式是完成特定任務的一系列指令集合
二,什麼是程序?
- 從使用者的角度來看程序是程式的一次動態執行過程
- 從作業系統的核心來看,程序是作業系統分配的記憶體、CPU時間片等資源的基本單位。
- 程序是資源分配的最小單位
- 每一個程序都有自己獨立的地址空間與執行狀態。
- 像UNIX這樣的多工作業系統能夠讓許多程式同時執行,每一個執行著的程式就構成了一個程序
三,程序資料結構
程序的靜態描述:由三部分組成:PCB、有關程式段和該程式段對其進行操作的資料結構集。
程序控制塊(PCB):用於描述程序情況及控制程序執行所需的全部資訊,是作業系統用來感知進存在的一個重要資料結構。
程式碼段:是程序中能被程序排程程式在CPU上執行的程式程式碼段。
資料段:一個程序的資料段,可以是程序對應的程式加工處理的原始資料,也可以是程式執行後產生的中間或最終資料
程序=程式碼段(編譯後形成的一些指令)+資料段(程式執行時需要的資料)+堆疊段(程式執行時動態分配的一些記憶體)+PCB(程序資訊,狀態標識等)
資料段包括:
- 只讀資料段:常量
- 已初始化資料段:全域性變數,靜態變數
- 位初始化資料段(bss)(0初始化段):未初始化的全域性變數和靜態變數(實際上不分配記憶體,因為都為0,只有一些標記資訊)
四,程序與程式區別與聯絡
- 程序是動態的,程式是靜態的
- 程序的生命週期是相對短暫的,而程式是永久的。
- 程序資料結構PCB
- 一個程序只能對應一個程式,一個程式可以對應多個程序