進程(process)
進程理論基礎
1. 定義 : 程序在計算機中的一次運行。
【程序】是一個可執行的文件,是靜態的佔有磁盤。
【進程】是一個動態的過程描述,佔有計算機運行資源,有一定的生命週期。
2. 系統中如何產生一個進程
【1】 用戶空間通過調用程序接口或者命令發起請求
【2】 操作系統接收用戶請求,開始創建進程
【3】 操作系統調配計算機資源,確定進程狀態等
【4】 操作系統將創建的進程提供給用戶使用
3. 進程基本概念
【cpu時間片】:如果一個進程佔有cpu內核則稱這個進程在cpu時間片上。
【PCB(進程控制塊)】:在內存中開闢的一塊空間,用於存放進程的基本信息,也用於系統查找識別進程。
【進程ID(PID)】: 系統爲每個進程分配的一個大於0的整數,作爲進程ID。每個進程ID不重複。
Linux查看進程ID : ps -aux
【父子進程】 : 系統中每一個進程(除了系統初始化進程)都有唯一的父進程,可以有0個或多個子進程。父子進程關係便於進程管理。
查看進程樹: pstree
4.進程狀態
三態
就緒態 : 進程具備執行條件,等待分配cpu資源
運行態 : 進程佔有cpu時間片正在運行
等待態 : 進程暫時停止運行,讓出cpu
五態 (在三態基礎上增加新建和終止)
新建 : 創建一個進程,獲取資源的過程
終止 : 進程結束,釋放資源的過程
狀態查看命令 : ps -aux --> STAT列
S -- 等待態 R -- 執行態 Z -- 殭屍 + -- 前臺進程 l -- 有多線程的
5.進程的運行特徵
【1】 多進程可以更充分使用計算機多核資源
【2】 進程之間的運行互不影響,各自獨立
【3】 每個進程擁有獨立的空間,各自使用自己空間資源