地址空間重定位和鏈接器完成的重定位任務之間有什麼區別據我所知,鏈接器完成的重定位任務包括將符號引用連接到符號定義的過程。地址空間當可執行文件被帶入內存並且所有的地址引用都參考它被放置在內存中的地址的起始地址被解析時,重定位是關心的,而且我也想知道誰這個地址空間搬遷嗎?重定位任務
Q
重定位任務
0
A
回答
1
處理器中有MMU(內存管理單元)。它爲每個進程/程序提供了有限的內存空間。這就是現在程序中緩衝區溢出不能造成太大損害的原因。這樣每個程序都在自己的記憶中。 OS處理這個。
編輯:
程序generaly從紅色唯一位置(ROM /硬盤/閃存)上運行,他們需要堆棧臨時值。對於c/C++中的情況來說,幾乎可以實現,但是特殊的值被定義爲char/int/long/float和數組。 這意味着鏈接器僅使用堆棧或程序本身中的數據(這只是一般性的只讀)
當程序需要額外內存的大小無法在編譯時定義它需要堆。堆被分配爲白色malloc或新的(c/C++)
但是,因爲從RAM讀取通常比從其他類型的內存存儲設備快,操作系統從RAM上的磁盤複製程序,並從那裏開始執行程序。
1
是的,你說得對。操作系統中的進程加載器執行加載時重定位。它實際上充當運行時鏈接器。
相關問題
- 1. 重CRON任務
- 2. 與自定義任務C#任務重寫功能
- 3. htaccess重定向不完整的任務
- 4. 跟蹤重定向的蝗蟲任務
- 5. 重定向之前運行的任務
- 6. IIS服務器重定向位置
- 7. 重新定位WCF服務端點?
- 8. QProgressBar和重任務
- 9. vb.net更新體位任務
- 10. 定位重複
- 11. 任務/預約超時後將Twilio任務重定向到新的TwiML
- 12. 將重複任務放在Grails應用程序中的位置?
- 13. IMAGE_REL_AMD64_ADDR64 64位重定位
- 14. rake任務指定
- 15. NodeJS定期任務
- 16. 鎖定Java任務
- 17. rails定期任務
- 18. 定製ANT任務
- 19. Android重複性任務
- 20. 任務測序和重entracy
- 21. ADF任務流重置
- 22. scheduleWithFixedDelay併發重疊任務
- 23. 重寫殼Ansible任務
- 24. Android異步任務重用
- 25. 重命名gulp任務
- 26. AngularJS - 計算重任務
- 27. spring @Scheduled 4任務重疊
- 28. 重新安排node.js任務
- 29. Android的重複任務
- 30. sencha touch重複任務
@ralu請你詳細說明地址空間的重定位和由鏈接器完成的重定位之間的差異。??謝謝你的回答 – wantobegeek 2009-07-28 08:40:36