前提:當乙個程序正常或者異常終止時,核心就向其父程序傳送sigchld訊號。
1)父程序在子程序之前終止,子程序由init程序領養(程序id為1);
2)子程序在父程序之前終止,但其父程序尚未對其進行善後處理(獲取終止子程序的有關資訊、釋放它占用的資源),處於「僵死」狀態。
3)父程序可以通過呼叫wait()和waitpid()來獲取子程序的終止狀態。
4)只要有乙個子程序終止,init程序就會呼叫乙個wait()函式獲取其終止狀態。
5)wait()使其呼叫者阻塞;waitpid()不會;
關於fork函式:
子程序獲得父程序資料空間、堆和棧的複製品,也就是說子程序完整的複製了乙份。
關於copy-on-write技術:
將需要複製的區域的儲存許可權設為「唯讀」,只有當需要修改這些區域時,才做乙個拷貝。
溫故而知新
堆排 建立堆,維護堆的屬性 一次拿掉乙個,然後維護屬性,二分的結構 使得維護屬性只要logn的時間 冒泡也是一次拿走乙個 但是線性的結構 每次沒有節省時間 快排 一次確定 乙個值的位置,然後二分,縮小問題的範圍。floyd找最短 一次更新 將狀態改為經過固定點的 最短距離 迴圈 遍歷每個點,則結果為...
溫故而知新(一)
一 c 基礎語法 1.注釋符 b.解釋所寫的 2.vs中常用的快捷鍵 3.變數 用來在計算機中儲存資料 b.要給儲存空間起乙個有意義的名字,方便我們以後的使用 b.變數型別 變數名 值 4.命名規則 5.號的使用 6.佔位符的使用 先挖坑,再填坑 異常 exception 在程式執行的過程中,由於某...
C 陣列 溫故而知新
using system using system.collections.generic using system.linq using system.text namespace 陣列 陣列初始化器只能在宣告陣列變數時使用,不能在宣告陣列之後使用 int iii new int 用花括號初始化陣...