一、程序的基礎:
1、程式:程式是一些儲存在磁碟上的指令的有序集合;
2、程序:程序是程式的一次執行過程;
3、程序與程式的關係:①、程式是靜態的,程序是動態的;
②、乙個程式可以對應多個程序;
③、程式只有資料段和**段,程序除了有資料段和**段之外,還有堆和棧;
關於程序:
**段:存放程式**;
bss段:存放未初始化的全部變數和靜態變數;
資料段:存放初始化全域性和靜態變數;
4、程序的特徵:
①、動態的:程式的一次執行過程,在虛擬記憶體中執行,每時每刻都在變化;
②、併發的:「同時」執行;
③、獨立的:每乙個執行的程序都有獨立的4gb大小的虛擬記憶體空間,每個程序都獨佔系統資源;
程序是系統資源分配的最小單位;
執行緒是cpu排程的最小單位;
5、程序的生命週期(狀態)
6、程序的分類
①、互動程序
②、批處理程序
③、守護程序
7、程序的系統呼叫(api)
①、建立程序:
#include
pid_t fork(void);
功能:建立程序;
特點:呼叫一次,返回兩次;
返回值:呼叫失敗:返回-1給呼叫的程序;呼叫成功:給父程序返回子程序的id,給子程序返回:0;
當呼叫fork後:
1)系統會對映虛擬記憶體空間給子程序;
2)拷貝父程序的堆、棧,資料段給子程序;
3)給父程序返回子程序id,給子程序返回0;
4)子程序共享父程序的**段;
5)fork返回後,父、子程序從fork函式呼叫的下一條語句同時往下執行;
②、 exec函式族
③、結束程序:exit和_exit
④、使當前程序阻塞,給子程序收屍:wait、waitpid。
linux下的程序
在我們linux的學習中,有乙個很重要的概念就是程序,程序就是 程式的乙個執行例項,是擔當分配資源的實體,是資源競爭的最小單位。簡單來說就是正在執行的程式。我們在學習linux的時候,會發現有乙個規律就是管理者先將被管理者進行描述在組織起來。對於程序來說,linux用一種來存放關於乙個程序的描述資訊...
Linux下的程序
由系統自動建立 執行在核心態,是唯一乙個沒有通過 fork 或者 kernel thread 產生的程序 由 idle 通過 kernel thread 建立,在核心空間完成初始化後,進入使用者空間 進入使用者空間後啟動其他系統程序,最後變為守護程序監視系統其他程序。它是系統中所有使用者程序的父程序...
linux下的deamon程序
設計乙個linux下的deamon程序,關鍵只有幾個 1.fork兩次。2.fork第一次和第二次之間成為程序組頭。3.改變工作目錄。4.忽略訊號。5.設定讀寫掩碼。一下是乙個從網路蒐集到的例程,非常好的演示了上述要點,存此備忘。上述程式在gcc4.0.1下編譯通過,在fc4 2.6.11下穩定執行...