ความแตกต่างระหว่าง Deadlock กับ Starvation | Deadlock vs Starvation

Anonim

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)

  1. "ปรัชญาการรับประทานอาหาร" โดย Bdesham (CC BY-SA 3. 0)