我想弄清楚什麼是組件或模塊(可能屬於OS?),它們實際上是在應用程序或進程運行時執行這些操作並專門運行命令delete[] X
。真正發生的事情和誰負責刪除[] X命令的調用?
我讀到delete[] X
後,發現我的問題,我知道編譯器負責(根據它的實現)知道要刪除多少個對象X
。但是,編譯器在運行時並不「活躍」!我的意思是,在編譯時,編譯器不知道用戶在新命令中需要多少內存,所以在刪除時也不會這樣做,所以程序實際運行時在運行時發生了什麼?
我讀到的答案之一是所謂的運行時系統,它是什麼?是否連接到CPU - 因爲CPU最終執行命令...或者操作系統?
我看到的另一個答案是「由系統的分配器完成」(How does delete[] know how much memory to delete?) - 這個組件(OS,CPU)又在哪裏?
我認爲你的回答引導我想要了解的內容。如果我做得對,有幾層代碼,包括使用mmap func的內核代碼(Linux,Windows等),所有這些「代碼」實際上編譯成彙編「代碼」,因此CPU可以運行它。至於刪除 - 編譯代碼已經在彙編之後。現在,當進程(代碼)被加載到內存時,CPU實際運行它。 **現在,在已經加載並運行的進程的這個階段中 - 誰負責處理內存? – StackUser
你看起來很困惑,你應該花幾天的時間閱讀幾本有關計算機體系結構,指令集,操作系統設計,編譯器的書籍。我們無法在幾段中解釋所有這些。 –
好的,你能給我一些出發點,好書名稱,鏈接或特定詞的種類來尋找一個開始? – StackUser