อ่าน 2 นาที
คิวอินพุต
ใน วิทยาการคอมพิวเตอร์ คิว อินพุต คือกลุ่มของกระบวนการใน หน่วยเก็บข้อมูล ที่รอการนำเข้าสู่ หน่วยความจำ เพื่อเรียกใช้โปรแกรม คิวอินพุตส่วนใหญ่ใช้ในการจัดตารางเวลาของระบบปฏิบัติการ...
คิวอินพุต
ในวิทยาการคอมพิวเตอร์คิวอินพุตคือกลุ่มของกระบวนการในหน่วยเก็บข้อมูลที่รอการนำเข้าสู่หน่วยความจำเพื่อเรียกใช้โปรแกรม คิวอินพุตส่วนใหญ่ใช้ในการจัดตารางเวลาของระบบปฏิบัติการ ซึ่งเป็นเทคนิคในการกระจายทรัพยากรระหว่างกระบวนการต่างๆ คิวอินพุตไม่เพียงแต่ใช้กับระบบปฏิบัติการ (OS) เท่านั้น แต่ยังสามารถนำไปใช้กับการจัดตารางเวลาภายในอุปกรณ์เครือข่ายได้อีกด้วย จุดประสงค์ของการจัดตารางเวลาคือเพื่อให้แน่ใจว่าทรัพยากรได้รับการกระจายอย่างยุติธรรมและมีประสิทธิภาพ ดังนั้นจึงช่วยปรับปรุงประสิทธิภาพของระบบ
โดยพื้นฐานแล้ว คิวคือกลุ่มของข้อมูลที่มีการเพิ่มเข้ามาจากตำแหน่งด้านหลังและถูกลบออกจากตำแหน่งด้านหน้า มีคิวหลายประเภท และวิธีการทำงานอาจแตกต่างกันอย่างสิ้นเชิง ระบบปฏิบัติการใช้คิวแบบมาก่อนได้ก่อน (First-Come, First-Served), เวลาที่เหลือสั้นที่สุด (Shortest remaining time) , การจัดตารางเวลาแบบลำดับความสำคัญคงที่แบบแทรกแซง (Fixed-priority pre-emptive scheduling) , การจัดตารางเวลาแบบ วนรอบ (Round-robin scheduling)และการจัดตารางเวลาคิวหลายระดับ (Multilevel queue scheduling) อุปกรณ์เครือข่ายใช้คิวแบบเข้าก่อนออกก่อน (First-In-First-Out), คิวแบบถ่วงน้ำหนักที่เป็นธรรม (Weighted fair queue), คิวลำดับความสำคัญ (Priority queue)และคิวแบบกำหนดเอง (Custom queue)
ระบบปฏิบัติการ
ในระบบปฏิบัติการ กระบวนการต่างๆ จะถูกโหลดเข้าไปในหน่วยความจำ และรอคิวที่จะถูกประมวลผลโดยหน่วยประมวลผลกลาง (CPU) การจัดตารางเวลาของ CPU จะจัดการสถานะของกระบวนการและตัดสินใจว่ากระบวนการใดจะถูกประมวลผลเป็นลำดับถัดไปโดยใช้คิวอินพุต
เข้าก่อนออกก่อน
กระบวนการแบบเข้าก่อนออกก่อน (First-in, First-out) จะถูกดึงออกจากคิวตามลำดับที่ใส่เข้าไปในคิว ด้วยวิธีนี้ ทุกกระบวนการจะได้รับการปฏิบัติอย่างเท่าเทียมกัน หากมีสองกระบวนการที่มีลำดับความสำคัญต่างกัน และกระบวนการที่มีลำดับความสำคัญต่ำกว่าเข้าคิวเป็นอันดับแรก กระบวนการนั้นจะถูกดำเนินการก่อน วิธีนี้อาจไม่เหมาะสมหากกระบวนการต่างๆ มีลำดับความสำคัญต่างกัน โดยเฉพาะอย่างยิ่งหากกระบวนการเหล่านั้นใช้เวลานาน
เวลาที่เหลือน้อยที่สุด
วิธีการจัดลำดับเวลาที่เหลือน้อยที่สุดพยายามคาดการณ์เวลาในการประมวลผลของงานพัฒนาต่างๆ และจัดลำดับงานเหล่านั้นในคิวจากเวลาในการประมวลผลน้อยที่สุดไปมากที่สุด วิธีนี้ประมาณและคาดการณ์โดยอาศัยบันทึกประวัติก่อนหน้า ในแง่ของประสิทธิภาพนั้นไม่คงที่ แต่ช่วยปรับปรุงเวลาการรอคอยของกระบวนการได้ดีกว่าวิธีการมาก่อนได้ก่อน (First-Come, First-Served)
การจัดตารางเวลาแบบลำดับความสำคัญคงที่แบบแทรกแซง
วิธีการจัดตารางการทำงานแบบลำดับความสำคัญคงที่และแทรกแซงได้ จะกำหนดลำดับความสำคัญที่แตกต่างกันให้กับกระบวนการต่างๆ โดยพิจารณาจากเวลาในการประมวลผล และจัดเรียงกระบวนการเหล่านั้นลงในคิวตามลำดับความสำคัญ CPU จะให้บริการกระบวนการที่มีลำดับความสำคัญสูงไปยังกระบวนการที่มีลำดับความสำคัญต่ำ และกระบวนการที่มีลำดับความสำคัญเท่ากันจะได้รับการประมวลผลแบบมาก่อนได้ก่อน (First-Come, First-Served) CPU จะหยุดให้บริการกระบวนการที่มีลำดับความสำคัญต่ำชั่วคราวเมื่อมีกระบวนการที่มีลำดับความสำคัญสูงกว่าเข้ามาในคิว
การจัดตารางแบบหมุนเวียน
วิธีการจัดตารางงานแบบ Round-robin จะจัดสรรเวลาเท่ากันให้กับแต่ละกระบวนการและวนรอบการทำงาน วิธีนี้อาศัยการกำหนดเวลาที่เหมาะสมให้กับแต่ละกระบวนการเป็นหลัก หากกำหนดเวลาสั้นเกินไปจะทำให้กระบวนการแตกกระจาย และหากกำหนดเวลานานเกินไปจะทำให้เวลาในการรอการประมวลผลแต่ละกระบวนการเพิ่มขึ้น การเลือกเวลาที่เหมาะสมจึงเป็นหัวใจสำคัญของวิธีการนี้
การจัดตารางคิวหลายระดับ
วิธีการจัดตารางงานแบบคิวหลายระดับใช้คิวหลายคิว โดยแต่ละคิวอาจมีอัลกอริธึมการจัดตารางงานของตนเอง การจัดตารางงานแบบคิวหลายระดับมีความซับซ้อนกว่าวิธีการอื่นๆ แต่ให้ความยืดหยุ่นแก่ระบบปฏิบัติการในการตอบสนองความต้องการเวลาตอบสนองที่แตกต่างกันในสถานการณ์ที่ซับซ้อน
การสร้างเครือข่าย
ในระบบเครือข่าย แพ็กเก็ตเป็นพื้นฐานสำคัญสำหรับการจัดลำดับความสำคัญ มีแพ็กเก็ตหลายประเภทเดินทางไปมาในแกนหลักของเครือข่ายทุกวัน และแต่ละแพ็กเก็ตได้รับการจัดการแตกต่างกันอย่างสิ้นเชิง ตัวอย่างเช่น แพ็กเก็ตเสียงและวิดีโอมีลำดับความสำคัญสูงกว่าแพ็กเก็ตทั่วไป เพื่อจัดการและกระจายแพ็กเก็ตอย่างมีประสิทธิภาพ อุปกรณ์เครือข่ายจึงใช้คิวอินพุตเพื่อพิจารณาว่าแพ็กเก็ตใดจะถูกส่งก่อน
ระบบเข้าก่อนออกก่อน (FIFO)
ในโหมดนี้ แพ็กเก็ตจะถูกดึงออกจากคิวตามลำดับที่เข้ามาในคิว โดยทุกแพ็กเก็ตจะได้รับความสำคัญเท่ากัน หากแพ็กเก็ตขนาดใหญ่ A มาก่อนแพ็กเก็ตขนาดเล็ก B แพ็กเก็ต B ก็ยังต้องรอจนกว่าแพ็กเก็ต A จะได้รับการประมวลผลเสร็จสมบูรณ์ หากระบบให้ความสำคัญกับทุกแพ็กเก็ตเท่ากัน ผู้ใช้อาจประสบปัญหาความล่าช้าในการส่งข้อมูล เช่น แพ็กเก็ตเสียง
ระบบคิวยุติธรรมแบบถ่วงน้ำหนัก (WFQ)
คิวแบบถ่วงน้ำหนัก (Weighted fair queue) ใช้หลักการ min-max-fair-share ในการกระจายแพ็กเก็ต โดย min fair-share หมายความว่าระบบปฏิบัติการเครือข่ายจะจัดสรรทรัพยากรขั้นต่ำอย่างเท่าเทียมกันสำหรับแพ็กเก็ตแต่ละประเภท ส่วน max fair-share หมายความว่าระบบปฏิบัติการเครือข่ายจะจัดสรรทรัพยากรมากขึ้นสำหรับแพ็กเก็ตที่ต้องการถ่ายโอนข้อมูลจำนวนมากในขณะนั้น แต่จะดึงทรัพยากรกลับคืนหลังจากถ่ายโอนเสร็จสิ้นแล้ว คำว่า “ถ่วงน้ำหนัก” (Weighted) หมายความว่าตัวจัดตารางเวลา (scheduler) จะกำหนดน้ำหนักให้กับแพ็กเก็ตแต่ละประเภท โดยจะพิจารณาจากน้ำหนักนั้นว่าจะใส่แพ็กเก็ตลงในคิวและให้บริการอย่างไร โดยปกติแล้ว น้ำหนักของแต่ละแพ็กเก็ตจะขึ้นอยู่กับฟิลด์ IP Precedence จากส่วนหัว IP ของแต่ละแพ็กเก็ต
- การจัดสรรอย่างเป็นธรรม = (ความจุของทรัพยากร – ทรัพยากรที่จัดสรรไปแล้ว) / จำนวนแพ็กเก็ต
คิวลำดับความสำคัญ (PQ)
คิวลำดับความสำคัญถูกแบ่งออกเป็น 4 คิวย่อยที่มีลำดับความสำคัญแตกต่างกัน ข้อมูลในแต่ละคิวจะได้รับการประมวลผลก็ต่อเมื่อคิวที่มีลำดับความสำคัญสูงกว่าว่างลงเท่านั้น หากมีข้อมูลเข้ามาในคิวที่มีลำดับความสำคัญสูงกว่าที่ว่างอยู่ ในขณะที่ระบบปฏิบัติการเครือข่ายกำลังถ่ายโอนข้อมูลของคิวที่มีลำดับความสำคัญต่ำกว่า ระบบปฏิบัติการเครือข่ายจะเก็บข้อมูลของคิวที่มีลำดับความสำคัญต่ำกว่าไว้ และประมวลผลข้อมูลในคิวที่มีลำดับความสำคัญสูงกว่าก่อน ระบบปฏิบัติการเครือข่ายไม่สนใจว่าคิวที่มีลำดับความสำคัญต่ำกว่าจะต้องรอนานแค่ไหน เพราะมันจะประมวลผลแต่ละคิวจากลำดับความสำคัญสูงสุดไปยังลำดับความสำคัญต่ำสุดก่อนเสมอ ภายในแต่ละคิว แพ็กเก็ตจะถูกส่งต่อตามหลักการเข้าก่อนออกก่อน (First-In-First-Out)
คิวแบบกำหนดเอง (CQ)
คิวแบบกำหนดเองแบ่งออกเป็น 17 คิวย่อย คิวแรกคือคิว 0 ซึ่งสงวนไว้สำหรับระบบปฏิบัติการเครือข่ายเพื่อส่งแพ็กเก็ตระบบ ส่วนอีก 16 คิวที่เหลือใช้สำหรับแพ็กเก็ตที่ผู้ใช้กำหนด ผู้ใช้สามารถกำหนดแพ็กเก็ตสำคัญต่างๆ และกำหนดให้กับแต่ละคิวได้ แต่ละคิวมีขนาดจำกัด และจะทิ้งแพ็กเก็ตที่เข้ามาทั้งหมดหากถึงขีดจำกัดนั้น การให้บริการแต่ละคิวจะขึ้นอยู่กับจำนวนแพ็กเก็ตที่ส่งเข้ามา หากถึงขีดจำกัดแล้ว ระบบปฏิบัติการเครือข่ายจะเก็บแพ็กเก็ตของคิวปัจจุบันไว้และให้บริการคิวถัดไปจนกว่าคิวนั้นจะว่างหรือถึงขีดจำกัดแพ็กเก็ต หากคิวใดคิวหนึ่งว่าง ระบบปฏิบัติการเครือข่ายจะข้ามคิวนั้นและให้บริการคิวถัดไป