วิธีแบ่ง RAM: ครึ่งหนึ่งสำหรับ Linux ส่วนอีกครึ่งหนึ่งสำหรับแอปพลิเคชัน


0

เรามีระบบที่มีหน่วยความจำ 1 GB จากนี้ฉันต้องการ จำกัด เพียง 512MB สำหรับ linux และต้องการเข้าถึง 512MB ที่เหลือโดยตรงจากแอปพลิเคชันที่ทำงานบน linux

อะไรคือข้อเสนอแนะเพื่อให้บรรลุสิ่งนี้ใน 2.6.x

ขอแสดงความนับถือ Prab


1
หากคุณต้องการถามว่าคุณไม่ต้องการลอง
Ignacio Vazquez-Abrams

ถ้าฉันต้องทำสิ่งนี้ฉันคิดว่าฉันตั้งค่า Xen ด้วยสองโดเมนและสำเนาของลินุกซ์ในแต่ละชุดโดยมีหนึ่งสำเนาสำหรับการใช้ "พิเศษ" ของคุณ ดู: xen.org
Jerry Coffin

คำตอบ:


0

คุณกำลังใช้งาน linux - หน่วยความจำทั้งหมดในเครื่องของคุณจะพร้อมใช้งานกับ linux เพื่อให้ linux สามารถให้โปรแกรมของคุณได้

หากระบบมี 512Mb ที่ให้บริการฟรีระบบจะมอบให้กับโปรแกรมของคุณหากไม่สามารถทำได้

มีวิธีพิเศษที่คุณสามารถใช้เพื่อให้แน่ใจว่า 512Mb ถูกล็อคเข้ากับ ram (ไม่สามารถสลับเป็นดิสก์ได้) แต่ฉันคิดว่านี่เป็นสิ่งที่เกินกว่าที่คุณต้องทำ


0

สิ่งเดียวที่ฉันนึกได้ก็คือให้แอปพลิเคชันของคุณมี malloc () ขนาด 512 เมกะไบต์เมื่อมันเริ่มทำงานครั้งแรกแล้วแบ่งหน่วยความจำด้วยตนเองภายในโปรแกรม และเด็กชายแหมเด็กชายนั่นน่าเกลียด


0

ฉันไม่เข้าใจคำถามจริงๆ คุณจะต้องอธิบายวัตถุประสงค์ของคุณให้ชัดเจนยิ่งขึ้น

Linux จะจัดสรรหน่วยความจำให้กับแอปพลิเคชันดังนั้นหาก Linux มีหน่วยความจำก็จะมอบให้แอปของคุณ

หากคุณต้องการมีหน่วยความจำแน่นอนตอนนี้คุณควร

  • จัดสรร (เช่น malloc หรือ mmap)
  • แตะทุกหน้า (เช่นเขียนบางสิ่งลงในแต่ละหน้า)
  • mlock () มัน - เพื่อให้แน่ใจว่าจะไม่ถูกสลับออก หรือเพียงแค่ไม่มีการกำหนดค่าการสลับ (NB: หน้าการล้างไฟล์ที่สำรองข้อมูลยังสามารถทิ้งหากการสลับถูกปิดใช้งาน)

หากคุณต้องการหน้าเว็บทั้งหมดที่โปรแกรมของคุณใช้เป็นหลักให้ใช้ mlockall


0

จัดสรรการทำแผนที่ที่ไม่ระบุชื่อกับ 512MB mmap()และแล้วล็อคด้วยMAP_POPULATEmlock()


0

แอปพลิเคชันของคุณไม่สามารถพูดคุยกับ "DIMM 2, chip 3, 42nd byte" มันต้องการส่วนอื่น ๆ ของระบบรวมถึง Linux เพื่อกำหนดหมายเลข (ที่อยู่) ให้กับทุก ๆ หน่วยความจำ หากคุณแยก 512 MB ออกจาก Linux แสดงว่าไม่มีที่อยู่ นั่นหมายความว่าแอปพลิเคชันของคุณไม่สามารถพูดคุยเกี่ยวกับหน่วยความจำได้

จะมีปัญหามากขึ้น เช่นฟังก์ชั่นจำศีลจะไม่เรียกคืนหน่วยความจำเมื่อตื่นขึ้น แต่นั่นคือทฤษฎีทั้งหมดเนื่องจากหน่วยความจำจะไม่มีสิ่งใดเลย - หากไม่มีที่อยู่จะไม่มีวิธีเขียนลงในหน่วยความจำ

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