多任務編程
1.意義: 充分利用計算機多核資源,提高程序的運行效率。
2.實現方案 :多進程 , 多線程
3.并行與并發
- 并發 : 同時處理多個任務,內核在任務間不斷的切換達到好像多個任務被同時執行的效果,實際每個時刻只有一個任務占有內核。
- 并行 : 多個任務利用計算機多核資源在同時執行,此時多個任務間為并行關系。
進程(process)
進程理論基礎
1.定義 : 程序在計算機中的一次運行。
- 程序是一個可執行的文件,是靜態的占有磁盤。
- 進程是一個動態的過程描述,占有計算機運行資源,有一定的生命周期。
2.系統中如何產生一個進程
- 用戶空間通過調用程序接口或者命令發起請求
- 操作系統接收用戶請求,開始創建進程
- 操作系統調配計算機資源,確定進程狀態等
- 操作系統將創建的進程提供給用戶使用
3.進程基本概念
- cpu時間片:如果一個進程占有cpu內核則稱這個進程在cpu時間片上。
- PCB(進程控制塊):在內存中開辟的一塊空間,用于存放進程的基本信息,也用于系統查找識別進程。
- 進程ID(PID): 系統為每個進程分配的一個大于0的整數,作為進程ID。每個進程ID不重復。
Linux查看進程ID : ps -aux
- 父子進程 : 系統中每一個進程(除了系統初始化進程)都有唯一的父進程,可以有0個或多個子進程。父子進程關系便于進程管理。
查看進程樹: pstree
- 進程狀態
三態
就緒態 : 進程具備執行條件,等待分配cpu資源
運行態 : 進程占有cpu時間片正在運行
等待態 : 進程暫時停止運行,讓出cpu
五態 (在三態基礎上增加新建和終止)
新建 : 創建一個進程,獲取資源的過程
終止 : 進程結束,釋放資源的過程
- 狀態查看命令 : ps -aux --> STAT列
S 等待態 R 執行態 D 等待態 T 等待態 Z 僵尸
< 有較高優先級 N 優先級較低 + 前臺進程 s 會話組組長 l 有多線程的
- 進程的運行特征
- 進程可以使用計算機多核資源
- 進程是計算機分配資源的最小單位
- 進程之間的運行互不影響,各自獨立
- ?每個進程擁有獨立的空間,各自使用自己空間資源