ระบบปฏิบัติการมีงานมากมายเรียงกันทุกนาที มันถูกออกแบบมาเพื่อเชื่อมต่อโปรแกรมทั้งหมดและดำเนินการตามข้อเสนองาน การจัดกำหนดการกระบวนการเป็นงานที่สำคัญสำหรับระบบปฏิบัติการ ระบบปฏิบัติการประมวลผลงานต่างๆ ในสถานะต่างๆ พร้อมวิ่งและรอ
เหตุผลสำคัญสำหรับการจัดกำหนดการกระบวนการคือช่วยให้ระบบปฏิบัติการจัดสรรช่วงเวลาที่แน่นอนของโปรเซสเซอร์สำหรับทุกกระบวนการ งานหลักของการตั้งเวลากระบวนการคือการทำให้ตัวประมวลผลทำงานตลอดเวลาได้อย่างราบรื่นเพื่อรับประสบการณ์เวลารอขั้นต่ำสำหรับโปรแกรมทั้งหมด
มีสถานะกระบวนการอยู่สามสถานะ: กำลังทำงาน รอ และพร้อม การจัดกำหนดการกระบวนการมีคิวที่แตกต่างกันสำหรับสถานะต่างๆ งานทั้งหมดที่มีสถานะคล้ายคลึงกันจะถูกส่งไปยังคิวเดียวกัน หากสถานะของงานใดๆ เปลี่ยนไป สถานะจะเปลี่ยนเป็นคิวที่เกี่ยวข้อง
มีสามประเภทของคิวที่พร้อมใช้งานสำหรับการจัดกำหนดการกระบวนการ ได้แก่ คิวงาน คิวพร้อม และคิวอุปกรณ์ กระบวนการของระบบถูกเก็บไว้ในคิวงาน คิวพร้อมจัดลำดับงานทั้งหมดที่รอดำเนินการในขณะที่คิวอุปกรณ์ดูแลอุปกรณ์ต่อพ่วงและอุปกรณ์ระบบภายใน
ตัวกำหนดตารางเวลาระยะสั้นและระยะยาว
ความแตกต่างระหว่างตัวจัดกำหนดการระยะสั้นและตัวจัดกำหนดการระยะยาวคือวิธีการดำเนินการงาน Short Term Scheduler ช่วยอำนวยความสะดวกในการเลือกกระบวนการจาก Ready Queue และจัดสรรให้กับโปรเซสเซอร์เพื่อดำเนินการ ในขณะที่ Long term scheduler จะช่วยในการเลือกกระบวนการจากกลุ่มงานและจัดสรรในคิวที่พร้อม
สองประเภทคือตัวจัดกำหนดการทำงานควบคู่กันเพื่ออำนวยความสะดวกในการจัดกำหนดการกระบวนการ ตัวกำหนดตารางเวลาระยะสั้นและระยะยาวเป็นซอฟต์แวร์ระบบที่จัดการการจัดตารางกระบวนการอย่างมีประสิทธิภาพ
ตารางเปรียบเทียบระหว่างตัวกำหนดตารางเวลาระยะสั้นและระยะยาว (ในรูปแบบตาราง)
พารามิเตอร์ของการเปรียบเทียบ | ตัวกำหนดตารางเวลาระยะสั้น | ตัวกำหนดตารางเวลาระยะยาว |
---|---|---|
งาน | จะเลือกกระบวนการจากคิว Ready เพื่อส่งไปยัง CPU | กระบวนการถูกเลือกจากกลุ่มงานส่งต่อไปยังคิวที่พร้อม |
ความถี่ | ความถี่ของการจัดตารางระยะสั้นมีมากขึ้น | ตัวจัดกำหนดการระยะยาวไม่บ่อยเท่ากับระยะสั้นในการจัดกำหนดการกระบวนการ |
การควบคุมโปรแกรมหลายโปรแกรม | ตัวจัดกำหนดการระยะสั้นมีการควบคุมน้อยกว่าสำหรับการเขียนโปรแกรมหลายรายการ | Long-term Scheduler สามารถควบคุมการเขียนโปรแกรมหลายตัวได้ |
ระบบแบ่งเวลา | ตัวจัดกำหนดการระยะสั้นมีสถานะน้อยที่สุดในระบบการแบ่งปันเวลา | ตัวกำหนดตารางเวลาระยะยาวไม่มีอยู่ในระบบการแบ่งปันเวลา |
ชื่อทางเลือก | มันถูกเรียกว่าเป็น CPU Scheduler | เรียกอีกอย่างว่าตัวกำหนดตารางเวลางาน |
ตัวกำหนดตารางเวลาระยะสั้นคืออะไร?
ตัวจัดกำหนดการระยะสั้นคือซอฟต์แวร์ระบบที่เลือกกระบวนการจากคิวที่พร้อมใช้งานและส่งไปยังตัวประมวลผลเพื่อดำเนินการ ตัวจัดกำหนดการระยะสั้นจะเรียกว่าตัวจัดกำหนดการ CPU
ในระบบการแบ่งปันเวลา ตัวกำหนดตารางเวลาระยะสั้นมีอยู่น้อยที่สุด การดำเนินการของตัวจัดกำหนดการในระยะสั้นเกิดขึ้นบ่อยครั้งและบ่อยกว่าตัวจัดกำหนดการระยะยาวด้วย
ระดับของมัลติโปรแกรมมิ่งยังมีจำกัดและควบคุมได้น้อยกว่า ตัวกำหนดตารางเวลาระยะสั้นใช้อัลกอริธึมที่ตัดสินใจว่ากระบวนการใดจะถูกกำหนดเวลาสำหรับการดำเนินการ
การดำเนินการของกระบวนการใช้เวลาสองสามมิลลิวินาที และนี่คือสาเหตุหนึ่งที่ทำให้บ่อยกว่าตัวจัดกำหนดการระยะยาว อัลกอริธึมที่ตัดสินใจเลือกกระบวนการมีความสำคัญอย่างยิ่งเนื่องจากเป็นตัวกำหนดว่าจะดำเนินการใดต่อไป
ต้องเลือกกระบวนการที่มีเวลารอนานจากคิวที่พร้อม นั่นหมายถึงว่าเมื่อกระบวนการถูกเลือกแล้ว กระบวนการอื่นๆ ทั้งหมดจะรอถึงตาของมัน
หากตัวกำหนดตารางเวลาระยะสั้นทำผิดพลาดในการเลือกกระบวนการที่มีเวลาต่อเนื่องนาน จะเกิดข้อผิดพลาดที่เรียกว่าความอดอยาก
ความอดอยากเป็นความผิดพลาดของตัวจัดกำหนดการในระยะสั้นในการดำเนินการตามกระบวนการที่ถูกต้อง นี้สามารถสังเกตได้ในความล่าช้าในการเปิดไฟล์, ความล่าช้าในการเปิดโปรแกรมที่ขอ
ตัวกำหนดตารางเวลาระยะยาวคืออะไร?
ตัวกำหนดตารางเวลาระยะยาวคือซอฟต์แวร์ระบบที่เลือกกระบวนการจากกลุ่มงานและนำออกไปยังคิวที่พร้อมสำหรับกระบวนการต่อไปโดยตัวจัดกำหนดการระยะสั้น มีหลายกรณีที่ส่งโปรแกรมจำนวนมากเพื่อดำเนินการ และหลายครั้งที่การดำเนินการทั้งหมดในทันทีไม่สามารถทำได้
งานเหล่านี้ถูกเก็บไว้ในพูลที่เรียกว่าพูลงาน งานต่างๆ จะต้องรอถึงตาที่ของมัน ในขณะที่ตัวกำหนดตารางเวลาระยะยาวจะเลือกกระบวนการที่มีเวลารอนาน และส่งไปยังคิวที่พร้อมสำหรับการดำเนินการ
ตัวจัดกำหนดการระยะยาวเรียกอีกอย่างว่าตัวจัดกำหนดการงาน ความถี่ของกระบวนการของตัวจัดกำหนดการระยะยาวจะน้อยกว่าเมื่อเปรียบเทียบกับตัวกำหนดตารางเวลาระยะสั้น
ตัวกำหนดตารางเวลาระยะยาวจะจัดการหลายโปรแกรมในแบบอเนกประสงค์ต่างจากตัวจัดกำหนดการระยะสั้น เป็นโปรแกรมที่แยกโปรแกรมตามไทม์ไลน์และฟีดไปยังคิวที่พร้อม
ตัวกำหนดตารางเวลาระยะยาวมีความรับผิดชอบมากขึ้นในการเลือกกระบวนการที่ทำให้งานอินพุต/เอาท์พุตและโปรเซสเซอร์เชื่อมโยงกันในแนวเดียวกัน สิ่งนี้ทำให้มั่นใจได้ถึงปริมาณงานของระบบที่เหมาะสมที่สุดและการทำงานที่เหมาะสมด้วย
เป็นที่เข้าใจว่างานหลักของตัวจัดกำหนดการระยะยาวคือการจัดเตรียมงานแบบผสมให้กับคิวที่พร้อม สิ่งนี้ถูกเลือกเพิ่มเติมโดยตัวกำหนดตารางเวลาระยะสั้นสำหรับการดำเนินการ
ความแตกต่างหลักระหว่างตัวกำหนดตารางเวลาระยะสั้นและระยะยาว
- ดิ ความแตกต่างที่สำคัญระหว่างตัวจัดกำหนดการระยะสั้นและตัวกำหนดตารางเวลาระยะยาว คือ ตัวจัดกำหนดการระยะสั้นจะเลือกกระบวนการจากคิวพร้อมทีละรายการแล้วป้อนไปยัง CPU เพื่อดำเนินการต่อไป ในขณะที่ตัวจัดกำหนดการระยะยาวจะเลือกกระบวนการจากที่เก็บข้อมูลจำนวนมากของงานที่เรียกว่ากลุ่มงาน และส่งไปยังคิวที่พร้อม.
- ตัวจัดกำหนดการระยะสั้นมักเลือกกระบวนการจากคิวที่พร้อมใช้บ่อยกว่าตัวจัดกำหนดการระยะยาวจากกลุ่มงาน
- ตัวกำหนดตารางเวลาระยะสั้นมีการควบคุมน้อยกว่าสำหรับการเขียนโปรแกรมหลายรายการในขณะที่ตัวกำหนดตารางเวลาระยะยาวจะควบคุมระดับของการเขียนโปรแกรมหลายรายการ
- ตัวจัดกำหนดการระยะสั้นมีอยู่น้อยที่สุดในระบบการแบ่งปันเวลา ในขณะที่ตัวจัดกำหนดการระยะยาวไม่มีอยู่ในระบบการแบ่งปันเวลา
- ตัวกำหนดตารางเวลาระยะสั้นจะจัดสรรงานให้กับ CPU สำหรับกระบวนการของมัน ดังนั้นจึงเรียกอีกอย่างว่าตัวกำหนดตารางเวลาของ CPU ในขณะที่ตัวจัดกำหนดการระยะยาวจะจัดสรรงานเพื่อให้คิวพร้อมสำหรับการดำเนินการต่อไปโดยตัวจัดกำหนดการระยะสั้นจะเรียกว่าเป็นงาน ตัวกำหนดตารางเวลา
บทสรุป
การจัดกำหนดการกระบวนการมีวัตถุประสงค์ที่สำคัญในการสร้างสมดุลระหว่างการตอบสนองและการใช้ประโยชน์ สิ่งนี้จะเพิ่มจำนวนผู้ใช้ให้สูงสุดโดยเสนอเวลารอขั้นต่ำสำหรับโปรแกรมในการประมวลผล กำหนดการจะเกิดขึ้นควบคู่กันไปและต้องไม่พลาดในไทม์ไลน์
ฟังก์ชันการทำงานของตัวจัดกำหนดการระยะยาวและระยะสั้นมีความสำคัญอย่างยิ่งในการทำให้ระบบทำงานได้อย่างราบรื่น หากมีข้อผิดพลาดในการดำเนินการ ก็สามารถระบุได้อย่างง่ายดายว่ากำหนดการระยะสั้นมีข้อบกพร่องหรือตัวกำหนดตารางเวลาระยะยาว โดยส่วนใหญ่ ระบบอาจช้าในการเสนอคำสั่งที่หลากหลายสำหรับ CPU ในการประมวลผล
อย่างไรก็ตาม ควรสังเกตว่า ในการเข้าถึง CPU นั้น จะต้องผ่านกระบวนการคัดเลือกตัวกำหนดตารางเวลาระยะสั้นและระยะยาว
- https://ieeexplore.ieee.org/abstract/document/5532867/
- https://arxiv.org/abs/1111.5348