linux學習筆記二(進程)

1、硬件中斷技術的出現,進而軟件片上有了分時系統,時間片輪轉。

2、進程:從用戶角度看,進程是程序的一次動態執行過程。

3、從操作系統角度看:
1)進程是操作系統分配內存,CPU時間片等系統資源的基本單位。
2)每個進程有自己獨立的虛擬地址空間和進程狀態
3 ) 進程是分配資源的最小單位

4、程序:爲了執行特定任務的一系列指令的有序集合

5、進程是程序的一次執行過程,需要保存進程的現場信息,這些信息需要一個數據結構來保存,在c語言中用結構體,我們將這個結構稱之爲PCB(process control block)

PCB是操作系統感知一個進程存在的重要數據結構。

6、程序:代碼段+數據段
進程:代碼段+數據段+堆棧+PCB
PCB {
pc 下一條指令的地址
esp 棧頂指針
ebp 基址
}
PCB將代碼和數據有效的粘合在一起

7、進程和程序的區別:
1)進程是動態的,程序是靜態的
2)進程是短暫的,程序是永久的
3)進程有PCB
4)一個進程只能對應一個程序,一個程序可以對應多個進程

三態:
這裏寫圖片描述

liux七態:
這裏寫圖片描述

awk ‘{printf(“%s\n”,$2) ’
kill -l 列出當前系統下的所有信號

8、ps 查看進程狀態
ps aux
ps -ef

9、liux 對應的PCB數據結構:task_struct
進程標識符
進程狀態
進程優先級
各種時間信息
進程間通信
內存使用情況
寄存器

進程標示符

操作系統會給每個進程分配一個獨一無二的編號i哦
編號的範圍[2-cat /proc/sys/kernel/pid_max]
0 內核進程
0號進程啓動1號進程。 init

創建進程的一般過程:

給新的進程分配一個進程標識符,在內存核中創建PCB複製父進程的環境
複製父進程的環境
給子進程分配資源,棧,堆,代碼,數據等
複製給父進程的地址空間內容到子進程的地址空間
將進程置爲就緒狀態 ,放到就緒隊列

發佈了66 篇原創文章 · 獲贊 19 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章