อัลกอริทึมการจัดตารางเวลา FCFS: คืออะไร ตัวอย่างโปรแกรม

วิธีมาก่อนได้ก่อนคืออะไร?

มาก่อนได้ก่อน (FCFS) เป็นอัลกอริทึมการจัดตารางการทำงานของระบบปฏิบัติการที่ดำเนินการตามคำขอและกระบวนการที่อยู่ในคิวโดยอัตโนมัติตามลำดับการมาถึง อัลกอริทึมนี้ง่ายและสะดวกที่สุดสำหรับการจัดตารางซีพียู ในอัลกอริทึมประเภทนี้ กระบวนการที่ร้องขอซีพียูก่อนจะได้รับการจัดสรรซีพียูก่อน ซึ่งกระบวนการดังกล่าวจะได้รับการจัดการโดยใช้คิว FIFO โดย FCFS ย่อมาจาก First Come First Serve

เมื่อกระบวนการเข้าสู่คิวที่พร้อมใช้งาน PCB (Process Control Block) ของกระบวนการจะเชื่อมโยงกับส่วนท้ายของคิว และเมื่อ CPU ว่าง ก็ควรถูกกำหนดให้กับกระบวนการที่จุดเริ่มต้นของคิว

ลักษณะของวิธี FCFS

  • รองรับอัลกอริธึมการตั้งเวลาแบบไม่ยึดเอาเสียก่อนและแบบยึดล่วงหน้า
  • งานจะดำเนินการตามลำดับก่อนหลังเสมอ
  • มันง่ายในการติดตั้งและใช้งาน
  • วิธีการนี้มีประสิทธิภาพต่ำ และเวลารอโดยทั่วไปค่อนข้างสูง

ตัวอย่างการจัดกำหนดการ FCFS

ตัวอย่างในชีวิตจริงของวิธี FCFS คือการซื้อตั๋วหนังที่เคาน์เตอร์จำหน่ายตั๋ว ในอัลกอริธึมการจัดกำหนดการนี้ บุคคลจะได้รับบริการตามลักษณะของคิว ผู้ที่มาถึงก่อนในคิวจะซื้อตั๋วก่อนแล้วจึงซื้อตั๋วใบถัดไป การดำเนินการนี้จะดำเนินต่อไปจนกว่าคนสุดท้ายในคิวจะซื้อตั๋ว เมื่อใช้อัลกอริธึมนี้ กระบวนการ CPU จะทำงานในลักษณะเดียวกัน

FCFS ทำงานอย่างไร? การคำนวณเวลารอโดยเฉลี่ย

นี่คือตัวอย่างของกระบวนการทั้งห้าที่มาถึงในเวลาที่ต่างกัน แต่ละกระบวนการมีเวลาระเบิดที่แตกต่างกัน

กระบวนการ ระเบิดเวลา เวลาถึง
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

การใช้อัลกอริธึมการจัดกำหนดการ FCFS กระบวนการเหล่านี้ได้รับการจัดการดังต่อไปนี้

ขั้นตอน 1) กระบวนการเริ่มต้นด้วย P4 ซึ่งมีเวลามาถึง 0

งานเอฟซีเอฟเอส

ขั้นตอน 2) เมื่อเวลา=1 P3 มาถึง P4 ยังคงดำเนินการอยู่ ดังนั้น P3 จึงถูกเก็บไว้ในคิว

กระบวนการ ระเบิดเวลา เวลาถึง
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

งานเอฟซีเอฟเอส

ขั้นตอน 3) ณ เวลา = 2 P1 มาถึงซึ่งถูกเก็บไว้ในคิว

กระบวนการ ระเบิดเวลา เวลาถึง
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

งานเอฟซีเอฟเอส

ขั้นตอน 4) ณ เวลา = 3 กระบวนการ P4 ดำเนินการเสร็จสิ้น

งานเอฟซีเอฟเอส

ขั้นตอน 5) ณ เวลา=4 P3 ซึ่งเป็นลำดับแรกในคิวจะเริ่มดำเนินการ

กระบวนการ ระเบิดเวลา เวลาถึง
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

งานเอฟซีเอฟเอส

ขั้นตอน 6) ณ เวลา =5 P2 มาถึง และถูกเก็บไว้ในคิว

กระบวนการ ระเบิดเวลา เวลาถึง
P1 6 2
P2 2 5
P3 8 1
P4 3 0
P5 4 4

งานเอฟซีเอฟเอส

ขั้นตอน 7) ณ เวลา 11 P3 ดำเนินการเสร็จสิ้น

งานเอฟซีเอฟเอส

ขั้นตอน 8) ณ เวลา=11 P1 เริ่มดำเนินการ มีเวลาระเบิดเป็น 6 ดำเนินการเสร็จสิ้นในช่วงเวลา 17

งานเอฟซีเอฟเอส

ขั้นตอน 9) ณ เวลา = 17 P5 เริ่มดำเนินการ มีเวลาระเบิดเป็น 4 ดำเนินการเสร็จสิ้นเมื่อเวลา = 21

งานเอฟซีเอฟเอส

ขั้นตอน 10) ณ เวลา=21 P2 เริ่มดำเนินการ มีเวลาระเบิดเป็น 2 ดำเนินการเสร็จสิ้นในช่วงเวลา 23

งานเอฟซีเอฟเอส

ขั้นตอน 11) ลองคำนวณเวลารอโดยเฉลี่ยสำหรับตัวอย่างข้างต้น

งานเอฟซีเอฟเอส

Waiting time = Start time - Arrival time

P4 = 0-0 = 0

P3 = 3-1 = 2

ปี่ = 11-2 = 9

P5= 17-4 = 13

P2= 21-5= 16

เวลารอโดยเฉลี่ย

งานเอฟซีเอฟเอส
= 40 / 5 = 8

ข้อดีของ FCFS

นี่คือข้อดี/ประโยชน์ของการใช้อัลกอริทึมการตั้งเวลา FCFS:

ข้อเสียของ FCFS

นี่คือข้อเสีย/ข้อเสียของการใช้อัลกอริธึมการตั้งเวลา FCFS:

  • เป็นอัลกอริธึมการตั้งเวลา CPU แบบไม่ต้องเสียเปรียบ ดังนั้นหลังจากที่กระบวนการได้รับการจัดสรรให้กับ CPU แล้ว กระบวนการจะไม่ปล่อย CPU จนกว่าจะดำเนินการเสร็จสิ้น
  • เวลารอโดยเฉลี่ยอยู่ในระดับสูง
  • กระบวนการสั้นที่อยู่ด้านหลังคิวต้องรอให้กระบวนการยาวที่ด้านหน้าเสร็จสิ้น
  • ไม่ใช่เทคนิคที่เหมาะสำหรับระบบแบ่งเวลา
  • เนื่องจากความเรียบง่าย FCFS จึงไม่มีประสิทธิภาพมากนัก

สรุป

  • คำจำกัดความ: FCFS เป็นอัลกอริทึมการกำหนดตารางการทำงานของระบบปฏิบัติการที่จะดำเนินการตามคำขอและกระบวนการที่อยู่ในคิวโดยอัตโนมัติตามลำดับการมาถึง
  • รองรับการตั้งเวลาแบบไม่ยึดถือและยึดถือล่วงหน้า
  • ขั้นตอนวิธี
  • FCFS ย่อมาจาก First Come First Serve
  • ตัวอย่างในชีวิตจริงของวิธี FCFS คือการซื้อตั๋วหนังที่เคาน์เตอร์จำหน่ายตั๋ว
  • มันเป็นรูปแบบที่ง่ายที่สุดของอัลกอริทึมการตั้งเวลา CPU
  • เป็นอัลกอริธึมการตั้งเวลา CPU แบบไม่ต้องเสียเปรียบ ดังนั้นหลังจากที่กระบวนการได้รับการจัดสรรให้กับ CPU แล้ว กระบวนการจะไม่ปล่อย CPU จนกว่าจะดำเนินการเสร็จสิ้น