การย้าย pagefile ไปที่ RAM เป็นแนวคิดที่น่าขันเพียงปิดและ RAM เพิ่มเติม :)
No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.
Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).
การจัดการหน่วยความจำได้รับการจัดการโดย CPU และการเปิดหรือปิด pagefile นั้นสร้างความแตกต่างเพียงเล็กน้อยในการจัดการหน้าเว็บ มันโปร่งใสกับ Windows
ลำดับความสำคัญของหน้าไม่เปลี่ยนแปลงหน้าจะถูกยกเลิกเพียงเหมือนกัน CPU ที่ใช้ Pagefiles เป็นที่เก็บข้อมูลสำรองไม่ใช่ระบบปฏิบัติการ ไม่มีอะไรมากไปกว่าแคชระดับสองเมื่อระดับหนึ่ง (RAM) หมด
ตัวอย่างที่รวดเร็วและสกปรกมาก: เครื่องของฉันมี RAM ขนาด 16GB และไม่มีไฟล์เพจ 5 นาทีที่ผ่านมาพร้อมสแตนด์บาย 13GB และฟรีเพียง 2GB ฉันโหลด Fallout 4 หน้าเว็บที่มีลำดับความสำคัญต่ำถูกยกเลิกเมื่อโหลด Fallout
Btw จากบันทึกด้านข้าง, 2008 Technet Blog เกี่ยวกับการผลักดันขีด จำกัด หน่วยความจำของ Windows เป็นสิ่งที่ทำให้เข้าใจผิดมาก
https://i.stack.imgur.com/wXkmi.png
ฉันก็สงสัยเหมือนกันว่าแม้มาร์คจะเขียนมัน แต่ฉันหวังว่าจะไม่เพราะมันจะเปลี่ยนมุมมองของฉันที่มีต่อเขา .....
Fwiw มีช่องโหว่ในบทความที่ฉันเกี๊ยวไม่มีใครเลือกมาพิจารณาว่าบล็อกนั้นถูกอ้างอิงบ่อยเพียงใด
- Windows pagefile และตำแหน่งถูกจัดการโดย Windows การดักจับการเข้าถึงหน่วยความจำไปยังตำแหน่งที่ถูกทำเพจออกไปยังดิสก์จะถูกจับโดย CPU แต่ส่งไปยังระบบปฏิบัติการเพื่อดึงหน้าจากดิสก์และโหลด
อย่างไรก็ตามนี่คือคำอธิบายที่คลุมเครือ:
Windows ไม่สามารถเข้าถึงที่อยู่สูงกว่า CPU - เป็นไปไม่ได้
ไม่ว่าระบบปฏิบัติการจะมีความสามารถยังคงถูก จำกัด โดยฮาร์ดแวร์ที่ทำงานอยู่ .. เพราะระบบปฏิบัติการเป็นซีพียูตัวจริง (ลงทะเบียนภายใน)
ตกลงดังนั้น pagefile เป็นพื้นที่บน HDD ที่ CPU ใช้สำหรับการขยายพื้นที่ที่อยู่ทางกายภาพเมื่อไม่สามารถใช้ RAM หรือหน่วยความจำได้จริง
ในสถาปัตยกรรม x86 32 บิตที่แบ่งกลุ่มเช่นมี RAM 2GB สองส่วน
หนึ่งถูกจัดสรรให้กับเคอร์เนล อีก 2GB สำหรับโหมดผู้ใช้ นั่นคือRAMทั้งหมดที่CPU สามารถใช้กับ 32 DRAM พินได้ แต่กระบวนการ 32 บิตมี 4GB ที่มีอยู่ดังนั้นจะทำอย่างไร โชคดีที่ CPU สามารถใช้หน่วยเก็บข้อมูลรอง AKA เป็นฮาร์ดไดรฟ์สำหรับจัดเก็บเพิ่มอีก 2GB หน้า เนื่องจากมีการลงทะเบียนภายใน
สถานที่ตั้งจริงที่เพจเสมือนที่อ้างอิงโดยกระบวนการไม่จำเป็นต้องเก็บไว้ใน RAM แต่พวกเขาจะถูกเก็บไว้ที่ใดที่หนึ่งโดย CPU
CPU ไม่สามารถมอบ RAM 4GB ทั้งหมดให้กับแอพได้ แต่สามารถให้ที่อยู่ 4GB ได้โดยใช้ HDD เป็นแคชสำรอง (ซึ่งเป็น HDD ทั้งหมดจริงๆ)
หน้าถูกย้ายเข้าและออกจาก RAM ผ่านกลไกการเลื่อนหน้าภายใน แต่นี่ไม่เหมือนกับ pagefile เพจจิ้งเกิดขึ้นเสมอ ....
บรรทัดล่างนั้นไม่ซับซ้อนจริงๆ ในช่วง 15 ปีที่ผ่านมาผู้ใช้จำนวนมากได้รับความประทับใจไฟล์เพจจึงเป็นส่วนสำคัญของระบบปฏิบัติการ มันไม่เคยมีมาก่อน ความเข้าใจผิดนี้เกิดจากบาง บริษัท เช่น Intel และ Microsoft
RAM เป็นอุปกรณ์จัดเก็บข้อมูลที่รวดเร็วฮาร์ดไดรฟ์เป็นอุปกรณ์จัดเก็บข้อมูลที่ช้ากว่าดังนั้น RAM โดยพื้นฐานคือแคชระดับ 1 ฮาร์ดไดรฟ์คือระดับ 2 (ไม่สนใจ CPU แคชสำหรับการเปรียบเทียบนี้) ซีพียูสามารถเข้าถึงได้ทั้งคู่
หาก RAM ไม่เพียงพอสำหรับซีพียูในการจัดเก็บหน้าที่จำเป็นต้องใช้ HDD นั้นสามารถใช้เป็นโอเวอร์โฟลว์ได้ หากมี RAM จำนวนมากแสดงว่า PF มีการซ้ำซ้อน
จนถึง Core 2 ตัวประมวลผล Intel มีบัส DRAM 32pin และผู้ลงทะเบียน 32 รายหมายถึง CPU มีการเข้าถึง RAM ขนาด 4GB และพื้นที่ HDD 4GB (pagefile) นี่เป็นข้อ จำกัด ด้านสถาปัตยกรรมฮาร์ดแวร์ไม่ใช่ข้อ จำกัด ของ Windows
จำนวนทั้งหมดที่มีสำหรับกระบวนการคือ 3.5GB เนื่องจากตารางหน้าใช้เวลา 512MB ขึ้นไป นี่คือเหตุผลที่ 3.5GB แสดงใน Windows ด้วย Intel CPU (จนถึง Core 2) เพิ่ม GPU และแม้แต่น้อยก็สามารถใช้ได้
Xeon สามารถเข้าถึง RAM ขนาด 32GB ทั้งหมดได้รวมเนื้อที่ทางกายภาพ 64GB พร้อม HDD (หน้าไฟล์อีกครั้ง) ( ^ นี้ครอบคลุม PAE - ยิ่งกว่านั้นมาพร้อมกับลิงก์ที่เพิ่ม )
http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html
แหล่งที่มาของสกรีน
ช็อตที่3: System V Application Binary Interface AMD64 Architecture Processor Supplement Draft เวอร์ชัน 0.99.7
ฉันตั้งใจจะปรับปรุงคำตอบนี้ต่อไปและเพิ่มเนื้อหาต้นฉบับและข้อมูลที่เกี่ยวข้อง ฉันต้องการสร้างความสมดุลระหว่างข้อมูลไม่เพียงพอกับข้อมูลทางเทคนิคมากเกินไป ยินดีรับข้อเสนอแนะ กรุณาอย่าลงคะแนนเพียงเพราะมันอาจไม่ได้เขียนได้ดี