การจัดลำดับความสำคัญของอินเทอร์รัพต์
ถ้ามีอินเทอร์รัพต์เกิดขึ้นมากมายในเวลาเดียวกัน ทำให้มีคำถามที่น่าสนใจ 2 คำถาม
คำถามแรกก็คือถ้ามีอินเทอร์รัพต์เกิดขึ้นพร้อมกันหลาย อินเทอร์รัพต์เพื่อคอย
การตอบสนองจากซีพียู แล้วซีพียูจะมีวิธีการจัดลำดับการตอบสนองอินเทอร์รัพต์เหล่านั้นอย่างไร
คำถามที่สองก็คือซีพียูทราบได้อย่างไรว่าดีไวซ์ใดส่ง อินเทอร์รัพต์เข้ามา
วิธีหาดีไวซ์ที่ส่งอินเทอร์รัพต์
Vectored interrupt ซึ่งในสัญญาณอินเทอร์รัพต์นั้นจะมีแอ็ดเดรสของ อินเทอร์รัพต์ดีไวซ์รวมมาด้วย
วิธีหาดีไวซ์ที่ส่งอินเทอร์รัพต์
Polled interrupt โดยใช้พต์ พูลลิ่งแต่ละดีไวซ์ ใช้ “daisy chaining”
ซึ่งจะวางอินเทอร์รัพต์ไปบนสายอินเทอร์รัพต์เพียงเส้นเดียวไปยังซีพียูซึ่งกำหนดเป็นลำดับความสำคัญสูงสุดที่ซีพียูทราบได้ก่อน
การจัดการเมื่อมีหลายอินเทอร์รัพต์
1.จัดการได้โดยกำหนดลำดับความสำคัญให้แต่ละอินเทอร์รัพต์
2.จัดการกับอินเทอร์รัพต์ที่มีลำดับความสำคัญสูงสุดก่อน หลังจากนั้นจะจัดการกับอินเทอร์รัพต์
ที่มีลำดับสูงกว่าตัวอื่น เรื่อยไปจนถึงอินเทอร์รัพต์ที่มีลำดับต่ำสุด
3.ทำให้มีลำดับชั้นในการจัดการอินเทอร์รัพต์ ซึ่งอาจจะมีอินเทอร์รัพต์ซ้อนกันอยู่ในโปรแกรมที่กำลังทำงานอยู่
4.การจัดการยังใช้หลักการที่ว่าจะต้องจัดการอินเทอร์รัพต์ที่มีลำดับสูงกว่าก่อนจนเสร็จสมบูรณ์แล้ว
จึงจัดการอินเทอร์รัพต์ที่มีลำดับต่ำกว่าจนกว่าจะหมดทุกอินเทอร์รัพต์แล้ว จึงกลับมาทำงานต่อการทำงานเมื่อเกิดอินเทอร์รัพต์หลายตัว
วันพฤหัสบดีที่ 19 มีนาคม พ.ศ. 2552
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น