58
บบบบบ 5 Process Scheduling

บทที่ 5 Process Scheduling

Embed Size (px)

DESCRIPTION

บทที่ 5 Process Scheduling. 5.1 Basic Concepts - PowerPoint PPT Presentation

Citation preview

บทท�� 5Process Scheduling

5.1 Basic Concepts

ในระบบโปรเซสเดี่ �ยว มี หน��งโปรเซสเท่�าน��นท่ �สามีารถท่�างานไดี่�ในเวลามี ส��งอื่!�นต้�อื่งคอื่ยจนกระท่��ง CPU ว�าง จ&ดี่ประสงค'ในหลาย ๆ โครงการค!อื่ต้�อื่งมี โปรเซสท่�างานต้ลอื่ดี่เวลา การใช้� CPU ให�เป*นประโยช้น' เป*นแนวความีค�ดี่ท่ �มี ความีส�มีพั�นธ์'ก�นอื่ย�างง�าย โปรเซสท่ �ท่�าให�ส�าเร.จจนกระท่��งมี�นเป*นการรอื่คอื่ยต้ามีแบบอื่ย�างเพั!�อื่ให�เสร.จ ในระบบคอื่มีพั�วเต้อื่ร'อื่ย�างง�าย CPU เพั��งจะเป*นส��งท่ �ไมี�มี ประโยช้น' เวลาท่ �ใช้�ในการคอื่ยท่��งหมีดี่ใช้�ไมี�ไดี่� ไมี�มี ประโยช้น'ในการท่�างานท่ �ส�าเร.จ ท่��งโปรแกรมีท่ �หลากหลาย พัวกเราพัยายามีใช้�เวลาเพั!�อื่ท่�าให�เก�ดี่ขึ้��น หลาย ๆ กระบวน

ช้น�ดี่ขึ้อื่งรายการมี ความีส�าค�ญก�บหน�าท่ �ในระบบต้�าง คอื่มีพั�วเต้อื่ร'เก!อื่บท่��งหมีดี่มี ต้ารางการท่�างานก�อื่นการใช้�งาน แน�นอื่น CPU เป*นหน��งแหล�งค�นหาในคอื่มีพั�วเต้อื่ร'ท่ �เป*นดี่��งเดี่�มี เช้�นน �เอื่งท่�าให�ศู2นย'กลางการท่�างานขึ้อื่งระบบเป*นผู้2�อื่อื่กแบบต้ารางการท่�างาน

5.1.1 CPU-I/O Burst Cycle

ต้ารางการท่�างานขึ้อื่ง CPU จะส�าเร.จไดี่�ต้�อื่งไว�ใจและปฏิ�บ�ต้�ต้ามีค&ณสมีบ�ต้�ขึ้อื่งโปรเซส โปรเซสท่ �ท่�าให�ส�าเร.จประกอื่บขึ้��นดี่�วยวงล�อื่ต้�าง ๆ โปรเซสต้�าง ๆ ท่ �สล�บระหว�างสอื่งสถานะ ความีส�าเร.จในโปรเซสเร��มีต้�นดี่�วยการระเบ�ดี่ขึ้อื่ง CPU ในท่ �ส&ดี่ ส&ดี่ท่�ายขึ้อื่ง CPU จะมี การร�อื่งขึ้อื่ให�จบอื่ย�างส�าเร.จ

5.1.2 CPU Scheduler

เมี!�อื่ไรก.ต้ามีท่ � CPU กลายเป*นส��งท่ �ไมี�จ�าเป*น ระบบจ�งจ�าเป*นต้�อื่งค�ดี่เล!อื่กหน��งโปรเซสเต้ร ยมีพัร�อื่มีเพั!�อื่ให�แผู้นการส�าเร.จ การค�ดี่เล!อื่กโปรเซสน��นต้�อื่งท่�าต้ามีร2ปแบบการบร�หารโดี่ยเป*นต้ารางการท่�าท่ �ส� �น ๆ ต้ารางท่ �เล!อื่กจากโปรเซสท่ �จดี่จ�าแบ�งให� CPU น��นประสบความีส�าเร.จ

แถวขึ้อื่งเคร!�อื่งหมีายต้�าง ๆ ไมี�จ�าเป*นส��งแรก ถ�าเราจะให�เห.นเราควรพั�จารณาหลาย ๆช้น�ดี่ในต้ารางต้�างๆ แถวท่ �พัร�อื่มีสามีารถเป*นเคร!�อื่งมี!อื่แก�แถวขึ้อื่ง FIFO แถวล�าดี่�บ หร!อื่รายช้!�อื่ท่ �เช้!�อื่มีต้�อื่ แนวความีค�ดี่ อื่ย�างไรก.ต้ามีโปรเซสท่��งหมีดี่ เช้!�อื่มีต้�อื่โอื่กาสท่ � CPU ท่�างาน การบ�นท่�กขึ้อื่งแถวในโปรเซสท่��วไปสามีารถควบค&มีอื่ย2�ในโปรเซส

5.1.3 การให้สิ�ทธิ�การจั�ดเวลา (preemptive Scheduling)

เป*นโปรเซสท่ �ระบบจะต้�อื่งต้�ดี่ส�นใจหร!อื่เล!อื่กเมี!�อื่มี เหต้&การณ'หน��งเก�ดี่ขึ้��น ค!อื่

1. เมี!�อื่โปรเซสเปล �ยนสถานะจาก ก�าล�งท่�างาน เป*น ก�าล�งรอื่คอื่ย (เช้�นผู้ลขึ้อื่งการเร ยกร�อื่ง(request) input/output หร!อื่ค�าขึ้อื่ร�อื่งขึ้อื่งการรอื่จากสถานะส��นส&ดี่ขึ้อื่งโปรเซสล2ก)

2. เมี!�อื่โปรเซสเปล �ยนสถานะจากก�าล�งท่�างานเป*นสถานะพัร�อื่มีเช้�นเมี!�อื่เก�ดี่การ interrupt

3. เมี!�อื่โปรเซสเปล �ยนสถานะจากก�าล�งรอื่คอื่ยเป*นสถานะพัร�อื่มีเช้�นเมี!�อื่ Input/Output เสร.จส��นไปแล�ว

4. เมี!�อื่โปรเซสส��นส&ดี่

การ โปรเซสจะเก.บ CPU จนกระท่��งปล�อื่ยอื่อื่กจาก CPU โดี่ยเหต้&การณ'หร!อื่สล�บไปท่ �สถานะการรอื่ สถานการณ'น �ใช้� Microsoft Windows 3.x Window 95 แนะน�าจากต้าราง preemptive และล�าดี่�บย�อื่ยท่��งหมีดี่เวอื่ร'ช้�นขึ้อื่งระบบปฏิ�บ�ต้�การ window มี การใช้�ส�ท่ธ์�6การจ�ดี่เวลา

ระบบปฏิ�บ�ต้�การ Mac OS X จาก Macintoshใช้�ต้าราง preemptive ก�อื่นเวอื่ร'ช้�นขึ้อื่งระบบปฏิ�บ�ต้�การ Macintosh ขึ้��นอื่ย2�ก�บต้าราง cooperative ต้ารางcooperativeเป*นเพั ยงว�ธ์ สามีารถใช้�แบบฟอื่ร'มีขึ้อื่งฮาร'ดี่แวร'เพัราะว�ามี�นไมี�เร ยกฮาร'ดี่แวร'พั�เศูษ

ต้าราง preemptive เก�าก�อื่ให�เก�ดี่ความีส�มีพั�นธ์'ก�บราคาจากการแบ�งขึ้�อื่มี2ล พั�จารณ'จากเคสขึ้อื่งสอื่งโปรเซสจากการแบ�งขึ้�อื่มี2ล ในขึ้ณะท่ �หน��งเป*นการแก�ไขึ้ขึ้�อื่มี2ลมี�นเป*น preempted ดี่�งน��นโปรเซสท่ �สอื่งสามีารถร�นไดี่� โปรเซสท่ �สอื่งพัยายามีอื่�านขึ้�อื่มี2ลน��นเป*นในสถานะขึ้�ดี่แย�งก�น ในสถานการณ'พัวกเราจ�าเป*นก�อื่ให�เท่�าก�นในการแบ�งก�นขึ้อื่งขึ้�อื่มี2ล

Preemption กระท่บการอื่อื่กแบบขึ้อื่งระบบปฏิ�บ�ต้�การส�วน kernel ในระหว�างขึ้อื่งโปรเซส system call kernel อื่าจจะย&�งจากก�จกรรมีต้�วแท่นขึ้อื่งโปรเซส เหมี!อื่นก�จกรรมีอื่าจจะเก �ยวพั�นก�บการเปล �ยนความีส�าค�ญขึ้อื่งkernelขึ้�อื่มี2ล

5.1.4 ตั�วสิ�งตั�อ (Dispatcher)

ส�วนประกอื่บอื่!�น ๆ ท่ �เก �ยวขึ้�อื่งในฟ:งก'ช้� �น CPU-scheduling เป*น dispactcher.Dispatcher น �เป*นmodule ท่ �ควบค&มีให�ขึ้อื่ง CPU โปรเซสท่ �เล!อื่กโดี่ยต้ารางท่ �ส� �น ฟ:งก'ช้� �นน �เก �ยวขึ้�อื่งดี่�งต้�อื่ไปน �

1. เปล �ยนงาน (Swishing Context)

2. เปล �ยนไปเป*นช้�วงผู้2�ใช้� (User Mode)

3. ย�ายการควบค&มีไปท่ �บรรท่�ดี่ค�าส��งในโปรแกรมีผู้2�ใช้� เพั!�อื่ร สต้าร'ท่โปรแกรมีน��น

5.2การพิ�จัารณาการจั�ดตัารางเวลา (Scheduling Criteria)

อื่�ลกอื่ร�ท่�มีการจ�ดี่ต้ารางเวลาขึ้อื่งซ พั ย2ท่ �แต้กต้�างก�น ย�อื่มีมี ค&ณสมีบ�ต้�ท่ �แต้กต้�างก�น ดี่�งน��นในการเล!อื่กอื่�ลกอื่ร�ท่�มีมีาใช้�งาน เราต้�อื่งพั�จารณาว�าอื่�ลกอื่ร�ท่�มีใดี่มี ค&ณสมีบ�ต้�เหมีาะสมีก�บงานน��นท่ �ส&ดี่

• เกณฑ์'การพั�จารณาท่ �ใช้�ส�าหร�บเปร ยบเท่ ยบอื่�ลกอื่ร�ท่�มีการจ�ดี่ต้ารางเวลาขึ้อื่งซ พั ย2มี หลายเกณฑ์' ซ��งสามีารถน�ามีาเปร ยบเท่ ยบเพั!�อื่ต้�ดี่ส�นว�าอื่�ลกอื่ร�ท่�มีใดี่ดี่ ท่ �ส&ดี่ไดี่� เกณฑ์'ดี่�งกล�าวมี ดี่�งน �

• การใช้�งานซ พั ย2 (CPU utilization) เกณฑ์'น �จะค�ดี่อื่�ต้ราการใช้�งานขึ้อื่งซ พั ย2เป*น % ซ��งในระบบจร�งมี�นจะอื่ย2�ระหว�าง 40 เปอื่ร'เซ.นต้' (กรณ ท่ �ระบบถ2กใช้�งานเพั ยงเล.กน�อื่ย) ถ�ง 90 เปอื่ร'เซ.นต้' (กรณ ท่ �ระบบถ2กใช้�งานอื่ย�างหน�ก)

• ประมีาณงาน (Throughput) เกณฑ์'น �จะพั�จารณาท่ �จ�านวนโปรเซสท่ �ท่�างานเสร.จภายใน 1 หน�วยเวลา ถ�าโปรเซสใดี่ยาวมีาก 1 โปรเซสน��นอื่าจท่�างานเสร.จภายในเวลา 1 ช้��วโมีง แต้�โปรเซสท่ �ส� �น 10 โปรเซสอื่าจท่�างานเสร.จภายในเวลา 1 ว�นาท่

• เวลาโดี่ยรวมี (Turnaround time) เกณฑ์'น �จะพั�จารณาเวลาต้��งแต้�เร��มีต้�นน�าโปรเซสเขึ้�าไปท่�างานจนถ�งโปรเซสจบการท่�างาน เป*นผู้ลรวมีขึ้อื่งระยะเวลาท่ �ส2ญเส ยไปในการรอื่เขึ้�าส2�หน�วยความีจ�า, การรอื่คอื่ยใน Ready Queue, การประมีวลผู้ลใน CPU และการร�บขึ้�อื่มี2ลเขึ้�าและแสดี่งผู้ลขึ้�อื่มี2ล

• เวลาคอื่ย (Waiting time) เกณฑ์'น �จะพั�จารณาเวลาท่��งหมีดี่ท่ �โปรเซสใช้�ไปในการรอื่คอื่ยใน Ready Queue

• เวลาต้อื่บสนอื่ง (Response time) เกณฑ์'น �จะพั�จารณาเวลาต้��งแต้�เร��มีต้�นจนเก�ดี่การต้อื่บสนอื่งเป*นคร��งแรก

อื่�ลกอื่ร�ท่�มีท่ �ดี่ ควรมี การใช้�งานซ พั ย2 (CPU utilization) และการประมีาณงาน (Throughput) ส2งท่ �ส&ดี่ ส�วนเวลาโดี่ยรวมี (Turnaround time), เวลาคอื่ย (Waiting time) และเวลาต้อื่บสนอื่ง (Response time) ต้��าท่ �ส&ดี่ ในกรณ ส�วนใหญ�เราจะใช้�ค�าเฉล �ยท่ �เหมีาะสมี อื่ย�างไรก.ต้ามี ภายใต้�บางสถานการณ'อื่�ลกอื่ร�ท่�มีท่ �ดี่ ควรใช้�ค�าท่ �ส2งท่ �ส&ดี่หร!อื่ค�าท่ �ต้��าท่ �ส&ดี่อื่ย�างเหมีาะสมีแท่นท่ �จะใช้�ค�าเฉล �ย ต้�วอื่ย�างเช้�น ร�บประก�นว�าผู้2�ใช้�ท่&กคนจะไดี่�ร�บบร�การท่ �ดี่ เราอื่าจต้�อื่งการลดี่เวลาการต้อื่บสนอื่งให�มีากท่ �ส&ดี่

5.3อ�ลกอร�ท�มการจั�ดตัารางการท�างาน (Scheduling Algorithm)

ซ พั ย2จ�ดี่การต้ารางการท่�างานเก �ยวก�บป:ญหาการต้�ดี่ส�นใจขึ้อื่งโปรเซสท่ �รอื่อื่ย2�ในสถานะพัร�อื่มีท่ �ส&ดี่ซ��งจะถ2กจ�ดี่สรรในซ พั ย2 มี หลายอื่�ลกอื่ร�ท่�มีการจ�ดี่ต้ารางการท่�างานท่ �แต้กต้�างก�น ในส�วนน �จะอื่ธ์�บายถ�งอื่�ลกอื่ร�ท่�มีหลาย ๆ แบบ

5.3.1 การจั�ดตัารางการท�างานแบบมาก�อนไดก�อน (First-Come, First-Served Scheduling)

อื่�ลกอื่ร�ท่�มีการก�าหนดี่เวลาอื่ย�างง�าย ค!อื่ อื่�ลกอื่ร�ท่�มีการจ�ดี่ต้ารางการท่�างานแบบ FCFS (First-Come, First-Served) เมี!�อื่เร��มีท่�างานโปรเซสไหนส�งค�าร�อื่งไปท่ �ซ พั ย2ก�อื่น ซ พั ย2ก.จะจ�ดี่สรรให�ก�อื่น ว�ธ์ การน �ดี่�าเน�นการโดี่ยมี นโยบาย FCFS ท่ �สะดี่วกก�บการจ�ดี่การค�วแบบ FIFO เมี!�อื่เขึ้�าส2�โปรเซสและค�วพัร�อื่มีแล�ว PCB จะมี การเช้!�อื่มีโยงเขึ้�าส2�ส�วนหางขึ้อื่งค�ว เมี!�อื่ซ พั ย2ว�างจะจ�ดี่สรรโปรเซสเขึ้�าส2�ส�วนห�วขึ้อื่งค�ว ท่�าการร�นโปรเซสน �แล�วลบอื่อื่กจากค�ว โค�ดี่ส�าหร�บการเขึ้ ยนการจ�ดี่ต้ารางการท่�างานแบบ FCFS น��นง�ายและสามีารถเขึ้ ยนให�เขึ้�าใจไดี่�

นอื่กจากน �จะพั�จารณาประส�ท่ธ์�ภาพัการจ�ดี่ต้ารางการท่�างานแบบ FCFS แบบไดี่นามี�ค สมีมีต้�ว�าเรามี โปรเซส CPU-bond หน��งโปรเซสและมี โปรเซส I/O-bond หลายโปรเซส เน!�อื่งจากโปรเซสไดี่�ไหลไปรอื่บ ๆ ระบบ สถานการณ'เช้�นน �จะส�งผู้ลท่ � CPU-bond จะไดี่�ร�บและถ!อื่ซ พั ย2 ในระหว�างน �โปรเซสอื่!�น ๆ ท่ �มี การส�งค�าเขึ้�าอื่อื่กเสร.จส��น และจะเคล!�อื่นย�ายเขึ้�าส2�ค�วต้�อื่งรอื่ซ พั ย2ดี่�วย

5.3.2 การจั�ดตัารางการท�างานแบบสิ�!นสิ"ดไดก�อน (Shortest-Job-First Scheduling)

อื่ กว�ธ์ ในการก�าหนดี่เวลาขึ้อื่ง CPU ค!อื่ อื่�ลกอื่ร�ท่�มีการจ�ดี่ต้ารางการท่�างานแบบ SJF (shortest-job-first) อื่�ลกอื่ร�ท่�มีน �แต้�ละโปรเซสจะมี ความียาวขึ้อื่งโปรเซสคร��งถ�ดี่ไปขึ้อื่งซ พั ย2ไว�ดี่�วย ถ�าซ พั ย2ถ�ดี่ไปมี สอื่งโปรเซสเหมี!อื่นการจ�ดี่ต้ารางการท่�างานแบบ FCFS ท่ �ใช้�การหย&ดี่ช้��วคราว (หมีายเหต้&: ว�ธ์ การท่ �เหมีาะสมี ค!อื่ ใช้�อื่�ลกอื่ร�ท่�มีแบบ shortest-nest-CPU-burst) เพัราะการจ�ดี่ต้ารางเวลาขึ้��นอื่ย2�ก�บความียาวขึ้อื่งซ พั ย2ต้�วถ�ดี่ไปขึ้อื่งโปรเซสมีาแท่นท่ �ผู้ลรวมีขึ้อื่งความียาว เราใช้�ค�าว�า SJF เพัราะว�าส�วนมีากแล�วผู้2�คนและต้�าราต้�าง ๆ มี�กใช้�ค�าเหล�าน �อื่�างถ�งประเภท่ขึ้อื่งการจ�ดี่ต้ารางการท่�างาน

ความียากท่ �แท่�จร�งขึ้อื่งอื่�ลกอื่ร�ท่�มี SJF ค!อื่การร2 �ว�าความียาวถ�ดี่ไปหล�งจากส�งค�าขึ้อื่ไปท่ �ซ พั ย2 ส�าหร�บเวลาระยะยาว (งาน) การจ�ดี่ต้ารางการท่�างานในช้&ดี่โปรเซสท่ �เราสามีารถใช้�งานไดี่�เป*นระยะ โปรเซสจ�าก�ดี่เวลาท่ �ผู้2�ใช้�งานระบ&เมี!�อื่เขึ้าส�งงานมีา ดี่�งน��นเมี!�อื่ผู้2�ใช้�มี การประมีาณโปรเซสขึ้อื่งการจ�าก�ดี่เวลาอื่ย�างถ2กต้�อื่ง ถ�ามี�นมี ค�าต้��าอื่าจหมีายความีว�าจะต้อื่บสนอื่งไดี่�เร.วกว�า (ค�าท่ �ต้��าเก�นไปจะท่�าให�เวลาจ�าก�ดี่เก�น จนเก�ดี่ขึ้�อื่ผู้�ดี่พัลาดี่และต้�อื่งท่�าการส�งใหมี�) การจ�ดี่ต้ารางการท่�างานแบบ SJF มี การใช้�บ�อื่ยในการก�าหนดี่เวลาระยะยาว

อื่�ลกอื่ร�ท่�มี SJF สามีารถท่��งแท่รกกลางค�นไดี่�หร!อื่ห�ามีแท่รกกลางค�น ส�าหร�บต้�วเล!อื่กเมี!�อื่เก�ดี่โปรเซสใหมี�ในค�วขึ้ณะท่ �โปรเซสก�อื่นหน�าย�งคงร�นอื่ย2� ซ พั ย2ถ�ดี่ไปขึ้อื่งโปรเซสใหมี�อื่าจจะส��นกว�าโปรเซสท่ �ร�นอื่ย2�ในขึ้ณะน � การแท่รกกลางค�นในอื่�ลกอื่ร�ท่�มี SJF น � โปรเซสท่�างานในขึ้ณะท่ �อื่ กโปรเซสย�งร�นอื่ย2�ไดี่� ในท่างต้รงก�นขึ้�ามีการห�ามีแท่รกกลางค�นในอื่�ลกอื่ร�ท่�มี SJF น � โปรเซสจะท่�างานไดี่�ก.ต้�อื่เมี!�อื่ซ พั ย2ท่�าการประมีวลผู้ลเสร.จแล�ว การแท่รกกลางค�นขึ้อื่งการจ�ดี่ต้ารางเวลาแบบ SJF บางคร��งเร ยกว�า เวลาท่ �ส� �นท่ �ส&ดี่จะท่�าก�อื่น (shortest-remaining-time-first scheduling)

5.3.3 การจั�ดเวลาตัามล�าด�บความสิ�าค�ญ (Priority Scheduling) ขึ้��นต้อื่นว�ธ์ SJF เป*นกรณ พั�เศูษขึ้อื่งขึ้��นต้อื่นว�ธ์ การจ�ดี่เวลาต้ามีล�าดี่�บความีส�าค�ญท่��วไป ความีส�าค�ญจะมี ส�วนเก �ยวขึ้�อื่งแต้�ละโปรเซส และซ พั ย2จะก�าหนดี่โปรเซสท่ �มี ความีส�าค�ญมีากท่ �ส&ดี่ ส�วนโปรเซสท่ �มี ความีส�าค�ญท่ �เท่�าก�นจะจ�ดี่ล�าดี่�บแบบ FCFS ขึ้��นต้อื่นว�ธ์ SJF เป*นขึ้��นต้อื่นท่ �ต้ามีล�าดี่�บความีส�าค�ญ โดี่ยท่ �ความีส�าค�ญจะแปรผู้กผู้�นก�บ CPU Burst ถ�า CPU Burst มี ขึ้นาดี่ใหญ�ความีส�าค�ญก.จะน�อื่ย

5.3.4 การจั�ดเวลาตัามล�าด�บแบบวนรอบ (Round-Robin Scheduling)

ขึ้��นต้อื่นว�ธ์ การจ�ดี่เวลาแบบวนรอื่บถ2กอื่อื่กแบบมีาเพั!�อื่ระบบแบ�งเวลา ซ��งมี ล�กษณะคล�ายก�บการจ�ดี่เวลาแบบ FCFS แต้�ส�ท่ธ์�จะเพั��มีระหว�างโปรเซส หน�วยขึ้อื่งเวลา เร ยกว�า time quantum หร!อื่ time slice, time quantum จะมี ช้�วงระหว�าง 10 ถ�ง 100 มี�ลล�ว�นาท่ ready queue จะร�กษา circular queue ต้�วจ�ดี่การซ พั ย2จะไปก�าหนดี่รอื่บ ๆ ready queue ซ��งจะจ�ดี่สรรซ พั ย2ให�ก�บแต้�ละโปรเซสในเวลา 1 time quantum

ส��งท่ �ส�าค�ญขึ้อื่งการจ�ดี่เวลาแบบ RR เป*นการเร ยงค�วแบบ FIFO ซ��งโปรเซสใหมี�จะต้�อื่ท่�าย ready queue ต้�วจ�ดี่การซ พั ย2เล!อื่กโปรเซสแรกจาก ready queue จะต้��งเวลาหย&ดี่หล�งจาก 1 time quantum และจ�ดี่การโปรเซส

หน��งในสอื่งส��งท่ �เก�ดี่ขึ้��น โปรเซสต้�อื่งมี CPU Burst อื่ย�างน�อื่ย 1 time quantum ในกรณ น � โปรเซสจะปล�อื่ยให�ก�บซ พั ย2เอื่ง ต้�วจ�ดี่การจะดี่�าเน�นการโปรเซสต้�อื่ไปใน ready queue อื่ กอื่ย�างหน��ง ถ�า CPU Burst ขึ้อื่งโปรเซสท่ �ท่�างานอื่ย2�นานเก�น 1 time quantum ต้�วจ�บเวลาจะท่�าการอื่อื่กและ หย&ดี่การท่�างานขึ้อื่งระบบปฏิ�บ�ต้�การ context switch จะดี่�าเน�นการ และกระบวนจะวางไว�ท่�าย ready queue ต้�วจ�ดี่การซ พั ย2จะเล!อื่กโปรเซสถ�ดี่ไปใน ready queue

เวลาเฉล �ยท่ �รอื่ต้ามีว�ธ์ การ RR จะเร��มีเวลาท่ � 0 ดี่�วยความียาวขึ้อื่ง CPU Burst ในหน�วยเวลา มี�ลล�ว�นาท่

Process Burst TimeP1 24P2 3P3 3

ถ�าก�าหนดี่ให� 1 time quantum = 4 มี�ลล�ว�นาท่ โปรเซส P1ใช้� 4 มี�ลล�ว�นาท่ แรก แต้�เน!�อื่ง P1 ย�งต้�อื่งการอื่ ก 20 มี�ลล�ว�นาท่ ซ พั ย2จ�งต้�อื่งให�โปรเซส P2 แต้� P2 ใช้�เวลาไมี�ถ�ง เพัราะ P2 ใช้�เวลาเพั ยง 3 มี�ลล�ว�นาท่ ซ พั ย2จ�งให�โปรเซส P3 แต้� P3 ใช้�เวลาไมี�ถ�ง โปรเซส P1จ�งกล�บมีาใช้�ซ พั ย2ต้�อื่ไดี่�

ค�าเฉล �ยขึ้อื่งการรอื่ ค!อื่ 17/3 = 5.66 มี�ลล�ว�นาท่ (ค!อื่ เวลา ( 0+7+10)/3)

การดี่�าเน�นการขึ้อื่งขึ้��นต้อื่นว�ธ์ การจ�ดี่เวลาต้ามีล�าดี่�บแบบ RR ขึ้��นอื่ย2�ก�บขึ้นาดี่ขึ้อื่ง time quantum ถ�า time quantum มี ขึ้นาดี่ใหญ� หล�กการ RR จะเหมี!อื่นก�บหล�กการ FCFS แต้�ถ�า time quantum มี ขึ้นาดี่เล.ก (เช้�น 1 มี�ลล�ว�นาท่ ) ว�ธ์ การ RR เร ยกว�า process sharing และ (ในท่ฤษฎี ) สร�างล�กษณะให�ก�บแต้�ละโปรเซสในการร�นแต้�ละโปรเซสขึ้อื่งมี�น 1/n ความีเร.วขึ้อื่งต้�วดี่�าเน�นการจร�ง ว�ธ์ การน �ใช้�ใน Control Data Corporation (CDC) ซ��งมี ความีส�าค�ญ โดี่ยท่ �ฮาร'ดี่แวร'หน��งต้�วจะใช้�ร�จ สเต้อื่ร' 10 ต้�ว

ในซอื่ฟแวร'จะต้�อื่งพั�จารณาผู้ลกระท่บขึ้อื่ง context switch บนการจ�ดี่เวลาต้ามีล�าดี่�บแบบ RR เร��มีท่ �โปรเซสหน��งใช้�เวลา 10 หน�วยเวลา ถ�า quantum เท่�าก�บ 12 หน�วยเวลา โปรเซสจะเสร.จเร.วกว�า 1 time quantum แต้�อื่ย�างไรก.ต้ามีถ�า quantum เท่�าก�บ 6 หน�วยเวลา โปรเซสจะก�าหนดี่ 2 quanta จะท่�าให�มี ผู้ลก�บ context switch ดี่�งร2ป

5.3.5 Multilevel Queue Scheduling

คลาสอื่!�นขึ้อื่ง อื่�ลกอื่ร�ท่�มีการก�าหนดี่ต้ารางเวลา มี การสร�างเพั!�อื่สถานการณ'ในกระบวนการท่ �ง�ายดี่ายในการจ�ดี่ส��งท่ �แต้กต้�างลงในกล&�มี

หลาย ๆ ระดี่�บค�วขึ้อื่งอื่�ลกอื่ร�ท่�มีการก�าหนดี่ต้ารางเวลา ส�วนขึ้อื่งค�วท่ �เต้ร ยมีพัร�อื่มีในหลาย ๆ ค�วท่ �แยกก�น มี โปรเซสถาวรท่ �ก�าหนดี่หน��งค�ว โดี่ยท่��วไปต้ามีบางค&ณสมีบ�ต้�ขึ้อื่งโปรเซส เช้�น ขึ้นาดี่หน�วยความีจ�า ความีส�าค�ญขึ้อื่งโปรเซสหร!อื่ช้น�ดี่ขึ้อื่งโปรเซส แต้�ละค�วมี อื่�ลกอื่ร�ท่�มีการก�าหนดี่ต้ารางเวลาขึ้อื่งต้�วเอื่ง ต้�วอื่ย�างเช้�น การแบ�งแยกค�วอื่าจจะใช้�ส�าหร�บโปรเซสส�วนหน�าและโปรเซสส�วนหล�ง ค�วท่ �อื่ย2�ส�วนหน�าอื่าจจะต้��งเวลาโดี่ย RRอื่�ลกอื่ร�ท่�มี ในขึ้ณะท่ �ค�วส�วนหล�งเป*นการต้��งเวลาโดี่ย FCFS อื่�ลกอื่ร�ท่�มี

ต้�วอื่ย�างขึ้อื่งค�วในหลาย ๆ ระดี่�บขึ้อื่งอื่�ลกอื่ร�ท่�มีการก�าหนดี่ต้ารางเวลาก�บห�าค�ว ท่ �แสดี่งดี่�านล�างต้ามีล�าดี่�บขึ้อื่งความีส�าค�ญ

• โปรเซสขึ้อื่งระบบ (System processes)• โปรเซสโต้�ต้อื่บ (Interactive processes)• โปรเซสแก�ไขึ้โต้�ต้อื่บ (Interactive editing

processes)• โปรเซสท่ �เป*นช้&ดี่ (Batch processes)• โปรเซสล2กศู�ษย' (Student processes)

แต้�ละค�วท่ �มี ความีส�าค�ญมีากกว�าค�วท่ �มี ความีส�าค�ญต้��ากว�า ไมี�มี โปรเซสในค�วท่ �เป*นช้&ดี่ ต้�วอื่ย�างเช้�น มี�นสามีารถท่�างานนอื่กเหน!อื่จากค�วส�าหร�บโปรเซสขึ้อื่งระบบ โปรเซสโต้�ต้อื่บและโปรเซสแก�ไขึ้โต้�ต้อื่บว�างเปล�าท่��งหมีดี่ ถ�าโปรเซสแก�ไขึ้โต้�ต้อื่บถ2กป@อื่นพัร�อื่มีค�วในขึ้ณะท่ �ช้&ดี่ขึ้อื่งโปรเซสถ2กประมีวลผู้ลช้&ดี่ขึ้อื่งโปรเซสจะไดี่�ร�บส�ท่ธ์�พั�เศูษ

ท่างอื่!�นท่ �เป*นไปไดี่�ค!อื่เวลาถ2กแบ�งในหมี2�ค�ว แต้�ละค�วจะไดี่�ร�บเวลาบางส�วนขึ้อื่ง CPU ซ��งสามีารถก�าหนดี่โปรเซสในการท่�างานต้�าง ๆ ต้�วอื่ย�างเช้�น ในกรณ ขึ้อื่งค�วส�วนหน�าก�บค�วส�วนหล�ง ค�วส�วนหน�าสามีารถไดี่�ร�บ 80 เปอื่ร'เซ.นต้'ขึ้อื่งเวลา CPU ส�าหร�บการก�าหนดี่แบบ RR ในกล&�มีขึ้อื่งโปรเซสเหล�าน � แต้�ท่ว�าค�วส�วนหล�งจะไดี่�ร�บ 20 เปอื่ร'เซ.นต้'ขึ้อื่ง CPU เพั!�อื่โปรเซสดี่�งกล�าวบนพั!�นฐานขึ้อื่ง FCFS

5.3.6 Multilevel Feedback-Oueue Scheduling

โดี่ยปกต้�เมี!�อื่อื่�ลกอื่ร�ท่�มีในการก�าหนดี่เวลาขึ้อื่งค�วหลาย ๆ ระดี่�บถ2กใช้�เป*นโปรเซสถาวรท่ �ก�าหนดี่ค�วเมี!�อื่เขึ้�าไปในระบบ ถ�าแบ�งค�วเป*นโปรเซสส�วนหน�าและโปรเซสส�วนหล�ง ต้�วอื่ย�างเช้�น โปรเซสจะไมี�เคล!�อื่นย�ายจากค�วหน��งไปย�งค�วอื่!�น ต้��งแต้�เป*นโปรเซสจะไมี�เปล �ยนธ์รรมีช้าต้�ขึ้อื่งส�วนหน�าหร!อื่ส�วนหล�ง การต้�ดี่ต้��งน �มี ประโยช้น'จากการต้��งเวลาท่ �ต้��าเหน!อื่ขึ้��นไป แต้�มี�นไมี�ย!ดี่หย&�น

อื่�ลกอื่ร�ท่�มีการก�าหนดี่เวลาแบบ feedback-queue หลายระดี่�บ ต้รงก�นขึ้�ามีมี�นยอื่มีให�โปรเซสสามีารถเคล!�อื่นย�ายระหว�างค�ว แนวค�ดี่น �ก.เพั!�อื่แบ�งโปรเซสต้ามีค&ณล�กษณะขึ้อื่งการกระจาย CPU ถ�าโปรเซสใช้�เวลา CPU มีาก มี�นจะถ2กย�ายไปเป*นค�วท่ �มี ความีส�าค�ญน�อื่ย น �เป*นเหต้&การณ'ท่ �แยกจากการผู้2กพั�นก�บอื่�นพั&ต้/เอื่าท่'พั&ต้และโปรเซสโต้�ต้อื่บในค�วท่ �มี ความีส�าค�ญส2ง นอื่กจากน �โปรเซสท่ �รอื่เป*นเวลานานในค�วท่ �มี ความีส�าค�ญต้��าอื่าจจะย�ายไปเป*นค�วท่ �มี ความีส�าค�ญส2งร2ปแบบน �เป*นการป@อื่งก�นการถ2กละเลย

อื่�ลกอื่ร�ท่�มีการก�าหนดี่ต้ารางเวลาน �ให�ความีส�าค�ญส2งส&ดี่ส�าหร�บโปรเซสใดี่ ๆ ท่ �แต้กจาก CPU 8 มี�ลล�ว�นาท่ หร!อื่น�อื่ยกว�าน��น โปรเซสดี่�งกล�าวจะไดี่�ร�บ CPU อื่ย�างรวดี่เร.ว เสร.จส��นการท่ � CPU แต้กอื่อื่กจะเป*นโปรเซสท่ �ต้�อื่งการมีากกว�า 8 แต้�ต้��ากว�า 24 มี�ลล�ว�นาท่

นอื่กจากน �ย�งมี การให�บร�การไดี่�อื่ย�างรวดี่เร.ว ถ�งแมี�ว�าจะมี ล�าดี่�บความีส�าค�ญต้��ากว�าโปรเซสท่ �ส� �นกว�า โปรเซสท่ �ยาวโดี่ยอื่�ต้โนมี�ต้�ต้��าลงเพั!�อื่ค�ว 2 และท่�างานใน FCFS ต้ามีรายการก�บวงจร CPU

ใดี่ ๆ ท่ �ต้กค�างจาก ค�ว 0 และค�ว 1

โดี่ยท่��วไป การก�าหนดี่ต้ารางเวลาแบบ feedback-queue หลายระดี่�บถ2กก�าหนดี่โดี่ยพัารามี�เต้อื่ร' ดี่�งน �

• จ�านวนค�ว• กลไกขึ้อื่งการก�าหนดี่ต้ารางเวลาส�าหร�บแต้�ละค�ว• ว�ธ์ การท่ �ใช้�เพั!�อื่พั�จารณาเมี!�อื่ปร�บปร&งโปรเซสท่ �มี ความีส�าค�ญ

ค�วส2งส&ดี่• ว�ธ์ ท่ �ใช้�ในการต้รวจสอื่บเมี!�อื่ใดี่ท่ �มี การลดี่ขึ้��นความีส�าค�ญขึ้อื่ง

ค�ว• ว�ธ์ การท่ �ใช้�เพั!�อื่ต้รวจสอื่บซ��งโปรเซสจะถ2กป@อื่นเมี!�อื่โปรเซ

สน��นต้�อื่งการบร�การ

5.4การจั�ดตัารางการท�างานสิ�าห้ร�บห้ลายห้น�วยประมวลผล

ท่ �ผู้�านมีาไดี่�กล�าวถ�งการจ�ดี่เวลาขึ้อื่งระบบคอื่มีพั�วเต้อื่ร'ซ��งมี ซ พั ย2เพั ยงต้�วเดี่ ยว แต้�ถ�าจะต้�อื่งอื่อื่กแบบระบบปฏิ�บ�ต้�การส�าหร�บคอื่มีพั�วเต้อื่ร'ซ��งมี ซ พั ย2หลายต้�ว การอื่อื่กแบบต้�าง ๆ ก.จะย��งเพั��มีความีซ�บซ�อื่นไปอื่ กมีาก จากอื่ดี่ ต้ถ�งป:จจ&บ�นก.ไดี่�มี การท่ดี่ลอื่งว�ธ์ การจ�ดี่เวลาหลาย ๆ แบบท่ �พัอื่จะเป*นไปไดี่� แต้�ก.ย�งไมี�สามีารถสร&ปไดี่�ว�ธ์ ไหนเป*นว�ธ์ ท่ �ดี่ ท่ �ส&ดี่ ซ��งก.ไมี�ต้�างก�บการหาว�ธ์ ท่ �ดี่ ท่ �ส&ดี่ส�าหร�บการจ�ดี่การระบบซ��งมี ซ พั ย2ต้�วเดี่ ยวเลย ดี่�งน��นในย�อื่หน�าต้�อื่ไป เราจะมีาศู�กษาก�นถ�งว�ธ์ การเป*นบางส�วนท่ �เป*นไปไดี่�และใช้�ก�นอื่ย�างแพัร�หลาย ในระบบท่ �มี ซ พั ย2หลายต้�วก�นและเราก.จะจ�าก�ดี่ป:ญหาขึ้อื่งเราอื่ย2�เพั ยงแค�ว�าซ พั ย2ท่ �มี หลายต้�วเป*นซ พั ย2ท่ �มี ล�กษณะการท่�างานเหมี!อื่นก�นท่&กประการ ซ��งส�าหร�บระบบท่ �มี ซ พั ย2ท่ �แต้กต้�างก�นน��น ก.จะมี การกล�าวถ�งในบท่ต้�อื่ไป

5.4.1 การเข้าถึ�งเพิ+�อท��จัะจั�ดตัารางการท�างานสิ�าห้ร�บห้ลายห้น�วยประมวลผล

ท่างแรกในการเขึ้�าถ�งการจ�ดี่ต้ารางการท่�างานขึ้อื่งซ พั ย2ในระบบประมีวลผู้ลแบบหลากหลาย จะมี การใช้�ซ พั ย2แยกต้�างหากระหว�างงานภายในขึ้อื่งระบบ เช้�น พัวกการจ�ดี่เวลาและการจ�ดี่ระบบอื่!�น ๆ อื่อื่กจากพัวกงานอื่�นพั&ต้/เอื่าต้'พั&ต้ท่��งหลาย และก�บงานท่ �เป*นขึ้อื่งผู้2�ใช้�ซ��งการท่�างานแยกก�นขึ้อื่งซ พั ย2แบบน � ท่�าให�การอื่อื่กแบบระบบปฏิ�บ�ต้�การความีซ�บซ�อื่นน�อื่ยลงมีาก เน!�อื่งจากมี ซ พั ย2เพั ยงต้�วเดี่ ยวท่ �จะเขึ้�าไปใช้�ขึ้�อื่มี2ลขึ้อื่งระบบปฏิ�บ�ต้�การ เพัราะว�าซ พั ย2อื่!�น ๆ ไมี�ว�าจะมี ก �ต้�วก.ต้ามี จะเขึ้�าถ�งไดี่�เฉพัาะขึ้�อื่มี2ลขึ้อื่งผู้2�ใช้�ภายนอื่กเท่�าน��นหร!อื่ท่ �เร ยกว�า การประมีวลผู้ลแบบไมี�สมีมีาต้ร (Asymmetric-multiprocessing) หมีายถ�งการมี โปรเซสเซอื่ร'ต้�วหน��งเป*นต้�วควบค&มี เขึ้�าถ�งโครงสร�างขึ้อื่งขึ้�อื่มี2ล ท่�าให�ช้�วยลดี่การแบ�งป:นขึ้�อื่มี2ล

ท่างท่ � 2 โดี่ยใช้� Symmetric Multiprocessing (SMP) ซ��งแต้�ละหน�วยประมีวลผู้ลจะมี ต้ารางการท่�างานขึ้อื่งต้นเอื่งอื่ย2�แล�ว ท่&กโปรเซสจะถ2กจ�ดี่ล�าดี่�บมีาเร ยบร�อื่ยแล�ว จากน��นหน�วยประมีวลผู้ลก.จะท่�าการจ�ดี่ล�าดี่�บค�วท่ �พัร�อื่มีและปฏิ�บ�ต้�การ ซ��งเราจะไดี่�เห.นในบท่ท่ � 6 ถ�าเรามี หน�วยประมีวลท่ �หลากหลายและพัยายามีเขึ้�าถ�งและอื่�พัเดี่ต้โครงสร�างขึ้�อื่มี2ล ต้�วจ�ดี่ต้ารางการท่�างานก.จะร�นโปรแกรมีอื่ย�างระมี�ดี่ระว�ง ท่�าให�มี��นใจไดี่�ว�าท่��ง 2 หน�วยประมีวลผู้ลจะไมี�เล!อื่กโปรเซสท่ �เหมี!อื่นก�นและในโปรเซสน��น ๆ จะไมี�มี ล�าดี่�บท่ �ส2ญหาย ซ��งระบบท่ �รอื่งร�บการท่�างานแบบ SMP ไดี่�แก� Windows XP, Windows 2000, Solaris, Linux and Mac OS X

ถ�าหน�วยประมีวลผู้ลเป*นแบบเดี่ ยวก�นหมีดี่ เราสามีารถเฉล �ยแบ�งงานก�นท่�าไดี่�ดี่ ขึ้��น โดี่ยอื่าจให�มี แถวคอื่ยแยกแต้�ละหน�วยประมีวลผู้ล แต้�ว�ธ์ น �อื่าจท่�าให�หน�วยประมีวลผู้ลบางต้�วว�างงาน ในขึ้ณะท่ �บางต้�วงานหน�ก เราจ�งควรใช้�แถวคอื่ยร�วมีแถวเดี่ ยวก�นให�ท่&ก ๆ โปรเซสเขึ้�าแถวคอื่ยเดี่ ยวก�นหมีดี่ เมี!�อื่มี หน�วยประมีวลผู้ลใดี่ว�าง ก.จะให�ร�บงานไปจากแถวคอื่ยน �

การจ�ดี่แถวคอื่ยร�วมีน � อื่าจแบ�งไดี่�เป*น 2 ว�ธ์ • ให�หน�วยประมีวลผู้ลแต้�ละต้�วจ�ดี่ต้ารางการท่�างานเอื่ง • ก�าหนดี่ให�หน�วยประมีวลผู้ลหน��งมี หน�าท่ �จ�ดี่ต้ารางการ

ท่�างานโดี่ยเฉพัาะ

5.4.2 Processor affinity

เป*นการพั�จารณาว�าจะเก�ดี่อื่ะไรก�บ cache memory เมี!�อื่โปรเซสถ2กร�นโดี่ยหน�วยประมีวลผู้ลเฉพัาะ ขึ้�อื่มี2ลส�วนมีากจะถ2กป@อื่นโดี่ยโปรเซสท่ �อื่ย2�ภายใน cache ขึ้อื่งหน�วยประมีวลผู้ลกลาง เน!�อื่งจากการเขึ้�าใช้�หน�วยความีจ�าอื่ย�างต้�อื่เน!�อื่งน��นจะถ2กดี่�าเน�นการต้ามีความีพัอื่ใจขึ้อื่ง cache memory ต้อื่นน �ก.จะมีาพั�จารณาถ�งเหต้&การณ'ท่ �จะเก�ดี่ขึ้��นถ�าโปรเซสย�ายไปย�งหน�วยประมีวลผู้ลอื่!�น ความีจ&ขึ้อื่ง cache memory จะต้�อื่งท่�าให�ใช้�ไมี�ไดี่�ส�าหร�บหน�วยประมีวลผู้ลท่ �ย�ายมีา และ cache ส�าหร�บหน�วยประมีวลท่ �ย�ายมีาใหมี�น��นจะถ2กดี่�งอื่อื่กมีาใช้� เน!�อื่งจากราคาท่ �แพังขึ้อื่ง cache แบบ invalidating และ re-populating ท่�าให�ระบบ SMP พัยายามีหล กเล �ยงการย�ายโปรเซสจากหน�วยประมีวลผู้ลหน��งไปย�งอื่ กหน�วยประมีวลผู้ลหน��งและพัยายามีร�กษาการร�นโปรเซสในหน�วยประมีวลเดี่ ยวก�นแท่นและน �ก.ท่�าให�เขึ้�าใจว�า processor affinity ค!อื่การท่ �โปรเซสมี ความีส�มีพั�นธ์'ก�บหน�วยประมีวลผู้ลในขึ้ณะท่ �ก�าล�งท่�างานอื่ย2�

5.4.3 Load Balancing

บนระบบ SMP น��น เป*นเร!�อื่งส�าค�ญมีากในการแบ�งจ�านวนงานระหว�างหน�วยประมีวลผู้ล เพั!�อื่ให�สามีารถท่�างานไดี่�อื่ย�างเต้.มีประส�ท่ธ์�ภาพัมีากท่ �ส&ดี่ ไมี�เช้�นน��นแล�วหน�วยประมีวลผู้ลเพั ยงหน��งเดี่ ยวหร!อื่มีากกว�าน��นจะอื่ย2�ว�างในขึ้ณะท่ �หน�วยประมีวลผู้ลอื่!�นๆท่�างานอื่ย�างหน�กในขึ้ณะท่ �รอื่ซ พั ย2 Load balancing พัยายามีท่ �จะร�กษาปร�มีาณงานและกระจายงานไปย�งหน�วยประมีวลผู้ลอื่!�น ในระบบ SMP ส��งส�าค�ญค!อื่จะต้�อื่งมี การจดี่โน�ต้ว�า load balancing มี แบบฉบ�บเฉพัาะท่ �จ�าเป*นส�าหร�บระบบท่ �แต้�ละหน�วยประมีวลผู้ลจะมี ล�าดี่�บขึ้อื่งโปรเซสในการปฏิ�บ�ต้�การอื่ย2�แล�ว การร�นค�วขึ้อื่งระบบน��นไมี�จ�าเป*นจะต้�อื่งท่�า load balancing เพัราะจะต้�อื่งมี หน�วยประมีวลผู้ลหน��งว�างงาน ซ��งจะถ2กแยกอื่อื่กจากการร�นล�าดี่�บต้ามีปกต้� และมี�นก.ส�าค�ญเช้�นก�นท่ �จะต้�อื่งโน�ต้ไว� แต้�อื่ย�างไรก.ต้ามีระบบปฏิ�บ�ต้�การในป:จจ&บ�นท่ �รอื่งร�บระบบ SMP จะท่�าการจ�ดี่ล�าดี่�บค�วท่ �เหมีาะสมีส�าหร�บแต้�ละโปรเซส

การเขึ้�าถ�ง load balancing สามีารถท่�าไดี่� 2 ว�ธ์

ค!อื่ push migration และ pull migration ซ��ง push migration น��นจะท่�าหน�าท่ �คอื่ยต้รวจสอื่บปร�มีาณงานในแต้�ละหน�วยประมีวลผู้ลและหาจ&ดี่ท่ �ไมี�สมีดี่&ล เพั!�อื่ท่�าการกระจายงานโดี่ยเคล!�อื่นย�ายโปรเซสจากหน�วยประมีวลผู้ลท่ �ท่�างานเก�นความีสามีารถไปย�งหน�วยประมีวลผู้ลท่ �ย�งว�างอื่ย2�หร!อื่ย&�งน�อื่ยกว�า ส�วน pull migration จะเก�ดี่ขึ้��นเมี!�อื่หน�วยประมีวลผู้ลท่ �ว�างอื่ย2�ท่�าการดี่�งดี่�งงานท่ �รอื่อื่ย2�จากหน�วยประมีวลผู้ลท่ �มี งานมีาก ท่��ง push และ pull migration ไมี�ไดี่�ท่�างานส�มีพั�นธ์'ก�น แต้�ท่�างานในล�กษณะเส�นขึ้นานในระบบ load balancing

ส��งท่ �น�าสนใจค!อื่ load balancing น��นจะไปลดี่ประโยช้น'ขึ้อื่ง processor affinity ท่ �ไดี่�เคยกล�าวถ�งในห�วขึ้�อื่ 5.4.2 ก.ค!อื่ประโยช้น'ขึ้อื่งการร�กษาการท่�างานขึ้อื่งโปรเซสภายในหน�วยประมีวลผู้ลเดี่ ยวก�นท่�าให�ขึ้�อื่มี2ลจะคงอื่ย2�ใน cache memory ขึ้อื่งหน�วยประมีวลผู้ล แต้� pulling หร!อื่ pushing เป*นโปรเซสจากหน�วยประมีวลผู้ลหน��งไปย�งอื่ กหน�วยประมีวลผู้ลหน��ง ซ��งต้รงน �ท่�าให�เราไมี�ไดี่�ประโยช้น' อื่ย�างในกรณ ระบบว�ศูวกรรมี จะไมี�มี กฎีท่ �แน�นอื่นว�านโยบายไหนดี่ ท่ �ส&ดี่ ดี่�งน��นในบางระบบ หน�วยประมีวลผู้ลท่ �ว�างงานมี�กจะดี่�งโปรเซสมีาจากหน�วยประมีวลผู้ลท่ �มี งานมีาก และในบางระบบโปรเซสจะเคล!�อื่นย�ายก.ต้�อื่เมี!�อื่เก�ดี่การไมี�สมีดี่&ลขึ้อื่งปร�มีาณงาน

5.4.4 Symmetric Multithreading

ระบบ SMP จะมี หลาย ๆ งานท่ �เก�ดี่ขึ้��นพัร�อื่มีก�นโดี่ยการท่�างานขึ้อื่งหน�วยประมีวลผู้ล ท่างเล!อื่กเดี่ ยวท่ �จะใช้�ค!อื่การใช้�หน�วยประมีวลผู้ลแบบ logical มีากกว�า physical กลย&ท่ธ์'ท่ �เป*นท่ �ร2 �จ�กก�นดี่ ก.ค!อื่ symmetric multithreading (SMT) หร!อื่อื่ กช้!�อื่หน��งว�า hyper threading technology ใน Intel processor

5.5Thread Scheduling

ในบท่ท่ � 4 เป*นการแนะน�าถ�งร2ปแบบจ�าลอื่งการท่�างานขึ้อื่ง threads (เส�นการท่�างาน) พัวกเราแนะน�าต้�วเส!�อื่ผู้�าไปถ�งแบบจ�าลอื่งส�วนท่ �เจร�ญเต้�บโต้จากโครงสร�างใหญ� ซ��งแยกแยะระหว�างระดี่�บ-ผู้2�ใช้� (user-level) และระดี่�บ-kernel (kernel-level) บนระบบปฏิ�บ�ต้�การ (operating system) ท่ �ให�ความีช้�วยเหล!อื่ เส�นการท่�างาน (thread) ในส�วนขึ้อื่ง Kernel-level ไมี�ใช้�โปรเซส ซ��งจะใช้�ต้ารางเวลาโดี่ยระบบปฏิ�บ�ต้�การเป*นต้�วควบค&มี ส�วนเส�นการท่�างาน (thread) ขึ้อื่ง User-level ถ2กจ�ดี่การโดี่ย thread library และ Kernel ซ��งไมี�ร2 �ต้�วมีาก�อื่นขึ้อื่งการร�นขึ้อื่งซ พั ย2 เส�นการท่�างานขึ้อื่ง user-level ต้�อื่งจ�บเขึ้�าก�บเส�นการท่�างานขึ้อื่ง Kernel-level ท่ �ส�มีพั�นธ์'ก�น ถ�งแมี�ว�า การจ�บเขึ้�าก�นน��นอื่าจจะท่�าไดี่�โดี่ยอื่�อื่มี และอื่าจจะใช้� LWP (Lightweight Process) ในส�วนน � เราส�ารวจการท่�าต้ารางเวลาท่ �เก �ยวเส�นการท่�างานขึ้อื่ง ระดี่�บ-ผู้2�ใช้� (User-level) และระดี่�บ-kernel (Kernel-level) เส!�อื่ผู้�าระดี่�บ-แก�นขึ้อื่งเร!�อื่ง และการจ�ดี่ต้ารางเวลาต้�วอื่ย�างท่ �เฉพัาะเจาะจงส�าหร�บ Pthreads

5.5.1 Contention Scope

ความีแต้กต้�างอื่ย�างหน��งระหว�างเส�นการท่�างาน (Thread) ขึ้อื่ง User-level และ Kernel-level จ�ดี่ต้��งอื่ย2�ในต้ารางเวลาบนระบบการดี่�าเน�นการแบบ many-to-one (ในห�วขึ้�อื่ท่ � 4.2.1) และMany-to-many (ในห�วขึ้�อื่ท่ � 4.2.3) ต้ารางการจ�ดี่การเวลา Thread library เส�นการท่�างานขึ้อื่ง User-level สามีารถร�นบน LWP ไดี่� Scheme หน��ง เร ยกว�า Process - Contention Scope (PCS) ต้��งแต้�การแขึ้�งขึ้�นเพั!�อื่ให� ซ พั ย2เก�ดี่พั!�นท่ �เส�นการท่�างาน (threads) ขึ้��นซ��งอื่ย2�ในโปรเซสเดี่ ยวก�น

• 5.5.2 Pthread Scheduling ต้�วอื่ย�างโปรแกรมี POSIX Pthread อื่ย�างง�าย ในส�วน

ขึ้อื่งห�วขึ้�อื่ 4.3.1 เป*นไปต้ามีค�าแนะน�าขึ้อื่งการสร�างเส�นการท่�างาน (thread) ก�บ Pthreads ในขึ้ณะน �เราเน�นในส�วนขึ้อื่ง POSIX Pthread API ท่ �ย�นยอื่มีให� PCS หร!อื่ SCS ระหว�างการสร�างเส�นการท่�างาน (thread) Ptheads ระบ&ต้ามีค�า contention scope ดี่�งน �PTHREAD_SCOPE_PROCESS schedules threads using PCS scheduling.PTHREAD_SCOPE_SYSTEM schedules threads using SCS scheduling

5.6 ระบบปฏิ�บ�ตั�การตั�วอย�างเราจะอื่ธ์�บายการจ�ดี่ต้ารางงานขึ้อื่ง Solaris (เป*นระบบปฏิ�บ�ต้�การคอื่มีพั�วเต้อื่ร' แบบย2น�กซ' (Unix) ท่ �พั�ฒนาโดี่ย Sun Micro system) ระบบปฏิ�บ�ต้�การ Windows XP และระบบปฏิ�บ�ต้�การ Linux ซ��งเป*นส��งส�าค�ญท่ �จะต้�อื่งท่ราบในการอื่ธ์�บายการจ�ดี่ต้ารางงานขึ้อื่ง Solaris และ Linux ซ��งระบบปฏิ�บ�ต้�การ Linux ไมี�ไดี่�มี การแบ�งแยกระหว�างโปรเซสก�บเส�นงาน ดี่�งน��นเราจะก�าหนดี่เป*นร2ปแบบขึ้อื่งงานเมี!�อื่เราอื่ธ์�บายในส�วนขึ้อื่งการจ�ดี่ต้ารางงานขึ้อื่งระบบปฏิ�บ�ต้�การ Linux

ร-ปท�� 5.10 แสดี่งการจ�ดี่ต้ารางงานขึ้อื่งระบบปฏิ�บ�ต้�การ Solaris

5.6.1 ตั�วอย�างการจั�ดตัารางงานข้องระบบปฏิ�บ�ตั�การ Solaris

ระบบปฏิ�บ�ต้�การ Solaris จะใช้�ล�าดี่�บความีส�าค�ญขึ้อื่งเส�นงานในการจ�ดี่ต้ารางงาน มี การก�าหนดี่เป*น 4 ประเภท่ขึ้อื่งการจ�ดี่ต้ารางงาน ซ��งจะเร ยงล�าดี่�บความีส�าค�ญดี่�งต้�อื่ไปน �

• การท่�างานแบบท่�นท่ (Real –time)• ระบบ (System)• ระบบจ�ดี่แบ�งเวลา (Time sharing)• ระบบโต้�ต้อื่บ (Interactive)

5.6.2 ตั�วอย�างการจั�ดตัารางงานข้องว�นโดว/เอ0กซ์/พิ� (Windows XP Scheduling)

ว�นโดี่ว'เอื่.กซ'พั จ�ดี่ต้ารางเส�นงาน(threads)โดี่ยใช้�ฐานล�าดี่�บความีส�าค�ญ,ขึ้��นต้อื่นว�ธ์ การจ�ดี่ต้ารางการจอื่ง ต้�วจ�ดี่ต้ารางขึ้อื่งว�นโดี่ว'เอื่.กซ'พั จะร�บรอื่งว�าเส�นงานท่ �มี ล�าดี่�บความีส�าค�ญส2งท่ �ส&ดี่จะไดี่�ท่�างานก�อื่นเสมีอื่ ส�วนหน��งขึ้อื่งเคอื่ร'เนล(kernel) ว�นโดี่ว'เอื่.กซ'พั จะจ�ดี่การการจ�ดี่ต้ารางเร ยกว�า ต้�วส�งต้�อื่ (dispatcher) เส�นงานท่ �ถ2กเล!อื่กให�ท่�างานโดี่ยต้�วส�งต้�อื่(dispatcher) จะท่�างานจนกระท่��งมี�นถ2กครอื่บครอื่งโดี่ยเส�นงานท่ �มี ล�าดี่�บความีส�าค�ญส2งกว�า,จนกระท่��งงานส��นส&ดี่,จนกระท่��งหมีดี่เวลาควอื่นต้�มี(quantum) หร!อื่จนกระท่��งมี�นเร ยก system calls อื่ย�างเช้�น I/O ถ�าเส�นงานท่ �มี ล�าดี่�บความีส�าค�ญส2งกว�าอื่ย2�ในสภาพัท่ �พัร�อื่มีในขึ้ณะท่ �เส�นงานท่ �มี ล�าดี่�บความีส�าค�ญน�อื่ยกว�าก�าล�งท่�างานอื่ย2� เส�นงานท่ �มี ล�าดี่�บความีส�าค�ญน�อื่ยกว�าจะถ2กครอื่บครอื่ง การครอื่บครอื่งน �จะให�ส�ท่ธ์�พั�เศูษเขึ้�าถ�งซ พั ย2ไดี่�กลางคร�นเมี!�อื่เส�นงานต้�อื่งการ

5.6.3 ตั�วอย�างการจั�ดตัารางข้องล�น"กซ์/ (Linux Scheduling)

ก�อื่นเวอื่ร'ช้�น 2.5 ล น&กซ'เคอื่ร'เนล(Linux kernel)ท่�างานบนอื่�ลกอื่ร�ธ์�มีการจ�ดี่ต้ารางขึ้อื่งย2น�กซ'แบบเก�าท่ �แต้กต้�างก�น มี ป:ญหา 2 อื่ย�างก�บต้�วจ�ดี่ต้ารางย2น�กซ'แบบเก�าค!อื่มี�นไมี�จ�ดี่เต้ร ยมีการสน�บสน&นให�เพั ยงพัอื่ส�าหร�บระบบ SMPและมี�นไมี�ดี่ ก�บจ�านวนงานในระบบท่ �โต้ขึ้��น เวอื่ร'ช้�น 2.5 ต้�วจ�ดี่ต้ารางถ2กปร�บปร&งใหมี�และต้อื่นน �เคอื่ร'เนลสามีารถจ�ดี่หาอื่�ลกอื่ร�ธ์�มีการจ�ดี่ต้ารางท่ �ใช้�เวลาคงท่ �แล�วร2 �จ�กในช้!�อื่ O(1) โดี่ยไมี�ใส�ใจก�บจ�านวนขึ้อื่งงานบนระบบ ต้�วจ�ดี่ต้ารางใหมี�น �เพั��มีการสน�บสน&นส�าหร�บ SMP รวมีท่��งโปรเซสท่ �ใกล�ช้�ดี่ก�นและท่�างานไดี่�สมีดี่&ลและจ�ดี่เต้ร ยมีไดี่�อื่ย�างย&ต้�ธ์รรมีและสน�บสน&นงานท่ �มี การท่�างานร�วมีก�น

• 5.7 Algorithm Evaluation

เราจะท่�าอื่ย�างไรให�ให�ซ พั ย2ท่�างานต้ามีขึ้��นต้อื่นว�ธ์ ส�าหร�บระบบขึ้อื่งเรา เราจะไดี่�ไปศู�กษาในห�วขึ้�อื่ 5.3 ซ��งมี�นจะมี หลายขึ้��นต้อื่นว�ธ์ ในการจ�ดี่การซ��งแต้�ละขึ้��นต้อื่นจะมี ความียากเช้�นก�นป:ญหาแรกในการก�าหนดี่บรรท่�ดี่ฐานขึ้อื่งน�ยามีการเล!อื่กขึ้��นต้อื่นว�ธ์ ท่ �ต้�อื่งการ เราสามีารถศู�กษาไดี่�ในห�วขึ้�อื่ท่ � 5.2 ซ พั ย2จะใช้�ประโยช้น'จากการต้อื่บสนอื่งขึ้อื่งเวลา การเล!อื่กขึ้��นต้อื่นว�ธ์ เราจะต้�อื่งก�าหนดี่ความีส�าค�ญขึ้อื่งความีส�มีพั�นธ์' โดี่ยเราจะสามีารถว�ดี่ไดี่�หลาย ๆ ว�ธ์

5.7.1 Deterministic Modeling หน��งในการประเมี�นผู้ลหล�กค!อื่เราจะใช้�เมีธ์อื่ดี่

analytic evaluation มี�นจะยอื่มีให�ขึ้� �นต้อื่นว�ธ์ และระบบสามีารถท่�างานไดี่� โดี่ยจะมี ประส�ท่ธ์�ภาพัขึ้อื่งขึ้��นต้อื่นว�ธ์ มีากน��นจะขึ้��นอื่ย2�ก�บปร�มีาณงานท่ �ท่�าในขึ้ณะหน��ง ช้น�ดี่แรกค!อื่ deterministic modeling โดี่ยเมีธ์อื่ดี่น �จะมี การการก�าหนดี่ปร�มีาณงานท่ �ท่�าก�อื่นและจะท่�าการน�ยามีประส�ท่ธ์�ภาพัส�าหร�บขึ้��นต้อื่นว�ธ์ ท่ �จะท่�าก�บปร�มีาณงานท่ �เหมีาะสมีในช้�วงระยะเวลาหน��ง

5.7.2 Queuing Models

ในหลาย ๆ ระบบ โปรเซสจะมี การท่�างานจากว�นหน��งไปย�งอื่ กว�นหน��งดี่�งน��น เซต้ขึ้อื่งกระบวนจะมี ความีคงท่ �ส�าหร�บการใช้� deterministic modeling แล�วอื่ะไรล�ะท่ �จะสามีารถก�าหนดี่มี�นไดี่� อื่ย�างไรก.ต้ามี การกระจายต้�วขึ้อื่งซ พั ย2 และ I/O สามีารถกระจายต้�วไปต้ามีปร�มีาณท่ �คาดี่การณ'ไว�ไดี่� ผู้ลล�พัธ์'ท่างคณ�ต้ศูาสต้ร'สามีารถอื่ธ์�บายความีน�าจะเป*นขึ้อื่งการแต้กอื่อื่กขึ้อื่งซ พั ย2 โดี่ยพั!�นฐานขึ้อื่งการกระจายต้�วจะเป*นในร2ปแบบเอื่กโปเน�นเช้ �ยว และอื่ธ์�บายโดี่ยความีหมีายไดี่� เราสามีารถอื่ธ์�บายการกระจายขึ้อื่งเวลา เมี!�อื่โปรเซสน��นเขึ้�ามีาถ�งระบบ จากน��นกระจายเป*นสอื่งท่�ศูท่างจะมี ความีเป*นไปไดี่�ในการประมีวลผู้ลค�าเฉล �ยขึ้อื่งปร�มีาณงานท่ �ท่�า , ประโยช้น',ระยะเวลาท่ �รอื่ ส�าหร�บขึ้��นต้อื่นว�ธ์

5.7.3 Simulation การท่�าให�มี ความีแมี�นย�าจากการประเมี�นการจ�ดี่การขึ้อื่งขึ้��นต้อื่นว�ธ์ เรา

จะสามีารถใช้� simulation การท่�างานขึ้อื่ง simulation ในการโปรแกรมีขึ้อื่งระบบคอื่มีพั�วเต้อื่ร' ขึ้�อื่มี2ลโครงสร�างขึ้อื่งซอื่ร'ฟแวร'จะถ2กเสนอื่โดี่ยอื่งค'ประกอื่บหล�กขึ้อื่งระบบ simulator จะมี ต้�วแปรท่ �ถ2กเสนอื่โดี่ย ส�ญญาณนาฬิ�กา โดี่ยต้�วแปรน �จะมี ค�าท่ �เพั��มีขึ้��น ส��งท่ �สร�างขึ้��นจาก simulatorน��นจะสะท่�อื่นให�เห.นถ�งก�จกรรมีท่ �ขึ้อื่งอื่&ปกรณ' โปรเซสและการจ�ดี่การท่�างาน การจ�าลอื่งการประมีวลผู้ลน��น จะขึ้��นอื่ย2�ก�บประส�ท่ธ์�ภาพัขึ้อื่งขึ้��นต้อื่นว�ธ์

การขึ้�บเคล!�อื่นขึ้อื่งขึ้�อื่มี2ลในการจ�าลอื่งน��นสามีารถส&�มีขึ้��นมีาไดี่�ในหลาย ๆ ท่าง โดี่ยหล�กๆแล�วเมีธ์อื่ดี่ท่ �ใช้�ในการส&�มีจ�านวนในโปรแกรมีเพั!�อื่นส&�มีโปรเซส ซ พั ย2จะแต้กเวลาอื่อื่ก การมีาถ�งและ การจากไปซ��งจะมี ความีน�าจะเป*นในการกระจาย การกระจายสามีารถก�าหนดี่ไดี่�ท่างคณ�ต้ศูาสต้ร' เช้�น ถ�าการจายเป*นน�ยามีท่ �ไดี่�มีาจากการท่ดี่ลอื่ง ถ�าขึ้นาดี่น��นอื่ย2�นอื่กเหน!อื่จากการท่ �ไดี่�ศู�กษามีา ผู้ลล�พัธ์'ขึ้อื่งการก�าหนดี่น�ยามีในการกระจายขึ้อื่งเหต้&การณ'ในระบบท่ �เป*นจร�ง ดี่�งน��นการกระจายสามีารถใช้�การขึ้�บเคล!�อื่นขึ้อื่งการจ�าลอื่งไดี่�

• 5.7.4 Implementation

เมี!�อื่การจ�าลอื่งถ2กจ�าก�ดี่ดี่�วยความีแมี�นย�า มี ท่างเดี่ ยวท่ �จะท่�าให�มี ความีแมี�นย�าท่ �สมีบ2รณ'ค!อื่การประเมี�นจากการจ�ดี่การขึ้อื่งขึ้��นต้อื่นว�ธ์ ท่ �ถ2กโค�ดี่ขึ้��นมีา แล�วน�าไปใส�ในระบบปฏิ�บ�ต้�การ และต้�ดี่ต้ามีการท่�างานขึ้อื่งมี�นว�าเป*นอื่ย�างไร เมี!�อื่เราไดี่�ใส�ขึ้� �นต้อื่นเขึ้�าไปในระบบจร�งแล�วซ��งจะใช้�ส�าหร�บการประเมี�นท่ �อื่ย2�ภายใต้�เง!�อื่นไขึ้ขึ้อื่งระบบปฏิ�บ�ต้�การท่ �แท่�จร�ง

ส�วนใหญ�ความียากน��นจะขึ้��นอื่ย2�ก�บปร�มีาณมีากๆขึ้อื่งขึ้�อื่มี2ล ซ��งการใช้�ท่ร�พัยากรไปจนหมีดี่น��นไมี�เพั ยงแต้�การโค�ดี่ดี่�วยขึ้��นต้อื่นว�ธ์ และการปร�บแต้�งระบบปฏิ�บ�ต้�การท่ �จะสน�บสน&นมี�น แต้�ในการกระท่�าขึ้อื่งผู้2�ใช้�จะมี ค�าคงท่ �ในการเปล �ยนแปลงระบบปฏิ�บ�ต้�การ ผู้2�ใช้�ส�วนใหญ�ไมี�ค�อื่ยไดี่�สนใจในการสร�างระบบปฏิ�บ�ต้�การให�ดี่ ขึ้��น มี เพั ยงแต้�ท่ �ต้�อื่งการให�โปรเซสท่�างานไดี่�และสามีารถน�าผู้ลล�พัธ์'ไปใช้�ไดี่� ค�าคงท่ �ในการเปล �ยนแปลงระบบปฏิ�บ�ต้�การน��นไมี�ไดี่�ช้�วยให�ผู้2�ใช้�ท่�างานไดี่�ส�าเร.จ

สิร"ป

การจ�ดี่ต้ารางงานการใช้�หน�วยประมีวลผู้ลกลาง (CPU) โดี่ยจะจ�ดี่สรรต้ารางงานในการเขึ้�าไปใช้�หน�วยประมีวลผู้ลกลาง (CPU) ให�ก�บกระบวนการท่��งหมีดี่ท่ �อื่ย2�ในระบบท่ �มี สถานะพัร�อื่มี หน�วยประมีวลผู้ลกลาง (CPU) มี การจ�ดี่สรรกระบวนการซ��งถ2กเล!อื่กแล�วโดี่ยดี่�สแพัท่เช้อื่ร' (dispatcher)

ขึ้��นต้อื่นว�ธ์ การจ�ดี่ต้ารางแบบมีาก�อื่นท่�าก�อื่น (FCFS) เป*นว�ธ์ การท่ �ง�ายท่ �ส&ดี่ โดี่ยจะมี การเล!อื่กกระบวนการท่ �อื่ย2�ต้�นค�วแบบเขึ้�าก�อื่นอื่อื่กก�อื่น ค!อื่ จะให�ไดี่�ใช้�หน�วยประมีวลผู้ลกลางก�อื่น ว�ธ์ การจ�ดี่ต้ารางแบบมีาก�อื่นท่�าก�อื่น (FCFS) น �เป*นแบบ Non–preemptive ซ��งก.ค!อื่เมี!�อื่กระบวนการใดี่ไดี่�เขึ้�าใช้�หน�วยประมีวลผู้ลแล�ว มี�นก.จะปล�อื่ยหน�วยประมีวลผู้ลก.ต้�อื่เมี!�อื่ส��นส&ดี่การท่�างานแล�วหร!อื่จะต้�อื่งไปรอื่ใช้�อื่&ปกรณ'อื่�นพั&ต้หร!อื่เอื่าท่'พั&ต้

ขึ้��นต้อื่นว�ธ์ การจ�ดี่ต้ารางแบบ Shortest-Job-First (SJF) จะท่�าการเล!อื่กกระบวนการมี ระยะเวลาใช้�หน�วยประมีวลผู้ลคร��งถ�ดี่ไปส��นท่ �ส&ดี่ เป*นว�ธ์ การหาค�าเฉล �ยขึ้อื่งเวลาการคอื่ยต้��าท่ �ส&ดี่ส�าหร�บกระบวนการช้&ดี่หน��ง โดี่ยให�กระบวนการท่ �ท่�างานส��นก�อื่น ซ��งเวลาการรอื่คอื่ยจะลดี่ลงเร.วกว�าส�วนท่ �เพั��มีขึ้��นขึ้อื่งกระบวนการท่ �มี รอื่บขึ้อื่งการใช้�หน�วยประมีวลผู้ลนาน เน!�อื่งจากว�าไมี�มี ท่างท่ �จะท่ราบเวลาการใช้�หน�วยประมีวลผู้ลรอื่บถ�ดี่ไปไดี่� จ�งต้�อื่งใช้�ว�ธ์ การประมีาณค�าความียาวรอื่บการใช้�ท่ �ผู้�านมีา โดี่ยว�ธ์ การจ�ดี่ต้ารางแบบ SJF เป*นไดี่�ท่��งแบบ preemptive และ Non – preemptive ซ��งจะให�ประส�ท่ธ์�ภาพัในดี่�านเวลาครบวงงาน (turnaround time) ท่ �ดี่ กว�า เพัราะว�ากระบวนการท่ �ส� �นกว�าจะไดี่�ท่�างานก�อื่น

ขึ้��นต้อื่นว�ธ์ การจ�ดี่ต้ารางแบบ Round-robin (RR) ถ2กอื่อื่กแบบมีาส�าหร�บระบบจ�ดี่แบ�งเวลา (time sharing) มี ล�กษณะท่ �คล�ายก�บ FCFS ท่ �มี Preemption โดี่ยจะแบ�งเวลาการท่�างานขึ้อื่งแต้�ละกระบวนการอื่อื่กเป*นช้�วงส��น ๆ (time slice หร!อื่ time quantum) ให�ท่&กกระบวนการวนสล�บก�นท่�างาน การจ�ดี่ต้ารางโดี่ยว�ธ์ FCFS ก�บ RR เป*นว�ธ์ พั!�นฐานและมี�กจะน�ามีาใช้�เป*นส�วนหน��งในการจ�ดี่ต้ารางประเภท่อื่!�น ๆ