當長期調度程序選擇一個進程時,進程進入準備好隊列(從新狀態準備就緒狀態)並且就緒隊列中的所有進程都存在於主內存中。但是當一個進程處於一個新的狀態時,它駐留在哪裏?在主內存或輔助內存中?新進程駐留在哪裏?在主內存或輔助內存中?
但是,由於就緒隊列進程存儲在主內存中,因此新進程可能駐留在輔助內存中!但無法得到正確的理由!
當長期調度程序選擇一個進程時,進程進入準備好隊列(從新狀態準備就緒狀態)並且就緒隊列中的所有進程都存在於主內存中。但是當一個進程處於一個新的狀態時,它駐留在哪裏?在主內存或輔助內存中?新進程駐留在哪裏?在主內存或輔助內存中?
但是,由於就緒隊列進程存儲在主內存中,因此新進程可能駐留在輔助內存中!但無法得到正確的理由!
當進程通過系統調用或類似的東西在其創建之後立即處於「新」狀態時,它最初駐留在主存儲器上。根據可用內存的數量,操作系統可能會決定將其交換到輔助存儲器或保存在主內存中。請參考下面的處理狀態轉移圖(從UNIX操作系統的設計考慮) -
過程進入狀態模型中的「創建」 -
要直接從The Design of Unix Operating System引用它當父進程執行fork系統調用並最終進入準備運行的狀態(3或5)時執行狀態。進程調度程序最終將選擇要執行的進程,並且進程進入「內核運行」狀態,在此完成fork系統調用的一部分。
明白了!這是否意味着更多主存儲器的大小,更高的性能? – linonymous
是和否。例如,它在32位機器上將無法提供16 GB的內存。 – rurtle
是的!你是對的! – linonymous
什麼是「主內存」和「輔助內存」? – user2864740
主存儲器是一個主存儲器,它是易失性的,如RAM,而輔助存儲器是非易失性的,如硬盤。 – linonymous