มารู้จักกับ Non-Preemptive Priority กันเถอะ

สวัสดีครับ วันนี้เราจะมาแสดงตัวอย่างโปรแกรมจำลองอัลกอลิทึม non-preemptive priority ของคอมพิวเตอร์ โดยใช้ visual basic กันนะครับ ก่อนอื่นเลย เราต้องมาทำความรู้จักกับอัลกอลิทึม non-preemptive priority กันก่อน

non-preemptive priority คือหนึ่งในการจัดลำดับการทำงานของคอมพิวเตอร์ โดยจะจัดลำดับจากค่า priority(ความสำคัญ) ว่าความสำคัญของงานไหนมีมากกว่าก็จะทำงานนั้นก่อน แต่จะไม่มีการแทรกกันระหว่างทำงาน เช่น ยังทำงาน A ไม่เสร็จ ก็จะยังไม่ไปทำงาน B ต่อให้งาน B มีความสำคัญมากกว่าก็ตาม แล้วถ้าในกรณีค่าความสำคัญเท่ากันหละจะทำยังไง สำหรับในกรณีนี้นั้น เราจะดูที่ค่า arrival time หรือเวลาในการรอ พูดง่ายๆ ก็คือ ใครมาก่อนได้ทำงานก่อนถ้าลำดับความสำคัญเท่ากัน

ต่อไปจะเป็นเราจะมาดูหน้าตาและการทำงานคร่าวของโปรแกรมกันนะครับ

จากรูปจะเห็นได้ว่ามีส่วนใหญ่ๆ อยู่ 2 ส่วน คือ ส่วนที่แสดงค่าที่ใส่เข้ามาและส่วนที่แสดงผลการทำงาน

 

เมื่อโปรแกรมทำงานแล้ว

-ในวงกลมสีเขียว คือ ช่องที่ให้เราใส่ตัวเลขเพื่อกำหนดค่าขนาดของข้อมูลที่จะนำเข้ามา

-ในวงกลมสีแดง คือ ค่าของข้อมูลที่ถูกส่งเข้ามาเป็นตารางเพื่อใช้ในการคำนวนในที่นี้ ใช้เป็นไฟล์ excel

-ในวงกลมสีฟ้า คือ ลำดับการทำงานที่จัดเรียงแล้วว่าอันไหนทำงานก่อนหลัง แต่จะเห็นได้ว่าในช่องแรก ที่มี priority 3 ทำไมได้ทำงานก่อน เนื่องจากว่า ค่า Arrival time เป็น 0 หรือก็คือ กำลังทำงานอยู่จึงได้ถูกจัดอยู่ในอันดับแรก เพราะ non-preemptive priority จะไม่มีการแทรกการทำงานของโปรแกรมที่ทำงานอยู่ก่อนแล้วนั่นเอง

ส่วนต่อมาเป็นอีกหนึ่งผลที่แสดงออกมาในรูปแบบของกราฟเพื่อให้ง่ายต่อการทำความเข้าใจ โดยจะแสดงถึงเวลาในและลำดับของการทำงาน

รูปที่เห็นข้างต้นนี้เป็น Flowchart แสดงการทำงานคร่าวๆ ของโปรแกรม

ต่อมานะครับเราจะมาดูในส่วนของ code กัน

ส่วนแรกนี้คือส่วนของการค้นหาไฟล์มาเปิด

ส่วนที่สองนี้คือส่วนที่ใช้เปิดไฟล์ excel

ส่วนนี้คือการสร้างฐานข้อมูลเพื่อดึงข้อมูลจาก excel มาใส่

ส่วนนี้คือส่วนที่ใช้ในการเรียงข้อมูลใส่ในตารางที่สองเพื่อแสดงผล โดยจะเห็นได้ว่า มีส่วนของการดึงข้อมูลช่องแรก หรือข้อมูลที่ Arrival time เป็น 0 หรือคือตัวที่ทำงานอยู่มาใส่ในตารางก่อน แล้วจำนำค่าข้อมูลที่เหลือมาเรียงใส่ในตาราง

ส่วนนี้คือส่วนที่ใช้ในการเคลียค่าข้อมูลเพื่อที่จะนำค่าที่ได้ไปวาดกราฟ

ส่วนนี้เป็นฟังก์ชันในการใช้วาดกราฟ

คลิปอธิบายการทำงานของตัวโปรแกรม

โดยตัวโปรแกรมนี้นั้นเราสามารถนำไปประยุกต์ใช้ได้หลายอย่าง เช่น การจัดคิวเข้างานที่มีการแบ่งราคาของบัตร หรือ ใช้กับการจัดการคิวของคนไข้ในโรงพยาบาลโดยให้คนที่อาการหนักกว่าได้รับการรักษาก่อน เป็นต้น

สุดท้ายนี้ก็หวังว่าข้อมูลที่นำเสนอมาจะเป็นประโยชน์ไม่มากก็น้อย ขอบคุณครับ

link Source Code

https://drive.google.com/drive/folders/1NION_c4CeUQD788LvG_XiaChgJU6nGtC?usp=sharing

PHACHARAKAMOL KAYEE
at GlurGeek.Com

Leave a Reply

© 2022 GlurGeek.Com