進程是什麼
圖解
grep a.txt
PID 105
代碼 代碼grep程序代碼
數據 s = a
函數庫 C語言函數庫
文件 文件a.txt
PCB進程控制塊
Processing Control Block
是操作系統核心中的數據結構,表示進程狀態
操作系統根據PCB對併發執行的進程進行控制和管理
通常在系統中佔用連續存區
存放着操作系統用於描述進程情況及控制進程運行所需的全部信息
id
用於區別進程
進程的狀態
就緒 等待CPU分配時間片
掛起 等待除CPU外的其他資源(主動放棄CPU)
運行 佔用CPU
停止
程序切換時需要保存的現場
A使用了CPU然後交給B
B正在使用CPU A掛起
A正在使用CPU B掛起
CPU中A/B兩個程序在不斷切換
程序使用的資源 寄存器 怎麼恢復到掛起時的狀態
PCB就用來記錄程序停止運行時的寄存器狀態 恢復後繼續執行
描述虛擬地址空間的信息
虛擬/物理地址對應關係
控制終端的信息
xshell打開兩個終端連接同一個Linux服務器 兩個終端執行同一個程序,終端的信息就存在PCB中
當前工作目錄
pwd爲啥不同
umask掩碼
保護文件創建修改的權限
文件描述符
用戶id/組id
會話和進程組
進程和可使用的資源上限
ulimit -a
進程及組成
具有獨立功能的程序在一個數據集上的一次動態執行的過程
程序
數據集合
進程控制塊
進程的特性
動態性:程序的一次執行過程,臨時的,動態產生/動態消亡
併發性:任何進程都可以同其他進程併發運行
獨立性:進程時系統進行資源分配和調度的一個獨立單位
結構性:程序+數據+進程控制塊