2012-06-20 52 views

回答

10

因爲這有人問,但我只是增加了對存檔的目的,答案它已經長。

讓我們來看看下面的定義:

Logical address:由CPU

Physical address生成地址:compile time binding地址由內存管理單元(MMU)現在

所見,我們假設一定範圍的內存位置將始終可用(對於程序來說這已足夠)並生成絕對代碼。所以無論CPU產生什麼地址(如指針地址等)都與MMU所看到的相同。

一個更好的版本,內存利用率的是,這樣的內存不使用被程序使用的坐盤延遲,直到加載時間約束力。爲此,可重定位格式生成的代碼。這是load time binding

現在execution time binding是有點不同的是,推遲到執行時間,其中結合。在這種情況下,CPU產生一個地址,讓我們說300,並做地址300,但只要有一個實際的內存訪問這個地址通過將重定位寄存器的值轉換,我們可以說R,這個地址的所有操作。所以邏輯地址範圍是0-LIM,而物理地址空間是R-(R+LIM)

也讓我用一個例子解釋它,使它變得更加清晰:

考慮您需要交換回相同的位置(如在說明中的所有地址都換,如果你換一個程序load time binding根據這個地址bidden),而在execution time binding你可以將任何進程退回到任何地方,因爲你只需要改變可重定位寄存器中的值,它就可以正常工作。因此增加內存利用率。

+0

能否請你告訴我什麼是搬遷和有約束力的有什麼不同? – Zephyr