2011-04-18 32 views
0

當父進程創建一個fork()的子進程時,根據我的 子進程處於Running狀態,而父進程處於Ready狀態,即等待子進程結束。關於Fork的問題()

我對不對?

回答

0

下面是

東西叉()之後,它是不確定 該方法 - 母公司或下一個子公司有權訪問CPU。

應用隱含或明確 依賴於特定的執行 序列,從而實現 正確的結果是開放的 衰竭競爭條件。

它繼續指向不同內核中的不同行爲。底線是它是實現定義的,不被依賴。

此外,如果你做自2.6.32依靠它,在Linux上「有一個爲一個sysctl

kernel.sched_child_runs_first 

乾杯

3

不,叉創建父項的副本。

然後你測試一般爲叉的返回值說0 =我的孩子,其他:我是家長和孩子有返回值作爲PID

如果家長必須等待孩子結束了,你需要使用等待功能。

編輯

看到http://linux.die.net/man/2/forkhttp://linux.die.net/man/2/wait爲叉()中C.

+0

謝謝您的回答。在sheduler級別,這兩個進程不能有Running狀態,所以一個是Running,另一個是Ready? – lilawood 2011-04-18 12:34:59

+0

取決於過程在做什麼。但事實上,如果您的處理器一次只運行一個進程,另一個進程不能運行(這意味着它可能是就緒狀態) – 2011-04-18 12:36:37

+0

從邏輯上和理論上講,子進程是運行並且父進程就緒(等待爲了結束孩子成爲跑步)?謝謝 ! – lilawood 2011-04-18 12:40:03