ระบบปฏิบัติการ - การจัดกำหนดการกระบวนการ
คำจำกัดความ
การจัดกำหนดการกระบวนการเป็นกิจกรรมของตัวจัดการกระบวนการที่จัดการการลบกระบวนการที่กำลังทำงานอยู่ออกจาก CPU และการเลือกกระบวนการอื่นบนพื้นฐานของกลยุทธ์เฉพาะ
การจัดกำหนดการกระบวนการเป็นส่วนสำคัญของระบบปฏิบัติการ Multiprogramming ระบบปฏิบัติการดังกล่าวอนุญาตให้โหลดมากกว่าหนึ่งกระบวนการลงในหน่วยความจำที่ปฏิบัติการได้ในแต่ละครั้งและกระบวนการที่โหลดจะแบ่งใช้ CPU โดยใช้การมัลติเพล็กซ์เวลา
คิวการจัดกำหนดการกระบวนการ
ระบบปฏิบัติการจะดูแล PCB ทั้งหมดในคิวการจัดกำหนดการกระบวนการ ระบบปฏิบัติการจะดูแลคิวแยกกันสำหรับแต่ละสถานะของกระบวนการและ PCB ของกระบวนการทั้งหมดในสถานะการดำเนินการเดียวกันจะอยู่ในคิวเดียวกัน เมื่อสถานะของกระบวนการเปลี่ยนแปลง PCB ของมันจะถูกยกเลิกการเชื่อมโยงจากคิวปัจจุบันและย้ายไปยังคิวสถานะใหม่
ระบบปฏิบัติการจะเก็บรักษาคิวการจัดกำหนดการกระบวนการที่สำคัญดังต่อไปนี้ -
Job queue - คิวนี้จะเก็บกระบวนการทั้งหมดไว้ในระบบ
Ready queue- คิวนี้เก็บชุดของกระบวนการทั้งหมดที่อยู่ในหน่วยความจำหลักพร้อมและรอดำเนินการ กระบวนการใหม่จะอยู่ในคิวนี้เสมอ
Device queues - กระบวนการที่ถูกบล็อกเนื่องจากอุปกรณ์ I / O ไม่พร้อมใช้งานเป็นคิวนี้
ระบบปฏิบัติการสามารถใช้นโยบายที่แตกต่างกันเพื่อจัดการแต่ละคิว (FIFO, Round Robin, Priority ฯลฯ ) ตัวกำหนดตารางเวลา OS กำหนดวิธีการย้ายกระบวนการระหว่างคิวที่พร้อมและรันซึ่งสามารถมีได้เพียงรายการเดียวต่อหนึ่งคอร์ตัวประมวลผลบนระบบ ในแผนภาพด้านบนได้รวมเข้ากับ CPU แล้ว
แบบจำลองกระบวนการสองสถานะ
แบบจำลองกระบวนการสองสถานะหมายถึงสถานะที่กำลังทำงานและไม่ทำงานซึ่งอธิบายไว้ด้านล่าง -
SN | รัฐและคำอธิบาย |
---|---|
1 | Running เมื่อกระบวนการใหม่ถูกสร้างขึ้นกระบวนการจะเข้าสู่ระบบในสถานะที่กำลังทำงานอยู่ |
2 | Not Running กระบวนการที่ไม่ได้ทำงานจะถูกเก็บไว้ในคิวรอการดำเนินการ แต่ละรายการในคิวเป็นตัวชี้ไปยังกระบวนการหนึ่ง ๆ คิวจะดำเนินการโดยใช้รายการที่เชื่อมโยง การใช้ดิสแพตเชอร์มีดังนี้ เมื่อกระบวนการถูกขัดจังหวะกระบวนการนั้นจะถูกโอนไปในคิวรอ หากกระบวนการเสร็จสมบูรณ์หรือถูกยกเลิกกระบวนการจะถูกยกเลิก ไม่ว่าในกรณีใดผู้มอบหมายงานจะเลือกกระบวนการจากคิวเพื่อดำเนินการ |
ตัวจัดกำหนดการ
ตัวกำหนดตารางเวลาเป็นซอฟต์แวร์ระบบพิเศษที่จัดการการจัดกำหนดการกระบวนการในรูปแบบต่างๆ งานหลักของพวกเขาคือการเลือกงานที่จะส่งเข้าสู่ระบบและตัดสินใจว่าจะดำเนินการกระบวนการใด เครื่องมือจัดกำหนดการมีสามประเภท -
- เครื่องมือจัดกำหนดการระยะยาว
- เครื่องมือจัดกำหนดการระยะสั้น
- เครื่องมือจัดกำหนดการระยะกลาง
เครื่องมือจัดกำหนดการระยะยาว
เรียกอีกอย่างว่า job scheduler. ตัวกำหนดตารางเวลาระยะยาวกำหนดว่าโปรแกรมใดบ้างที่เข้าสู่ระบบเพื่อประมวลผล เลือกกระบวนการจากคิวและโหลดลงในหน่วยความจำเพื่อดำเนินการ โหลดกระบวนการลงในหน่วยความจำสำหรับการตั้งเวลา CPU
วัตถุประสงค์หลักของตัวกำหนดตารางเวลางานคือการจัดเตรียมงานที่สมดุลกันเช่นการผูก I / O และการผูกตัวประมวลผล นอกจากนี้ยังควบคุมระดับของการตั้งโปรแกรมหลายโปรแกรม หากระดับของการตั้งโปรแกรมหลายโปรแกรมคงที่อัตราเฉลี่ยของการสร้างกระบวนการจะต้องเท่ากับอัตราการออกเฉลี่ยของกระบวนการที่ออกจากระบบ
ในบางระบบตัวกำหนดตารางเวลาระยะยาวอาจไม่พร้อมใช้งานหรือน้อยที่สุด ระบบปฏิบัติการแบ่งเวลาไม่มีตัวกำหนดเวลาระยะยาว เมื่อกระบวนการเปลี่ยนสถานะจากใหม่เป็นพร้อมใช้งานจะมีการใช้ตัวกำหนดตารางเวลาระยะยาว
เครื่องมือจัดกำหนดการระยะสั้น
จะเรียกอีกอย่างว่า CPU scheduler. วัตถุประสงค์หลักคือการเพิ่มประสิทธิภาพของระบบตามเกณฑ์ที่เลือกไว้ เป็นการเปลี่ยนสถานะพร้อมเป็นสถานะกำลังทำงานของกระบวนการ ตัวกำหนดตารางเวลา CPU เลือกกระบวนการระหว่างกระบวนการที่พร้อมดำเนินการและจัดสรร CPU ให้กับหนึ่งในนั้น
ผู้จัดกำหนดการระยะสั้นหรือที่เรียกว่าผู้มอบหมายงานเป็นผู้ตัดสินใจว่าจะดำเนินการกระบวนการใดต่อไป ตัวกำหนดตารางเวลาระยะสั้นเร็วกว่าตัวกำหนดตารางเวลาระยะยาว
เครื่องมือจัดกำหนดการระยะกลาง
การจัดตารางเวลาระยะกลางเป็นส่วนหนึ่งของ swapping. จะลบกระบวนการออกจากหน่วยความจำ จะช่วยลดระดับของการตั้งโปรแกรมหลายโปรแกรม ตัวกำหนดตารางเวลาระยะกลางเป็นผู้รับผิดชอบในการจัดการกระบวนการนอกที่ถูกสลับ
กระบวนการทำงานอาจถูกระงับหากมีการร้องขอ I / O กระบวนการที่ถูกระงับไม่สามารถดำเนินการใด ๆ ไปสู่ความสำเร็จได้ ในเงื่อนไขนี้เพื่อลบกระบวนการออกจากหน่วยความจำและเพิ่มพื้นที่สำหรับกระบวนการอื่นกระบวนการที่ถูกระงับจะถูกย้ายไปที่หน่วยเก็บข้อมูลสำรอง กระบวนการนี้เรียกว่าswappingและกระบวนการดังกล่าวมีการเปลี่ยนหรือเปิดตัว การแลกเปลี่ยนอาจจำเป็นเพื่อปรับปรุงส่วนผสมของกระบวนการ
การเปรียบเทียบระหว่างเครื่องมือจัดกำหนดการ
SN | เครื่องมือจัดกำหนดการระยะยาว | เครื่องมือจัดกำหนดการระยะสั้น | เครื่องมือจัดกำหนดการระยะกลาง |
---|---|---|---|
1 | มันเป็นตัวกำหนดเวลางาน | มันเป็นตัวกำหนดตารางเวลาของ CPU | เป็นตัวกำหนดตารางเวลาการแลกเปลี่ยนกระบวนการ |
2 | ความเร็วน้อยกว่าตัวกำหนดตารางเวลาระยะสั้น | ความเร็วจะเร็วที่สุดในบรรดาอีกสองคน | ความเร็วอยู่ระหว่างตัวกำหนดตารางเวลาทั้งระยะสั้นและระยะยาว |
3 | ควบคุมระดับของโปรแกรมหลายโปรแกรม | ให้การควบคุมระดับของโปรแกรมหลายโปรแกรมน้อยลง | จะช่วยลดระดับของการตั้งโปรแกรมหลายโปรแกรม |
4 | ระบบแบ่งปันเวลาแทบจะขาดหรือน้อยที่สุด | นอกจากนี้ยังมีระบบแบ่งปันเวลาน้อยที่สุด | เป็นส่วนหนึ่งของระบบแบ่งปันเวลา |
5 | เลือกกระบวนการจากพูลและโหลดลงในหน่วยความจำเพื่อดำเนินการ | จะเลือกกระบวนการที่พร้อมที่จะดำเนินการ | สามารถแนะนำกระบวนการใหม่ในหน่วยความจำและการดำเนินการสามารถดำเนินการต่อได้ |
สวิตช์บริบท
สวิตช์บริบทเป็นกลไกในการจัดเก็บและเรียกคืนสถานะหรือบริบทของ CPU ในบล็อกการควบคุมกระบวนการเพื่อให้การดำเนินการของกระบวนการสามารถกลับมาจากจุดเดิมในเวลาต่อมา การใช้เทคนิคนี้ตัวสลับบริบทช่วยให้กระบวนการต่างๆสามารถแชร์ CPU ตัวเดียวได้ การสลับบริบทเป็นส่วนสำคัญของคุณสมบัติระบบปฏิบัติการมัลติทาสก์
เมื่อตัวกำหนดตารางเวลาสลับซีพียูจากการดำเนินการกระบวนการหนึ่งไปดำเนินการอื่นสถานะจากกระบวนการที่กำลังทำงานอยู่จะถูกเก็บไว้ในบล็อกควบคุมกระบวนการ หลังจากนี้สถานะสำหรับกระบวนการที่จะรันต่อไปจะถูกโหลดจาก PCB ของตัวเองและใช้ในการตั้งค่าพีซีรีจิสเตอร์ ฯลฯ ณ จุดนั้นกระบวนการที่สองสามารถเริ่มดำเนินการได้
สวิตช์บริบทมีความเข้มข้นในการคำนวณเนื่องจากต้องบันทึกและเรียกคืนสถานะการลงทะเบียนและหน่วยความจำ เพื่อหลีกเลี่ยงระยะเวลาในการสลับบริบทระบบฮาร์ดแวร์บางระบบจะใช้การลงทะเบียนโปรเซสเซอร์ตั้งแต่สองชุดขึ้นไป เมื่อกระบวนการเปลี่ยนไปข้อมูลต่อไปนี้จะถูกเก็บไว้เพื่อใช้ในภายหลัง
- โปรแกรมเคาน์เตอร์
- ข้อมูลการตั้งเวลา
- ค่าลงทะเบียนฐานและ จำกัด
- ทะเบียนที่ใช้อยู่ในปัจจุบัน
- สถานะที่เปลี่ยนแปลง
- ข้อมูลสถานะ I / O
- ข้อมูลทางการบัญชี