Top Banner
การจัดการโปรเซสเซอร์
33

CPU Scheduling

Jul 07, 2015

Download

Education

Hi Nana

การจัดการโปรเซสเซอร์ (CPU Scheduling)
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CPU  Scheduling

การจดการโปรเซสเซอร

Page 2: CPU  Scheduling

การจดเวลาซพย

♦ การจกเวลา CPU เปนหลกกาท างานหนงของ OS ทท าใหคอมพวเตอรมความสามารถในการรบโปรแกรมไดหลายๆๆโปรแกรมในเวลาเดยวกน

♦ เหตการณทซพยเปลยนจากการท างานหนงไปยงอกงาน

หนงเรยกวา การเปลยนสถานะ (context

switching)

Page 3: CPU  Scheduling

การจดเวลาซพย

ตอ

เปาหมาย ใชงานซพยไดอยางเตมประสทธภาพ สงทตองค านก ในระบบโปรเซสเซอรเดยวซพยจะท างานไดครงละ 1 งาน ถามหลายๆ งานจะตองเกดการขอ

Page 4: CPU  Scheduling

การท างานของระบบในโปรแกรมเดยว

ตองท างานอยางไมซบซอน การท างานทละโปรแกรมจนเสรจกระบวนการ ท างานตวเองจนเสรจ หรอจนกระทงมการรออะไรบางอยาง เชน

I/O การรอนท าใหซพยเกดการวางงานอยเฉย

Page 5: CPU  Scheduling

การท างานของระบบหลายโปรแกรม

เสมอนกบหลายโปรแกรมด าเนนไปพรอมกน จะไมยอมใหซพยเกดการรอ โปรเซสใดมการรอการใชอปกรณ I/O จะมการน าออกไปจาก

ซพยและน าโปรเซสใหมเขาไปใชงานในซพยแทน

Page 6: CPU  Scheduling

การท างานของ CPU

Page 7: CPU  Scheduling

ตวจดการเวลาซพย

เมอใดกตามทซพยวาง ระบบปฏบตการจะตองเขามาเลอกโปรเซสตวใดตวหนงทคอยอยในควเขามาใชงานซพย การเลอกโปรเซสเพอเขามาใชซพยน จะถกจดการดวยสวนทเรยกวาตวจดควระยะสน ตวจดการเวลานจะเลอกโปรเซสทอยในหนวยความจ าทพรอมในการเอกซควตทสด เพอใหครอบครองเวลาซพยและทรพยากรทเกยวของกบโปรเซสนน

Page 8: CPU  Scheduling

การใหสทธการจดเวลา

การตดสนใจของซพยในการเลอกเอกซควตโปรเซสใด ๆ ขนอยกบสถานการณดงน เมอมการเปลยนสถานะของโปรเซสจากสถานะรน ไปเปนสถานะ

คอย เชน ในสภาวะทคอยอนพต เอาตพต หรอการคอยใหโปรเซสลกเสรจสนไปกอน เปนตนเมอมการเปลยนสถานะของโปรเซสจากสถานะรน ไปเปนสถานะ

พรอม เชน เมอมอนเทอรรพทเกดขน เปนตนเมอมการเปลยนสถานะของโปรเซสจากสถานะคอย ไปเปนสถานะ

พรอม เชน เมอการรอคอยอนพต เอาตพตเสรจสนไปแลว เมอโปรเซสเสรจสนไปแลว

Page 9: CPU  Scheduling

ซพยจะมการสญเสยเวลาส าหรบงานหลก ๆ งาน คอ

เกบคารจสเตอรและสถานะของเครองไวใน ของโปรเซสทก าลงจะปลดปลอยซพย คดเลอกโปรเซสในสถานะพรอม เพอใหมาครอบครองซพย โหลดคารจสเตอรและสถานะของเครองจาก ของโปรเซสใหม

Page 10: CPU  Scheduling

อลกอรทมของการจดเวลา

คอมโพเนนททส าคญอกตวหนงทเกยวของกบฟงกชนในการจดเวลาซพยกคอ สงทเรยกวา ซงเปนโมดลทท าหนาทควบคมการ ครอบครองเวลาซพยของโปรเซส ฟงกชนนประกอบดวย

การยายการยายไปกระโดดไปยงต าแหนงทเหมาะสมของโปรแกรม เพอทจะเรมรนโปรแกรมนนใหมอกครง

Page 11: CPU  Scheduling

ตวจดควระยะส น

(SHORT-TERM SCHEDULER)

การคดเลอกหาโปรเซสทจะเขาไปอยในสถานะรนเมอซพยวางนน ถอไดวาเปนการจดสรรซพยใหกบโปรเซสตาง ๆ ซงเปนหนาทของ OS สวนของ OS ทมหนาทจดสรรซพยเรยกวา ตวจดควระยะสน (Short-term

scheduler)

Page 12: CPU  Scheduling

ตวจดควระยะส น

(SHORT-TERM SCHEDULER)

การจดควระยะสนมดงน การจดเวลาแบบมากอนไดกอน

การจดเวลาแบบงานสนท ากอน

การจดเวลาตามล าดบความส าคญการจดเวลาแบบวนรอบการจดเวลาแบบควหลายระดบ

Page 13: CPU  Scheduling

การจดเวลาแบบมากอนไดกอน

(FCFS : FIRST-COME FIRST-SERVED)

เปนวธการทงายทสด ซงมหลกการคอ โปรเซสใดทรองขอใชซพยกอน ไดรบการจดสรรใหครอบครองเวลาซพยกอนซงการสราง

อลกอรทมนใชหลกการของควมากอนไดกอน ( เมอมโปรเซสใดเขามาอยในควแบบน ของงานจะถกเชอม

ไวกบหางของคว เมอใดทซพยวางลง โปรเซสใดทม อยทหวของควกจะถกน าออกมาจากควใหเขาครอบครองเวลาซพยไดเลย

Page 14: CPU  Scheduling

การจดเวลาแบบมากอนไดกอน

(FCFS : FIRST-COME FIRST-SERVED)… ตอ

ขอดคอ การจดควท าไดไมยงยากซบซอน ตวอยาง การจดควเมอม 3 โปรเซส (A,B,C) ตองการใช CPU โปรเซส ล าดบการ

เขาคว เวลาทตองการ

cpu (วนาท)

เวลาทรออยในคว (วนาท)

เวลาทโปรเซสท างานเสรจ(วนาท)

A 1 15 0 0+15=15

B 2 1 15 15+1=16

C 3 10 16 16+10=26

เวลาเฉลยในการรอ =(11+1+11)/3 = 7.67 วนาท

Page 15: CPU  Scheduling

การจดเวลาแบบมากอนไดกอน

(FCFS : FIRST-COME FIRST-SERVED)…ตอ

ถงแมวาล าดบเขามาในควอาจจะเปน A,B,C แตการใชหลกการของการจดล าดบความส าคญ จะจดควออกมาในลกษณะดงน

A B C

15 16 26

โปรเซส A ตองการรอเวลาในการประมวลผล = 0 วนาท โปรเซส B ตองการรอเวลาในการประมวลผล = 15 วนาท โปรเซส C ตองการรอเวลาในการประมวลผล = 16 วนาท เวลาเฉลยในการรอ = (0+15+16)/3=10.33 วนาท

Page 16: CPU  Scheduling

การจดเวลาแบบมากอนไดกอน

(FCFS : FIRST-COME FIRST-SERVED)… ตอ

จากตวอยางจะพบวาการจดแบบ FCFS เปนผลเสยอยางมากกบโปรเซส B ตองการเวลาในการท างานเพยง 1 วนาท แตตองรอใหโปรเซส A

ซงเขามากอนท างานเสรจ เวลาเฉลยในการรอ =(15+16)/3=10.33 วนาท ท าใหการท างานของโปรเซส B นนใชเวลา 16 วนาทจงจะเสรจสนเทยบเวลาในการท างานคอ 1/16*100 = 6%

ส าหรบเวลาในการรอคอ 100-6 = 94% ซงจะเหนวาโปรเซส B ตองเสยเวลารอนานมาก

Page 17: CPU  Scheduling

งานส นท ากอน (SHORTEST-JOB FIRST SCHEDULING : SJF )

เปนอลกอรทมมากอนบรการกอนนน พบวา คาเฉลยของเวลาครบวงงาน และคาเฉลยของเวลารอมคาสง โดยเฉพาะกรณทในควพรอมมโปรเซสทตองการใชซพยเปนเวลาทแตกตางกนอลกอรทมของงานสน ท ากอนจะพยายามลดคาเฉลยของเวลาครบวงงาน และคาเฉลยของเวลารอ โดยก าหนดใหโปรเซสทตองการใชซพยเปนระยะเวลานอยไดเขาใชซพยกอนโปรเซสทตองการใชซพยเปนระยะเวลานาน

Page 18: CPU  Scheduling

งานส นท ากอน (SHORTEST-JOB FIRST SCHEDULING : SJF )… ตอ

ตวอยางท 1 พจารณาระบบทประกอบดวยโปรเซส P1, P2, P3 และ P4 โดยททกโปรเซสถกรบเขามาในระบบพรอมกน

โปรเซส เวลาทตองการใชซพย

P1 6

P2 8

P3 7

P4 3

Page 19: CPU  Scheduling

งานส นท ากอน (SHORTEST-JOB FIRST SCHEDULING : SJF )… ตอ

จาก Gantt Chart จะเหนวา โปรเซส P1 ตองรอเปนเวลา 3 หนวยเวลา โปรเซส P2 ตองรอเปนเวลา 16 หนวยเวลา โปรเซส P3 ตองรอเปนเวลา 9 หนวยเวลา โปรเซส P4 ตองรอเปนเวลา 0 หนวยเวลา คาเฉลยของเวลาทใชในการรอ คอ (3+16+9+0)/4 = 7 หนวยเวลา

Page 20: CPU  Scheduling

ล าดบความส าคญ (PRIORITY SCHEDULING)

เปนวธจดล าดบการใชซพยโดยก าหนดล าดบความส าคญ (Priority) ใหแตละโปรเซส โดยระบบจะตองก าหนดวา ใหตวเลขทมคานอยทสด แสดงถงล าดบความส าคญนอยทสด ใหตวเลขทมคามากทสด แสดงถงล าดบความส าคญมากทสด ใหตวเลขทมคานอยทสด แสดงถงล าดบความส าคญมากทสด ใหตวเลขทมคามากทสด แสดงถงล าดบความส าคญนอยทสด

Page 21: CPU  Scheduling

ล าดบความส าคญ (PRIORITY SCHEDULING)…ตอ

โปรเซส เวลาทตองการใชซพย ล าดบส าคญ

P1 6 3

P2 8 1

P3 7 3

P4 3 4

P5 5 2

Page 22: CPU  Scheduling

ล าดบความส าคญ (PRIORITY SCHEDULING)… ตอ

เมอก าหนดให ตวเลขทมคานอยทสดมลาดบความส าคญสงทสดการจดลาดบของซพยจะเปนไปตามลาดบคาความส าคญ คอ P2, P5, P1, P3, P4

การจดล าดบของซพยจะเปนไปตามลาดบคาความส าคญ คอ P2, P5, P1, P3,

P4 Aging คอ การก าหนดใหมการเพมคาของล าดบความส าคญของทกโปรเซสในระบบเปนระยะ

Page 23: CPU  Scheduling

การจดเวลาแบบวนรอบ

(RR : ROUND-ROBIN SCHEDULING)

การสรางระบบการท างานแบบวนรอบ เราจะท าควทพรอมท างานเปนแบบมากอนไดกอนไวส าหรบเกบโปรเซส

ตาง ๆ โปรเซสทเขามาใหมจะถกน ามาตอไวทหางของคว ตวจดเวลาจะเลอกเอาโปรเซสทอยตรงหวควออกมา แลวก าหนดให

หยดการใหเวลาซพยหลงจากนน ควอนตม แลวน าโปรเซสออกไปตอทหางคว ถาหากวาโปรแกรมยงไมสนสดการท างาน โปรเซสบางโปรเซสอาจตองการใชซพยนอยกวาควอนตม กจะออกจากการครอบครองซพย เพอใหโปรเซสอนทอยหวควเขามาท างานตอไป

Page 24: CPU  Scheduling

การจดเวลาแบบวนรอบ

(RR : ROUND-ROBIN SCHEDULING)…ตอ

ตวอยาง การจดควแบบ RR เมอม 3 โปรเซส (A,B,C) ตองการใช CPU โดยมเวลาควมตนเปน 1 วนาท

โปรเซส ล าดบการเขาคว

เวลาทตองการcpu (วนาท)

เวลาทรออยในคว (วนาท)

เวลาทโปรเซสท างานเสรจ(วนาท)

A 1 15 11 15+11=26

B 2 1 1 1+1=2

C 3 10 11 10+11=21

เวลาเฉลยในการรอ = (11+1+11)/3 = 7.57 วนาท

Page 25: CPU  Scheduling

การจดเวลาแบบวนรอบ

(RR : ROUND-ROBIN SCHEDULING)… ตอ

A B C A C A C A C A C A C A C A C A C A C A A A A A

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Page 26: CPU  Scheduling

การจดเวลาแบบวนรอบ

(RR : ROUND-ROBIN SCHEDULING)

จากตวอยางจะเหนวาการท างานแบบ RR จะเปนประโยชนตอโปรเซส B หรอโปรเซสทตองการเวลาในการใช CPU นอยแตเขาควมาทหลง ในทางตรงกนขามจะเกดผลเสยตอโปรเซส A หรอโปรเซสทตองการเวลาในการใช CPU มากประสทธภาพของการวนรบขนอยกบการก าหนดขนาดของควนตมเปนอยางยง ถาขนาดของควนตมใหญหรอนานเกนไป ประสทธภาพของการวนรอบกจะใกลเคยงกบแบบมากอนไดกอน ถาขนาดของควนตมเลกเกนไป ระยะเวลาทใชในการท างานของระบบ(throughput) กจะชาลง

Page 27: CPU  Scheduling

ตวอยาง

จงหาคาเฉลยทง 3 วธ คอ FCFS,SJF และ RR เวลาควอนตม = 10

โปรเซส เวลา

A

B

C

D E

10

29

3

7 12

Page 28: CPU  Scheduling

เฉลย

RR เวลาในการรอ A=0

B=10

C=20

D=10+10+3=23

E=10+10+3+7=30

(0+10+20+23+30)/5=16.6

เวลาเฉลยในการท างานเสรจ A=0+10=10

B=10+29=39

C=20+3=23

D=23+7=30

E=30+12=42

10+39+23+30+42/5=28.8

A B C D E B E B

0 10 20 23 30 40 50 52 61

Page 29: CPU  Scheduling

การจดตารางการท างานแบบแถวคอยหลายช น (MULTILEVEL QUEUE SCHEDULING)

ถกสรางขนมาเพอใชกบสถานการณทสามารถจดแบงกระบวนการทเขามาท างานในระบบออกเปนกลม หรอประเภททแตกตางกนได เชน เราอาจแบงกระบวนการทเขามาท างานในระบบออกเปนกลม หรอประเภททแตกตางกนได เชน เราอาจแบงกระบวนการออกเปน 2 ประเภทขนตน คอ กระบวนการทท างานแบบโตตอบ (interactive) และกระบวนการทท างานแบบกลม (batch) ซงการท างานของกระบวนการ 2 ประเภทน ตองการเวลาในการโตตอบแตกตางกน และความตองการในการจดตารางการท างานกตางกนดวย นอกจากนนแลวกระบวนการทท างานแบบโตตอบ จะมล าดบส าคญกวากระบวนการทท างานแบบกลม

Page 30: CPU  Scheduling

การจดตารางการท างานแบบแถวคอยหลายช น (MULTILEVEL QUEUE SCHEDULING )…ตอ

ขนตอนวธในการจดตารางการท างานแบบแถวคอยหลายชนน เรมจากการจดแถวพรอมของระบบออกเปนหลาย ๆ แถวแยกจากกน ดงแสดงในรป

Page 31: CPU  Scheduling

การจดตารางการท างานแบบแถวคอยหลายช น (MULTILEVEL QUEUE SCHEDULING)… ตอ

และกระบวนการทเขาสระบบกจะถกก าหนดใหเขาแถวทแนนอนตายตว เพอเขาไปใชหนวยประมวลผลกลาง ภายในแถวพรอมแตละแถวกจะมการจดตารางการท างานของแตละแถวตางหาก ตวอยางเชน ในกรณทแบงแถวพรอมออกเปน 2 แถว ส าหรบกระบวนการทท างานแบบโตตอบ และกระบวนการทท างานแบบกลม โดยทภายในแถวพรอมของการท างานแบบโตตอบอาจมการจดตารางการท างานแบบเวยนเทยน และแถวพรอมของการท างานแบบกลมอาจมการจดตารางการท างานแบบมากอน-ไดกอน นอกจากนนกจะตองมการจดตารางการท างานระหวางแถวพรอมเหลานนดวย โดยทวไป จะใชการจดตารางการท างานแบบศกดสงไดกอน ชนดทใหแทรกกลางคนได เชน แถวส าหรบกระบวนการทท างานแบบโตตอบ จะมศกดสงกวาแถวส าหรบกระบวนการทท างานแบบกลม

Page 32: CPU  Scheduling

การจดตารางการท างานแบบแถวคอยหลายช น (MULTILEVEL QUEUE SCHEDULING)… ตอ

สมมตวาในระบบมแถวพรอมอย 5 แถว ดงน งานของระบบ (system processes) งานแบบโตตอบ (interactive processes) งานแกไขขอมล (interactive edition processes) งานแบบกลม (batch processes) งานของนกศกษา (student processes)

Page 33: CPU  Scheduling

การจดตารางการท างานแบบแถวคอยหลายช น (MULTILEVEL QUEUE SCHEDULING)… ตอ

โดยแถวบนจะมศกดสงกวาแถวลาง ดงนน กระบวนการทท างานแบบกลมจะสามารถท างานไดตอเมอกระบวนการทอยในแถวพรอมของงานระบบ , งานโตตอบ และ งานแกไขขอมล ไดท างานจนเสรจสมบรณแลว และในกรณทมกระบวนการใหมเขามาสแถวพรอมของงานแกไขขอมล ในขณะทกระบวนการแบบกลมก าลงท างานอย กระบวนการทท างานแบบกลมจะถกแทรกกลางคนทนท หรออาจจดแบงเวลาของหนวยประมวลผลใหแตละแถว โดยทแตละแถวกจะไปจดแบงปนเวลาทไดรบกนเอง เชน แถวพรอมของการท างานแบบโตตอบอาจจะไดรบชวงเวลาในการใชงานหนวยประมวลผลกลางถง 80 % ในขณะทแถวพรอมของการท างานแบบกลมจะไดรบชวงเวลาดงกลาวเพยง 20 %