程序的概念:程序是乙個獨立的可排程的任務。是乙個程式一次執行的過程。
程式是靜態的,是儲存在磁碟上的指令的有序集合,沒有執行的概念。程序是動態的
,他是程式執行的過程,包括建立、排程、消亡,是程式執行的各種資源的總和,是資源管理的最小單位。
程序包括:正文段+使用者資料段+系統資料段(程序控制塊pcb)。
程序的分類:
1.互動程序:由shell控制執行的,可以在前台,也可以在後台執行的。
-ps -ef | grep a.out
./a.out & 後台執行
2.批處理程序:
不屬於某個終端,它被提交到乙個佇列中以便順序執行
3.守護程序:
在後台執行,在linux啟動時開始執行,在系統關閉時候才結束
程序的狀態:
執行態: 正在執行或者準備執行的狀態(就差cpu分配時間片)
等待態:又稱睡眠態,(不佔cpu,cpu不處理,等待著資源),分為可中斷與不可中斷狀態,等待不可中斷是殺不死的狀態。
停止態:gdb可以設定斷點,kill -20 ,ctrl +z,可以使程序停止。
死亡態:又稱殭屍態,乙個已經終止的程序,但還是在程序向量陣列中占有乙個task_struct結構。
fork()函式建立子程序
父程序先結束則1號程序收養子程序
子程序先結束,父程序未結束,則子程序變成了殭屍程序,必須利用wait()接收殭屍程序。
Linux 程序與執行緒
程序就是在作業系統中執行的程式,是作業系統資源管理的最小單位。乙個程序可以管理多個執行緒,執行緒相對輕量,可以共享程序位址空間 乙個進行在執行的過程中,不可能一直佔據著cpu進行邏輯運算,中間很可能在進行磁碟i o或者網路i o,為了充分利用cpu運算資源,有人設計了執行緒的概念。執行緒最大的特點就...
Linux程序與執行緒
每個程序都有乙個位址空間和乙個控制線程。如果乙個程序中有多個控制線程,那麼就是多執行緒的情況。程序是資源分配的最小單位,執行緒是cpu排程的最小單位。程序與執行緒的區別 或者說在已經有程序的情況下,為什麼還需要執行緒 1.多執行緒可以表達為在相同位址空間下的程式並行執行,多程序可以表達為在不同位址空...
linux程序 學習總結
學習檔案之後,緊接著學習程序的相關知識,這一章主要也是一些api的操作學習。首先程序是什麼啊,應該是某一執行某乙個程式吧,就先這樣理解吧 1.獲取程序描述符getpid man手冊 include include pid t getpid void pid t getppid void 操作 pid...