ขีด จำกัด RAM 4 GB ในระบบ 32 บิตมีผลต่อพื้นที่สลับหรือไม่


11

เป็นที่ทราบกันดีว่าระบบ 32 บิตสามารถรองรับ RAM ได้สูงสุด 4 GB เท่านั้น

ภายใต้ Linux ขีด จำกัด นี้ใช้กับการสลับพาร์ติชันหรือไม่ หาก RAM + swap ของฉันมีขนาดเกินกว่า 4 GB จะถูกใช้อย่างสมบูรณ์หรือไม่

หากคำตอบคือ "ไม่, มันใช้ไม่ได้กับการสลับ" ทำไม?


3
คำสั่งการ จำกัด หน่วยความจำฟิสิคัลนี้ไม่เป็นความจริงในทุกแพลตฟอร์ม ... "ฟิสิคัลส่วนขยายที่อยู่ (PAE) เป็นคุณสมบัติที่อนุญาตให้หน่วยประมวลผลกลาง x86 32 บิต (ซีพียู) เข้าถึงพื้นที่ที่อยู่จริง (รวมถึงหน่วยความจำเข้าถึงโดยสุ่ม อุปกรณ์) ที่มีขนาดใหญ่กว่า 4 กิกะไบต์ " en.wikipedia.org/wiki/Physical_Address_Extension
f1assistance

1
@packets อย่าสับสนเขาอีกแล้ว เขาต้องการไปและเรียนรู้เกี่ยวกับแนวคิดพื้นฐานเช่นการกำหนดที่อยู่เสมือนและการเพจก่อน
David Marshall

1
ไม่มีปัญหาฉันไม่กลัวการเรียนรู้
Sekhemty

คำตอบ:


12

ไม่ Imagine RAM เป็นเหมือนโต๊ะทำงานของคุณและการสลับพื้นที่ / หน่วยความจำเสมือนเป็นเหมือนตู้เก็บเอกสาร คุณสามารถใส่ข้อมูลจำนวนมากลงในตู้เก็บเอกสารได้ แต่เข้าถึงได้ยาก เอกสารใด ๆ ที่คุณต้องการใช้คุณต้องดึงออกมาวางบนโต๊ะ ปัญหาคือโต๊ะทำงานสามารถถือเอกสารจำนวนมากได้ในครั้งเดียวเท่านั้น

เครื่อง 32 บิตสามารถมีโต๊ะที่มีขนาดใหญ่เพียง 4GB (2 ^ 32 หรือประมาณ 4 พันล้านไบต์) แต่พวกเขายังคงมีตู้เก็บเอกสารได้เกือบไม่ จำกัด พวกเขาเพียงแค่ต้อง "สลับ" เอกสารเมื่อโต๊ะเต็มและพวกเขาต้องดูหน้าอื่นที่อยู่ในตู้เก็บเอกสาร


เหตุผลที่มันใช้ไม่ได้กับการสลับเป็นเพราะการเข้าถึงเนื้อหาของ RAM หรือรันโค้ดจากนั้นถูก จำกัด ขนาดของตัวเลขที่มันสามารถทำงานได้ ลองคิดดูสิว่าคุณสามารถมีคำศัพท์ได้เพียง 4 พันล้านคำบนโต๊ะเพราะมันสูงที่สุดเท่าที่จะนับได้และคุณต้องทำงานด้วยคำพูดโดยตรง "Word 3,547 ถูกสะกดผิดเปลี่ยนคำ 3,452,780 เป็น 'Hello' ลบคำ 6"

ตอนนี้แต่ละหน้าอาจมี 4,000 คำ สิ่งที่ดักจับคือเมื่อคุณอ้างถึงพื้นที่สว็อปคุณไม่ได้อ้างอิงทีละหน้าเท่านั้น ดังนั้นคุณสามารถนับได้แค่ 4 พันล้านเท่านั้น แต่คุณสามารถนับได้ถึง 4 พันล้านหน้า 4 พันล้านหน้ามีคำพูด16 ล้านล้าน - สูงกว่าที่คุณนับได้มาก

เครื่อง 64 บิตสามารถนับได้สูงกว่าดังนั้นพวกเขาจึงสามารถวางหน้าทั้งหมดไว้บนโต๊ะได้ทันทีหากมีโต๊ะขนาดใหญ่พอ แม้ว่าคุณจะวางโต๊ะขนาดใหญ่พิเศษไว้ในเครื่อง 32 บิตคุณก็ยังสามารถนับได้ถึง 4 พันล้านเท่านั้นดังนั้นคุณจึงไม่มีทางที่จะอ้างอิงคำศัพท์พิเศษทั้งหมดบนโต๊ะ


ดังนั้นสิ่งที่คุณพยายามที่จะบอกฉันคือพื้นที่แลกเปลี่ยนทำหน้าที่เป็นดัชนีสำหรับหน่วยความจำแรม? และดังนั้น swap หนึ่ง GB จึงเป็นตัวแทนของหน่วยความจำมากกว่า RAM กิกะไบต์เดี่ยว? อย่างไรก็ตามฉันยังไม่เข้าใจว่าทำไมระบบไม่สามารถจัดการ RAM ได้มากกว่า 4GB แต่สามารถสลับได้ ทำไมเราไม่ใช้ swap แทน RAM ล่ะ?
Sekhemty

1
พื้นที่สว็อปเปรียบเสมือนหน่วยความจำ "ไม่โหลด" และมีการอ้างอิงในหน่วยที่ใหญ่กว่ามาก RAM 1GB คือการสลับ 1GB แต่ RAM จะถูกระบุต่อไบต์และการสลับจะถูกส่งต่อหนึ่งชิ้น ตัวอย่างที่แตกต่างอาจจะคิดเกี่ยวกับการบรรจุถั่วลิสง คุณสามารถเก็บถั่วลิสงไว้ในมือได้กี่ถุง อาจเป็น 100 ก่อนที่จะลองหยิบขึ้นมาทำให้บางคนโผล่ออกมาระหว่างนิ้วมือข ทีนี้คุณสามารถเก็บถั่วลิสงบรรจุได้กี่ถุงถ้าเราใส่มันลงในกล่อง? พัน? Swap เป็นเหมือนกล่อง คุณสามารถจัดการข้อมูลเป็นกลุ่มขนาดใหญ่กว่า แต่คุณไม่สามารถเข้าถึงข้อมูลได้
Darth Android

1
@Sekhemty: สำหรับคำถามที่สองของคุณเกี่ยวกับสาเหตุที่เราใช้ swap อยู่ตลอดเวลา - ไฟล์ swap มีอยู่ในฮาร์ดดิสก์ของคุณและความเร็วที่คอมพิวเตอร์สามารถเข้าถึงข้อมูลบนฮาร์ดดิสก์นั้นขึ้นอยู่กับความเร็วในการเข้าถึงของดิสก์ (และ บางส่วน) แต่แม้กระทั่งฮาร์ดดิสก์ที่เร็วที่สุดก็จะช้ากว่าแรมจริงมาก ดังนั้นคำถามเกี่ยวกับความเร็ว สถาปัตยกรรม x86 ในปัจจุบันไม่อนุญาตสิ่งนี้อยู่ดี (ไม่มี RAM; สลับอย่างเดียว) ไฟล์ Swap เป็นแนวคิดของระบบปฏิบัติการที่ระบบไม่มีการรับรู้
bobbyalex

10

คุณกำลังสับสนหน่วยความจำกายภาพและเสมือนจริง

RAM คือหน่วยความจำกายภาพ พื้นที่สว็อปสามารถมีพื้นที่ที่อยู่เสมือน 4GB จำนวนมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.