ความแตกต่างระหว่าง System Call และ Interrupt

Anonim

การเรียกระบบและขัดจังหวะ

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

การโทรระบบคืออะไร?

การเรียกระบบมีโปรแกรมที่รันบนเครื่องคอมพิวเตอร์เป็นอินเทอร์เฟซเพื่อพูดคุยกับระบบปฏิบัติการ เมื่อโปรแกรมต้องการที่จะขอรับบริการ (ซึ่งไม่มีสิทธิ์) จากเคอร์เนลของระบบปฏิบัติการจะใช้การเรียกระบบ กระบวนการระดับผู้ใช้ไม่มีสิทธิ์เหมือนกันกับกระบวนการที่โต้ตอบกับระบบปฏิบัติการโดยตรง ตัวอย่างเช่นการสื่อสารกับอุปกรณ์ภายนอก I / O หรือการโต้ตอบกับกระบวนการอื่น ๆ โปรแกรมต้องใช้การเรียกระบบ

Interrupt คืออะไร?

ในระหว่างการดำเนินการตามปกติของโปรแกรมคอมพิวเตอร์อาจเกิดเหตุการณ์ที่อาจทำให้ CPU หยุดชั่วคราวได้ เหตุการณ์เช่นนี้เรียกว่า interrupts การขัดจังหวะอาจเกิดจากความผิดพลาดของซอฟต์แวร์หรือฮาร์ดแวร์ ขัดจังหวรฮาร์ดแวร์เรียกว่า (เพียง) ขัดจังหวะในขณะที่การขัดจังหวะซอฟต์แวร์เรียกว่าข้อยกเว้นหรือกับดัก ตัวควบคุมจะถูกโอนไปยัง subroutine พิเศษเรียกว่า ISR (Interrupt Service Routine) ซึ่งสามารถจัดการกับเงื่อนไขที่เกิดจาก interrupt ได้

ตามที่กล่าวมาข้างต้นคำว่า Interrupt มักถูกสงวนไว้สำหรับการขัดจังหวะฮาร์ดแวร์ เป็นการขัดจังหวะการควบคุมโปรแกรมที่เกิดจากเหตุการณ์ฮาร์ดแวร์ภายนอก ที่นี่ภายนอกหมายความว่าภายนอกกับ CPU ฮาร์ดแวร์ขัดจังหวะมักมาจากแหล่งต่างๆเช่นชิปจับเวลาอุปกรณ์ต่อพ่วง (คีย์บอร์ดเมาส์ ฯลฯ) พอร์ต I / O (serial, parallel, ฯลฯ), ดิสก์ไดรฟ์, นาฬิกา CMOS, การ์ดขยาย (เสียง การ์ด, การ์ดแสดงผล ฯลฯ) นั่นหมายความว่าฮาร์ดแวร์ขัดจังหวะเกือบจะไม่เกิดขึ้นเนื่องจากเหตุการณ์บางอย่างที่เกี่ยวข้องกับโปรแกรมการรัน ตัวอย่างเช่นเหตุการณ์เช่นการกดคีย์บนแป้นพิมพ์โดยผู้ใช้หรือตัวจับเวลาฮาร์ดแวร์ภายในที่หมดเวลาสามารถเพิ่มการขัดจังหวะแบบนี้ได้และสามารถแจ้ง CPU ว่าอุปกรณ์บางอย่างต้องการความสนใจบางอย่าง ในสถานการณ์เช่นว่า CPU จะหยุดทำอะไรก็ตาม (เช่นหยุดทำงานชั่วคราวในปัจจุบัน) ให้บริการตามที่อุปกรณ์ต้องการและจะกลับสู่โปรแกรมปกติ

อะไรคือความแตกต่างระหว่าง System Call และ Interrupt?

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