OS Algorithm Simulator APP
ดังที่คุณทราบวัตถุประสงค์หลักของ OS คือการจัดการทรัพยากร 4 อย่าง:
- ซีพียู
- ความทรงจำ.
- ระบบอินพุต / เอาต์พุต (I / O)
- ระบบไฟล์
แต่ละระบบปฏิบัติการมีอัลกอริทึมหลายอย่างที่ให้ฟังก์ชันข้างต้น ตัวอย่างเช่น:
- อัลกอริทึมการตั้งเวลา CPU จะเลือกกระบวนการที่ควรใช้ CPU ในแต่ละช่วงเวลา
- อัลกอริทึมอื่นรับผิดชอบไม่ให้เกิดการชะงักงันเมื่อกระบวนการจัดสรรทรัพยากร
- อัลกอริธึมการจัดการหน่วยความจำจะแบ่งหน่วยความจำออกเป็นส่วน ๆ สำหรับแต่ละกระบวนการและอีกส่วนหนึ่งจะตัดสินใจว่าควรจะสลับส่วนใดและส่วนใดควรอยู่ในแรม การจัดสรรอาจติดกันหรือไม่ก็ได้ ในกรณีหลังเราจะมีกลไกที่ทันสมัยมากขึ้นเช่นการแบ่งหน้าหรือการแบ่งส่วน จากนั้นอัลกอริทึมการแทนที่เพจจะตัดสินใจว่าเพจใดสามารถอยู่ในหน่วยความจำและเพจใดที่ไม่สามารถใช้งานได้
- อัลกอริทึมอื่นทำหน้าที่ให้ความสำคัญกับการหยุดชะงักทั้งหมดที่ฮาร์ดแวร์สามารถสร้างให้กับระบบ I / O
- และอื่น ๆ
เพื่อให้เข้าใจระบบปฏิบัติการอย่างลึกซึ้งเราต้องรู้ว่าอัลกอริทึมเหล่านี้ทำงานอย่างไรและเหตุใดวิธีการบางอย่างที่ดูสมเหตุสมผลจึงถูกทิ้งโดยระบบปฏิบัติการที่รู้จักกันดีเช่น Windows หรือ Linux เป้าหมายของแอปพลิเคชันนี้คือการให้คำอธิบายเกี่ยวกับแนวทางที่แตกต่างกันสำหรับแต่ละปัญหาและเพื่อแสดงให้เห็นว่าอัลกอริทึมแต่ละแบบทำงานอย่างไรโดยใช้การจำลอง เพื่อจุดประสงค์นั้นแอปนี้มีตัวอย่างบางส่วน แต่ยังช่วยให้คุณสามารถระบุชุดข้อมูลของคุณเองและตรวจสอบว่าอัลกอริทึมแต่ละชุดจะทำงานอย่างไร สิ่งสำคัญคือต้องบอกว่าในกรณีส่วนใหญ่แอปพลิเคชันนี้ไม่มีอัลกอริทึมที่ทันสมัย แต่มีความเรียบง่ายที่เราพิจารณาได้ดีกว่าสำหรับกระบวนการเรียนรู้
คุณสมบัติ:
- อัลกอริธึมการตั้งเวลากระบวนการล่วงหน้าและไม่ได้รับการป้องกันล่วงหน้าหลายประการ:
* มาก่อนเสริฟก่อน
* งานที่สั้นที่สุดก่อน
* เวลาที่เหลืออยู่สั้นที่สุดก่อน
* ตามลำดับความสำคัญ (ไม่ได้รับการยกเว้นล่วงหน้า)
* ตามลำดับความสำคัญ (preemptive)
* รอบโรบิน
- อัลกอริทึม Deadlock:
* หลีกเลี่ยงการหยุดชะงัก (อัลกอริทึมของนายธนาคาร)
- การจัดสรรหน่วยความจำต่อเนื่อง * พอดีครั้งแรก
* พอดีที่สุด
* พอดีแย่ที่สุด
- อัลกอริทึมการเปลี่ยนหน้า:
* การเปลี่ยนหน้าที่เหมาะสมที่สุด
* ก่อนเข้า - ออกก่อน
* ใช้น้อยที่สุด
* First-In-First-Out พร้อมโอกาสที่สอง
* ไม่ได้ใช้บ่อย
* อายุ
- สำหรับแต่ละอัลกอริทึม:
* อนุญาตให้สร้างชุดข้อมูลที่กำหนดเองสำหรับการจำลอง
* มีโหมดการทดสอบเพื่อทดสอบความเข้าใจของคุณ