• 4

作業系統&記憶體關聯 的基礎問題,卡很久想不通⋯⋯

不好意思,小弟不材,看了不少資料還是看不懂 bit byte 與作業系統的整合問題

以 32bit (俗稱32位元作業系統) 為例,( bit = 位元,錯誤請導正,謝謝 )

所謂 32 bit ,應該是 2^32(^表示次方)個位元,也就是 4,294,967,296 bit

而大家都說 8 bit = 1 byte ,及 8 位元 = 1 位元組(byte = 位元組,錯誤請導正,謝謝 )

這邊 8 bit = 2^8 = 256 bit,也就是 1 byte 的組合可能

那32位元作業系統,最大支援 4GB 這我就不懂了!!


如果如上述換算, 4,294,967,296 bit / 8 = 536,870,912 byte ( / 等於除以 )

那 1024 byte = 1KB,所以

536,870,912 byte / 1024 = 524,288 KB

以此類推, 1024 KB = 1 MB

524,288 KB / 1024 = 512 MB



因此我搞不懂為什麼會是 4GB 呢?


大部份的文章應該是直接把 32bit 算出來的 4,294,967,296 視為 byte,

沒註明也沒解釋,我自己猜測


直接 4,294,967,296 byte / 1024 = 4,194,304 KB

以此類推, 4,194,304 KB / 1024 = 4,096 MB

最終, 4,096 MB / 1024 = 4 GB



這一切讓我困惑很久,看了很多資料還是不懂,

一開始就告訴自己 8 bit = 1 byte ,只是基礎原理,

但實際運作上電腦無法讀取小於 1 byte 的東西,

所以大家所謂的 32bit 只是個說法,實際上計算出來就是以 byte 使用,

但是在計算 記憶體 時脈 的時候,(小惡魔電腦教室 認識記憶體中的例子)64位元作業系統,

若使用 800 MHz的記憶體,那每秒則是傳輸 64 bit / 8 * 800 = 6400 MB = 6.4GB,

那表示這作業系統中的 bit ,確實是為位元,若要計算,還是要 除以 8 ,來換算成 byte才對,

在這希望有前輩可以為我解惑一下,真的卡死很久,謝謝!!
2014-10-11 15:33 發佈
SkyHoop wrote:
不好意思,小弟不材,...(恕刪)

來看看正確的觀念~

Google "教你解開32位元作業系統4GB記憶體容量限制淺談記憶體的前世、今生、與來世"

偏不點
這篇文章我也看過,引述裡面幾段

引述出處:教你解開32位元系統

第一頁的內容

而這些鍵盤中常用的各種符號字元接近兩百五十六種,因此,很自然地我們便以八位元(2的八次方等於二百五十六)當成一個組合,稱之為位元組(Byte),

如我文中上段

當成目前電腦中,資料傳輸的基本單位;而在記憶體內部,最小定址單位即為一個位元組,換句話說,你無法單獨存取1 bit的數據或者任意小於一個位元組的資訊。

如我文章最後一段

我們方才提到,位元組(Byte)可以說是電腦當中最基本的傳輸單位,再往後則每乘以1024來增加一個單位量級,也就是說︰1KB(Kilo Byte)等於1024 個 Byte;1MB(Mage Byte)等於1024個KB;1GB(Giga Byte)等於1024 個 MB;1TB(Tera Byte)等於1024 個 GB;1PB(Peta Byte)等於1024 個 TB;1EB(Eksa Byte)等於1024 個 PB。

這也是基本換算內容


第二頁內容

一時之間,各大網站論壇開始有許多似是而非的流言散布開來,還煞有其事地引經據典道︰「232= 4,294,967,296 Bytes = 4,194,304 Kilo Bytes(KB) = 4,096 Mega Bytes(MB)= 4 Giga Bytes(GB),因此32位元作業系統的極限只能到4 GB!」但事實上,代誌不是憨人想得那麼簡單,若上述邏輯為真,早在二十多年前的16位元DOS系統,應該只能支援到216 = 65,536 Bytes = 64 KB,但稍有接處的朋友都知道,DOS下能夠管理1MB(220 = 1,048,576 Bytes = 1024 KB = 1MB)的資源空間才是正解!由此矛盾可證得「32位元作業系統無法支援到4GB」完全是以訛傳訛的錯誤觀念,那到底真相為何?就讓我們一起往下看,走出撲朔迷離的桃花源外。

這邊就是疑惑點,依舊是以 byte 論點推算


關鍵段落

20條定址線,每條可以傳送0或1的訊號,因此最大相容220 = 1MB的記憶體容量

他這段文章中的容量,依舊是直接轉換 byte

所以我還是不太了解啊,是不是我真的太笨⋯⋯還是有前輩可以簡單點告訴我呢!?謝謝!!

SkyHoop wrote:
所謂 32 bit ,應該是 2^32(^表示次方)個位元,也就是 4,294,967,296 bit
...(恕刪)

簡單回:上面這句是造成你卡很久的問題所在。

32個bit,可以代表的是2^32個被編號定址的「標的物」(從編號0x00000000h到編號0xFFFFFFFFh),這個標的物不必然是你認為的bit,在微處理器跟作業系統實務上,這個標的物是"byte",也就是byte-addressing。

SkyHoop wrote:
那32位元作業系統,最大支援 4GB
...(恕刪)

作業系統&記憶體關連
因為是byte addressing,所以去每個記憶體位置存取資料都是一次就包含1個byte的資料量。因此位置組合種類數量的值就會剛好等於能存取的byte數量。

Whistle Blow wrote:
簡單說:上面這句是造...(恕刪)

wei6233 wrote:
因為是byte ad...(恕刪)


兩位大大一語點破啊,我目前找的資料都比較沒看到這麼明白直接的,

我想用我的理解方式解釋一下,兩位大大幫我看一下,有沒有錯誤的地方,謝謝!!




你們的意思,作業系統的位元,表示是能在同一時間內存取資料的 “個數”

也就是可以一次存取 4,294,967,296 筆資料,也就是 32bit = 2^32 筆資料,

而這資料的大小,如上面那篇文章所說,電腦最小的存取資料大小為 byte,

所以推算出,若要發揮最大的存取 “個數” 也就是 4,294,967,296 筆資料,

那勢必這每筆資料必為最小存取大小,也就是 1 byte ,

若是大於 1 byte,那就無法存取 4,294,967,296 那麼多筆資料,

因為他最終滿足的要件不是存取的資料 “ 個數”,而是所有資料加總的大小,

也就是不能超過 4GB

請問這樣的解釋是對的嗎? 謝謝!!
SkyHoop wrote:
.....
你們的意思,作業系統的位元,表示是能在同一時間內存取資料的 “個數”
....
...(恕刪)

不對,不建議你自行演繹解讀,至於byte-addressing這件事,在資訊相關科系的作業系統教科書的最前面一定會提到,如果要打好基礎,建議把書的前幾章基礎先讀過。

一個作業系統是幾位元的(ex. 32位元Windows/Linux, 64位元Windows/Linux....等等),要從程式設計師寫程式時能夠揮灑的空間、以及一些基本的程式撰寫限制的內功角度去看(暫存器寬度、定址模式、user space大小...etc),不是從練外功角度的處理器位址線有幾條、作業系統又啟動了其中幾條、或資料匯流排寬度的角度去看。

Whistle Blow wrote:
不對,不建議你自行演...(恕刪)


了解,我完全是門外漢,只是自己邊摸索而已,有比較推薦的書籍嗎!?

希望是淺顯一點的,白話一點,我學經歷跟電腦沒什麼接觸,所以教科書比較困難

對電腦完全是沒有什麼概念!! 謝謝!!
SkyHoop wrote:
了解,我完全是門外漢,只是自己邊摸索而已,有比較推薦的書籍嗎!?
希望是淺顯一點的,白話一點,我學經歷跟電腦沒什麼接觸,所以教科書比較困難
..(恕刪)

這沒有捷徑的,但不用把教科書想得太困難,至少先把實體記憶體的定址跟虛擬定址空間觀念弄清楚。

我假設您已經看過計算機概論了,但是各種計算機概論的教科書品質跟章節編排良莠不齊,特別是中文版,不少作者也根本搞不清楚32位元作業系統跟處理器的基礎與實務.......

基本上若看到「32位元作業系統,因為2^32=4G,因此就是只能管理4GB記憶體」、「手機的記憶體也快要到達4GB了,因此需要64位元手機作業系統」....等等說法,這些不食人間煙火的書跟文章就可以直接丟掉。
電腦也不可能一次存取 4,294,967,296 筆資料, 可能一次取用4個bytes, 或8個bytes, 這要看硬體. 像以前386-SX雖然是32bits CPU, 但外部資料匯流排16bits, 所以一次最多只能讀取2個bytes資料, 要讀取4個bytes的資料, 要分兩次進行才可以. 4,294,967,296 代表只是 32 bits 數字能表示的最大整數 (其實應該是 4,294,967,295), 拿小算盤出來, 用2進位輸入32個1, 再轉成十進位, 就是這個數字. 你要取用第 5,000,000,000 個位址, 你要怎麼用 32 bits 數字表示?

其實 32 位元作業系統只能取用到 4GB 的資料觀念是錯的, 以前 DOS 是 16 bits, 但可以用到 1MB(2^20) 的記憶體. 能取用多少記憶體, 要看硬體能提供給你的定址方式如何, 以及作業系統支不支援才能決定. 當然, 若取資料取用一次就搞定, 效率一定會比較高.

  • 4
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?