init程序是所有程序的父或者祖父
程序的組成:
使用者 id cpu時間片 記憶體 狀態 時鐘 優先順序 源程式 fd 。。。。。
程序的狀態:man ps
process state codes
r 執行或可執行
d 不可中斷睡眠
s 可中斷睡眠
t 掛起 暫停 等待
x 死亡
z 殭屍(已經結束但依然佔據程序樹上節點)
< 高優先順序
n 低優先順序
l 頁記憶體鎖定
s session leader 建立並管理程序的程序
l 多執行緒程序
+ 前台程序
fg 把後台程序調到前台執行
bg 把前台程序轉到後台執行
建立程序的程序:父程序
被建立的程序:子程序
程序上下文:程序執行到什麼時候了
pid_t 程序id型別
fork();
1.可以建立乙個程序,並讓子程序和父程序同時執行。
2.子程序複製父程序的**,寫時拷貝。逐字節拷貝。複製程序上下文。
3.父程序的fork函式返回子程序id,而子程序的fork函式返回0.
父子程序例子
#include #include int main()
}else
} return 0;
}
linux多程序程式設計
在linux中,執行的乙個程序,會占去linux的三個地方,區,堆疊區和資料區.如果同時執行多個相同的程式,他們就會使用相同的 區,區中存放的就程式的 但是資料區和堆疊區分別存放的是程式的資料,全域性變數和區域性變數,因此即使是相同的程式,也不可同時使用相同的資料和堆疊區.include inclu...
linux 多程序 缺點
fork有一些 其中最明顯的就是重複的檔案描述符。比如,socket,磁碟上的檔案,終端 標準輸入 輸出,錯誤 或某些其他檔案類物件。因為乙個程序的fork是乙個準確的拷貝,它繼承了父程序的所有檔案描述符和socket,所以就可能遇到這樣乙個情況,那就是父程序和子程序對於乙個單一的遠端主機,都有乙個...
Linux多程序學習
1 fork 一次呼叫兩次返回?include include using namespace std int main else 執行結果 i m parent,ppid is 10037,and pid is 10038 i m child,pid is 10038 press to close...