ชื่อ Project บทความ
การจัดเวลาซีพียู cpu scheduling แบบ sjf non preemptive
(บทความโดย นาย นที ไทยธรรม 1590901581 และ นายภาสกร สุวรรณโท 1590900989)
Data Structure and Algorithm ที่เลือก
คือ อาเรย์ (Array) คือ ประเภทของข้อมูลที่สามารถเก็บข้อมูลประเภทเดียวกันแบบเป็นลำดับได้ โดยข้อมูลนั้นจะอยู่ในตัวแปรตัวเดียวกันที่เรียกว่า ตัวแปรอาเรย์ มันใช้ index ในการเข้าถึงข้อมูล
ตัวอย่างเช่น
ตัวอย่างการใช้งาน
พิจารณาระบบที่ประกอบด้วยโพรเซสP1, P2, P3 และP4 โดยที่ทุกโพรเซสถูกรับเข้ามาในระบบพร้อมกัน
ตัวอย่างที่เป็น Non-preemptiveระบบคอมพิวเตอร์มี 3 โพรเซสที่ต้องการเข้าไปใช้งานซีพียูคือโพรเซส
P1 เข้าระบบเมื่อเวลา0.0 และต้องการใช้ซีพียู8 หน่วยเวลาโพรเซส
P2 เข้าระบบเมื่อเวลา0.4 และต้องการใช้ซีพียู4 หน่วยเวลาโพรเซส
P3 เข้าระบบเมื่อเวลา1.0 และต้องการใช้ซีพียู1 หน่วยเวลา
การแสดง Source Code และ Functions การทำงาน
จากโค้ดมีการ นำเข้า xlrd เป็นโมดูลในการเข้าถึงไฟล์ Excel เพราะเราจะดึงข้อมูลใน Excel มาใช้ในการคำนวณ ซึ่งใน Excel จะมีข้อมูลประมาณนี้
จะมีจำนวน Process , Burst Time , Arrival Time และ Priority อย่างละ 10
ฟังก์ชั่น Bt มีไว้เพื่อทำการเก็บค่า Burst Time ที่มีการเรียงค่าจากน้อยไปมากเรียบร้อยแล้วตาม Concept SJF เพื่อง่ายในการนำไปคำนวณต่อไป
ฟังก์ชั่น Process มีไว้เพื่อเรียง Process ตามฟังก์ชั่น Bt ฟังก์ชั่นBt เรียงค่าแบบไหน ฟังก์ชั่น Process ก็จะเรียงแบบนั้น
ฟังก์ชั่น countAT มีไว้เพื่อคำนวณหาค่า TurnaroundTime
ฟังก์ชั่น countCT มีไว้เพื่อคำนวณเวลาที่ Process ทำเสร็จ
ฟังก์ชั่น TurnaroundTime เป็นการคำนวณหาค่า TurnaroundTime โดยใช้ค่า CT (เวลาที่รันเสร็จ) – at(เวลาที่มาถึง) และฟังก์ชั่น WaitingTime เป็นการหาค่า WaitingTime โดยใช้ TAT(TurnaroundTime) – bt(Burst Time)
ฟังก์ชั่น show จะแสดงผลรันที่ Process ทำงานเสร็จและ ฟังก์ชั่น showTurnaround จะแสดงค่า Turnaround ตามลำดับ และ ฟังก์ชั่น showWaitingTime ก็จะแสดงค่า WaitingTime ตามลำดับ
ส่วนตรงนี้ก็จะเป็นการประกาศตัวแปรเท่ากับฟังก์ชั่น และนำตัวแปรนั้นใส่เข้าไปเป็นพารามิเตอร์ส่งค่าให้ฟังก์ชั้นเพื่อไปคำนวณต่อไป
ผลลัพธ์การทำงาน ประกอบด้วย รูปภาพ และข้อความ
โปรแกรมจะโชว์ค่าที่แต่ละ Process ทำงานเสร็จตามแบบ SJF
โปรแกรมจะโชว์ค่า TurnaroundTime และ WaitingTime ตามลำดับและมีค่าเฉลี่ยด้วย
https://drive.google.com/open?id=1CXkOqey5sRN0XJ5vbU1I4BoZM2ItZyrI