หน่วยความจำแอปพลิเคชัน 32 บิตใช้ในระบบปฏิบัติการ 64 บิต


13

หากระบบปฏิบัติการของฉันคือ 64 บิตแอปพลิเคชัน 32 บิตของฉันสามารถใช้หน่วยความจำ 64 บิต (> 3.5GB) ได้หรือไม่

คำตอบ:


6

หากแอปทราบ AWE แล้วพวกเขาสามารถใช้พื้นที่ที่อยู่เกิน 4Gb ได้ แต่จะมีประสิทธิภาพน้อยกว่าแอป 64 บิต เป็นไปได้สำหรับกระบวนการ 32- บิตภายใต้ตัวแปร Windows 32 บิตเพื่อเข้าถึงพื้นที่ที่อยู่ 32- บิตมากกว่าถ้าอนุญาต PAE ถูกเปิดใช้งานและกระบวนการสามารถใช้งานได้

บุคคลกระบวนการแบบ 32 บิต(นั่นคือไม่ AWE ตระหนัก)มักจะ จำกัด 3Gb (แรก Gb พื้นที่ที่อยู่เสมือนถูกสงวนไว้สำหรับการดำเนินการที่เกี่ยวข้องกับเคอร์เนล) แต่ถ้าคุณใช้กระบวนการหลาย ๆ แล้วพวกเขาก็จะสามารถที่จะใช้มากขึ้นใน ทั้งหมด (แต่ละอันสามารถใช้งานได้มากถึง 3Gb, การอนุญาตหน่วยความจำทั้งหมด)เนื่องจากพื้นที่ที่อยู่เสมือนไม่ได้ถูกแชร์

ขีด จำกัด ต่อกระบวนการมีประโยชน์มากขึ้นในสภาพแวดล้อมที่คล้าย Unix ที่บริการมักจะใช้กระบวนการแทนการใช้เธรด(หลายเธรดในกระบวนการหนึ่งใช้ทรัพยากรกระบวนการร่วมกันดังนั้นจึงแบ่งปันพื้นที่ที่อยู่เสมือน 3Gb เดียว)ตามปกติ ภายใต้ Windows (เริ่มกระบวนการใหม่ใน Windows เป็นค่อนข้างแพงดังนั้นหัวข้อที่ต้องการภายใต้สภาพแวดล้อมระบบปฏิบัติการยูนิกซ์ส่วนใหญ่เริ่มต้นกระบวนการใหม่ที่มีทรัพยากรไม่มากนานกว่าการเริ่มต้นหัวข้อใหม่) มันไม่ได้มีประโยชน์สำหรับเครื่องที่ใช้งาน SQL Server เพียงอย่างเดียวเพราะมันจะเป็นเพียงกระบวนการเดียวดังนั้นจะถึงขีด จำกัด 3Gb (บางรุ่นสามารถกำหนดค่าให้ AWE ทราบได้ แต่ไม่ใช่ทั้งหมดและ คุณลักษณะที่มีกำหนดจะถูกลบออกในรุ่นใหญ่ถัดไป)

เช่นเดียวกับกระบวนการ 32 บิตที่สามารถใช้งานได้มากกว่า 3Gb โดยรวมระบบปฏิบัติการจะสามารถใช้หน่วยความจำที่ไม่ได้ใช้สำหรับการแคชดิสก์ดังนั้นจึงอาจไม่ไปเสียเพราะสมมติว่ากระบวนการไม่เปิดไฟล์ในลักษณะนี้ เพื่อบอกให้ OS ไม่ต้องทำสิ่งนี้


กระบวนการแบบ 32 บิตพร้อมชุด IMAGE_FILE_LARGE_ADDRESS_AWARE มีขีด จำกัด 4 GB ไม่ใช่ 3 msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
ทำเครื่องหมาย Sowul

5

หากแอปพลิเคชันใช้AWE แสดงว่าใช่ (แม้ว่าจะไม่ได้ จำกัด อยู่ที่ระบบปฏิบัติการ 64 บิต) หากไม่มีกระบวนการนี้จะยังคง จำกัด พื้นที่ที่อยู่ 4GB


-1 ในขณะที่จริงฉันคิดว่าคำตอบบางส่วนทำให้เข้าใจผิดว่าไม่มีกระบวนการ 32 บิต (ไม่ใช่ AWE) จะมี RAM 4GB ให้ใช้งานได้
pipTheGeek

@pipTheGeek ผิดพลาด: กระบวนการ 32 บิตพร้อมชุด IMAGE_FILE_LARGE_ADDRESS_AWARE = ​​4GB พร้อมใช้งาน msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
Mark Sowul

@ Mark - ฉันลืมไปแล้วและฉันได้แก้ไขคำตอบของฉันด้านล่าง ฉันยังคิดว่าคำตอบนี้ไม่สมบูรณ์แม้ว่า
pipTheGeek

3

Sorta ขึ้นอยู่กับสิ่งที่คุณหมายถึง

สมมติว่า Windows ...

หากระบบปฏิบัติการเป็นแบบ 64 บิตกระบวนการแบบ 32 บิตโดยค่าเริ่มต้นจะได้รับพื้นที่ที่อยู่เสมือนของผู้ใช้ 2 GB หากส่วนหัว PE ของไฟล์. exe ถูกทำเครื่องหมายด้วยการตั้งค่าสถานะ IMAGE_FILE_LARGE_ADDRESS_AWARE กระบวนการจะได้รับพื้นที่ที่อยู่เสมือน 4 กิกะไบต์ที่ผู้ใช้กำหนดแอดเดรสได้ ไม่ว่าในกรณีใดพื้นที่ที่อยู่เสมือนของเคอร์เนลจะเหมือนกับกระบวนการ 64 บิตเนื่องจากมีการใช้ร่วมกันในทุกกระบวนการ นอกจากนี้ยังทราบว่ากระบวนการ 64- ​​บิตที่ไม่ได้ตั้งค่าสถานะ IMAGE_FILE_LARGE_ADDRESS_AWARE ยังมีการเข้าถึงพื้นที่ที่อยู่เสมือนของผู้ใช้ 2 GB เท่านั้น

สิ่งที่คุณได้ยินเกี่ยวกับการตั้งค่าสถานะการบูตพิเศษสวิตช์ 3 GB / 3GB หรือ / userva ทั้งหมดเกี่ยวกับระบบปฏิบัติการ 32 บิตและไม่ได้ใช้กับ Windows 64 บิต

นี้จะหายไปทั่วในระทมทุกข์รายละเอียดเกี่ยวกับไมโครซอฟท์ขีด จำกัด หน่วยความจำสำหรับ Windows ข่าวหน้า

คำตอบของ @David Spillett ก็สัมผัสกับอีกจุดหนึ่ง: กระบวนการหลายกระบวนการซึ่ง จำกัด อยู่ที่ 2 GB ของพื้นที่ผู้ใช้ทั้งหมดยังคงสามารถใช้ RAM จำนวนมากหากมีเช่นเดียวกับแคชไฟล์


0

กระบวนการ 32 บิตบนระบบปฏิบัติการ 32 บิตมีพื้นที่แอดเดรส 4GB ซึ่ง 2GB ถูกสงวนไว้โดยระบบปฏิบัติการและ 2GB พร้อมใช้งานสำหรับกระบวนการ
มีสวิตช์ที่สามารถระบุกับระบบปฏิบัติการ (/ 3GB) ที่เปลี่ยนจำนวนเงินที่สงวนไว้สำหรับระบบปฏิบัติการเป็น 1GB เท่านั้นและช่วยให้กระบวนการมี 3GB, BUT เท่านั้นหากกระบวนการประกาศว่าตนเองเป็นที่อยู่ขนาดใหญ่ที่ทราบในธง ของการปฏิบัติการ

บนระบบปฏิบัติการ 64 บิตกระบวนการ 32 บิตจะได้รับ 4GB หากเป็นที่อยู่ขนาดใหญ่ที่ทราบหรือไม่เช่นนั้นจะเป็น 2GB

ทั้งหมดนี้มีไว้สำหรับกระบวนการที่ไม่ทราบว่า AWE ถ้ากระบวนการนั้นสามารถใช้ AWE ได้อย่างที่คนอื่น ๆ พูดกันมันสามารถใช้พื้นที่ที่อยู่ขนาดใหญ่ แต่มีประสิทธิภาพน้อยกว่ากระบวนการแบบ 64 บิต

PAE อนุญาตให้ระบบปฏิบัติการ 32 บิตใช้ RAM มากกว่า 4GB ได้ แต่ก็มีปัญหาเรื่องความเข้ากันได้และถูกปิดการใช้งานใน XP โดยหนึ่งในเซอร์วิสแพ็คดังนั้นจึงมีเฉพาะในเวอร์ชัน OS ของเซิร์ฟเวอร์เท่านั้น

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