ความแตกต่างระหว่าง Deadlock กับ Starvation | Deadlock vs Starvation
Deadlock vs Starvation
ความแตกต่างหลักระหว่าง deadlock กับความอดอยากคือความสัมพันธ์ระหว่างสาเหตุและผลกระทบระหว่างพวกเขา มันคือการหยุดชะงักที่ทำให้เกิดความอดอยาก อีกความแตกต่างที่น่าสนใจระหว่างการหยุดชะงักและความอดอยากคือการหยุดชะงักเป็นปัญหาในขณะที่อดอาหารสามารถบางครั้งช่วยออกจากการหยุดชะงักได้ ในโลกคอมพิวเตอร์เมื่อเขียนโปรแกรมคอมพิวเตอร์จะมีมากกว่าหนึ่งโพรเซส / ด้ายที่จะทำงานพร้อม ๆ กันเพื่อที่จะทำให้บริการนี้เสร็จสมบูรณ์ตามที่ต้องการ ดังนั้นเพื่อให้มีระบบที่เป็นธรรมโปรแกรมเมอร์ควรมีเพื่อให้แน่ใจว่ากระบวนการทั้งหมด / กระทู้จะได้รับหรือได้รับการเข้าถึงทรัพยากรเพียงพอที่พวกเขาต้องการ ถ้าไม่มีจะมีการหยุดชะงักและจะนำไปสู่ความอดอยากในภายหลัง โดยทั่วไประบบยุติธรรมไม่ได้มีการหยุดชะงักหรือความอดสู การหยุดชะงักและความอดอยากจะเกิดขึ้นส่วนใหญ่เมื่อหลายหัวข้อกำลังแข่งขันกันเพื่อหาทรัพยากรที่ จำกัด
Deadlock คืออะไร?
การหยุดชะงักเป็น เงื่อนไขที่เกิดขึ้นเมื่อสองเธรดหรือกระบวนการรอกันเพื่อทำงาน พวกเขาจะวางสาย แต่ไม่เคยหยุดหรือเสร็จสิ้นงานของพวกเขา ในวิทยาการคอมพิวเตอร์การหยุดชะงักสามารถเห็นได้ทุกที่ ในฐานข้อมูลการทำธุรกรรมเมื่อทั้งสองกระบวนการในการทำธุรกรรมของตนเองอัพเดตข้อมูลสองแถวเดียวกัน แต่ในลำดับที่ตรงกันจะทำให้เกิดการหยุดชะงัก ในการเขียนโปรแกรมพร้อมกันการหยุดชะงักอาจเกิดขึ้นเมื่อสองการดำเนินการแข่งขันจะรอกันเพื่อดำเนินการต่อ ในระบบโทรคมนาคมการหยุดชะงักอาจเกิดขึ้นได้เนื่องจากการสูญเสียหรือความเสียหายของสัญญาณ
ปัจจุบันการหยุดชะงักเป็นหนึ่งในปัญหาหลักในระบบมัลติโปรเซสเซอร์และการประมวลผลแบบขนาน เป็นโซลูชันระบบล็อคที่เรียกว่า การซิงโครไนซ์กระบวนการ มีการใช้งานสำหรับซอฟต์แวร์รวมทั้งฮาร์ดแวร์
ความอดอยากคืออะไร?
จากพจนานุกรมศาสตร์ทางการแพทย์ความอดอยากเป็นผลมาจากการขาดสารอาหารที่รุนแรงหรือขาดซึ่งจำเป็นต่อการดำรงชีวิต ในทำนองเดียวกันในวิทยาการคอมพิวเตอร์ความอดอยากคือปัญหาที่พบเมื่อ เมื่อหลายเธรดหรือกระบวนการรอทรัพยากรเดียวกันซึ่งเรียกว่า deadlock เพื่อที่จะได้รับออกจากการหยุดชะงักหนึ่งของกระบวนการหรือเธรดควรจะต้องให้ขึ้นหรือย้อนกลับเพื่อให้ด้ายอื่นหรือกระบวนการสามารถใช้ทรัพยากร หากกระบวนการนี้เกิดขึ้นอย่างต่อเนื่องและกระบวนการหรือเธรดเดียวกันต้องเลิกล้มหรือย้อนกลับในแต่ละครั้งในขณะที่กระบวนการหรือเธรดอื่น ๆ จะใช้ทรัพยากรขั้นตอนหรือเธรดที่เลือกซึ่งจะย้อนกลับไปจะได้รับการเรียกว่าสถานการณ์ความอดอยากดังนั้น
เพื่อที่จะได้รับออกมาจากการหยุดชะงักการอดอาหารเป็นหนึ่งในโซลูชั่น ดังนั้นความอดอยากบางครั้งเรียกว่า ชนิดของ livelock เมื่อมีโพรเซสหรือเธรดที่มีลำดับความสำคัญสูงกระบวนการหรือเธรดที่มีลำดับความสำคัญต่ำกว่ามักจะอดตายในการหยุดชะงัก อาจมีความอดอยากมากมายเช่น
ที่หิวโหยต่อทรัพยากร และ ที่หิวโหยใน CPU มีตัวอย่างมากมายเกี่ยวกับความอดอยาก พวกเขาเป็นปัญหาของผู้อ่านและนักเขียนและปัญหาของนักปรัชญาการรับประทานอาหารซึ่งมีชื่อเสียงมากขึ้น มีนักปรัชญาที่เงียบ ๆ ห้าคนนั่งอยู่ที่โต๊ะกลมกับชามปาเก็ตตี้ ฟอร์กวางอยู่ระหว่างคู่ของนักปรัชญาแต่ละคน นักปรัชญาแต่ละคนต้องคิดและกินกันอยู่ อย่างไรก็ตามนักปรัชญาสามารถกินสปาเก็ตตี้ได้เมื่อเขามีทั้งส้อมซ้ายและขวา "นักปรัชญาในการรับประทานอาหาร"
อะไรคือความแตกต่างระหว่าง Deadlock กับ Starvation?
กระบวนการ:
•ใน deadlock เธรดที่สองหรือกระบวนการจะรอกันและทั้งสองจะไม่ดำเนินการต่อ
ในความอดอยากเมื่อสองคนหรือมากกว่าเธรดหรือกระบวนการรอทรัพยากรเดียวกันหนึ่งจะย้อนกลับและปล่อยให้คนอื่น ๆ ใช้ทรัพยากรก่อนและต่อไปที่หิวโหยด้ายหรือกระบวนการจะลองอีกครั้ง ดังนั้นหัวข้อหรือกระบวนการทั้งหมดจะดำเนินการต่อไป
• Rolling Back:
•ในการหยุดชะงักเธรด / กระบวนการที่มีความสำคัญสูงรวมทั้งเธรด / กระบวนการที่มีลำดับความสำคัญต่ำจะรอกันอย่างไม่มีที่สิ้นสุด มันไม่เคยจบลง.
•ในความอดอยากผู้ที่มีลำดับความสำคัญต่ำจะรอหรือย้อนกลับ แต่จะมีลำดับความสำคัญสูงกว่า
•กำลังรอหรือล็อค:
•การหยุดชะงักเป็นการรอคอยแบบวงกลม
•ความอดอยากเป็นชนิดของ livelock และบางครั้งช่วยให้ออกจากการหยุดชะงัก
• Deadlock and Starvation:
•การหยุดชะงักทำให้เกิดความอดอยาก แต่ความอดอยากไม่ทำให้เกิดการหยุดชะงัก
•สาเหตุ:
•การหยุดชะงักจะเกิดขึ้นเนื่องจากการยกเว้นซึ่งกันและกันค้างและรอโดยไม่มีการยกเว้นหรือรอคอยแบบวงกลม
•ความอดอยากเกิดขึ้นเนื่องจากความขาดแคลนทรัพยากรการจัดการทรัพยากรที่ไม่มีการควบคุมและลำดับความสำคัญของกระบวนการ
สรุป:
Deadlock vs. Starvation
การหยุดชะงักและความอดอยากเป็นปัญหาบางอย่างที่เกิดขึ้นเนื่องจากเชื้อชาติข้อมูลและสภาวะการแข่งขันที่เกิดขึ้นระหว่างการเขียนโปรแกรมรวมทั้งการใช้ฮาร์ดแวร์ ในการหยุดชะงักสองหัวข้อจะอนันต์รอกันโดยไม่ต้องดำเนินการในขณะที่อดอาหารหนึ่งด้ายจะย้อนกลับและให้หัวข้ออื่น ๆ ใช้ทรัพยากร การหยุดชะงักจะทำให้เกิดความอดอยากในขณะที่ความอดอยากจะช่วยให้ด้ายออกจากการหยุดชะงัก
ภาพโดย Courtney:
คอมพิวเตอร์โดย Steve Jurvetson จาก Menlo Park, USA (CC BY 2. 0)
- "ปรัชญาการรับประทานอาหาร" โดย Bdesham (CC BY-SA 3. 0)