ความแตกต่างระหว่างการขัดจังหวะและการสำรวจในระบบปฏิบัติการ
เนื้อหา
เรามีอุปกรณ์ภายนอกมากมายที่ต่อกับ CPU เช่นเมาส์คีย์บอร์ดสแกนเนอร์เอ่อ ฯลฯ อุปกรณ์เหล่านี้ต้องการ CPU สมมติว่าซีพียูไม่ว่างในการแสดง PDF และคุณคลิกไอคอนเครื่องเล่นสื่อหน้าต่างบนเดสก์ท็อป แม้ว่า CPU จะไม่มีความคิดใด ๆ เมื่อมีเหตุการณ์เช่นนี้เกิดขึ้น แต่ก็ต้องตอบสนองต่ออินพุตดังกล่าวจากอุปกรณ์ I / O การขัดจังหวะและการหยั่งสัญญาณเป็นสองวิธีในการจัดการเหตุการณ์ที่สร้างขึ้นโดยอุปกรณ์ที่สามารถเกิดขึ้นได้ทุกเมื่อในขณะที่ CPU ไม่ว่างในการดำเนินการตามกระบวนการอื่น
การสำรวจและการขัดจังหวะให้ CPU หยุดสิ่งที่กำลังทำอยู่และตอบสนองต่อภารกิจที่สำคัญกว่า การสำรวจและการขัดจังหวะจะแตกต่างกันในหลาย ๆ ด้าน แต่จุดพื้นฐานที่ทำให้ Polling and Interrupt นั้นแตกต่างกันก็คือ การลงคะแนนเลือกตั้ง CPU จะทำการตรวจสอบอุปกรณ์ I / O ตามช่วงเวลาปกติไม่ว่าจะต้องการบริการ CPU หรือไม่ก็ตาม ขัดจังหวะอุปกรณ์ I / O ขัดจังหวะ CPU และบอก CPU ว่าต้องการบริการ CPU ฉันได้พูดถึงความแตกต่างบางประการระหว่างการขัดจังหวะและการหยั่งเสียงในแผนภูมิเปรียบเทียบด้านล่างโปรดดู
- แผนภูมิเปรียบเทียบ
- คำนิยาม
- ความแตกต่างที่สำคัญ
- ข้อสรุป
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | ขัดจังหวะ | การลงคะแนนเลือกตั้ง |
---|---|---|
ขั้นพื้นฐาน | อุปกรณ์แจ้งเตือน CPU ว่าจำเป็นต้องให้ความสนใจ CPU | CPU จะตรวจสอบสถานะของอุปกรณ์อย่างต่อเนื่องว่าจะต้องใช้ CPU หรือไม่ |
กลไก | การขัดจังหวะเป็นกลไกฮาร์ดแวร์ | โพลคือโพรโทคอล |
บริการ | ตัวจัดการขัดจังหวะให้บริการอุปกรณ์ | CPU บริการอุปกรณ์ |
การแสดง | บรรทัดคำขอขัดจังหวะระบุว่าอุปกรณ์ต้องการการบริการ | บิตพร้อม Comand บ่งชี้ว่าอุปกรณ์ต้องการการบริการ |
ซีพียู | CPU ถูกรบกวนเมื่ออุปกรณ์ต้องการการบริการซึ่งจะช่วยลดรอบการทำงานของ CPU | ซีพียูต้องรอและตรวจสอบว่าอุปกรณ์ต้องการการบริการที่ทำให้สิ้นเปลืองรอบ CPU มากหรือไม่ |
การเกิดขึ้น | การขัดจังหวะสามารถเกิดขึ้นได้ตลอดเวลา | CPU โพลอุปกรณ์ในช่วงเวลาปกติ |
อย่างมีประสิทธิภาพ | การขัดจังหวะจะไม่มีประสิทธิภาพเมื่ออุปกรณ์ขัดจังหวะการทำงานของ CPU อย่างต่อเนื่อง | การสำรวจจะไม่มีประสิทธิภาพเมื่อ CPU ไม่ค่อยพบอุปกรณ์ที่พร้อมให้บริการ |
ตัวอย่าง | ให้กริ่งดังขึ้นแล้วเปิดประตูเพื่อตรวจสอบว่าใครมา | เปิดประตูอย่างต่อเนื่องเพื่อตรวจสอบว่ามีใครมาหรือไม่ |
ความหมายของการขัดจังหวะ
การขัดจังหวะคือ กลไกฮาร์ดแวร์ ที่เปิดใช้งาน CPU เพื่อตรวจสอบว่าอุปกรณ์ต้องการความสนใจ ซีพียูมีสาย บรรทัดคำขอขัดจังหวะ ซึ่งตรวจสอบโดย CPU หลังจากสั่งงานทุกคำสั่ง เมื่อ CPU ตรวจจับสัญญาณขัดจังหวะบนบรรทัดคำขอขัดจังหวะ CPU จะหยุดงานที่กำลังดำเนินการอยู่ในปัจจุบันและตอบกลับไปยังอุปกรณ์ขัดจังหวะโดยอุปกรณ์ I / O โดยผ่านการควบคุมไปยัง ตัวจัดการขัดจังหวะ. ตัวจัดการขัดจังหวะแก้ไขการขัดจังหวะโดยการให้บริการอุปกรณ์
แม้ว่า CPU จะไม่ทราบว่าจะเกิดการขัดจังหวะเมื่อใดก็ตามที่สามารถเกิดขึ้นได้ทุกเวลา แต่จะต้องตอบสนองต่อการขัดจังหวะเมื่อใดก็ตามที่เกิดขึ้น
เมื่อตัวจัดการขัดจังหวะเสร็จสิ้นการดำเนินการขัดจังหวะแล้ว CPU การดำเนินการต่อ การดำเนินการของภารกิจที่หยุดทำงานเพื่อตอบสนองการอินเตอร์รัปต์ ซอฟต์แวร์, ฮาร์ดแวร์, ผู้ใช้งาน, ข้อผิดพลาดบางอย่างในโปรแกรมฯลฯ สามารถสร้างการขัดจังหวะ การขัดจังหวะการจัดการลักษณะของ CPU จะนำไปสู่ มัลติทาสกิ้ง, เช่นผู้ใช้สามารถทำงานต่าง ๆ ได้หลายอย่างในเวลาเดียวกัน
หากมีการส่งอินเตอร์รัปต์มากกว่าหนึ่งตัวไปยัง CPU ตัวจัดการการขัดจังหวะจะช่วยในการจัดการการขัดจังหวะที่รอการประมวลผล ในขณะที่ตัวจัดการขัดจังหวะได้รับ ทริกเกอร์ โดยการรับสัญญาณขัดจังหวะมัน จัดลำดับความสำคัญ อินเตอร์รัปต์ที่รอการประมวลผลโดย CPU และจัดเรียงใน คิว เพื่อรับบริการ
ความหมายของการสำรวจ
ดังที่เราเห็นในอินเทอร์รัปต์อินพุตจากอุปกรณ์ I / O สามารถมาถึงได้ตลอดเวลาเพื่อขอให้ซีพียูประมวลผล การสำรวจความคิดเห็นเป็น โปรโตคอล ที่แจ้ง CPU ว่าอุปกรณ์ต้องการความสนใจ แตกต่างจากในอินเตอร์รัปต์ซึ่งอุปกรณ์บอก CPU ว่าต้องใช้การประมวลผล CPU ถาม อุปกรณ์ I / O ไม่ว่าจะต้องการการประมวลผล CPU
ซีพียู อย่างต่อเนื่อง ทดสอบอุปกรณ์แต่ละตัวที่ติดตั้งเพื่อตรวจสอบว่าอุปกรณ์ใด ๆ ต้องการความสนใจของ CPU หรือไม่ ทุกๆ เครื่อง มี คำสั่งพร้อม บิตที่บ่งชี้สถานะของอุปกรณ์นั้นว่ามีคำสั่งบางอย่างที่ต้องใช้งานโดย CPU หรือไม่ หากตั้งค่าบิตคำสั่ง 1จากนั้นก็มีคำสั่งบางอย่างที่จะดำเนินการอื่นถ้าบิตเป็น 0จากนั้นไม่มีคำสั่ง ซีพียู มี ยุ่งนิดหน่อย ที่ระบุสถานะของ CPU ไม่ว่าจะไม่ว่างหรือไม่ หากตั้งค่าบิตไม่ว่าง 1จากนั้นจะไม่ว่างในการเรียกใช้งานคำสั่งของอุปกรณ์บางอย่างมิฉะนั้นจะเป็น 0.
อัลกอริทึมสำหรับการสำรวจ
- เมื่ออุปกรณ์มีคำสั่งบางอย่างที่ต้องดำเนินการโดย CPU มันจะตรวจสอบ CPU ที่ยุ่งอยู่เรื่อย ๆ จนกว่ามันจะกลายเป็นชัดเจน (0)
- เมื่อบิตไม่ว่างกลายเป็นชัดเจนอุปกรณ์จะกำหนดบิตการเขียนลงในคำสั่งลงทะเบียนและเขียนไบต์ในการลงทะเบียนข้อมูล
- ตอนนี้อุปกรณ์จะตั้งค่า (1) บิตพร้อมคำสั่ง
- เมื่อ CPU ตรวจสอบบิตพร้อมคำสั่งของอุปกรณ์และพบว่าตั้งค่า (1) มันจะตั้งค่า (1) บิตที่ไม่ว่าง
- จากนั้นซีพียูจะอ่านคำสั่งลงทะเบียนของอุปกรณ์และดำเนินการคำสั่งของอุปกรณ์
- หลังจากการดำเนินการคำสั่ง CPU จะล้าง (0) บิตพร้อมคำสั่งบิตข้อผิดพลาดของอุปกรณ์เพื่อระบุการดำเนินการที่ประสบความสำเร็จของคำสั่งของอุปกรณ์และเพิ่มเติมมันล้าง (0) บิตที่ไม่ว่างยังเพื่อแสดงว่า CPU มีอิสระในการดำเนินการ คำสั่งของอุปกรณ์อื่น ๆ
- ในการขัดจังหวะอุปกรณ์จะแจ้งให้ CPU ทราบว่าจำเป็นต้องให้บริการในขณะที่ในการเรียกใช้ CPU ตรวจสอบซ้ำ ๆ ว่าอุปกรณ์นั้นต้องการการบริการหรือไม่
- ขัดจังหวะเป็น ฮาร์ดแวร์ กลไก ในขณะที่ CPU มีสาย บรรทัดคำขอขัดจังหวะ สัญญาณที่เกิดการขัดจังหวะ ในทางกลับกันการสำรวจคือ โปรโตคอล ที่ตรวจสอบอย่างต่อเนื่อง บิตควบคุม เพื่อแจ้งว่าอุปกรณ์มีบางสิ่งที่จะดำเนินการหรือไม่
- ตัวจัดการขัดจังหวะ จัดการการขัดจังหวะที่สร้างโดยอุปกรณ์ ในทางกลับกันในการเลือกตั้ง ซีพียู บริการอุปกรณ์เมื่อพวกเขาต้องการ
- สัญญาณขัดจังหวะโดย บรรทัดคำขอขัดจังหวะ. อย่างไรก็ตาม คำสั่งพร้อม บิตระบุว่าอุปกรณ์ต้องการการบริการ
- ในการขัดจังหวะ CPU จะถูกรบกวนเมื่ออุปกรณ์ใด ๆ ขัดจังหวะ ในทางกลับกันในการทำโพล, CPU เสียรอบ CPU มากโดยการตรวจสอบบิตพร้อมคำสั่งของอุปกรณ์ทุกอย่างซ้ำ ๆ
- การขัดจังหวะสามารถเกิดขึ้นได้ที่ ทันทีทันใด ในขณะที่ CPU ยังทำการสำรวจอุปกรณ์ที่ ช่วงเวลาปกติ.
- การทำโพลจะไม่มีประสิทธิภาพเมื่อ CPU ทำการสำรวจอุปกรณ์และไม่ค่อยพบอุปกรณ์ใด ๆ ที่พร้อมให้บริการ ในทางตรงกันข้ามการขัดจังหวะจะไม่มีประสิทธิภาพเมื่ออุปกรณ์หยุดการประมวลผล CPU ซ้ำ ๆ
สรุป:
ทั้งการสำรวจและการขัดจังหวะจะมีประสิทธิภาพในการเข้าร่วมอุปกรณ์ I / O แต่พวกเขาจะไม่มีประสิทธิภาพในเงื่อนไขบางอย่างตามที่กล่าวไว้ข้างต้น