CPU Scheduling

Preview:

DESCRIPTION

การจัดการโปรเซสเซอร์ (CPU Scheduling)

Citation preview

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

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

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

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

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

switching)

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

ตอ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(SHORT-TERM SCHEDULER)

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

scheduler)

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

(SHORT-TERM SCHEDULER)

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

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

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

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

(FCFS : FIRST-COME FIRST-SERVED)

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

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

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

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

(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 วนาท

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

(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 วนาท

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

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

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

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

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

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

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

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

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

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

P1 6

P2 8

P3 7

P4 3

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

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

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

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

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

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

P1 6 3

P2 8 1

P3 7 3

P4 3 4

P5 5 2

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

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

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

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

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

(RR : ROUND-ROBIN 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 วนาท

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

(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

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

(RR : ROUND-ROBIN SCHEDULING)

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

ตวอยาง

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

โปรเซส เวลา

A

B

C

D E

10

29

3

7 12

เฉลย

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

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

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

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

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

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

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

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

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

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

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

Recommended