Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

อัลกอริธึมสำหรับการนำ Distributed Shared Memory ไปใช้งาน


หน่วยความจำที่ใช้ร่วมกัน เป็นบล็อกหน่วยความจำที่สามารถเข้าถึงได้มากกว่าหนึ่งโปรแกรม แนวคิดหน่วยความจำที่ใช้ร่วมกันใช้เพื่อจัดเตรียมวิธีการสื่อสารและให้การจัดการหน่วยความจำที่ซ้ำซ้อนน้อยลง

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

ความท้าทายทั่วไปบางประการที่ต้องคำนึงถึงในขณะที่ใช้งาน DSM -

  • การติดตามที่อยู่หน่วยความจำ (ตำแหน่ง) ของข้อมูลที่จัดเก็บจากระยะไกลในหน่วยความจำที่ใช้ร่วมกัน

  • เพื่อลดความล่าช้าในการสื่อสารและค่าใช้จ่ายสูงที่เกี่ยวข้องกับการอ้างอิงไปยังข้อมูลระยะไกล

  • การควบคุมการเข้าถึงข้อมูลที่แชร์ใน DSM พร้อมกัน

จากความท้าทายเหล่านี้ มีอัลกอริธึมที่ออกแบบมาเพื่อใช้งานหน่วยความจำที่ใช้ร่วมกันแบบกระจาย มีสี่อัลกอริธึม -

  • อัลกอริธึมเซิร์ฟเวอร์กลาง
  • อัลกอริทึมการย้ายข้อมูล
  • อ่านอัลกอริทึมการจำลองแบบ
  • อัลกอริธึมการจำลองแบบเต็ม

อัลกอริธึมเซิร์ฟเวอร์กลาง

ข้อมูลที่แชร์ทั้งหมดดูแลโดยเซิร์ฟเวอร์กลาง . โหนดอื่นๆ ของระบบแบบกระจาย คำขออ่านและเขียนข้อมูล ไปยังเซิร์ฟเวอร์ที่ให้บริการตามคำขอและอัปเดตหรือให้การเข้าถึงข้อมูลพร้อมกับข้อความตอบรับ .

ข้อความตอบรับเหล่านี้ใช้เพื่อระบุสถานะของคำขอข้อมูลที่เซิร์ฟเวอร์ให้บริการ เมื่อข้อมูลถูกส่งไปยังฟังก์ชันการเรียก จะรับทราบหมายเลขที่แสดงลำดับการเข้าถึงข้อมูลเพื่อรักษาการทำงานพร้อมกัน และหมดเวลากลับในกรณีที่ล้มเหลว

สำหรับระบบแบบกระจายขนาดใหญ่ อาจมีเซิร์ฟเวอร์มากกว่าหนึ่งเครื่อง ในกรณีนี้ เซิร์ฟเวอร์จะตั้งอยู่โดยใช้ที่อยู่หรือใช้ฟังก์ชันการทำแผนที่

อัลกอริธึมสำหรับการนำ Distributed Shared Memory ไปใช้งาน

อัลกอริทึมการย้ายข้อมูล

ตามชื่อที่แนะนำอัลกอริธึมการโยกย้ายทำงานของการโยกย้ายองค์ประกอบข้อมูล แทนที่จะใช้เซิร์ฟเวอร์กลางที่ให้บริการแต่ละคำขอ บล็อกที่มีข้อมูลที่ร้องขอโดยระบบจะถูกย้าย เพื่อเข้าถึงและประมวลผลต่อไป มันย้ายข้อมูลตามคำขอ

อัลกอริธึมนี้ดีแม้ว่าเมื่อระบบเข้าถึงบล็อกเดียวกันของข้อมูลหลายครั้งและความสามารถในการรวมหน่วยความจำเสมือน มีข้อบกพร่องบางอย่างที่ต้องแก้ไข

มีเพียงโหนดเดียวเท่านั้นที่สามารถเข้าถึงองค์ประกอบข้อมูลที่ใช้ร่วมกันในแต่ละครั้ง และบล็อกทั้งหมดจะถูกย้ายไปยังโหนดนั้น นอกจากนี้ อัลกอริธึมนี้ยังมีแนวโน้มที่จะฟาดฟัน เนื่องจากการโยกย้ายรายการข้อมูลตามคำขอของโหนด

อัลกอริธึมสำหรับการนำ Distributed Shared Memory ไปใช้งาน

อ่านอัลกอริทึมการจำลองแบบ

ในอัลกอริธึมการจำลองแบบอ่าน บล็อกข้อมูลที่จะเข้าถึงคือ จำลองแบบ และอนุญาตให้ อ่านเท่านั้น ในสำเนาทั้งหมด หากต้องดำเนินการเขียน การเข้าถึงเพื่ออ่านทั้งหมดจะถูกระงับจนกว่าสำเนาทั้งหมดจะได้รับการอัปเดต

ประสิทธิภาพของระบบโดยรวมได้รับการปรับปรุงเมื่ออนุญาตการเข้าถึงพร้อมกัน . แต่เขียนว่า การดำเนินการมีราคาแพง เนื่องจากข้อกำหนดในการอัปเดตบล็อคทั้งหมดที่แชร์เพื่อรักษาการทำงานพร้อมกัน สำเนาขององค์ประกอบข้อมูลทั้งหมดจะถูกติดตามเพื่อรักษาความสอดคล้อง

อัลกอริธึมสำหรับการนำ Distributed Shared Memory ไปใช้งาน

อัลกอริธึมการจำลองแบบเต็ม

ส่วนขยายเพื่ออ่านอัลกอริธึมการจำลองแบบทำให้โหนดสามารถดำเนินการทั้งอ่านและเขียน การทำงานบนบล็อกที่ใช้ร่วมกันของพร้อมกัน แต่การเข้าถึงโหนดนี้ถูกควบคุมเพื่อรักษาความสอดคล้อง

เพื่อรักษาความสอดคล้องของข้อมูลในการเข้าถึงพร้อมกันของลำดับโหนดทั้งหมดและหลังจากการแก้ไขทุกครั้งที่ทำใน data a multicast ด้วยการแก้ไขจะสะท้อนถึงสำเนาข้อมูลทั้งหมด

อัลกอริธึมสำหรับการนำ Distributed Shared Memory ไปใช้งาน