1
我的理解是,當父母分叉時,孩子變成父母的確切副本。換句話說,他們有相同的過程控制塊(PCB)。這完全正確嗎?我知道pid
顯然會有所不同,但它是什麼?在fork之後,子進程的進程控制塊是什麼樣的?
我的理解是,當父母分叉時,孩子變成父母的確切副本。換句話說,他們有相同的過程控制塊(PCB)。這完全正確嗎?我知道pid
顯然會有所不同,但它是什麼?在fork之後,子進程的進程控制塊是什麼樣的?
每個進程都有自己的進程控制塊。當父母分叉時,孩子的過程控制塊通常會作爲父母的副本開始,但是它會發生變化(例如,其中一個是PID),並且當孩子自己做事時,孩子的過程控制塊將變得更少的父母的副本。
這裏有一些slides that describes an abstract operating system process control and the process control block。
實際細節取決於特定的操作系統。
因此,創建後,孩子有確切的內存,寄存器,打開文件等副本? – n0pe
@MaxMackie,或許你應該多解釋一下爲什麼你問這個問題。如果這是想理解概念的問題,那麼它是否準確無關。我的期望是打開文件的內存和文件控制塊將是相同的,但是寄存器不會,並且會有其他部分在過程控制塊重複後幾乎立即開始變化,因爲子進程將開始執行其他操作。 –