การจัดเวลาซีพียู (cpu scheduling)

71
รรรรรรรรรรร (Operating Systems) 1 กกกกกกกกกก กกกกกก (CPU Scheduling)

Upload: chava-carson

Post on 03-Jan-2016

104 views

Category:

Documents


5 download

DESCRIPTION

การจัดเวลาซีพียู (CPU Scheduling). การจัดเวลาซีพียู (CPU Scheduling). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 1

การจั�ดเวลาซี�พี�ยู�(CPU

Scheduling)

Page 2: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 2

การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)

การจั�ดเวลาซี�พี�ยู� (CPU Scheduling)

การจั�ดเวลาซี�พี�ยู� (CPU Scheduling) เป�นหล�กการทำ�างานหน��งของโปรแกรมจั�ดการระบบทำ��ม�ความสามารถในการร�นโปรแกรมหลายู ๆ โปรแกรมในเวลาเด�ยูวก�น ซี��งการแบ(งเวลาการเข)าใช้)ซี�พี�ยู�ให)ก�บงานทำ��อาจัถ�กส(งเข)ามาหลายู ๆ งานพีร)อม ๆ ก�น ทำ��ซี�พี�ยู�อาจัม�จั�านวนน)อยูกว(าจั�านวนโปรแกรม หร+ออาจัม�ซี�พี�ยู�เพี�ยูงติ�วเด�ยูว จัะทำ�าให)คอมพี�วเติอร,สามารถทำ�างานได)ปร�มาณงานทำ��มากข�/นกว(าการทำ��ให)ซี�พี�ยู�ทำ�างานให)เสร0จัทำ�ละงาน

Page 3: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 3

หล�กความต้�องการพี��นฐานหล�กความต้�องการพี��นฐาน จั1ดประสงค,ของการร�นโปรแกรมหลายู

โปรแกรมค+อ ความติ)องการทำ��จัะให)ซี�พี�ยู�ม�การทำ�างานติลอดเวลา เพี+�อให)ม�การใช้)ซี�พี�ยู�อยู(างเติ0มทำ�� และเติ0มประส�ทำธิ�ภาพี

ส�าหร�บระบบคอมพี�วเติอร,ทำ��ม�ซี�พี�ยู�ติ�วเด�ยูว ในเวลาใดเวลาหน��งซี�พี�ยู�จัะทำ�างานได)เพี�ยูงงานเด�ยูวเทำ(าน�/น ถ)าม�หลายูโปรแกรมหร+อหลายูงาน งานทำ��เหล+อก0ติ)องคอยูจันกว(าจัะม�การจั�ดการให)เข)าไปใช้)ซี�พี�ยู�

Page 4: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 4

หล�กความต้�องการพี��นฐานหล�กความต้�องการพี��นฐาน หล�กการของการทำ�างานก�บหลายูโปรแกรมในข�/น

พี+/นฐานน�/นค(อนข)างจัะไม(ซี�บซี)อน แติ(ละโปรแกรมจัะถ�กร�นจันกระทำ��งถ�งจั1ดทำ��ม�นติ)องคอยูอะไรซี�กอยู(างเพี+�อใช้)ในการทำ�างานช้(วงติ(อไป ส(วนมากการคอยูเหล(าน�/เก��ยูวข)องก�บอ�นพี1ติ/เอาติ,พี1ติน��นเอง

ซี�พี�ยู�จัะหยู1ดการทำ�างานในระหว(างทำ��คอยูอ�นพี1ติ/เอาติ,พี1ติน�/ ซี��งการคอยูเหล(าน�/เป�นการเส�ยูเวลาโดยูเปล(าประโยูช้น, เพีราะซี�พี�ยู�ไม(ได)ทำ�างานเลยู

Page 5: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 5

หล�กความต้�องการพี��นฐานหล�กความต้�องการพี��นฐาน เม+�อใดก0ติามทำ��ซี�พี�ยู�ติ)องคอยู และยู�งม�โปรแกรมใน

หน(วยูความจั�าหลายูโปรแกรมทำ��คอยูการใช้)ซี�พี�ยู�อยู�( เราก0จัะจั�ดให)ซี�พี�ยู�ทำ�างานในโปรแกรมเหล(าน�/ทำ�นทำ�

ระบบจัะจั�ดการน�าเอาโปรแกรมทำ��ติ)องคอยูอ�นพี1ติ/เอาติ,พี1ติออกไปก(อน เพี+�อทำ��จัะให)โปรแกรมอ+�นทำ��คอยูใช้)ซี�พี�ยู�น�/สามารถเข)ามาได)

ถ)าทำ�างานในแบบน�/ไปเร+�อยู ๆ ซี�พี�ยู�ก0จัะได)ม�งานทำ�าเก+อบติลอดเวลาก�บโปรแกรมหลายู ๆ โปรแกรมทำ��อยู�(ในระบบ

Page 6: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 6

หล�กความต้�องการพี��นฐานหล�กความต้�องการพี��นฐาน การจั�ดเวลาให)ก�บซี�พี�ยู�แบบน�/ เป�นความ

ติ)องการพี+/นฐานของระบบปฏิ�บ�ติ�การในคอมพี�วเติอร,

ซี�พี�ยู�เองก0ถ+อได)ว(าเป�นทำร�พียูากรของระบบคอมพี�วเติอร,ช้น�ดหน��งทำ��ม�ความส�าค�ญมากทำ��ส1ด

โดยูติ�วซี�พี�ยู�น��เอง ทำ��จัะเป�นหล�กของการสร)างระบบปฏิ�บ�ติ�การทำ��ม�ความสามารถในการร�นหลายูโปรแกรม

Page 7: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 7

ช่�วงเวลาอ�นพี�ต้/ เอาต้�พี�ต้ และช่�วงเวลาซี�พี�ยู�

ช่�วงเวลาอ�นพี�ต้/ เอาต้�พี�ต้ และช่�วงเวลาซี�พี�ยู�

ความส�าค�ญในการจั�ดเวลาซี�พี�ยู�ข�/นอยู�(ก�บค1ณล�กษณะของโปรเซีส

การเอ0กซี�ค�วติ,โปรเซีสจัะประกอบด)วยู เวลาทำ��ใช้)ซี�พี�ยู� (CPU Burst Cycle) เวลาทำ��ติ)องคอยูอ1ปกรณ,อ�นพี1ติ/เอาติ,พี1ติ (I/O Burst Cycle)

ในขณะทำ��ม�การเอ0กซี�ค�วติ,โปรเซีส จัะม�การสล�บการทำ�างานระหว(าง 2 ช้(วงเวลาน�/เทำ(าน�/น และจัะเก�ดไม(พีร)อมก�น การเอ0กซี�ค�วติ,ม�กจัะเร��มจัากการใช้)ซี�พี�ยู� แล)วก0จัะติามด)วยูการคอยูอ�นพี1ติ/เอาติ,พี1ติ เม+�อจับการรอคอยู ก0จัะติามมาด)วยูเวลาของซี�พี�ยู� สล�บก�นไปเร+�อยู ๆ จันกว(าจัะจับการเอ0กซี�ค�วติ,

Page 8: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 8

Page 9: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 9

Page 10: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 10

ต้�วจั�ดการเวลาซี�พี�ยู� (CPU Scheduler)

ต้�วจั�ดการเวลาซี�พี�ยู� (CPU Scheduler)

ติ�วจั�ดการเวลาซี�พี�ยู� (CPU Scheduler ) หร+อติ�วจั�ดการเวลาช้(วงส�/น (short–term scheduler) จัะเล+อกโปรเซีสทำ��อยู�(ในหน(วยูความจั�าทำ��พีร)อมในการเอ0กซี�ค�วติ,ทำ��ส1ด เพี+�อให)ครอบครองเวลาซี�พี�ยู�และทำร�พียูากรทำ��เก��ยูวข)องก�บโปรเซีสน�/น

ค�วของโปรเซีสในหน(วยูความจั�าน�/นไม(จั�าเป�นทำ��ติ)องเป�นแบบใดแบบหน��ง อยู(างไรก0ติามโปรเซีสทำ1กโปรเซีสทำ��พีร)อมใช้)ซี�พี�ยู� จัะติ)องม�โอกาสได)เข)าครอบครองเวลาซี�พี�ยู�ไม(เวลาใดก0เวลาหน��ง

การเข)าและออกจัากการครอบครองเวลาซี�พี�ยู�แติ(ละคร�/ง จั�าเป�นติ)องม�การเก0บข)อม�ลไว)เสมอว(าเข)ามาทำ�าอะไร ติ(อไปจัะทำ�าอะไร

Page 11: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 11

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

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

เม+�อม�การเปล��ยูนสถานะของโปรเซีสจัากสถานะร�น --> สถานะรอ เช้(น ในสภาวะทำ��คอยูอ�นพี1ติ/เอาติ,พี1ติ หร+อการคอยูให)โปรเซีสล�กเสร0จัส�/นไปก(อน

เม+�อม�การเปล��ยูนสถานะของโปรเซีสจัากสถานะร�น --> พีร)อม เช้(น เม+�อม�อ�นเทำอร,ร�พีติ,เก�ดข�/น

เม+�อม�การเปล��ยูนสถานะของโปรเซีสจัากสถานะรอ --> พีร)อม เช้(น เม+�ออ�นพี1ติ/เอาติ,พี1ติเสร0จัส�/นไปแล)ว

เม+�อโปรเซีสเสร0จัส�/นไปแล)ว

Page 12: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 12

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

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

ในสถานการณ,ทำ�� 1 และ 4 น�/นเป�นสถานการณ,ทำ��จัะติ)องม�การติ�ดส�นใจัทำ�าอะไรอยู(างใดอยู(างหน��งโดยูไม(สามารถหล�กเล��ยูงได) เช้(น ติ)องเล+อกโปรเซีสใหม(เข)ามาเอ0กซี�ค�วติ,ติ(อไป เน+�องจัากโปรเซีสเด�มไม(ใช้)ซี�พี�ยู�อ�กแล)ว

ส�าหร�บสถานการณ,ทำ�� 2 และ 3 น�/น การติ�ดส�นใจัติ)องอยู�(บนพี+/นฐานหร+อกฎเกณฑ์,ของแติ(ละอ�ลกอร�ทำ�มทำ��ใช้) ซี��งอาจัทำ�าให)ม�การทำ�างานทำ��แติกติ(างก�นไป

Page 13: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 13

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

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

การติ�ดส�นใจัทำ��เก�ดข�/นเน+�องจัากสถานการณ, 1 และ 4 การจั�ดเวลาซี�พี�ยู�จัะเป�นแบบไม(ให)ส�ทำธิ�9ก(อน (nonpreemptive)

ส(วนสถานการณ,ทำ�� 2 และ 3 จัะเร�ยูกว(าให)ส�ทำธิ�9ก(อน (preemptive)

การทำ�างานแบบไม(ให)ส�ทำธิ�9ก(อนน�/ โปรเซีสจัะครอบครองเวลาซี�พี�ยู�ไปจันกว(าจัะเสร0จัส�/น หร+อเปล��ยูนสถานะติ�วเองเป�นสถานะคอยู

เน+�องจัากระบบปฏิ�บ�ติ�การน�/ไม(ติ)องการในการใช้)ฮาร,ดแวร,พี�เศษ เช้(น ไทำม,เมอร, (timer) ในการน�บคาบเวลาส�าหร�บการให)โปรเซีศใด ๆ ครอบครองเวลาซี�พี�ยู� โปรเซีสจั�งสามารถครอบครองเวลาซี�พี�ยู�ได)จันกว(าจัะหมดความติ)องการ

Page 14: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 14

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

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

ถ)าเป�นระบบม�ลติ�ยู�เซีอร, (multiusers) การจั�ดเวลาแบบให)ส�ทำธิ�ก(อนจัะเหมาะสมกว(า

การจั�ดเวลาแบบให)ส�ทำธิ�ก(อนน�/นติ)องใช้)ทำร�พียูากรพี�เศษเข)าช้(วยูเยูอะเพี+�อแก)ป<ญหาติ(าง ๆ ทำ��หล�กเล��ยูงไม(ได)

เช้(น โปรเซีส 2 โปรเซีสทำ��ติ)องใช้)ข)อม�ลร(วม (shared data) โปรเซีสแรกอาจัจัะติ)องหยู1ดรอในขณะทำ��อยู�(ในระหว(างการอ�ปเดทำข)อม�ล เน+�องจัากคาบเวลาของม�นหมดลงพีอด� แล)วโปรเซีสทำ��สองก0เข)ามาแทำน ซี��งโปรเซีสทำ��สองน�/อาจัติ)องการทำ��จัะอ(านข)อม�ลทำ��โปรเซีสแรกยู�งแก)ไขไม(เร�ยูบร)อยู ทำ�าให)เก�ดป<ญหา

Page 15: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 15

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

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

การจั�ดเวลาแบบให)ส�ทำธิ�ก(อนน�/นม�ผลกระทำบติ(อการออกแบบ Kernel ของระบบปฏิ�บ�ติ�การเป�นอยู(างมาก เช้(น ในระหว(างการเก�ด system call น�/น Kernel อาจัจัะยู�งไม(ว(าง อาจัจัะก�าล�งทำ�างานในการจั�ดค�วโปรเซีสอยู�( แล)วอะไรจัะเก�ดข�/นถ)าหากว(า โปรเซีสถ�กทำ�าให)หยู1ด และออกจัากการครอบครองเวลาซี�พี�ยู�

UNIX ม�การแก)ป<ญหาติรงจั1ดน�/โดยูการให) System call ส�/นส1ดเอง หร+อไม(ก0คอยูจันกว(าจัะม�การบล0อกการทำ�างานของอ�นพี1ติ/เอาติ,พี1ติเก�ดข�/น แล)วจั�งม�การทำ�า คอนเทำ0กซี,สว�ติช้, (Context Switch)

Page 16: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 16

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

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

การออกแบบ Kernel จัะได)ไม(ม�ความยู1(งยูากมาก เพีราะว(าติ�ว Kernel เอง จัะไม(ไปจั�ดการโปรเซีสอ+�น ๆ ถ)าโครงสร)างข)อม�ลของ Kernel ยู�งไม(อยู�(ในสภาพีทำ��สมบ�รณ,

แติ(ป<ญหาก0ค+อการทำ�างานของ Kernel แบบน�/ช้)าเก�นไป ทำ�าให)ติ)องม�การพี�ฒนาบางส��งบางอยู(างเพี��มเติ�มเข)ามาอ�ก

Page 17: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 17

DispatcherDispatcher Dispatcher เป�นโมด�ลทำ��ทำ�าหน)าทำ��ควบค1มการ

ครอบครองเวลาซี�พี�ยู�ของโปรเซีส ฟั<งก,ช้�นประกอบด)วยู

การยู)ายู Context การยู)ายูไป user mode กระโดดไปยู�งติ�าแหน(งทำ��เหมาะสมของโปรแกรม

เพี+�อทำ��จัะเร��มร�นโปรแกรมน�/นใหม(อ�กคร�/ง ควรม�การทำ�างานทำ��เร0วทำ��ส1ดเทำ(าทำ��จัะทำ�าได) เพีราะ

ทำ�างานทำ1กคร�/งทำ��ม�การยู)ายูโปรเซีส ซี��งเวลาทำ��ใช้)ในการทำ�าน�/เร�ยูก Dispatch Latency

Page 18: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 18

ข้�อพี�จัารณาในการจั�ดเวลาข้�อพี�จัารณาในการจั�ดเวลา อรรถประโยูช่น�ข้องซี�พี�ยู� (CPU Utilization) : การ

ใช้)ประโยูช้น,จัากซี�พี�ยู�อยู(างส�งส1ด โดยูทำ�าให)ซี�พี�ยู�ม�งานทำ�ามากทำ��ส1ดเทำ(าทำ��จัะทำ�าได) ซี�พี�ยู�ควรจัะถ�กใช้)อยู�(ระหว(าง

- 4090% ทร�พี�ต้ (Throughput) : จั�านวนงานทำ��เสร0จัติ(อหน(วยู

เวลา เวลาท��งหมด (Turnaround Time) : ค+อช้(วงเวลา

ทำ�/งหมดทำ��ใช้)ในการทำ�างานใดงานหน��งติ�/งแติ(เร��มติ)นเข)าไปในระบบ จันงานถ�กทำ�าจันเสร0จัเร�ยูบร)อยู (รวมเวลาทำ��รอเข)าหน(วยูความจั�า เวลาทำ��คอยูอยู�(ในค�ว เวลาทำ��ใช้)ซี�พี�ยู� และเวลาของอ�นพี1ติ/เอาติ,พี1ติ)

Page 19: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 19

ข้�อพี�จัารณาในการจั�ดเวลาข้�อพี�จัารณาในการจั�ดเวลา เวลารอคอยู (Waiting Time) : ช้(วงเวลาทำ��

งานใดงานหน��งติ)องรอการทำ�างานของติ�วจั�ดเวลา โดยูไม(รวมเวลาของการใช้)ซี�พี�ยู� และเวลาของการติ�ดติ(ออ�นพี1ติ/เอาติ,พี1ติ ส(วนใหญ(ก0ค+อเวลาทำ��งานติ)องคอยูอยู�(ในค�ว (Ready Queue)

เวลาต้อบสินอง (Response Time) ค+อเวลาทำ��ว�ดระหว(างเวลาทำ��ม�การร)องขอการกระทำ�าใด ๆ ติ(อระบบแล)วม�การติอบร�บกล�บออกมา (ความเร0วของเวลาติอบสนองจั�งม�กจัะข�/นอยู�(ก�บอ1ปกรณ,อ�นพี1ติ/เอาติ,พี1ติ)

Page 20: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 20

ข้�อพี�จัารณาในการจั�ดเวลาข้�อพี�จัารณาในการจั�ดเวลา ส��งทำ��ผ�)ออกแบบระบบการจั�ดเวลาติ)องการก0ค+อ การ

ทำ�าให)เวลาการทำ�างานส�/นทำ��ส1ดน��นเอง ในความเป�นจัร�งแล)ว อาการได)อยู(างเส�ยูอยู(างม�กจัะ

ติ)องเก�ดข�/น เราไม(สามารถทำ��จัะได)ระบบทำ��สามารถทำ�าให)ม�การใช้)ซี�พี�ยู�ได)

ส�งส1ด โดยูทำ��ม�ทำร�พี1ติมากทำ��ส1ด ม�เวลารวมเร0วทำ��ส1ด และได)เวลาติอบสนองเร0วทำ��ส1ดได)พีร)อม ๆ

ด�งน�/นการหาจั1ดพีอด�จัากค(าเฉล��ยูของค1ณสมบ�ติ�แติ(ละช้น�ดจั�งม�ความจั�าเป�น ซี��งบางคร�/งอาจัจัะติ)องม�การก�าหนดจั1ดทำ��ยูอมร�บได)ไว)ทำ��จั1ดใดจั1ดหน��ง ถ)าหากว(าไม(สามารถหาค(าเฉล��ยูได)

Page 21: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 21

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบมาก�อนได�ก�อน (FCFS : First-Come First-Served)

โปรเซีสใดทำ��ร )องขอใช้)ซี�พี�ยู�ก(อนก0จัะได)ร�บการจั�ดสรรให)ครอบครองเวลาซี�พี�ยู�ก(อน

ผลเส�ยูของอ�ลกอร�ทำ��มน�/ค+อค(าเฉล��ยูของการคอยูในค�วแบบมาก(อนได)ก(อนน�/ค(อนข)างจัะส�ง

Page 22: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 22

การจั�ดเวลาแบบมาก�อนได�ก�อน (FCFS)

การจั�ดเวลาแบบมาก�อนได�ก�อน (FCFS)

0 24 27( + + ) 3 17/ = ว�นาท�

0 3 6 3( + + ) /= 3 ว�นาท�

Page 23: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 23

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบงานสิ��นท.าก�อน (SJF : Short–Job–First Scheduling)

โปรเซีสทำ��ติ)องการคาบเวลาของเวลาซี�พี�ยู�ในเวลาถ�ดไปส�/นทำ��ส1ด จัะได)ร�บเล+อกให)เข)ามาครบครองซี�พี�ยู�ก(อน

ถ)าม�โปรเซีสหลายูติ�วทำ��ม�คาบเวลาของเวลาซี�พี�ยู�ของช้(วงติ(อไปเทำ(า ๆ ก�น ก0จัะใช้)หล�กการมาก(อนได)ก(อนมาใช้)ในการค�ดเล+อก

Page 24: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 24

การจั�ดเวลาแบบงานสิ��นท.าก�อน (SJF)การจั�ดเวลาแบบงานสิ��นท.าก�อน (SJF)

0 3 9 1( + + + 6 4) / = 7

ว�นาท� FCFS = 0 6 8 7( + + + )

4 4 = 10.25 ว�นาท�

Page 25: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 25

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบงานสิ��นท.าก�อน (SJF : Short–Job–First Scheduling)

ข)อยู1(งยูากของว�ธิ� SJF ค+อการว�ดคาบเวลาของเวลาซี�พี�ยู�ถ�ดไปของแติ(ละโปรเซีสทำ��ร )องขอเวลาซี�พี�ยู�เข)ามา

ในระบบการทำ�างานแบบแบ0ติซี, เจั)าของโปรเซีสจัะติ)องเป�นผ�)บอกช้(วงเวลาทำ��จั�าก�ดของการใช้)ซี�พี�ยู�ส�าหร�บโปรเซีสให)ก�บระบบ เพี+�อใช้)อ)างอ�งส�าหร�บการจั�ดล�าด�บด�งกล(าว ซี��งเจั)าของโปรเซีสก0จัะพียูายูามทำ��จัะให)ค(าติ��าทำ��ส1ดเพี+�อโอกาสในการเข)าไปใช้)ซี�พี�ยู�ก(อนม�มากทำ��ส1ด

ถ)าคาบเวลาทำ��ก�าหนดไว)น�/ม�ค(าน)อยูเก�นไป ก0จัะทำ�าให)โปรแกรมน�/นไม(สามารถค�านวณส�าเร0จัได) ซี��งจัะติ)องเส�ยูเวลามาเร��มติ)นใหม(อ�ก

Page 26: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 26

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบงานสิ��นท.าก�อน (SJF : Short–Job–First Scheduling)

ม�ป<ญหาในการน�ามาใช้)ในการจั�ดเวลาช้(วงส�/น (Short-term Scheduling) เพีราะว(าเราไม(ม�ทำางจัะร� )ได)ว(าความยูาวของคาบเวลาการใช้)ซี�พี�ยู�ในช้(วงติ(อไปของแติ(ละโปรเซีสเป�นเทำ(าใด ว�ธิ�การทำ��ใช้)ม�กจัะเป�นแค(การประมาณเอาเทำ(าน�/น โดยูประมาณจัากระยูะเวลาของเวลาซี�พี�ยู�ในคาบเวลาทำ��ผ(านมาด)วยูการหาค(าเฉล��ยู

Page 27: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 27

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

Page 28: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 28

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบงานสิ��นท.าก�อน (SJF : Short–Job–First Scheduling)

SJF สามารถเป�นได)ทำ�/งแบบให)ส�ทำธิ�9ก(อน หร+อไม(ให)ส�ทำธิ�9ก(อน การติ�ดส�นใจัจัะเก�ดข�/นทำ1กคร�/งเม+�อม�โปรเซีสใหม(เข)ามาในค�ว

ในขณะทำ��ยู�งม� โปรเซีสอ+�นใช้)งานซี�พี�ยู�อยู�( โปรเซีสใหม(อาจัม�คาบเวลาของเวลาซี�พี�ยู�ส� /นกว(าเวลาทำ��เหล+อ

อยู�(ของเวลาซี�พี�ยู�ของโปรเซีสทำ��ก�าล�งใช้)ซี�พี�ยู� --> อ�ลกอร�ทำ�มทำ��เป�นแบบให)ส�ทำธิ�9ก(อนจัะทำ�าการหยู1ดงานทำ��ก�าล�งใช้)ซี�พี�ยู�อยู�(

แบบไม(ให)ส�ทำธิ�9ก(อน -- > ปล(อยูให)งานน�/นใช้)ซี�พี�ยู�จันเสร0จัส�/นเวลาซี�พี�ยู�ของช้(วงเวลาน�/น บางคร�/งการทำ�า SJF แบบให)ส�ทำธิ�ก(อน อาจัม�ช้+�อเร�ยูกว(า Shortest-Remaining-Time-First

Page 29: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 29

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

ให�สิ�ทธิ�0ก�อน = [ - - - -10 11 117 25 3

4)]/ = 26/4 = 6.5 ว�นาท� ห�ามแทรก =

[ - - - 0 81 172 123( )+( )+( )+( )] / 4 = 31/4 = 7.75 ว�นาท�

Page 30: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 30

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาต้ามล.าด�บความสิ.าค�ญ (Priority Scheduling)

โปรเซีสทำ��ม�ล�าด�บความส�าค�ญส�งทำ��ส1ดขจัะทำ�างานก(อน แติ(ถ)าม�งานทำ��ม�ล�าด�บความส�าค�ญเทำ(าก�น ก0จัะม�การน�าเอามาก(อนได)ก(อน (FCFS ) มาใช้)

ล�าด�บความส�าค�ญ จัะก�าก�บไว)ด)วยูส�ญล�กษณ,ทำ��เปร�ยูบเทำ�ยูบก�นได) เช้(น ติ�วเลขจั�านวนน�บ เป�นติ)น

ถ)าไม(ม�ข)อติกลงในการใช้)ระบบการก�าก�บของความส�าค�ญเหล(าน�/ อาจัก(อให)เก�ดความส�บสนข�/นได)

Page 31: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 31

การจั�ดเวลาต้ามล.าด�บสิ.าค�ญ (Priority)

การจั�ดเวลาต้ามล.าด�บสิ.าค�ญ (Priority)

0 1 6 16 1( + + + + 8 5) / = 41/5 = 8.2

ว�นาท�

Page 32: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 32

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาต้ามล.าด�บความสิ.าค�ญ (Priority Scheduling)

ป<ญหาใหญ(ของการจั�ดเวลาซี�พี�ยู�แบบน�/ก0ค+อโปรเซีสทำ��ม�ล�าด�บความส�าค�ญติ��าอาจัจัะไม(ม�โอกาสได)เข)าไปใช้)ซี�พี�ยู�เลยู ถ)าหากว(าม�โปรเซีสทำ��ม�ล�าด�บความส�าค�ญส�งกว(าอยู�(เป�นจั�านวนมาก

การแก)ป<ญหาสถานการณ,น�/ค+อ การเพี��มล�าด�บความส�าค�ญให)ก�บโปรเซีสทำ��ยู�งไม(เสร0จัเหล(าน�/ติามระยูะเวลาทำ��คอยูอยู�(ในค�ว

Page 33: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 33

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาต้ามล.าด�บความสิ.าค�ญ (Priority Scheduling)

เช้(น สมมติ�ว(าเราม�การออกแบบให)ม�ล�าด�บความส�าค�ญจัาก - 0127 ข�/น เราอาจัจัะเพี��มอ�ลกอร�ทำ�มพี�เศษลงไปว(า ถ)าโปรเซีสใดคอยูครบ 15 นาทำ� ก0ให)ลดติ�วเลขล�าด�บข�/นลงทำ�ละข�/น และจัะลดลงไปเร+�อยู ๆ ทำ1ก ๆ 15 นาทำ� ซี��งการทำ�าแบบน�/ แม)โปรเซีสทำ��เข)ามาในระบบม�ล�าด�บความส�าค�ญติ��าส1ดทำ�� 127 ก0จัะม�โอกาสเข)าไปใช้)ซี�พี�ยู�ภายูในเวลาไม(เก�น 32 ช้��วโมง เพีราะในทำ��ส1ดโปรเซีสน�/ก0จัะม�ล�าด�บความส�าค�ญเทำ(าก�บ

0

Page 34: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 34

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

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

ค�ดข�/นมาเพี+�อใช้)ก�บระบบคอมพี�วเติอร,แบบแบ(งเวลาโดยูเฉพีาะ โดยูม�ล�กษณะการทำ�างานแบบมาก(อนได)ก(อน (FCFS ) แติ(ให)ม�กรรมว�ธิ�ของให)ส�ทำธิ�9ก(อนรวมอยู�(ด)วยู แติ(ละโปรเซีสทำ��เข)ามาในระบบจัะถ�กจั�าก�ดเวลาการเข)าไปใช้)ซี�พี�ยู�เทำ(า ๆ ก�น ซี��งช้(วงเวลาน�/จัะเป�นช้(วงเวลาส�/นเร�ยูกว(า เวลาคว�นต้�ม (Quantum Time)

ระยูะเวลาคว�นติ�มน�/ ม�ความยูาวระหว(าง 10 ถ�ง 100

ม�ลล�ว�นาทำ� ค�วทำ��ใช้)ก0เป�นแบบวงกลม (Circular Queue) ติ�วจั�ดเวลาจัะม�การให)ซี�พี�ยู�ก�บโปรเซีสทำ��อยู�(ในค�วแบบวนไปรอบ

Page 35: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 35

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

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

ในแติ(ละคาบเวลาจัะม�ความยูาวของการได)ร�บซี�พี�ยู�มากทำ��ส1ดค+อ 1 คว�นติ�ม ถ)าโปรเซีสใดไม(สามารถกระทำ�าได)ส�าเร0จัภายูใน 1 คว�นติ�มน�/ โปรเซีสก0จัะติ)องถ�กน�ากล�บไปไว)ในค�วเช้(นเด�ม

สถานภาพีติ(าง ๆ ของโปรเซีสทำ��ยู�งทำ�าไม(เสร0จัก0จัะถ�กบ�นทำ�กไว) เพี+�อว(าเม+�อถ�งโอกาสได)ครอบครองซี�พี�ยู�อ�ก ก0จัะได)เร��มติ)นร�นติ(อจัากคร�/งทำ��แล)วโดยูไม(ติ)องเร��มใหม(ทำ�/งหมด

Page 36: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 36

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

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

ม�ค�วทำ��พีร)อมทำ�างาน (Ready Queue) เป�นแบบมาก(อนได)ก(อนไว)ส�าหร�บเก0บโปรเซีสติ(าง ๆ โปรเซีสทำ��เข)ามาใหม(จัะถ�กน�ามาติ(อไว)ทำ��หางของค�ว ติ�วจั�ดเวลาจัะเล+อกเอาโปรเซีสทำ��อยู�(ติรงห�วค�วออกมา แล)วก�าหนดให)ไทำม,เมอร,หยู1ดการให)เวลาซี�พี�ยู�หล�งจัากน�/น 1 คว�นติ�ม แล)วน�าโปรเซีสออกไปติ(อทำ��หางค�ว ถ)าหากว(าโปรแกรมยู�งไม(ส�/นส1ดการทำ�างาน

โปรเซีสทำ��เสร0จัก(อนถ�งเวลา 1 คว�นติ�ม จัะติ)องให)ส�/นส1ดและออกจัากการครอบครองซี�พี�ยู� เพี+�อโปรเซีสอ+�นทำ��อยู�(ติรงห�วค�วเข)ามาทำ�างานได)

Page 37: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 37

การจั�ดเวลาแบบวนรอบ (Round Robin)

การจั�ดเวลาแบบวนรอบ (Round Robin)

- [(1 0 4 )+4 +7 ] / 3= 17/3 = 5.66 ว�นาท�

Page 38: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 38

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

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

ถ)าม�โปรเซีสอยู�(ในค�วจั�านวน n โปรเซีส และระยูะเวลาของคว�นติ�มเทำ(าก�บ q หน(วยู แติ(ละโปรเซีสทำ��อยู�(ในค�วจัะม�เวลาเฉล��ยูของการคอยูไม(นานไปกว(า (n–1) x q หน(วยู ก(อนทำ��จัะได)ร�บการเข)าไปใช้)ซี�พี�ยู�อ�กคร�/ง

เช้(น ถ)าม�โปรเซีส 5 โปรเซีส และระยูะเวลาคว�นติ�มค+อ 20 ว�นาทำ� แติ(ละโปรเซีสจัะติ)องคอยูในค�วโดยูเฉล��ยู

ประมาณไม(เก�น 80 ว�นาทำ� ไม(เก�นก0เพีราะว(าการคอยูอาจัจัะน)อยูกว(าน�/ ถ)าหากว(าม�โปรเซีสใด ๆ สามารถทำ�างานเสร0จัโดยูใช้)เวลาน)อยูกว(าเวลาคว�นติ�มน��นเอง

Page 39: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 39

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

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

ประส�ทำธิ�ภาพีของการวนรอบข�/นอยู�(ก�บการก�าหนดขนาดของคว�นติ�ม

ถ)าขนาดของคว�นติ�มใหญ(หร+อนานเก�นไป ประส�ทำธิ�ภาพีของการวนรอบก0จัะใกล)เค�ยูงก�บแบบมาก(อนได)ก(อน

แติ(ถ)าขนาดของคว�นติ�มเล0กมากเก�นไป ทำร�พี1ติ (throughput) ของระบบก0จัะช้)าลง เน+�องจัากการน�าเอาโปรเซีสเข)าและออกจัากการครอบครองซี�พี�ยู� จัะติ)องเส�ยูเวลาบางส(วนในการทำ�า Dispatcher

ถ)าขนาดของคว�นติ�มเล0กใกล)เค�ยูงก�บเวลาของ Dispatcher เวลาของระบบรวมก0จัะหมดไปก�บการเอาโปรเซีสเข)าและออก (Context Switch) น��นเอง

Page 40: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 40

การจั�ดเวลาแบบวนรอบ (Round Robin)

การจั�ดเวลาแบบวนรอบ (Round Robin)

Page 41: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 41

การบ�านการบ�านโปรเซีสิ เวลาท�3ใช่� ล.าด�บความสิ.าค�ญP1 8 2P2 1 1P3 2 2P4 1 3P5 3 1 หาเวลาคอยูเฉล��ยูแบบ FCFS, SJF, Priority

และ RR (เวลาคว�นติ�ม 2= )

Page 42: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 42

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

เป�นการจั�ดเวลาของซี�พี�ยู�อ�กแบบหน��งส�าหร�บระบบทำ��สามารถแบ(งระด�บช้�/นของงานได)อยู(างช้�ดเจัน

งานทำ��เป�นฟัอร,กราวนด, (Foreground) หร+ออ�นเติอร,แอ0กทำ�ฟั (Interactive) ก�บงานทำ��เป�นแบ0คกราวนด, (Background) หร+อแบ0ติช้, (Batch)

งานทำ�/งสองแบบน�/ติ)องการเวลาติอบสนอง (Response time) ทำ��แติกติ(างก�น ซี��งสามารถใช้)ระบบการจั�ดเวลาทำ��แติกติ(างก�นได)

Page 43: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 43

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

ใช้)ว�ธิ�แบ(งค�วออกเป�นหลายู ๆ ระด�บโดยูทำ��แติ(ละระด�บหมายูถ�งระด�บโปรเซีสทำ��ม�ความส�าค�ญแติกติ(างก�น

การแบ(งระด�บความส�าค�ญของโปรเซีสน�/น สามารถแบ(งได)หลายูล�กษณะ เช้(นแบ(งติามขนาดโปรเซีส , จั�านวนหน(วยูความจั�าทำ��ติ)องใช้)หร+อจั�านวนอ�นพี1ติ/เอาติ,พี1ติ เป�นติ)น

แติ(ละค�วยู�งสามารถใช้)หล�กการจั�ดเวลาทำ��แติกติ(างก�นได)ด)วยู เช้(น งานทำ��เป�นฟัอร,กราวนด,ก0อาจัใช้)การจั�ดติารางแบบวนรอบส(วนงานทำ��เป�นแบบแบ0คกราวนด,ก0อาจัใช้)แบบมาก(อนได)ก(อน ก0ได)

Page 44: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 44

การจั�ดเวลาแบบค�วหลายูระด�บการจั�ดเวลาแบบค�วหลายูระด�บ

Page 45: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 45

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

แติ(ละค�วจัะม�ความส�าค�ญเหน+อกว(าค�วทำ��อยู�(ด)านล(างถ�ดลงไปเสมอ

โปรเซีสทำ��คอยูอยู�(ในค�วทำ��ม�ความส�าค�ญติ��าจัะม�โอกาสได)ออกมาใช้)ซี�พี�ยู�ก0ติ(อเม+�อค�วทำ��ม�ความส�าค�ญส�งกว(าไม(ม�โปรเซีสทำ��ติ)องทำ�าเหล+ออยู�(เทำ(าน�/น

หร+อในขณะทำ��โปรเซีสทำ��ม�ล�าด�บความส�าค�ญก�าล�งครอบครองซี�พี�ยู� แล)วม�โปรเซีสทำ��ม�ล�าด�บความส�าค�ญส�งกว(าเข)ามาคอยูอยู�(ในค�วทำ��ส�งกว(า โปรเซีสน�/ก0จัะถ�กน�าออกมาจัากซี�พี�ยู�ทำ�นทำ�

Page 46: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 46

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

เพี+�อปBองก�นไม(ให)โปรเซีสทำ��อยู�(ในค�วติ��า ติ)องคอยูอยู�(นานเก�นไป หร+ออาจัจัะไม(ม�โอกาสได)เข)าไปใช้)ซี�พี�ยู�เลยู เพีราะว(าในค�วบน ๆ ไม(เคยูว(างเลยู

ติ)องม�การก�าหนดส�ดส(วนเวลาให)ก�บแติ(ละค�วในการทำ�างานเข)าไปใช้)ซี�พี�ยู� เช้(น การก�าหนดให)เวลา

80 เปอร,เซี0นติ,เป�นของโปรเซีสทำ��เป�นฟัอร,กราวนด, และอ�ก 20 เปอร,เซี0นติ,เป�นของงานแบ0คกราวนด, เป�นติ)น

Page 47: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 47

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

การทำ�างานแบบการจั�ดล�าด�บความส�าค�ญแบบเปล��ยูนแปลงได)น�/นอาจัม�ช้+�อเร�ยูกอ�กอยู(างได)ว(าเป�นการทำ�างานแบบ Multilevel Feedback Queue Scheduling เพีราะว(าโปรเซีสในแติ(ละค�ว สามารถม�การเล+�อนช้�/นระด�บความส�าค�ญข�/นหร+อลงได)

อาจัจัะติ)องเส�ยูเวลาเพี��มอ�กน�ดหน(อยูในการค�านวณหาระด�บความส�าค�ญใหม(ให)ก�บโปรเซีส

Page 48: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 48

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

ส(วนมากจัะแบ(งระด�บความส�าค�ญติามระยูะเวลาของเวลาซี�พี�ยู� เช้(นเม+�อซี�พี�ยู�ทำ�างานนานข�/นก0อาจัจัะถ�กลดช้�/นลงมาส�(ค�วทำ��ม�ล�าด�บความส�าค�ญติ��าได) ซี��งจัะทำ�าให)โปรเซีสทำ��ม�การใช้)ซี�พี�ยู�น)อยูแติ(ม�อ�นพี1ติ/เอาติ,พี1ติ หร+ออ�นเทำอร,แอ0กทำ�ฟัมาก ๆ ม�โอกาสเข)าไปอยู�(ในค�วทำ��ม�ความส�าค�ญมากได)

ว�ธิ�น�/ยู�งเป�นการปBองก�นไม(ให)ม�โปรเซีสทำ��ม�ความส�าค�ญน)อยูถ�กดองอยู�(ในค�ว เพีราะโปรเซีสทำ��อยู�(ในค�วทำ��ติ��าก0สามารถเล+�อนข�/นไปส�(ค�วทำ��ส�งข�/นถ)าคอยูอยู�(นานเก�นไป

Page 49: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 49

การจั�ดเวลาแบบค�วหลายูระด�บการจั�ดเวลาแบบค�วหลายูระด�บ

Page 50: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 50

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

อ�ลกอร�ท,มข้องการจั�ดเวลา (Scheduling Algorithms)

การจั�ดเวลาแบบค�วหลายูระด�บ (Multilevel Queue Scheduling)

จั�านวนของค�ว ว�ธิ�ของการจั�ดเวลาของแติ(ละค�ว หล�กเกณฑ์,ในการติ�ดส�นใจัเพี��มความส�าค�ญของ

โปรเซีส หล�กเกณฑ์,ในการติ�ดส�นใจัลดความส�าค�ญของ

โปรเซีส หล�กเกณฑ์,ในการติ�ดส�นใจัน�าเอาโปรเซีสทำ��

ติ)องการครอบครองซี�พี�ยู�มาเข)าในค�ว

Page 51: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 51

การจั�ดเวลาข้องม�ลต้�เพี�ลโปรเซีสิเซีอร�การจั�ดเวลาข้องม�ลต้�เพี�ลโปรเซีสิเซีอร� การออกแบบระบบปฏิ�บ�ติ�การส�าหร�บคอมพี�วเติอร,

ทำ��ม�ซี�พี�ยู�หลายูติ�วจัะเพี��มความซี�บซี)อนกว(าระบบซี�พี�ยู�ติ�วเด�ยูว

การหาว�ธิ�การจั�ดเวลาไม(ม�ความแติกติ(างจัากการจั�ดเวลาของซี�พี�ยู�ติ�วเด�ยูวเลยู

ติ)องจั�าก�ดป<ญหาว(าซี�พี�ยู�หลายูติ�วเหล(าน�/นจัะทำ�างานคล)ายูก�บซี�พี�ยู�เพี�ยูงติ�วเด�ยูว

ส��งทำ��ติ)องค�าน�งค+อ การแช้ร,โหลดให)ซี�พี�ยู�แติ(ละติ�วม�งานทำ�ามากพีอก�น โดยูการจั�ดให)ม�ระบบค�วระบบเด�ยูว

Page 52: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 52

การจั�ดเวลาข้องม�ลต้�เพี�ลโปรเซีสิเซีอร�การจั�ดเวลาข้องม�ลต้�เพี�ลโปรเซีสิเซีอร� ด�งน�/นเม+�อม�ซี�พี�ยู�ติ�วใดว(าง ก0จัะน�าโปรเซีสในค�วออก

ไปเอ0กซี�ค�วติ,ได)ทำ�นทำ� การทำ�างานทำ��ซี�พี�ยู�แติ(ละติ�วม�ระบบจั�ดการเป�นของ

ตินเองจัะติ)องม�การออกแบบอยู(างระม�ดระว�งในกรณ�ทำ��ม�การใช้)ข)อม�ลร(วมก�น

ระว�งอยู(าให)ซี�พี�ยู�ว(างพีร)อมก�น เล+อกโปรเซีสจัากค�วทำ��ใช้)ร(วมก�นเพีราะอาจัจัะทำ�าให)ด�งโปรเซีสเด�ยูวก�นเข)าไปทำ�างาน

แม)แติ(การปล(อยูโปรเซีสทำ�/งจัากซี�พี�ยู�พีร)อม ๆ ก�นหมดทำ�าให)เก�ดการส�ญหายูของโปรเซีสได)

Page 53: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 53

การจั�ดเวลาข้องม�ลต้�เพี�ลโปรเซีสิเซีอร�การจั�ดเวลาข้องม�ลต้�เพี�ลโปรเซีสิเซีอร� การแก)ไขทำ�าได)โดยูการเพี��มความซี�บซี)อน โดยูให)ม�ระด�บ

ของซี�พี�ยู�ทำ��ติ(างก�น โดยูให)ซี�พี�ยู�ติ�วใดติ�วหน��งคอยูควบค1มส��งงานซี�พี�ยู�อ�กติ(อหน��ง เป�นเช้(นน�/เป�นทำอด ๆ ไป เร�ยูกล�กษณะเช้(นน�/ว(า “Master-slave structure”

บางระบบม�การพี�ฒนาโดยูแยูกระบบการจั�ดเวลาก�บอ�นพี1ติ / เอาติ,พี1ติออกจัากก�น

โดยูเฉพีาะการน�างานของผ�)ใช้)ออกจัากอ�นพี1ติ/เอาติ,พี1ติทำ�าให)ระบบปฏิ�บ�ติ�การม�ความซี�บซี)อนน)อยูลง เน+�องจัากม�ซี�พี�ยู�เพี�ยูงติ�วเด�ยูวทำ��เข)าใช้)งาน ติ�วอ+�นเข)าไม(ได)

Page 54: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 54

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การทำ�างานแบบเร�ยูลไทำม,แบ(งออกเป�น 2 ประเภทำ Hard Real-time Soft Real-time

Hard Real-time ค+อระบบทำ��สามารถทำ�างานให)เสร0จัติามเวลาทำ��ก�าหนดได) ซี��งงานทำ��จัะร�บเข)ามาแติ(ละงานน�/นจัะม�เวลาทำ��ติ)องการให)เสร0จัมาด)วยู ด�งน�/นติ�วจั�ดเวลาจัะติ)องติ�ดส�นใจัว(าจัะร�บงานเข)ามาทำ�าหร+อไม( ซี��งถ)าติ�ดส�นใจัร�บงานใด ๆ เข)ามาทำ�าก0หมายูความว(า งานน�/นได)ร�บการร�บรองว(าจัะถ�กทำ�าให)เสร0จัได)ภายูในเวลาทำ��ก�าหนด ส(วนงานทำ��ถ�กปฏิ�เสธิก0หมายูความว(า เวลาทำ��ก�าหนดมาน�/นเร0วเก�นกว(าทำ��สภาวะของระบบในขณะน�/นจัะทำ�าได)ทำ�น

Page 55: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 55

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

Hard Real-time ระบบปฏิ�บ�ติ�การจัะติ)องร� )แน(นอนว(า การทำ�างานของ

ฟั<งก,ช้�นติ(าง ๆ ของติ�วระบบปฏิ�บ�ติ�การใช้)เวลาเทำ(าใด แติ(จัะเป�นการยูากมากถ)าหากระบบคอมพี�วเติอร,ม�การใช้) ส+�อจั�ดเก0บข)อม�ล หร+อหน(วยูความจั�าเสม+อน

ระบบ Hard Real–time ม�กจัะทำ�างานก�บโปรแกรมเฉพีาะทำ��ม�การใช้)ฮาร,ดแวร,ของระบบทำ�/งหมด เพี+�อทำ�างานหร+อค�านวณให)ก�บงานใดงานหน��งอยู(างเฉพีาะเจัาะจัง

ทำ�าให)ระบบน�/จั�งประกอบไปด)วยูส��งทำ��จั�าเป�นในการทำ�างานทำ��ได)ร�บมอบหมายูเทำ(าน�/น

Page 56: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 56

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

Soft Real-time อาจัเป�นเพี�ยูงระบบแบ(งเวลาธิรรมดาทำ��ม�การให)ระด�บความ

ส�าค�ญแก(งานบางประเภทำ หร+องานทำ��ถ�กเล+อกไว)ล(วงหน)าว(าเป�นงานเร(งด(วน ซี��งอาจัทำ�าให)

เก�ดป<ญหาของการทำ�างานในระด�บติ��า ๆ อาจัไม(ได)ร�บเวลาของซี�พี�ยู�เลยู

อยู(างน)อยูเราก0สามารถสร)างการทำ�างานทำ��ให)การติอบสนองของระบบเข)าใกล)แบบ Hard–Time แติ(สามารถสน�บสน1นงานอ+�น ๆ ได)อ�กหลายูงาน ทำ�าให)การใช้)ระบบม�ความค1)มค(ากว(า

ในสถานการณ,จัร�ง ระบบ Hard real–time จัะม�ราคาแพีงกว(า Soft Real–time มากในแง(ของติ)นทำ1นติ(องานทำ��ผล�ติได) (บางงานไม(จั�าเป�น)

Page 57: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 57

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

กฎในการออกแบบ Soft Real-time เพี��มเติ�มจัากpriority queue

งานทำ��เป�นเร�ยูลไทำม,จัะติ)องได)ร�บความส�าค�ญส�งส1ดเหน+องานอ+�น ๆ ทำ�/งหมดทำ��ไม(ใช้(เร�ยูลไทำม, และจัะไม(ม�ว�นทำ��งานแบบเร�ยูลไทำม,จัะถ�กลดช้�/นลงไปอยู�(ในค�วทำ��ม�ล�าด�บความส�าค�ญทำ��ติ��ากว(าน�/ แม)ว(าระบบค�วแบบล�าด�บความส�าค�ญทำ��ใช้)อาจัเป�นแบบ Priority Feedback Queue ก0ติาม

เวลาของการทำ�า Context Switch และ Dispatcher ติ)องส�/นมาก ๆ ยู��งส�/นเทำ(าไหร( ก0ยู��งจัะทำ�าให)งานทำ��เป�น เร�ยูลไทำม,สามารถเข)าไปใช้)ซี�พี�ยู�ได)เร0วข�/นเทำ(าน�/น

Page 58: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 58

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

กฎข)อทำ�� 1 น�/น เราอาจัสามารถสร)างออกมาใช้)งานได)ไม(ยูาก

กฎข)อทำ�� 2 สามารถทำ�าได)อยู(างแน(นอนม�กเป�นเร+�องทำ��ยูาก เน+�องจัากว(าระบบปฏิ�บ�ติ�การทำ��เคยูออกแบบมาน�/นถ�กบ�งค�บให)คอยู System Call ทำ1กช้น�ดเสร0จัส�/นก(อนหร+อไม(ก0ติ)องคอยูให)เก�ดการบล0อกอ�นพี1ติ/เอาติ,พี1ติเส�ยูก(อนทำ��จัะม�การทำ�า Context Switch

Dispatch Latency ในระบบปฏิ�บ�ติ�การทำ��ถ�กออกแบบมาแบบน�/ม�กจัะม�ความเร0วไม(คงทำ�� และม�กจัะใช้)เวลานาน เพีราะบาง System Call อาจัจัะก�นเวลานานมาก และอ�นพี1ติ/เอาติ,พี1ติบางติ�วก0ม�กจัะทำ�างานได)ช้)าเสมอ

Page 59: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 59

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การแก)ป<ญหาติ)องยูอมให)สามารถหยู1ด System Call ทำ��ใช้)เวลานาน ได)ด)วยูการใส( preemption point ลงไปใน system call

เพี+�อทำ��จัะให)ม�นหยู1ดติรวจัสอบว(าม�งานแบบเร�ยูลไทำม,คอยูอยู�(หร+อเปล(า และถ)าม�ก0ให)ไปทำ�างานเร�ยูลไทำม,ก(อน แล)วจั�งกล�บมาทำ�า System Call ทำ��เหล+ออยู�(ให)เสร0จั

การใส( preemption point ก0ยู�งม�ข)อจั�าก�ดทำ��ไม(สามารถใส(ลงไปได)ในขณะทำ��ข)อม�ลของ Kernel ก�าล�งถ�กเปล��ยูนแปลง ซี��งทำ�าให)บางคร�/งไม(สามารถทำ�าให) dispatch latency เล0กลงมาก ๆ ได)

Page 60: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 60

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดการป<ญหาของการ preemption โดยูการทำ�าให) Kernel ทำ�/งหมดเป�นแบบการให)ส�ทำธิ�9ก(อน แติ(โครงสร)างข)อม�ลของ Kernel จัะติ)องได)ร�บการปBองก�นความเส�ยูหายูอยู(างด�จัากการถ�กเร�ยูกใช้)แบบกลไกการซี�นโครไนซี,

การปBองก�นโครงสร)างข)อม�ลของ Kernel จัากการเร�ยูกใช้)โดยูงานทำ��ม�ล�าด�บความส�าค�ญส�ง ในขณะทำ��งานทำ��ม�ล�าด�บความส�าค�ญติ��าก�าล�งใช้)อยู�( ทำ�าให)งานทำ��ม�ล�าด�บความส�าค�ญส�งจั�าเป�นติ)องคอยูงานทำ��ม�ล�าด�บความส�าค�ญติ��าเหล(าน�/ เหติ1การณ,เช้(นน�/ทำ�าให)ด�เหม+อนว(างานทำ��ก�าล�งใช้)โครงสร)างข)อม�ลอยู�(น� /นม�ล�าด�บความส�าค�ญส�งทำ��ส1ด เราเร�ยูกเหติ1การณ,น�/ว(า Priority Inversion

Page 61: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 61

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

การจั�ดเวลาแบบเร�ยูลไทม� (Real-time scheduling)

ป<ญหาเหล(าน�/ก0จัะสามารถแก)ได)ด)วยูว�ธิ� priority–inheritance protocol น��นค+อ งานทำ��ม�ล�าด�บความส�าค�ญติ��าก0จัะได)ร�บล�าด�บความส�าค�ญส�งเทำ(าก�บงานทำ��คอยูใช้)โครงสร)างข)อม�ลอ�นเด�ยูวก�นอยู�(

ว�ธิ�น�/จัะทำ�าให)งานทำ��ม�ล�าด�บความส�าค�ญติ��า ๆ ม�โอกาสเสร0จัได)เร0วข�/นและปล(อยูการใช้)โครงสร)างข)อม�ลให)ก�บงานเร�ยูลไทำม,ได)เร0วทำ��ส1ด และเม+�องานทำ��ม�ล�าด�บความส�าค�ญติ��าเสร0จัจัากการใช้)โครงสร)างข)อม�ลแล)ว ก0จัะถ�กติ�/งค(าให)ม�ล�าด�บความส�าค�ญกล�บมาเทำ(าเด�ม

Page 62: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 62

การค�ดเล�อกอ�ลกอร�ท,3มสิ.าหร�บการจั�ดเวลาซี�พี�ยู�

การค�ดเล�อกอ�ลกอร�ท,3มสิ.าหร�บการจั�ดเวลาซี�พี�ยู�

ติ)องค�ดถ�งเร+�องของการก�าหนดค1ณสมบ�ติ�ส�าหร�บการเปร�ยูบเทำ�ยูบในกระบวนการค�ดเล+อก ซี��งค1ณสมบ�ติ�จัะเป�นอรรถประโยูช้น,ของซี�พี�ยู� (CPU utilization) เวลาติอบสนอง (Response time) และทำร�พี1ติ (Throughput)

อาจัจัะก�าหนดหล�กเกณฑ์,ติามความติ)องการซี��งเป�นเร+�องทำ�� ยูากมาก เราติ)องสมม1ติ�ว(าระบบติ)องการอะไรเพี+�อจัะได)

ก�าหนดหล�กเกณฑ์,การพี�จัารณา Deterministic Modeling โมเดลการจั�ดค�ว ว�ธิ�การจั�าลองระบบ (Simulations) ว�ธิ�การสร)างข�/นมาจัร�ง ๆ

Page 63: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 63

Deterministic ModelingDeterministic Modeling ว�ธิ�การค�ดเล+อกน�/เร�ยูกว(า analytic evaluation

ซี��งจัะน�าเอาอ�ลกอร�ทำ�มช้น�ดติ(าง ๆ และล�กษณะของงาน มาสร)างส�ติร เพี+�อใช้)ในการค�านวณหาติ�วเลขของประส�ทำธิ�ภาพีทำ��สามารถว�ดและเปร�ยูบเทำ�ยูบได)

Page 64: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 64

Deterministic ModelingDeterministic Modeling

FCFS = (0 + 10 + 39 + 42 + 49) / 5 = 28 ว�นาท�

SJF = (10 + 32 + 0 + 34 + 20) / 5 = 13 ว�นาท�

RR = (0 + 32 + 20 + 23 + 40) / 5 = 23 ว�นาท�

Page 65: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 65

Deterministic ModelingDeterministic Modeling ในว�ธิ� Deterministic Modeling น�/เป�นว�ธิ�ทำ��ง(ายูและรวดเร0ว

ได)ผลล�พีธิ,ทำ��เป�นติ�วเลขทำ��แน(นอน เพี+�อการเปร�ยูบเทำ�ยูบทำ��สามารถเห0นได)อยู(างเด(นช้�ดว(าอ�ลกอร�ทำ�มแบบไหนด�ทำ��ส1ด

ผลล�พีธิ,ทำ��ได)อาจัจัะไม(สามารเป�นจัร�งได)เสมอในเหติ1การณ,จัร�ง เน+�องจัากว(าข)อม�ลทำ��ใช้)ในการค�านวณน�/นเป�นข)อม�ลสมม1ติ�ทำ��ม�เพี�ยูงค(าเด�ยูว หร+อไม(ก0ม�เพี�ยูงจั�านวนน)อยู เม+�อเทำ�ยูบก�บสถานการณ,จัร�งแล)ว ข)อม�ลสมม1ติ�เหล(าน�/ ก0อาจัจัะไม(เป�นติ�วแทำนของเหติ1การณ,จัร�งได)อยู(างสมบ�รณ,

ในทำางปฏิ�บ�ติ�แล)วระบบงาน และระบบคอมพี�วเติอร,ม�ความซี�บซี)อนมากกว(าน�/มากมายู การใช้)ว�ธิ� Deterministic Modeling น�/ม�กม�ข)อจั�าก�ดมากเก�นไปส�าหร�บการน�ามาใช้)ในระบบคอมพี�วเติอร,ป<จัจั1บ�น

Page 66: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 66

โมเดลการจั�ดค�วโมเดลการจั�ดค�ว ล�กษณะงานทำ��เข)ามาในระบบคอมพี�วเติอร,ม�ล�กษณะไม(

แน(นอน อาจัจัะไม(ซี�/าก�นเลยู แติ(เราสามารถทำ�านายูหร+อก�าหนดการกระจัายูเวลาของ

ซี�พี�ยู� และการกระจัายูการใช้)อ�นพี1ติ/เอาติ,พี1ติได) ระบบคอมพี�วเติอร,อาจัมองเป�นระบบเน0ติเว�ร,คทำ��สถาน�

งานทำ��ม�ค�วเป�นของตินเอง ทำ�/งซี�พี�ยู� หร+ออ1ปกรณ,ติ(าง ๆ ถ)าเราทำราบเวลาในการให)บร�การและจั�านวนงานทำ��เข)ามา

ในสถาน�งาน เราก0สามารถค�านวณหาส��งทำ��ติ)องการได) การว�เคราะห,แบบน�/เร�ยูกว(า การว�เคราะห,การจั�ดค�วแบบ

เน0ติเว�ร,ค (Queueing-network analysis)

Page 67: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 67

โมเดลการจั�ดค�วโมเดลการจั�ดค�ว Little’s formula (n=r*w) ม�ประโยูช้น,เน+�องจัาก

สามารถใช้)อ�ลกอร�ทำ��มใดก0ได)เม+�อทำราบค(าเฉล��ยูการกระจัายูเวลา

สามารถเปร�ยูบเทำ�ยูบค(าของการคอยูแติ(ละอ�ลกอร�ทำ��ม ป<ญหาก0ค+อยู�งไม(สามารถค�านวณก�บอ�ลกอร�ทำ��มได)ไม(

หมด ถ)าใช้)อ�ลกอร�ทำ��มทำ��ซี�บซี)อนมาก ๆ การค�านวณค(าเฉล��ยู

ทำ�าได)ยูาก เน+�องจัากการติ�/งส�ติทำ�าได)ยูาก การค�านวณค(าเฉล��ยูจั�งทำ�าไว)แบบง(ายู ๆ การค�านวณ

อาจัไม(เทำ��ยูงติรง

Page 68: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 68

ว�ธิ�การจั.าลองระบบ (Simulations)ว�ธิ�การจั.าลองระบบ (Simulations) เป�นการเล+อกว�ธิ�การหร+ออ�ลกอร�ทำ��มทำ��ให)ค(าเป�นจัร�งมาก

ทำ��ส1ด เน+�องจัากสามารถค�านวณค(าติ�วเลขออกมาได)อยู(างเทำ��ยูงติรงมากทำ��ส1ด

ส(วนมากจัะใช้)การโปรแกรมคอมพี�วเติอร,เพี+�อใช้)เป�นติ�วแทำนหร+อห1(นจั�าลองของระบบ รวมทำ�/งการเข�ยูนโปรแกรมเพี+�อเป�นติ�วแทำนส��งแวดล)อมทำ��เก��ยูวข)องก�บระบบคอมพี�วเติอร,

ส��งส�าค�ญค+อการใช้)ติ�วแปรทำ��เป�นติ�วแทำนของเวลา เพี+�ออ)างถ�งติ�าแหน(งหร+อหล�กในการสร)างเหติ1การณ, (ติ�วแปรจัะเพี��มค(าเร+�อยู ๆ ) หร+อจัะไม(เปล��ยูนติามเหติ1การณ,ทำ��เก�ดข�/นก0ได)

เหติ1การณ,ทำ�/งหมดจัะเก��ยูวข)องก�บเวลาทำ�/งหมดจัะติ)องใช้)ติ�วแปรเด�ยูวก�น

Page 69: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 69

ว�ธิ�การจั.าลองระบบ (Simulations)ว�ธิ�การจั.าลองระบบ (Simulations) เวลาของเหติ1การณ,ทำ��จัะเก�ดข�/นในแบบจั�าลองน�/ม� 2 แบบ

เวลาจัากการส1(ม (เข�ยูนโปรแกรมเพี+�อสร)างติ�วแปรส1(มน�/ ) โดยูติ)องสร)างงาน สร)างเวลาซี�พี�ยู� สร)างเวลาเข)ามาในระบบ โดยูอาศ�ยูหล�กความน(าจัะเป�น โดยูใช้)การกระจัายูติ(าง ๆ เช้(น uniform, exponential หร+อ Poisson เป�นติ)น

ใช้)ข)อม�ลจัากระบบจัร�ง (Empirical) โดยูสามารถหาข)อม�ลได)มาจัาก trace tape (ซี��งประกอบด)วยูข)อม�ลการทำ�างานจัร�งของคอมพี�วเติอร,ทำ��เราจัะติ)องหาอ�ลกอร�ทำ��มทำ��ด�ทำ��ส1ด

ข)อด�ของการใช้)ข)อม�ลจัร�งก0ค+อจัะได)ค(าทำ��ถ�กติ)องมากกว(าแบบการส1(ม แติ(ถ)ายู1(งยูากซี�บซี)อนมาก ๆ ว�ธิ�การส1(มก0ยู�งคงม�ความจั�าเป�น

การทำ�าแบบจั�าลองจั�าเป�นติ)องใช้)เวลาค(อนข)างมาก ทำ�าให)ค(าใช้)จั(ายูส�ง เพี+�อให)ได)ข)อม�ลทำ��เทำ��ยูงติรงมากเทำ(าใดเวลาและค(าใช้)จั(ายูจัะยู��งเพี��มส�งข�/น

Page 70: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 70

ว�ธิ�การสิร�างข้,�นมาจัร�งว�ธิ�การสิร�างข้,�นมาจัร�ง การสร)างแบบจั�าลองก0คงยู�งเป�นการจั�าลองทำ��ยู�งไม(สามารถ

เหม+อนจัร�งได) ส��งทำ��ด�กว(าค+อการสร)างอ�ลกร�ทำ��มช้น�ดติ(าง ๆ เพี+�อทำดลองใช้)ก�บโปรแกรมจั�ดการระบบจัร�ง ๆ ในส��งแวดล)อมจัร�ง

ว�ธิ�น�/ไม(ค(อยูน�ยูมเน+�องจัากค(าใช้)จั(ายูค(อนข)างส�ง และใช้)เวลามาก ในบางอ�ลกอร�ทำ��มอาจัจัะติ)องใช้)ฮาร,ดแวร,พี�เศษ ทำ�าให)เคร+�องติ)อง

สามารถปร�บเปล��ยูนได) ทำ�าให)การปฏิ�บ�ติ�เป�นเร+�องทำ��ค(อนข)างยู1(งยูาก

ถ�งแม)จัะได)ว�ธิ�การทำ��ด�ทำ��ส1ด เรายู�งติ)องพี�จัารณาว(าผลทำ��ได)จัากการทำดลองทำ�าให)เก�ดการติ�ดส�นใจัได)ถ�กติ)องแค(ไหน เน+�องจัากเราจัะม��นใจัได)แค(ไหนว(าเราได)ทำดลองทำ1กอ�ลกอร�ทำ��มโดยูครบทำ1กสถานการณ,แล)วหร+อไม( (ปกติ�เป�นไปได)ยูากทำ��เราจัะสามารถทำ�าได)ครบทำ1กสถานการณ,)

Page 71: การจัดเวลาซีพียู (CPU Scheduling)

ระบบปฏิ�บ�ติ�การ (Operating Systems) 71

ว�ธิ�การสิร�างข้,�นมาจัร�งว�ธิ�การสิร�างข้,�นมาจัร�ง ทำางออกทำ��ด�ทำ��ส1ดเราจัะติ)องทำ�าให)ระบบคอมพี�วเติอร,

สามารถปร�บเปล��ยูนได)โดยูการควบค1มของผ�)ใช้) ซี��งทำ�าได)โดยูการติ�/งค(าไว)ก(อนเร��มใช้)งาน หร+อสามารถปร�บค(าได)ในขณะใช้)งาน

การทำ��เราจัะทำ�าให)ระบบสามารถเปล��ยูนแปลงได) จัะติ)องค(าใช้)จั(ายูในปร�มาณมากข�/นน��นเอง