หน่วยความจำที่ใช้ร่วมกัน เป็นบล็อกหน่วยความจำที่สามารถเข้าถึงได้มากกว่าหนึ่งโปรแกรม แนวคิดหน่วยความจำที่ใช้ร่วมกันใช้เพื่อจัดเตรียมวิธีการสื่อสารและให้การจัดการหน่วยความจำที่ซ้ำซ้อนน้อยลง
กระจายหน่วยความจำที่ใช้ร่วมกัน ย่อว่า DSM คือการนำแนวคิดหน่วยความจำที่ใช้ร่วมกันไปใช้ในระบบแบบกระจาย ระบบ DSM ใช้โมเดลหน่วยความจำแบบแบ่งใช้ในระบบที่เชื่อมต่อกันแบบหลวมๆ ซึ่งไม่มีหน่วยความจำแบบแบ่งใช้จริงในระบบ ในระบบหน่วยความจำที่ใช้ร่วมกันแบบกระจายประเภทนี้จะมีพื้นที่หน่วยความจำเสมือนที่ทุกระบบสามารถเข้าถึงได้ (เรียกอีกอย่างว่า โหนด ) ของลำดับชั้นแบบกระจาย
ความท้าทายทั่วไปบางประการที่ต้องคำนึงถึงในขณะที่ใช้งาน DSM -
-
การติดตามที่อยู่หน่วยความจำ (ตำแหน่ง) ของข้อมูลที่จัดเก็บจากระยะไกลในหน่วยความจำที่ใช้ร่วมกัน
-
เพื่อลดความล่าช้าในการสื่อสารและค่าใช้จ่ายสูงที่เกี่ยวข้องกับการอ้างอิงไปยังข้อมูลระยะไกล
-
การควบคุมการเข้าถึงข้อมูลที่แชร์ใน DSM พร้อมกัน
จากความท้าทายเหล่านี้ มีอัลกอริธึมที่ออกแบบมาเพื่อใช้งานหน่วยความจำที่ใช้ร่วมกันแบบกระจาย มีสี่อัลกอริธึม -
- อัลกอริธึมเซิร์ฟเวอร์กลาง
- อัลกอริทึมการย้ายข้อมูล
- อ่านอัลกอริทึมการจำลองแบบ
- อัลกอริธึมการจำลองแบบเต็ม
อัลกอริธึมเซิร์ฟเวอร์กลาง
ข้อมูลที่แชร์ทั้งหมดดูแลโดยเซิร์ฟเวอร์กลาง . โหนดอื่นๆ ของระบบแบบกระจาย คำขออ่านและเขียนข้อมูล ไปยังเซิร์ฟเวอร์ที่ให้บริการตามคำขอและอัปเดตหรือให้การเข้าถึงข้อมูลพร้อมกับข้อความตอบรับ .
ข้อความตอบรับเหล่านี้ใช้เพื่อระบุสถานะของคำขอข้อมูลที่เซิร์ฟเวอร์ให้บริการ เมื่อข้อมูลถูกส่งไปยังฟังก์ชันการเรียก จะรับทราบหมายเลขที่แสดงลำดับการเข้าถึงข้อมูลเพื่อรักษาการทำงานพร้อมกัน และหมดเวลากลับในกรณีที่ล้มเหลว
สำหรับระบบแบบกระจายขนาดใหญ่ อาจมีเซิร์ฟเวอร์มากกว่าหนึ่งเครื่อง ในกรณีนี้ เซิร์ฟเวอร์จะตั้งอยู่โดยใช้ที่อยู่หรือใช้ฟังก์ชันการทำแผนที่
อัลกอริทึมการย้ายข้อมูล
ตามชื่อที่แนะนำอัลกอริธึมการโยกย้ายทำงานของการโยกย้ายองค์ประกอบข้อมูล แทนที่จะใช้เซิร์ฟเวอร์กลางที่ให้บริการแต่ละคำขอ บล็อกที่มีข้อมูลที่ร้องขอโดยระบบจะถูกย้าย เพื่อเข้าถึงและประมวลผลต่อไป มันย้ายข้อมูลตามคำขอ
อัลกอริธึมนี้ดีแม้ว่าเมื่อระบบเข้าถึงบล็อกเดียวกันของข้อมูลหลายครั้งและความสามารถในการรวมหน่วยความจำเสมือน มีข้อบกพร่องบางอย่างที่ต้องแก้ไข
มีเพียงโหนดเดียวเท่านั้นที่สามารถเข้าถึงองค์ประกอบข้อมูลที่ใช้ร่วมกันในแต่ละครั้ง และบล็อกทั้งหมดจะถูกย้ายไปยังโหนดนั้น นอกจากนี้ อัลกอริธึมนี้ยังมีแนวโน้มที่จะฟาดฟัน เนื่องจากการโยกย้ายรายการข้อมูลตามคำขอของโหนด
อ่านอัลกอริทึมการจำลองแบบ
ในอัลกอริธึมการจำลองแบบอ่าน บล็อกข้อมูลที่จะเข้าถึงคือ จำลองแบบ และอนุญาตให้ อ่านเท่านั้น ในสำเนาทั้งหมด หากต้องดำเนินการเขียน การเข้าถึงเพื่ออ่านทั้งหมดจะถูกระงับจนกว่าสำเนาทั้งหมดจะได้รับการอัปเดต
ประสิทธิภาพของระบบโดยรวมได้รับการปรับปรุงเมื่ออนุญาตการเข้าถึงพร้อมกัน . แต่เขียนว่า การดำเนินการมีราคาแพง เนื่องจากข้อกำหนดในการอัปเดตบล็อคทั้งหมดที่แชร์เพื่อรักษาการทำงานพร้อมกัน สำเนาขององค์ประกอบข้อมูลทั้งหมดจะถูกติดตามเพื่อรักษาความสอดคล้อง
อัลกอริธึมการจำลองแบบเต็ม
ส่วนขยายเพื่ออ่านอัลกอริธึมการจำลองแบบทำให้โหนดสามารถดำเนินการทั้งอ่านและเขียน การทำงานบนบล็อกที่ใช้ร่วมกันของพร้อมกัน แต่การเข้าถึงโหนดนี้ถูกควบคุมเพื่อรักษาความสอดคล้อง
เพื่อรักษาความสอดคล้องของข้อมูลในการเข้าถึงพร้อมกันของลำดับโหนดทั้งหมดและหลังจากการแก้ไขทุกครั้งที่ทำใน data a multicast ด้วยการแก้ไขจะสะท้อนถึงสำเนาข้อมูลทั้งหมด