งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Oslecture07. Deadlocks คืออะไร ? Deadlocks คือ บางสิ่งที่เราควรจะใช้กำหนด ความถูกต้อง โดยพื้นฐานมันจะเกิดขึ้นเมื่อเซต ของโปรเซสหรือเทรดต้องทำงานร่วมกันเป็นวัฏ.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Oslecture07. Deadlocks คืออะไร ? Deadlocks คือ บางสิ่งที่เราควรจะใช้กำหนด ความถูกต้อง โดยพื้นฐานมันจะเกิดขึ้นเมื่อเซต ของโปรเซสหรือเทรดต้องทำงานร่วมกันเป็นวัฏ."— ใบสำเนางานนำเสนอ:

1 oslecture07

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

3 Deadlocks Example person #1 จะมี อัลกอริทึม ดังนี้ : person1: get username get password access account, download stuff release password release username person 2 จะมี อัลกอริทึมต่างจาก person1 เพียง เล็กน้อย ดังนี้ : person2: get password get username access account, download stuff release username release password Deadlocks

4 จำไว้ว่า คอมพิวเตอร์ สามารถทำ context switch ได้ ตลอดเวลา ดังนั้น เราจะวางโปรเซส แรกในคอลัมน์ทาง ซ้ายมือ และ โปรเซสที่สองใน คอลัมน์ทางขวามือ ดังนี้ get username (context switch) get password (process 2 hangs trying to get username, since process 1 has it) (context switch) (process 1 hangs trying to get password, since process 2 has it)

5 Deadlocks person 1 จะต้องรอพาสเวิร์ดซึ่ง person 2 มีแล้ว person 2 จะต้องรอชื่อผู้ใช้ซึ่ง person 1 มีแล้ว ดังนั้น ถ้าถูกต้อง หรือทั้งสองโปรเซส สามารถรันได้โดยไม่เกิด context switch ในระหว่างการทำงาน ก็แสดงว่าไม่มีปัญหา แต่ก็ไม่สามารถที่รับรองได้ว่า จะไม่มี context switch เกิดขึ้นภายหลัง

6 4 ปัจจัยของการเกิด Deadlocks Mutual exclusion - จะไม่ใช้ทรัพยากร ร่วมกัน Hold & Wait - เมื่อคุณได้รับ ทรัพยากร อย่าปล่อยมันไปจนกระทั่งเมื่อ คุณได้ใช้งาน No preemption - ไม่มีผู้ใด (O/S) สามารถนำมันไปที่อื่น และให้มันกับคน อื่นๆ Circular wait - ปัยหาจะเป็นใน ลักษณะกราฟทิศทางเดียว หรือ กราฟ วงกลม โดยกราฟจะแสดงการรอ dependenc ies – ถ้ากราฟเป็นวงกลม จะ มี circular wait

7 4 ปัจจัยของการเกิด Deadlocks ( ต่อ ) ถ้าหนึ่งในที่กล่าวมานี้มีความผิดพลาด เกิดขึ้น เป็นไปไม่ได้ที่จะไม่มีการ g กิด deadlock ดังนั้นสิ่งที่เห็นอยู่ขณะนี้ เราก็จะ รู้แล้วว่าต้องทำอย่างไรที่จะกำจัดปัญหา ของ deadlock เราต้องหาทางที่จะทำให้ แน่ใจได้ว่าหนึ่งใน 4 ข้อเงื่อนไข คือสิ่งที่ ผิด ถ้าเราสามารถทำได้ เราจะสามารถ แน่ใจได้ว่าจะไม่มี deadlock เกิดขึ้น

8 การแบ่ง circular wait การแบ่ง circular wait ซึ่งเป็นเทคนิคที่จะ ป้องกันการเกิด deadlock ได้แก่ 1. กำหนดขอบเขตของทรัพยากร ทั้งหมด กำหนดตัวเลขสำหรับทรัพยากร แต่คุณต้องไม่เพิ่มตัวเลขเป็นสองเท่า 2. รหัสของคุณจะต้องได้รับทรัพยากร ในรายการ และจะต้องได้รับทรัพยากร ทั้งหมดก่อนงาน 3. รหัสของคุณจะต้องปล่อยทรัพยากร สำหรับงาน


ดาวน์โหลด ppt Oslecture07. Deadlocks คืออะไร ? Deadlocks คือ บางสิ่งที่เราควรจะใช้กำหนด ความถูกต้อง โดยพื้นฐานมันจะเกิดขึ้นเมื่อเซต ของโปรเซสหรือเทรดต้องทำงานร่วมกันเป็นวัฏ.

งานนำเสนอที่คล้ายกัน


Ads by Google