คำถามติดแท็ก virtual-memory

1
TLB และแคชข้อมูลทำงานอย่างไร
ฉันพยายามศึกษาเพื่อสอบและฉันก็รู้ว่าฉันสับสนเกี่ยวกับการทำงานของ TLB และแคชข้อมูล ฉันเข้าใจว่า TLB นั้นเป็นแคชที่อยู่ทางกายภาพที่ใช้งานล่าสุด อย่างไรก็ตามฉันกำลังดูแผนภาพในตำราเรียนของฉัน (แสดงด้านล่าง) และฉันไม่เข้าใจว่าเกิดอะไรขึ้น ฉันก็แยกที่อยู่ทางกายภาพขึ้นมาและใช้เป็นดัชนีของแคชฉันเดา แต่ทำไมมันถึงแสดงแคชและข้อมูลแยกกัน และทำไมไบต์ออฟเซ็ตเหลือแค่การลอย? ฉันค่อนข้างมั่นใจว่าแคชควรจะเก็บข้อมูลด้วย ฉันไม่คิดว่าจุดประสงค์เพียงอย่างเดียวของมันคือการพิจารณาว่ามีการตีหรือพลาดอยู่ข้างในหรือไม่ ฉันขอโทษสำหรับความไม่รู้ของฉันล่วงหน้า แต่หนังสือเล่มนี้ครอบคลุม TLB's (มันเหมือนกับหน้ามากกว่าหนึ่งหน้า) และมันก็ทำงานได้ไม่ดีนักในการอธิบายความสัมพันธ์ระหว่าง TLB และแคช

1
หากพื้นที่ที่อยู่เสมือนสามารถมีขนาดใหญ่กว่าพื้นที่ที่อยู่ทางกายภาพการแมปที่อยู่จะถูกเก็บไว้ในหน่วยความจำอย่างไร
สมมติว่าเรากำลังทำงานกับระบบที่มี 40 บิตที่อยู่ทางกายภาพ พื้นที่แอดเดรสฟิสิคัลทั้งหมด (สมมติว่าหน่วยความจำไบต์สามารถกำหนดแอดเดรสได้) คือไบต์หรือ 1 TiB และถ้าที่อยู่เสมือนมีความยาว 48 บิตนั่นหมายความว่ามีที่อยู่เพิ่มเติมให้กับหน่วยความจำเสมือนมากกว่าที่อยู่ในหน่วยความจำกายภาพ2402402^{40} สิ่งนี้สมเหตุสมผลสำหรับฉันเพราะที่อยู่ "เกิน" สามารถอ้างถึงตำแหน่งที่ตั้งของฮาร์ดดิสก์ได้เช่นกัน อย่างไรก็ตามสิ่งที่ฉันไม่เข้าใจคือการแปลระหว่างที่อยู่เสมือนและที่อยู่จริงเกิดขึ้นได้อย่างไร ฉันคิดว่ามีการทำแผนที่จัดเก็บไว้ที่ไหนสักแห่งที่เชื่อมโยงสถานที่ VAS กับสถานที่ทางกายภาพ หากมีที่อยู่เสมือนมากกว่าที่ตั้งทางกายภาพการแมปเหล่านี้ทั้งหมดอาจถูกเก็บไว้ในหน่วยความจำได้อย่างไร อย่างน้อยคุณจะต้องมี 48 บิตในการจัดเก็บที่อยู่เสมือนแต่ละแห่งจากนั้นอีก 40 แห่งเพื่อจัดเก็บตำแหน่งทางกายภาพที่จะจับคู่ เห็นได้ชัดว่าคุณไม่สามารถจัดเก็บการแมป 1: 1 ของแต่ละที่อยู่เสมือนกับการจับคู่ทางกายภาพได้เนื่องจากการแมปทุกตำแหน่งจะใช้หน่วยความจำมากกว่าหน่วยความจำกายภาพ ฉันหายไปตรงนี้อะไรนะ?

1
หน่วยความจำบอลลูนในระบบปฏิบัติการ
ไฮเปอร์ไวเซอร์บางตัวเพิ่มประสิทธิภาพการใช้หน่วยความจำโดยใช้วิธีการที่เรียกว่า ballooning (อย่างน้อยนั่นคือสิ่งที่ KVM เรียก) วิธีนี้จะลดความซ้ำซ้อนของหน่วยความจำระหว่าง VM และตั้งค่าหน้าเว็บทั่วไปให้อ่านได้อย่างเดียว นี่เป็นสิ่งที่ตรงกันข้ามกับการเรียกแยก เป็นไปได้หรือไม่ที่จะนำไปใช้งานในระดับ OS สำหรับกระบวนการ (ส่วนใหญ่ฉันคิดถึงการทำสำเนาหน่วยความจำเมื่อเรียกดูด้วย Chromium ที่มีหลายแท็บบนไซต์เดียวกัน) มีการนำไปใช้แล้วหรือไม่

1
สลับการจัดการพื้นที่ระหว่างการสลับหน้าตามความต้องการอย่างแท้จริง
ต่อไปนี้เป็นข้อสงสัยว่าฉันเจอเมื่อทำการมอบหมาย OS ภายในบ้าน - แต่ดูเหมือนว่าจะใช้แนวคิดมากกว่าคำถามการเข้ารหัสที่ตรงไปตรงมาดังนั้น IMHO ฉันจึงไม่คิดว่าแท็กการบ้านนั้นเหมาะสมกับเรื่องนี้ ในแบบแผนความต้องการการเพจที่บริสุทธิ์สำหรับกระบวนการหลาย ๆ กระบวนการที่ทำงานในเวลาเดียวกันกำหนดจำนวนหน่วยความจำ RAM และ Swap คงที่สิ่งที่เกิดขึ้นใน 2 กรณีต่อไปนี้คือการสลับพื้นที่ swap เมื่อ กระบวนการพบข้อบกพร่องของหน้าและไม่มีเฟรมว่างใน RAM ดังนั้นจึงต้องใช้หนึ่งในหน้าของกลุ่มของ Kernel Frames ของกระบวนการที่จะถูกเขียนออกมาเพื่อสลับ (สำหรับความเรียบง่ายฉันไม่ได้พิจารณาการคัดลอก กรณีที่เขียนบน) โดยชัดแจ้งว่าเฟรมนี้จะเขียนที่ใดในพื้นที่สเปซและโครงสร้างข้อมูลใดที่จำเป็นต้องได้รับการอัพเดต เมื่อกระบวนการจำเป็นต้อง page-in หน้าใดหน้าหนึ่งมันจะดูในหน่วยความจำ Swap และจะรู้ได้อย่างไรว่าหน้านั้นมีอยู่ใน Swap เลย? อย่างที่คุณสามารถจินตนาการได้ว่าฉันมีปัญหาในการจัดการพื้นที่สว็อประหว่างวิธีการจัดการความต้องการที่บริสุทธิ์และโครงสร้างข้อมูลใดที่จำเป็น มันจะดีถ้าคุณสามารถอ้างถึงลิงก์ใด ๆ ในคำตอบของคุณ (ฉันค้นหาใน "แนวคิดระบบปฏิบัติการ - รุ่นที่ 8 โดย Silberschatz ฉันไม่พบคำตอบที่ชัดเจนสำหรับคำถามของฉัน)

2
อัลกอริทึมการเปลี่ยนหน้านาฬิกา - หน้าปัจจุบันอยู่แล้ว
เมื่อทำการจำลองอัลกอริธึมการเปลี่ยนหน้านาฬิกาเมื่อการอ้างอิงมาซึ่งมีอยู่ในหน่วยความจำแล้วเข็มนาฬิกายังเพิ่มขึ้นหรือไม่? นี่คือตัวอย่าง: ด้วย 4 ช่องโดยใช้อัลกอริทึมการเปลี่ยนหน้านาฬิกา รายการอ้างอิง: 1 2 3 4 1 2 5 1 3 2 4 5 รายการเริ่มต้นจะมีลักษณะเช่นนี้: -> [1][1] [2][1] [3][1] [4][1] การอ้างอิงครั้งต่อไปของการแทรกจะเป็น 1 จากนั้น 2 มือจะยังคงชี้ไปที่ 1 หลังจาก 1 และหลังจาก 2 หรือไม่ กล่าวอีกนัยหนึ่งหลังจากใส่ 5 นาฬิกาจะมีลักษณะดังนี้: -> [5][1] [2][0] [3][0] [4][0] ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.