Skip to main content

หน่วยความจำธุรกรรมคืออะไร?

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

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

ปัญหาในหน่วยความจำการทำธุรกรรมได้รับการแก้ไขโดยล็อคขั้นสูงรวมถึง "ล็อคบล็อก" จาก C#, ล็อคอ่านเขียน, การเขียนและอื่น ๆลำดับความสำคัญหลักเกี่ยวกับหน่วยความจำการทำธุรกรรมคือไม่มีการล็อคและไม่มีเวลาประมวลผลล็อคที่ไม่จำเป็นโดยปกติแล้วจะตกลงกันว่าโครงสร้างข้อมูลที่ใช้ร่วมกันนั้นปราศจากการล็อคหากไม่จำเป็นต้องมีการยกเว้นซึ่งกันและกันโครงสร้างข้อมูลที่ใช้ร่วมกันและปราศจากการล็อคหลีกเลี่ยงปัญหาที่เกี่ยวข้องกับเทคนิคการล็อคมาตรฐานหากอยู่ในระบบที่มีความพร้อมกันสูง

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