2016-06-15 75 views
-1

長期調度程序選擇一個進程時,進程進入準備好隊列(從新狀態準備就緒狀態)並且就緒隊列中的所有進程都存在於主內存中。但是當一個進程處於一個新的狀態時,它駐留在哪裏?在主內存或輔助內存中?新進程駐留在哪裏?在主內存或輔助內存中?

但是,由於就緒隊列進程存儲在主內存中,因此新進程可能駐留在輔助內存中!但無法得到正確的理由!

+1

什麼是「主內存」和「輔助內存」? – user2864740

+0

主存儲器是一個主存儲器,它是易失性的,如RAM,而輔助存儲器是非易失性的,如硬盤。 – linonymous

回答

2

當進程通過系統調用或類似的東西在其創建之後立即處於「新」狀態時,它最初駐留在主存儲器上。根據可用內存的數量,操作系統可能會決定將其交換到輔助存儲器或保存在主內存中。請參考下面的處理狀態轉移圖(從UNIX操作系統的設計考慮) -

過程進入狀態模型中的「創建」 -

enter image description here

要直接從The Design of Unix Operating System引用它當父進程執行fork系統調用並最終進入準備運行的狀態(3或5)時執行狀態。進程調度程序最終將選擇要執行的進程,並且進程進入「內核運行」狀態,在此完成fork系統調用的一部分。

+1

明白了!這是否意味着更多主存儲器的大小,更高的性能? – linonymous

+1

是和否。例如,它在32位機器上將無法提供16 GB的內存。 – rurtle

+0

是的!你是對的! – linonymous

相關問題