การขัดจังหวะในบริบทของระบบปฏิบัติการหมายถึงอะไร


9

ฉันตัดสินใจที่จะอ่านแนวคิดระบบปฏิบัติการโดย Silberschatz, Galvin Gagne (รุ่นที่ 8) ในช่วงฤดูร้อน ฉันได้รับหัวข้อที่ทำให้ฉันสับสน - ขัดจังหวะและบทบาทของพวกเขาเนื่องจากเกี่ยวข้องกับระบบปฏิบัติการ

ข้อความบอกว่าระบบปฏิบัติการจะเริ่มกระบวนการแรกเช่น "init" จากนั้นรอให้เกิดเหตุการณ์ "" และเหตุการณ์นี้มักจะมีสัญญาณจากการขัดจังหวะ ข้อความยังบอกด้วยว่าการขัดจังหวะอาจมาจากฮาร์ดแวร์หรือซอฟต์แวร์ มันทำงานอย่างไรในรายละเอียดเพิ่มเติมเล็กน้อย? ระบบปฏิบัติการขับเคลื่อนด้วยอินเตอร์รัปต์หรือไม่

ฉันแค่มองหาความเข้าใจภาพรวมขนาดใหญ่

คำตอบ:


8

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

เกี่ยวกับการขัดจังหวะของฮาร์ดแวร์หรือซอฟต์แวร์การขัดจังหวะของฮาร์ดแวร์หมายถึงสิ่งที่มาจากฮาร์ดแวร์ เช่น. อุปกรณ์ I / O เช่นแป้นพิมพ์ ฯลฯ การขัดจังหวะของฮาร์ดแวร์ทำให้ตัวประมวลผลบันทึกสถานะและเริ่มการทำงานของตัวจัดการขัดจังหวะ ในทางกลับกันการขัดจังหวะของซอฟต์แวร์เป็นคำแนะนำในชุดคำสั่งซึ่งทำให้โปรเซสเซอร์เปลี่ยนระดับสิทธิ์จากผู้ใช้งานที่เรียกว่า context-switch รายละเอียดเหล่านี้จะกล่าวถึงในภายหลังในหนังสือข้อความ


4

อินเตอร์รัปต์อนุญาตให้ระบบปฏิบัติการสังเกตเห็นเหตุการณ์ภายนอกเช่นการคลิกเมาส์ การขัดจังหวะของซอฟต์แวร์ซึ่งรู้จักกันดีในนามข้อยกเว้นทำให้ระบบปฏิบัติการจัดการเหตุการณ์ที่ผิดปกติเช่นข้อผิดพลาดหารด้วยศูนย์ที่มาจากการเรียกใช้รหัส

ลำดับเหตุการณ์มักเป็นดังนี้:

  1. ฮาร์ดแวร์ส่งสัญญาณการขัดจังหวะตัวประมวลผล
  2. โปรเซสเซอร์จะหยุดการทำงานชั่วคราวและหยุดการทำงานของซอฟต์แวร์ที่กำลังทำงานอยู่
  3. โปรเซสเซอร์ข้ามไปยังฟังก์ชันตัวจัดการขัดจังหวะที่ตรงกันในระบบปฏิบัติการ
  4. ตัวจัดการขัดจังหวะจะรันเส้นทางของมันและกลับมาจากการขัดจังหวะ
  5. โปรเซสเซอร์ดำเนินการต่อที่เดิมค้างไว้ในซอฟต์แวร์ที่รันก่อนหน้านี้

การขัดจังหวะที่สำคัญที่สุดสำหรับระบบปฏิบัติการคือตัวจับเวลาการขัดจังหวะ ไทม์เมอร์อินเตอร์รัปต์อนุญาตให้ระบบปฏิบัติการกลับมาควบคุมเป็นระยะ ๆ จากกระบวนการผู้ใช้ที่กำลังทำงานอยู่ จากนั้นระบบปฏิบัติการสามารถตัดสินใจที่จะกำหนดเวลากระบวนการอื่นกลับไปที่กระบวนการเดียวกันทำความสะอาดและอื่น ๆ ตัวจับเวลาเห็บขัดจังหวะให้รากฐานสำหรับแนวคิดของการทำงานมัลติทาสกิ้งแบบยึดเอาเสียก่อน


4

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

CPU มีกลไกบางอย่างสำหรับการฟังการขัดจังหวะและวิธีการกำหนดค่า "สิ่งที่ต้องทำ" เมื่อการขัดจังหวะหลายชนิดเกิดขึ้น สิ่งนี้ทำให้ระบบปฏิบัติการสามารถจัดการได้ว่าจะได้รับแจ้งเมื่ออุปกรณ์ฮาร์ดแวร์ทำสิ่งต่าง ๆ (รวมถึงนาฬิกาฮาร์ดแวร์ที่สำคัญซึ่งจะสร้างการขัดจังหวะตามช่วงเวลาปกติ) ผ่านการกำหนดค่าการจัดการขัดจังหวะของ CPU รหัสที่กำหนดในระบบปฏิบัติการจะได้รับการควบคุมทุกครั้งที่มีการขัดจังหวะ

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

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

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


3

ระบบปฏิบัติการขับเคลื่อนด้วยอินเตอร์รัปต์ ซึ่งหมายความว่า:

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

ตัวอย่างของคำสั่งที่ไม่ถูกต้องคือเมื่อโปรแกรมพยายามเข้าถึงพื้นที่หน่วยความจำของโปรแกรมอื่นโดยไม่ได้รับอนุญาต


การขัดจังหวะไม่จำเป็นต้องเป็นสิ่งที่ไม่ถูกต้องหรือไม่ถูกต้องตามที่อธิบายไว้

ฉันอธิบายถึงการขัดจังหวะแทร็บเท่าที่ฉันรู้ว่ามันถูกสร้างขึ้นเนื่องจากข้อผิดพลาดหรือคำแนะนำที่ไม่ถูกต้อง ขอบคุณสำหรับการแจ้งเตือนฉัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.