การจำลองอัลกอริทึมการกำหนดเวลาของระบบปฏิบัติการสำหรับกระบวนการเช่นการกำหนดเวลาลำดับความสำคัญการกำหนดเวลาหลายระดับ ...


ที่เก็บนี้เปิดเผยที่นี่จริง ๆ แล้วเป็นโครงการมหาวิทยาลัยของ operating system หลักสูตร
และนำไปใช้กับภาษา Java
การแสดงลำดับชั้นของคลาสแสดงให้เห็นที่นี่:
---- CPUSCHEDULER
-
----------- src
-
------------------ กระบวนการ // ข้อมูลของแต่ละกระบวนการเช่นเวลาเริ่มต้นเวลาระเบิด ...
------------------ CPU // CPU สำหรับการจำลองตารางเวลา
------------------ ตัวกำหนดเวลา // คลาสบทคัดย่อสำหรับวิธีการและฟิลด์ดั้งเดิม
------------------ sch_fcfs // ก่อนมาก่อนเสิร์ฟครั้งแรก
------------------ sch_sjf // งานที่สั้นที่สุดกำหนดตารางเวลา (สามารถจองล่วงหน้าได้)
------------------ sch_priority // priority scheduler (สามารถจองล่วงหน้าได้)
------------------ sch_rr // รอบ Robin Scheduler
------------------ sch_lottery // scheduler ลอตเตอรี
------------------ sch_multilevel // ตัวกำหนดตารางเวลาหลายระดับ (สามารถจองล่วงหน้าได้)
------------------ fxmldocumentcontroller // คอนโทรลเลอร์สำหรับ GUI หลัก
------------------ SimulationController // คอนโทรลเลอร์สำหรับการจำลอง GUI
-
กระบวนการ: กระบวนการทั้งสองกำลังดำเนินการหรือรอ 2 สถานะเหล่านี้ได้รับการจัดการใน:
CPU:
ตัวกำหนดตารางเวลา:
หมายเหตุ
โปรดทราบว่าหน่วยเวลาการจำลองคือ 0.1 ดังนั้นเวลาระเบิดหรือเวลาหน่วงจะต้องเป็นหลาย 0.1
โปรดทราบว่าลำดับของแต่ละบรรทัดระบุลำดับของกระบวนการมาถึง
โปรดทราบว่ารูปแบบอินพุตเป็นเช่นนี้สำหรับแต่ละบรรทัด (เวลาระเบิดเวลาหน่วงเวลาลำดับความสำคัญระดับ)
โปรดทราบว่าระยะเวลาขั้นต่ำของสวิตช์บริบทในการจำลองนี้คือ 0.4
โปรดทราบว่าระยะเวลาขั้นต่ำของควอนตัมสำหรับตัวกำหนดตารางเวลา robbin ในการจำลองนี้คือ 0.2 เนื่องจากหน่วยเวลาคือ 0.1 และควอนตัมไม่น้อยกว่าหน่วยเวลา
อินพุต Tabel:
| ชื่อประมวลผล | เวลามาถึง | ใช้เวลา | ระดับ |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
ตัวอย่างเช่นเรากำลังจัดตารางเวลาในหลายระดับที่ไม่ได้รับการยกเว้น (L1: FCFS, L2 FCFS) ด้านล่าง (ไฟล์ input.txt)

ก่อนอื่นเราป้อนข้อมูลกระบวนการและเลือกการตั้งเวลา alghorithm จากนั้นกดปุ่มเรียกใช้

รอให้การจำลองสิ้นสุดลง

ตอนนี้คุณสามารถดูผลลัพธ์ได้

โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT - ดูไฟล์ใบอนุญาตสำหรับรายละเอียด