時間:2023-02-21 02:20:02 | 來源:營銷百科
時間:2023-02-21 02:20:02 來源:營銷百科
地址空間一種存儲器抽象:地址空間:物理地址暴露帶來的問題 把物理地址暴露給進程會帶來下面幾個嚴重問題。第一,如果用戶程序可以尋址內(nèi)存的每個字節(jié),它們就可以很容易地(故意地或偶然地)破壞操作系統(tǒng),從而使系統(tǒng)慢慢地停止運行(除非有特殊的硬件進行保護,如IBM 360的鎖鍵模式)。即使在只有一個用戶進程運行的情況下,這個問題也是存在的。第二,使用這種模型,想要同時(如果只有一個CPU就輪流執(zhí)行)運行多個程序是很困難的。在n個人計算機上,同時打開幾個程序是很常見的(一個文字處理器,一個郵件程序,一個網(wǎng)絡瀏覽器,其中一個當前正在工作,其余的在按下鼠標的時候才會被激活)。在系統(tǒng)中沒有對n物理內(nèi)存的抽象的情況下,很難做到上述情景,因此,我們需要其他辦法。 地址空間的概念 要保證多個應用程序同時處于內(nèi)存中并且不互相影響,則需要解決兩個問題:保護和重定位。我們來看一個原始的對前者的解決辦法,它曾被用在IBM 360上:給內(nèi)存塊標記上一個保護鍵,并且比較執(zhí)行進程的鍵和其訪問的每個內(nèi)存字的保護鍵。然而,這種方法本身并沒有解決后一個問題,雖然這個問題可以通過在程序被裝載時重定位程序來解決,但這是一個緩慢且復雜的解決方法。 一個更好的辦法是創(chuàng)造一個新的內(nèi)存抽象:地址空間。就像進程的概念創(chuàng)造了一類抽象的CPU以運行程序一樣,地址空間為程序創(chuàng)造了一種抽象的內(nèi)存。地址空間是一個進程可用于尋址內(nèi)存的一套地址集合。每個進程都有一個自己的地址空間,并且這個地址空間獨立于其他進程的地址空間(除了在一些特殊情況下進程需要共享它們的地址空間外)。 地址空間的概念非常通用,并且在很多場合中出現(xiàn)。比如電話號碼,在美國和很多其他國家,一個本地電話號碼通常是一個7位的數(shù)字。因此,電話號碼的地址空間是從0 000 000到9 999 999,雖然一些號碼并沒有被使用,比如以000開頭的號碼。隨著手機、n調(diào)制解調(diào)器和n傳真機數(shù)量的增長,這個空間變得越來越不夠用了,從而導致需要使用更多位數(shù)的號碼。Pentium的I/O端口的地址空間從0到16 383。nIPv4的地址是32位的數(shù)字,因此它們的地址空間從0到232-1(也有一些保留數(shù)字)。 地址空間可以不是數(shù)字的。一套'n.com'的n互聯(lián)網(wǎng)域名也是地址空間。這個地址空間是由所有包含2~63個字符并且后面跟著'.com'的字符串組成的,組成這些字符串的字符可以是字母、數(shù)字和n連字符。到現(xiàn)在你應該已經(jīng)明白地址空間的概念了。它是很簡單的。關(guān)鍵詞:地址,空間,抽象
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。