E N D
อินเทอร์รัพท์(Interrupt) • เป็นกลไกที่จัดเตรียมไว้เพื่อเพิ่มประสิทธิภาพในการทำงาน ตัวอย่างเช่น อุปกรณ์ภายนอกส่วนใหญ่ทำงานช้ากว่าความเร็วของโปรเซสเซอร์มาก สมมุติว่าโปรเซสเซอร์กำลังถ่ายโอนข้อมูลไปยังเครื่องพิมพ์ โดยการใช้วงรอบคำสั่งแบบพื้นฐาน หลังจากการบันทึกข้อมูลโปรเซสเซอร์จะต้องหยุดรอโดยไม่มีงานทำ จนกว่าเครื่องพิมพ์จะสามารถทำงานตามได้ทัน ช่วงระยะรอคอยนี้อาจยาวนานตั้งแต่หลายร้อยหรือหลายพันวงรอบการทำงาน
แสดงกระบวนการอินเทอร์รัพแสดงกระบวนการอินเทอร์รัพ • เมื่อผู้ใช้เรียกใช้ฟังก์ชัน write จำนวนหลายครั้งในระหว่างที่ทำการประมวลผลโปรแกรม • โด้ดส่วนที่ 1,2,3 คือชุดคำสั่งที่ไม่เกี่ยวข้องกับงานไอโอ • ฟังก์ชัน write คือฟังก์ชันอำนวยความสะดวก ซึ่งจะเรียกใช้โปรแกรมสำหรับงานไอโอ โปรแกรมทางไอโอประกอบด้วยสามส่วนคือ • ลำดับคำสั่ง แทนด้วยหมายเลข 4 ซึ่งเป็นการเตีรยมการสำหรับฟังก์ชันไอโอ • คำสั่งไอโอ • ลำดับของชุดคำสั่ง แทนด้วยหมายเลข 5 เพื่อการทำงานไอโอให้เสร็จสิ้น
อินเทรร์รัพและวงรอบคำสั่งอินเทรร์รัพและวงรอบคำสั่ง • เป็นกลไกที่ช่วยให้โปรเซสเซอร์สามารถประมวลผลคำสั่งของโปรแกรมได้ในขณะที่อุปกรณ์ไอโอกำลังทำงาน • โปรแกรมของผู้ใช้จะเรียกใช้ไอโอผ่านการทำงานของระบบปฏิบัติการ(เรียกว่า System call) • โปรแกรมสำหรับไอโอที่ถูกเรียกขึ้นมาประกอบด้วย โปรแกรมส่วนเตรียมการและโปรแกรมส่วนทำงานไอโอ • ภายหลังจากที่บางส่วนของคำสั่งเหล่านี้ถูกประมวลผลแล้ว การควบคุมจะถูกส่งกลับไปที่โปรแกรมของผู้ใช้
อินเทรร์รัพและวงรอบคำสั่งอินเทรร์รัพและวงรอบคำสั่ง • เมื่ออุปกรณ์ภายนอกพร้อมที่จะให้บริการ นั่นคือเมื่ออุปกรณ์มีความพร้อมในการรับข้อมูลใหม่จากโปรเซสเซอร์ • อุปกรณ์ไอโอจะส่งสัญญาณอินเทอร์รัพท์เสนอความต้องการเรียกว่า Interrupt request มายังโปรเซสเซอร์ • โปรเซสเซอร์จะต้อบสนองด้วยการหยุดการประมวลผลโปรแกรมที่กำลังทำงานอยู่เป็นการชั่วคราว(suspend)และนำโปรแกรมสำหรับอุปกรณ์ไอโอนั้นๆ เรียกว่า interrupt handler มาประมวลผลแทน • หลังจากที่อุปกรณ์ไอโอได้รับการตอบสนองเสร็จสิ้นแล้ว ก็จะนำโปรแกรมเดิมกลับมาประมวลผล(resume)
วงรอบคำสั่งพร้อมด้วยอินเทอร์รัพท์วงรอบคำสั่งพร้อมด้วยอินเทอร์รัพท์ • ในหารสนับสนุนการทำงานของอินเทอร์รัพท์ ระบบคอมพิวเตอร์ได้เพิ่มวงรอบอินเทอร์รัพท์(Interrupt cycle) • ถ้ามีสัญญาณอินเทอร์รัพท์โปรเซสเซอร์จำทำงานดังนี้ • โปรเซสเซอร์หยุดการประมวลผลโปรแกรมที่กำลังทำงานอยู่ชั่วคราว และบันทึกข้อมูลที่เกี่ยวข้องกับการประมวลผลเอาไว้ • กำหนดค่าโปรแกรมเคาน์เตอร์ ให้ชี้ไปยังตำแหน่งของคำสั่งเริ่มต้นของโปรแกรมอินเทอร์รัพท์
การใช้งานอินเทอร์รัพท์ซ้อนการใช้งานอินเทอร์รัพท์ซ้อน • เกิดการร้องขออินเทอร์รัพท์ในขณะที่การบริการอินเทอร์รัพท์อื่นยังไม่เสร็จสิ้น • แนวทางแก้ไขการเกิดอิทเทอร์รัพท์ซ้อน มี 2 แนวทาง • แนวทางที่ 1 ใช้วิธียกเลิกการใช้สัญญาณอินเทอร์รัพท์เป็นการชั่วคราว(disable interrupt) • แนวทางที่ 2 การกำหนดลำดับความสำคัญให้กับอินเทอร์รัพท์ทุกตัว และยินยอมให้อินเทอร์รัพท์ที่มีคำดับความสำคัญสูงกว่า