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

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

นางสาวกนกอร ศิริอำนาจ 50036153 กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.

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


งานนำเสนอเรื่อง: "นางสาวกนกอร ศิริอำนาจ 50036153 กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ."— ใบสำเนางานนำเสนอ:

1 นางสาวกนกอร ศิริอำนาจ กลุ่ม 2

2  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ สิ่งที่ทำให้ application หรือบางครั้ง แม้ว่าคอมพิวเตอร์เกิดอาการ "hang" แม้ฮาร์ดแวร์จะ ปกติดี แต่เราต้องการทราบสิ่งที่เพิ่มเติมเกี่ยวกับสิ่ง นี้ เราต้องเรียนรู้มันต่อไป

3  deadlocks คือ สิ่งที่เราควรจะกำหนดขึ้นอย่าง ชัดเจนแน่นอน โดยทั่วไปก็คือ เมื่อกำหนดโปรเซส ( หรือ เทรด ) มีวงจร dependancy ที่มีลูปอนันต์ หนังสือเล่มนี้กล่าวในทางคลุมเครือบ้างในวรรคแรก ของบท คือ ในระบบ multiprogramming กระบวนการหลายกระบวนการอาจมีการแย่งกันใช้ ทรัพยากร ที่มีจำนวนจำกัด คำร้องขอของโปรเซส และถ้าหากทรัพยากรไม่สามารถใช้งานได้ ในขณะที่ โปรเซสจะต้องเข้าสู่สภาวะรอคอย บางครั้ง กระบวนการที่รอคอยอยู่นั้น อาจไม่สามารถเปลี่ยน สถานะอื่นได้ เนื่องจากอาจมีการร้องขอทรัพยากร จากส่วนอื่นอีก โดยมีการรอคอยของอีกโปรเซสหนึ่ง เรียกว่า deadlocks

4  แต่ให้หากคิดว่ามีคนอยู่ สองคน คนหนึ่งมีชื่อผู้ใช้ และอีกคนมีรหัสผ่าน แล้วถ้าหากมีทั้งสองอย่างคุณ สามารถดาวน์โหลดคำตอบจากการบ้าน ตัวอย่าง สมมุติว่า person 1 มีขั้นตอนวิธีดังนี้ person1: get username get password access account, download stuff release password release username

5  ok, แต่ person 2 มีขั้นตอนวิธีที่แตกต่าง : person2: get password get username access account, download stuff release username release password ในความเป็นจริงมันควรจะมีวิธีการที่เหมือนกัน ลอง ดูการทำ context switch ของเครื่องคอมพิวเตอร์ ลองใส่ person 1 เข้าไปใน column ทางซ้ายและ person 2 เข้าไปใน column ทางขวา

6 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) D E A D L O C K

7  person 1 ต้องรอ password จาก จนกว่า person 2 จะทำเสร็จ  person 2 ต้องรอ username จาก จนกว่า person 2 จะทำเสร็จ ดังนั้นถ้าคุณ ' โชคดี ' และทั้งสองได้รับการรัน โดยปราศจาก context switch ในระหว่างนั้นและ ไม่มีใครได้รับสอง resources ดังนั้นแล้วจะไม่มี ปัญหาเกิดขึ้น แต่เราไม่สามารถรับประกันว่าจะไม่ เคยเกิด context switch ขึ้นหรือดังนั้นไม่มีใครที่จะ มีทรัพยากรเมื่อเราเริ่มการใช้

8  ด้วยเหตุนี้ในบทที่ 7 จะอธิบายเกี่ยวกับ deadlocks เราจำเป็นต้องเรียนรู้วิธีการตรวจสอบ deadlocks และหลีกเลี่ยงการเกิดของ deadlocks มากที่สุด

9 ลักษณะของ deadlocks 1) Mutual exclusion คือ การกีดกั้น ในบริเวณ หรือ ส่วนของโปรแกรมที่ process เข้าครอบครองรีซอร์ส ซึ่งเรียกว่า Critical region ซึ่งการกีดกั้นก็คือการ ไม่ยอมให้ process ใด ๆ เข้าใช้พื้นที่ ๆ เป็น Critical region ซึ่งมีคุณสมบัติอยู่ 4 ประการ คือ  ไม่มี process อยู่ใน critical region พร้อมกัน  ไม่มีสมมติฐาน และข้อจำกัด ด้านความเร็ว หรือจำนวน ซีพียูมาเป็นปัจจัย  ไม่มี process นอก critical region ที่ block การ ทำงานของ process อื่น  ไม่มี process ที่รอเข้าใจ critical region ตลอดเวลา

10 2) Hold & Wait คือ ถ้าโปรเซสสามารถถือครอง ทรัพยากรที่ตัวเองได้รับ และในขณะเดียวกันก็ สามารถทำการร้องขอทรัพยากรเพิ่มเติมได้ 3) No preemption คือ ถ้าโปรเซสกำลังใช้งาน ทรัพยากรอยู่ และระบบไม่สามารถบังคับให้โปรเซส นั้นปล่อยทรัพยากรนั้นให้เป็นอิสระได้

11 4) Circular wait คือ เกิดวงจรรอคอย ถ้าเกิดทั้ง 4 อย่างนี้ขึ้นอาจเกิด deadlocks กับ คุณได้ หากไม่เกิดสิ่งหนึ่งภายในทั้ง 4 อย่าง การ เกิด deadlocks ก็จะไม่เกิดขึ้น เพื่อให้คุณเห็นว่า ตอนนี้เรารู้วิธีการโจมตีปัญหาและหลีกเลี่ยงการเกิด deadlocks เราต้องค้นหาวิธีการรับประกันหนึ่งใน 4 เหล่านี้เป็นให้ไม่เกิดขึ้น เราก็จะสามารถรับประกัน ได้ว่า การเกิด deadlocks จะไม่เกิดขึ้น

12 วิธีการป้องกันการเกิด deadlocks 1. ระบุลำดับของทรัพยากรทั้งหมด แต่คุณไม่ สามารถมีหมายเลขซ้ำๆ ได้ 2. รหัสของคุณต้องได้รับทรัพยากรในลำดับ ascending และต้องได้รับทรัพยากรทั้งหมดก่อน งานจะเริ่ม 3. รหัสของคุณต้องปล่อยทรัพยากรในลำดับ descending หลังการทำงาน

13 นี่คืองาน ลำดับแรกให้ทำ # 1 username คือ 1 password คือ 2 ต่อไป ปรับปรุง person 2 ให้อยู่ในลำดับที่ ถูกต้อง ตอนนี้ person 1 และ person 2 อยู่ใน ลำดับที่ถูกต้องแล้ว ในตัวอย่างนี้ person 1 and person 2 มีลักษณะคล้ายๆ กัน แต่ไม่เหมือนกันซะ ทีเดียว

14 person1: get username [1] get password [2] access account, download stuff release password [2] release username [1] person2: get username [1] get password [2] access account, download stuff release password [2] release username [1]

15 คอมพิวเตอร์จะทำ context switch เราจะวาง กระบวนการที่ 1 ในคอลัมน์ซ้ายและกระบวนการ 2 ใน คอลัมน์ขวา get username (context switch) [wait because cannot get username] (context switch) get password (context switch) [keep waiting] (context swtich)

16 access account, download stuff (context switch) [still waiting] (context switch) release password (context swtich) [waiting some more] (context switch) release username (context switch) get username....

17 คุณสามารถดูงานนี้โดยปราศจาก deadlocks แม้การ context switch ในระหว่างการใช้คำสั่ง เดียว ดังปัญหาของเราในตัวอย่างนี้จะอธิบายวิธี ทำงาน  หากไม่สามารถป้องกัน deadlocks โดยใช้วิธีนี้ ( อาจจะเป็นรหัสที่เขียนโดยนักเรียนหรือผู้ใช้ ) คุณจะ สามารถทำอะไร ?  ตรวจสอบ deadlocks: ใช้อัลกอลิทึมของกราฟเพื่อ วงจรรอบ เมื่อกระบวนการไม่ได้เปลี่ยนสถานะไปที่ นาที X ทำลาย deadlocks: หากคุณพบ deadlocks ดูวงจร และทำลายหนึ่งกระบวนการ ตรวจสอบ deadlocks ใหม่และทำซ้ำจนไม่มี deadlocks ( ดูข้อมูลเพิ่มได้ ในหน้า 257)


ดาวน์โหลด ppt นางสาวกนกอร ศิริอำนาจ 50036153 กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.

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


Ads by Google