การสลับบริบทเกิดขึ้นในระบบที่คิวพร้อมมีเพียงกระบวนการเดียวและระบบใดที่ใช้การกำหนดเวลาแบบวนรอบหรือไม่
สมมติว่า cpu burst ปัจจุบันของกระบวนการเดียวครอบคลุมมากกว่าหนึ่งส่วนของอัลกอริธึมการปัดเศษ
เหตุผลของฉันมีดังนี้
ขั้นตอนที่อาจเกิดขึ้นเมื่อมีการขัดจังหวะตัวจับเวลาเกิดขึ้นในกรณีทั่วไปคือ
- ขัดจังหวะเกิดขึ้น สลับไปที่โหมดเคอร์เนล
- OS บันทึกบริบทปัจจุบันลงใน PCB (บันทึกการลงทะเบียน สถานะกระบวนการ และข้อมูลการจัดการหน่วยความจำของกระบวนการปัจจุบัน)
- ดำเนินการเฉพาะสถาปัตยกรรมหลายอย่าง รวมถึงการล้างข้อมูลและแคชคำสั่งและ TLB
- ใส่กระบวนการปัจจุบันลงในคิวที่พร้อม
- เลือกกระบวนการใหม่เพื่อดำเนินการ
- โหลดบริบทจาก PCB ของกระบวนการนั้น
- สลับไปที่โหมดผู้ใช้ เริ่มดำเนินการกระบวนการใหม่
ตอนนี้ฉันกำลังคิดว่าระบบปฏิบัติการอาจตรวจสอบคิวที่พร้อมใช้งานก่อนและตรวจสอบว่ามีกระบวนการอื่นหรือไม่ หากไม่มีก็ไม่จำเป็นต้องเปลี่ยนบริบท ดังนั้นการจัดการการขัดจังหวะตัวจับเวลาจะต้องสลับระหว่างโหมดผู้ใช้และโหมดเคอร์เนล การตรวจสอบ Q ที่พร้อม และสลับกลับไปยังโหมดผู้ใช้เพื่อดำเนินการกระบวนการต่อ
นี่คือสิ่งที่เกิดขึ้นเหรอ? หรือการสลับบริบทที่เหมาะสมที่เกี่ยวข้องกับการบันทึกสถานะปัจจุบันของกระบวนการเดียวโดยไม่จำเป็นและการกู้คืนสิ่งเดียวกันนั้นเกิดขึ้นหรือไม่
หากเกิดภายหลัง มีเหตุผลพิเศษหรือไม่?
ความสับสนนี้เกิดขึ้นเนื่องจากคำถามในข้อสอบเกี่ยวกับการคำนวณเวลาที่ใช้ในการสลับบริบทในสถานการณ์ดังกล่าว คำตอบที่ให้มาบ่งบอกว่ามีการสลับบริบทเกิดขึ้น
ฉันหวังว่าผู้ที่ได้ดูโค้ดเคอร์เนลจะสามารถเข้าใจเรื่องนี้ได้ ดังนั้นคำถามนี้เกี่ยวกับ stackoverflow