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

Download Report

Transcript การจัดเวลาแบบคิวหลายระดับ

การจัดเวลาซีพย
ี ู
(CPU
Scheduling)
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
1
การจัดเวลาซีพย
ี ู (CPU
Scheduling)
การจัดเวลาซีพย
ี ู (CPU Scheduling) เป็ น
หลักการทางานหนึ่ งของโปรแกรมจัดการ
่ ความสามารถในการร ันโปรแกรม
ระบบทีมี
่
หลาย ๆ โปรแกรมในเวลาเดียวกัน ซึงการแบ่
ง
่
เวลาการเข ้าใช ้ซีพย
ี ูให ้กับงานทีอาจถู
กส่งเข ้า
่ พย
มาหลาย ๆ งานพร ้อม ๆ กัน ทีซี
ี อ
ู าจมี
จานวนน้อยกว่าจานวนโปรแกรม หรืออาจมี
ซีพย
ี เู พียงตัวเดียว จะทาให ้คอมพิวเตอร ์
่
้
ระบบปฏิบ
ต
ั ก
ิ าร (Operating
Systems)
สามารถท
างานได
้ปริมาณงานที
มากขึ
นกว่
า 2
้
หลักความต้องการพืนฐาน
จุดประสงค ์ของการร ันโปรแกรมหลายโปรแกรม
่
คือ ความต ้องการทีจะให
้ซีพย
ี ม
ู ก
ี ารทางาน
่ ้มีการใช ้ซีพย
ตลอดเวลา เพือให
ี อ
ู ย่างเต็มที่ และ
เต็มประสิทธิภาพ
่ ซพ
 สาหร ับระบบคอมพิวเตอร ์ทีมี
ี ย
ี ต
ู วั เดียว ใน
ี จ
ู ะทางานได ้เพียงงานเดียว
เวลาใดเวลาหนึ่ งซีพย
เท่านั้น ถ ้ามีหลายโปรแกรมหรือหลายงาน งานที่
เหลือก็ต ้องคอยจนกว่าจะมีการจัดการให ้เข ้าไป
ใช ้ซีพย
ี ู

ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
3
้
หลักความต้องการพืนฐาน
้
หลักการของการทางานกับหลายโปรแกรมในขัน
้
้นค่อนข ้างจะไม่ซ ับซ ้อน แต่ละ
พืนฐานนั
่ งจุดทีมั
่ นต ้องคอย
โปรแกรมจะถูกร ันจนกระทังถึ
่ ้ในการทางานช่วงต่อไป
อะไรซกั อย่างเพือใช
้ ยวข
่
ส่วนมากการคอยเหล่านี เกี
้องกับอินพุต/
เอาต ์พุตนั่นเอง
่
 ซีพย
ี จ
ู ะหยุดการทางานในระหว่างทีคอยอิ
นพุต/
่
้ นการเสียเวลา
เอาต ์พุตนี ้ ซึงการคอยเหล่
านี เป็
โดยเปล่าประโยชน์ เพราะซีพย
ี ูไม่ได ้ทางานเลย

ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
4
้
หลักความต้องการพืนฐาน
่
่ พย
เมือใดก็
ตามทีซี
ี ต
ู ้องคอย และยังมีโปรแกรมใน
่
หน่ วยความจาหลายโปรแกรมทีคอยการใช
้ซีพย
ี ู
อยู่ เราก็จะจัดให ้ซีพย
ี ูทางานในโปรแกรมเหล่านี ้
ทันที
่ ้องคอย
 ระบบจะจัดการนาเอาโปรแกรมทีต
่
่ จะให
้
อินพุต/เอาต ์พุตออกไปก่อน เพือที
่ คอยใช
่
้
โปรแกรมอืนที
้ซีพย
ี น
ู ี สามารถเข
้ามาได ้
้
่ ๆ ซีพย
 ถ ้าทางานในแบบนี ไปเรื
อย
ี ก
ู ็จะได ้มีงาน
ทาเกือบตลอดเวลากับโปรแกรมหลาย ๆ
่กิ ารใ่ นระบบ
ระบบปฏิบต
ั อยู
(Operating Systems)
5
โปรแกรมที

้
หลักความต้องการพืนฐาน
การจัดเวลาให ้กับซีพย
ี แู บบนี ้ เป็ นความต ้องการ
้
พืนฐานของระบบปฏิ
บต
ั ก
ิ ารในคอมพิวเตอร ์
 ซีพย
ี ูเองก็ถอื ได ้ว่าเป็ นทร ัพยากรของระบบ
่ ความสาคัญมากทีสุ
่ ด
คอมพิวเตอร ์ชนิ ดหนึ่ งทีมี
่
 โดยตัวซีพย
ี น
ู ี่ เอง ทีจะเป็
นหลักของการสร ้าง
่ ความสามารถในการร ัน
ระบบปฏิบต
ั ก
ิ ารทีมี
หลายโปรแกรม

ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
6
ช่วงเวลาอินพุต/เอาต ์พุต และ
ช่วงเวลาซีพย
ี ู
ความสาคัญในการจัดเวลาซีพย
ี ข
ู นอยู
ึ้
ก
่ บั
คุณลักษณะของโปรเซส
 การเอ็กซิคว
ิ ต ์โปรเซสจะประกอบด ้วย




่ ้ซีพย
เวลาทีใช
ี ู (CPU Burst Cycle)
่ ้องคอยอุปกรณ์อน
เวลาทีต
ิ พุต/เอาต ์พุต (I/O
Burst Cycle)
่ การเอ็กซิควิ ต ์โปรเซส จะมีการสลับ
ในขณะทีมี
้ านั้น และจะ
การทางานระหว่าง 2 ช่วงเวลานี เท่
่
เกิดไม่พร ้อมกัน การเอ็กซิควิ ต ์มักจะเริมจากการ
ใชระบบปฏิ
้ซีพย
ี ู แล
ะตามด ้วยการคอยอิ
บต
ั ก
ิ ้วก็
ารจ(Operating
Systems) นพุต/
7
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
8
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
9
ตัวจัดการเวลาซีพย
ี ู (CPU
Scheduler)
ตัวจัดการเวลาซีพย
ี ู (CPU Scheduler) หรือ
้ (short–term
ตัวจัดการเวลาช่วงสัน
่ ใ่ น
scheduler) จะเลือกโปรเซสทีอยู
่ ้อมในการเอ็กซิควิ ต ์ทีสุ
่ ด
หน่ วยความจาทีพร
่ ้ครอบครองเวลาซีพย
เพือให
ี แู ละทร ัพยากรที่
่
้องกับโปรเซสนั้น
เกียวข
 คิวของโปรเซสในหน่ วยความจานั้นไม่จาเป็ นที่
ต ้องเป็ นแบบใดแบบหนึ่ ง อย่างไรก็ตามโปรเซส
่ ้อมใช ้ซีพย
ทุกโปรเซสทีพร
ี ู จะต ้องมีโอกาสได ้เข ้า
ระบบปฏิบต
ั ก
ิ าร (Operating
Systems)
10
ครอบครองเวลาซี
พย
ี ูไม่เวลาใดก็
เวลาหนึ่ ง

การให้สท
ิ ธิการจัดเวลา
(Preemptive Scheduling)
่ การเปลียนสถานะของโปรเซสจากสถานะ
่
เมือมี
่
ร ัน --> สถานะรอ เช่น ในสภาวะทีคอยอิ
นพุต/
้
เอาต ์พุต หรือการคอยให ้โปรเซสลูกเสร็จสินไป
ก่อน
่ การเปลียนสถานะของโปรเซสจากสถานะ
่
 เมือมี
่ อน
ิ เทอร ์ร ัพต ์เกิดขึน้
ร ัน --> พร ้อม เช่น เมือมี
่ การเปลียนสถานะของโปรเซสจากสถานะ
่
 เมือมี
่ นพุต/เอาต ์พุตเสร็จสิน้
รอ --> พร ้อม เช่น เมืออิ
ไปแล ้ว
่
้
ระบบปฏิ
บต
ั ก
ิ ารจ(Operating
11
 เมื
อโปรเซสเสร็
สินไปแล
้ว Systems)

การให้สท
ิ ธิการจัดเวลา
(Preemptive Scheduling)
ในสถานการณ์ที่ 1 และ 4 นั้นเป็ นสถานการณ์
่
ทีจะต
้องมีการตัดสินใจทาอะไรอย่างใดอย่างหนึ่ ง
่
โดยไม่สามารถหลีกเลียงได
้ เช่น ต ้องเลือก
โปรเซสใหม่เข ้ามาเอ็กซิควิ ต ์ต่อไป เนื่ องจาก
โปรเซสเดิมไม่ใช ้ซีพย
ี อ
ู ก
ี แล ้ว
 สาหร ับสถานการณ์ท ี่ 2 และ 3 นั้น การตัดสินใจ
้
ต ้องอยูบ
่ นพืนฐานหรื
อกฎเกณฑ ์ของแต่ละ
่ ้ ซึงอาจท
่
อัลกอริทม
ึ ทีใช
าให ้มีการทางานที่
แตกต่างกันไป

ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
12
การให้สท
ิ ธิการจัดเวลา
(Preemptive Scheduling)
่ ดขึนเนื
้ ่ องจากสถานการณ์ 1
การตัดสินใจทีเกิ
และ 4 การจัดเวลาซีพย
ี ูจะเป็ นแบบไม่ให ้สิทธิ ์
ก่อน (nonpreemptive)
 ส่วนสถานการณ์ท ี่ 2 และ 3 จะเรียกว่าให ้สิทธิ ์
ก่อน (preemptive)
์ อนนี ้ โปรเซสจะ
 การทางานแบบไม่ให ้สิทธิก่
ครอบครองเวลาซีพย
ี ูไปจนกว่าจะเสร็จสิน้ หรือ
่
เปลียนสถานะตั
วเองเป็ นสถานะคอย
้ ต ้องการในการใช ้
 เนื่ องจากระบบปฏิบต
ั ก
ิ ารนี ไม่
ระบบปฏิ
าร (Operating
Systems)
ฮาร
์ดแวรบ์พิตั เกิ ศษ
เช่น ไทม ์เมอร
์ (timer) ในการ 13

การให้สท
ิ ธิการจัดเวลา
(Preemptive Scheduling)
ถ ้าเป็ นระบบมัลติยูเซอร ์ (multiusers) การจัด
เวลาแบบให ้สิทธิกอ
่ นจะเหมาะสมกว่า
 การจัดเวลาแบบให ้สิทธิกอ
่ นนั้นต ้องใช ้ทร ัพยากร
่
พิเศษเข ้าช่วยเยอะเพือแก
้ปัญหาต่าง ๆ ที่
่
หลีกเลียงไม่
ได ้
่ ้องใช ้ข ้อมูลร่วม
 เช่น โปรเซส 2 โปรเซสทีต
(shared data) โปรเซสแรกอาจจะต ้องหยุดรอ
่ ใ่ นระหว่างการอัปเดทข ้อมูล
ในขณะทีอยู
เนื่ องจากคาบเวลาของมันหมดลงพอดี แล ้ว
่ ตั กิ าร เ(Operating
่
่
้ 14
ระบบปฏิบสองก็
โปรเซสที
ข ้ามาแทนSystems)
ซึงโปรเซสที
สองนี

การให้สท
ิ ธิการจัดเวลา
(Preemptive Scheduling)
การจัดเวลาแบบให ้สิทธิกอ
่ นนั้นมีผลกระทบต่อ
การออกแบบ Kernel ของระบบปฏิบต
ั ก
ิ ารเป็ น
อย่างมาก เช่น ในระหว่างการเกิด system call
นั้น Kernel อาจจะยังไม่วา่ ง อาจจะกาลังทางาน
้ ้า
ในการจัดคิวโปรเซสอยู่ แล ้วอะไรจะเกิดขึนถ
หากว่า โปรเซสถูกทาให ้หยุด และออกจาก
การครอบครองเวลาซีพย
ี ู
้
 UNIX มีการแก ้ปัญหาตรงจุดนี โดยการให
้
้ ดเอง หรือไม่ก็คอยจนกว่าจะ
System call สินสุ
บต
ักการท
ก
ิ าร (Operating
Systems)
มีระบบปฏิ
การบล็อ
างานของอิ
นพุต/เอาต ์พุต 15

การให้สท
ิ ธิการจัดเวลา
(Preemptive Scheduling)
การออกแบบ Kernel จะได ้ไม่มค
ี วามยุง่ ยาก
มาก เพราะว่าตัว Kernel เอง จะไม่ไปจัดการ
่ ๆ ถ ้าโครงสร ้างข ้อมูลของ Kernel
โปรเซสอืน
่
ยังไม่อยูใ่ นสภาพทีสมบู
รณ์
้ ้า
 แต่ปัญหาก็คอ
ื การทางานของ Kernel แบบนี ช
่
เกินไป ทาให ้ต ้องมีการพัฒนาบางสิงบางอย่
าง
่ มเข ้ามาอีก
เพิมเติ

ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
16
Dispatcher
่ าหน้าทีควบคุ
่
Dispatcher เป็ นโมดูลทีท
มการ
ครอบครองเวลาซีพย
ี ข
ู องโปรเซส
 ฟังก ์ช ันประกอบด ้วย





การย ้าย Context
การย ้ายไป user mode
่
กระโดดไปยังตาแหน่ งทีเหมาะสมของโปรแกรม
่ จะเริ
่
่ ันโปรแกรมนั้นใหม่อก
เพือที
มร
ี ครง้ั
่ วทีสุ
่ ดเท่าทีจะท
่ าได ้ เพราะ
ควรมีการทางานทีเร็
่
่ การย ้ายโปรเซส ซึงเวลาที
้ั มี
่ ้
ใช
ทางานทุกครงที
้ ยก Dispatch Latency
ในการท
านี
เรี
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
17
ข้อพิจารณาในการจัดเวลา
อรรถประโยชน์ของซีพย
ี ู (CPU
Utilization) : การใช ้ประโยชน์จากซีพย
ี ูอย่าง
่ ดเท่าทีจะ
่
สูงสุด โดยทาให ้ซีพย
ี ม
ู งี านทามากทีสุ
ทาได ้ ซีพย
ี ค
ู วรจะถูกใช ้อยูร่ ะหว่าง 40-90 %
่ จต่อ
 ทรู พุต (Throughput) : จานวนงานทีเสร็
หน่ วยเวลา
้
 เวลาทังหมด
(Turnaround Time) : คือ
้
่ ้ในการทางานใดงานหนึ่ง
ช่วงเวลาทังหมดที
ใช
้ เริมต
่ ้นเข ้าไปในระบบ จนงานถูกทาจน
ตังแต่
่ Systems)
ระบบปฏิ
บต
ั ก
ิ าร(รวมเวลาที
(Operating รอเข
เสร็
จเรียบร
้อย
้าหน่ วยความจา 18

ข้อพิจารณาในการจัดเวลา
เวลารอคอย (Waiting Time) : ช่วงเวลาที่
งานใดงานหนึ่ งต ้องรอการทางานของตัวจัดเวลา
โดยไม่รวมเวลาของการใช ้ซีพย
ี ู และเวลาของ
การติดต่ออินพุต/เอาต ์พุต ส่วนใหญ่ก็คอ
ื เวลาที่
งานต ้องคอยอยูใ่ นคิว (Ready Queue)
 เวลาตอบสนอง (Response Time) คือ
่ การร ้องขอการกระทา
เวลาทีวั่ ดระหว่างเวลาทีมี
ใด ๆ ต่อระบบแล ้วมีการตอบร ับกลับออกมา
้
(ความเร็วของเวลาตอบสนองจึงมักจะขึนอยู
ก
่ บั
ิ าร
(Operating
19
อุระบบปฏิ
ปกรณ์อบน
ิ ตั กพุ
ต/เอาต
์พุต) Systems)

ข้อพิจารณาในการจัดเวลา
่ ผู
่ อ้ อกแบบระบบการจัดเวลาต ้องการก็คอื
สิงที
้ สุ
่ ดนั่นเอง
การทาให ้เวลาการทางานสันที
 ในความเป็ นจริงแล ้ว อาการได ้อย่างเสียอย่าง
มักจะต ้องเกิดขึน้



่
่
เราไม่สามารถทีจะได
้ระบบทีสามารถท
าให ้มีการใช ้
่ ทรูพุตมากทีสุ
่ ด มีเวลารวม
ซีพย
ี ูได ้สูงสุด โดยทีมี
่ ด และได ้เวลาตอบสนองเร็วทีสุ
่ ดได ้พร ้อม ๆ
เร็วทีสุ
่
ดังนั้นการหาจุดพอดีจากค่าเฉลียของคุ
ณสมบัติ
่
้ั
แต่ละชนิ ดจึงมีความจาเป็ น ซึงบางคร
งอาจจะ
่
่ ดใดจุด
ตระบบปฏิ
้องมีการก
าหนดจุ
ด
ที
ยอมร
ับได
้ไว
้ที
จุ
บต
ั ก
ิ าร (Operating Systems)
20
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบมาก่อนได้กอ
่ น (FCFS :
First-Come First-Served)


โปรเซสใดทีร่ ้องขอใช ้ซีพย
ี ก
ู อ
่ นก็จะได ้ร ับการ
จัดสรรให ้ครอบครองเวลาซีพย
ี ก
ู อ
่ น
้ อค่าเฉลียของการคอยใน
่
ผลเสียของอัลกอริทมนี
ึ่ คื
้ อนข ้างจะสูง
คิวแบบมาก่อนได ้ก่อนนี ค่
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
21
การจัดเวลาแบบมาก่อนได้กอ
่ น
(FCFS)
(0+24+27) / 3 =
17 วินาที
(0+3+6) / 3 = 3
วินาที
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
22
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

้ าก่อน (SJF :
การจัดเวลาแบบงานสันท
Short–Job–First Scheduling)


่ ้องการคาบเวลาของเวลาซีพย
โปรเซสทีต
ี ูในเวลา
้ สุ
่ ด จะได ้ร ับเลือกให ้เข ้ามาครบครอง
ถัดไปสันที
ซีพย
ี ก
ู อ
่ น
่ คาบเวลาของเวลาซีพย
ถ ้ามีโปรเซสหลายตัวทีมี
ี ู
ของช่วงต่อไปเท่า ๆ กัน ก็จะใช ้หลักการมาก่อน
ได ้ก่อนมาใช ้ในการคัดเลือก
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
23
้ าก่อน (SJF)
การจด
ั เวลาแบบงานสันท
(0+3+9+16) / 4 =
นาที
FCFS7=วิ(0+6+8+7)
/4 =
10.25 วินาที
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
24
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

้ าก่อน (SJF :
การจัดเวลาแบบงานสันท
Short–Job–First Scheduling)
ข ้อยุ่งยากของวิธ ี SJF คือการวัดคาบเวลาของ
เวลาซีพย
ี ถ
ู ด
ั ไปของแต่ละโปรเซสทีร่ ้องขอเวลา
ซีพย
ี เู ข ้ามา
 ในระบบการทางานแบบแบ็ ตซ ์ เจ ้าของโปรเซส
จะต ้องเป็ นผูบ้ อกช่วงเวลาทีจ่ ากัดของการใช ้ซีพย
ี ู
่ ้อ ้างอิงสาหร ับ
สาหร ับโปรเซสให ้กับระบบ เพือใช
่ ้าของโปรเซสก็จะ
การจัดลาดับดังกล่าว ซึงเจ
่
่ สุ
่ ดเพือโอกาสในการเข
่
พยายามทีจะให
้ค่าตาที
้าไป
่ ด Systems)
ใช ้ซีพบย
ีต
ู กิ อ
่ าร
นมี(Operating
มากทีสุ
ระบบปฏิ
ัก
25

อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

้ าก่อน (SJF :
การจัดเวลาแบบงานสันท
Short–Job–First Scheduling)

้
มีปัญหาในการนามาใช ้ในการจัดเวลาช่วงสัน
(Short-term Scheduling) เพราะว่าเราไม่มี
ทางจะรู ้ได ้ว่าความยาวของคาบเวลาการใช ้ซีพย
ี ู
ในช่วงต่อไปของแต่ละโปรเซสเป็ นเท่าใด วิธก
ี ารที่
ใช ้มักจะเป็ นแค่การประมาณเอาเท่านั้น
โดยประมาณจากระยะเวลาของเวลาซีพย
ี ูใน
่ านมาด ้วยการหาค่าเฉลีย่
คาบเวลาทีผ่
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
26
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
27
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

้ าก่อน (SJF :
การจัดเวลาแบบงานสันท
Short–Job–First Scheduling)
้
SJF สามารถเป็ นได ้ทังแบบให
้สิทธิก่์ อน หรือไม่ให ้สิทธิ ์
ก่อน
้ กครงเมื
้ั อมี
่ โปรเซสใหม่เข ้ามาใน
 การตัดสินใจจะเกิดขึนทุ
่ งมี โปรเซสอืนใช
่
คิวในขณะทียั
้งานซีพย
ี อ
ู ยู่
้ั
 โปรเซสใหม่อาจมีคาบเวลาของเวลาซีพย
ี ส
ู นกว่
าเวลาที่
่ าลังใช ้ซีพย
เหลืออยูข
่ องเวลาซีพย
ี ข
ู องโปรเซสทีก
ี ู -->
่ นแบบให ้สิทธิก่์ อนจะทาการหยุดงานทีก
่ าลัง
อัลกอริทม
ึ ทีเป็
ใช ้ซีพย
ี อ
ู ยู่
์ อน --> ปล่อยให ้งานนั้นใช ้ซีพยี จ
 แบบไม่ให ้สิทธิก่
ู นเสร็จ
้
้น บางครงการท
้ั
สิ
นเวลาซี
พ
ย
ี
ข
ู
องช่
ว
งเวลานั
้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems) า SJF แบบให28

อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)
ให้สท
ิ ธิก่์ อน = [(10-1)+(1-1)+(17-2)+(53)] / 4 = 26/4 = 6.5 วินาที
ห้ามแทรก = [(0)+(8-1)+(17-2)+(12-3)] / 4
= 31/4
= 7.75Systems)
วินาที
ระบบปฏิบต
ั ก
ิ าร
(Operating
29
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาตามลาดับความสาคัญ
(Priority Scheduling)



่ ลาดับความสาคัญสูงทีสุ
่ ดขจะทางาน
โปรเซสทีมี
่ ลาดับความสาคัญเท่ากัน ก็
ก่อน แต่ถ ้ามีงานทีมี
จะมีการนาเอามาก่อนได ้ก่อน (FCFS) มาใช ้
ลาดับความสาคัญ จะกากับไว ้ด ้วยสัญลักษณ์ที่
เปรียบเทียบกันได ้ เช่น ตัวเลขจานวนนับ เป็ นต ้น
ถ ้าไม่มข
ี ้อตกลงในการใช ้ระบบการกากับของ
ความสาคัญเหล่านี ้ อาจก่อให ้เกิดความสับสนขึน้
ได ้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
30
การจัดเวลาตามลาด ับสาค ัญ
(Priority)
(0+1+6+16+18) / 5 =
41/5 = 8.2 วินาที
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
31
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาตามลาดับความสาคัญ
(Priority Scheduling)


้ คอื
ปัญหาใหญ่ของการจัดเวลาซีพย
ี แู บบนี ก็
่ ลาดับความสาคัญตาอาจจะไม่
่
โปรเซสทีมี
มโี อกาส
่ ลาดับ
ได ้เข ้าไปใช ้ซีพย
ี เู ลย ถ ้าหากว่ามีโปรเซสทีมี
ความสาคัญสูงกว่าอยู่เป็ นจานวนมาก
้ อ การเพิมล
่ าดับ
การแก ้ปัญหาสถานการณ์นีคื
่ งไม่เสร็จเหล่านี ตาม
้
ความสาคัญให ้กับโปรเซสทียั
่
ระยะเวลาทีคอยอยู
่ในคิว
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
32
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาตามลาดับความสาคัญ
(Priority Scheduling)
เช่น สมมติวา่ เรามีการออกแบบให ้มีลาดับ
้ เราอาจจะเพิม
่
ความสาคัญจาก 0-127 ขัน
อัลกอริทม
ึ พิเศษลงไปว่า ถ ้าโปรเซสใดคอยครบ 15
้
้ และจะ
นาที ก็ให ้ลดตัวเลขลาดับขันลงที
ละขัน
่ ๆ ทุก ๆ 15 นาที ซึงการท
่
ลดลงไปเรือย
าแบบนี ้
่ ้ามาในระบบมีลาดับความสาคัญ
แม้โปรเซสทีเข
่ ดที่ 127 ก็จะมีโอกาสเข ้าไปใช ้ซีพย
ตาสุ
ี ูภายใน
่ั
่ ดโปรเซสนี ก็
้ จะ
เวลาไม่เกิน 32 ชวโมง
เพราะในทีสุ
มีลาดับ
บต
าคัญเท่ากับSystems)
0
ระบบปฏิ
ั ความส
ก
ิ าร (Operating
33

อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบวนรอบ (RR : RoundRobin Scheduling)
้
่ ้กับระบบคอมพิวเตอร ์แบบแบ่ง
คิดขึนมาเพื
อใช
เวลาโดยเฉพาะ โดยมีลก
ั ษณะการทางานแบบมา
ก่อนได ้ก่อน (FCFS) แต่ให ้มีกรรมวิธข
ี องใหส้ ท
ิ ธิ ์
่ ้ามาในระบบจะ
ก่อนรวมอยู่ด ้วย แต่ละโปรเซสทีเข
ถูกจากัดเวลาการเข ้าไปใช ้ซีพย
ี เู ท่า ๆ กัน ซึง่
้
้ ยกว่า เวลา
ช่วงเวลานี จะเป็
นช่วงเวลาสันเรี
ควันตัม (Quantum Time)
 ระยะเวลาควันตัมนี ้ มีความยาวระหว่าง 10 ถึง
100 มิบลต
น
ิ าที
ระบบปฏิ
ั ลิก
ิ วาร
(Operating Systems)
34

อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบวนรอบ (RR : RoundRobin Scheduling)


ในแต่ละคาบเวลาจะมีความยาวของการได ้ร ับซีพย
ี ู
่ ดคือ 1 ควันตัม ถ ้าโปรเซสใดไม่สามารถ
มากทีสุ
กระทาได ้สาเร็จภายใน 1 ควันตัมนี ้ โปรเซสก็
จะต ้องถูกนากลับไปไว ้ในคิวเช่นเดิม
่ งทาไม่เสร็จก็จะ
สถานภาพต่าง ๆ ของโปรเซสทียั
่ าเมือถึ
่ งโอกาสได ้ครอบครอง
ถูกบันทึกไว ้ เพือว่
่ ้นร ันต่อจากครงที
้ั แล
่ ้วโดยไม่
ซีพย
ี อ
ู ก
ี ก็จะได ้เริมต
่
้ั
ต ้องเริมใหม่
ทงหมด
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
35
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบวนรอบ (RR : RoundRobin Scheduling)
่ ้อมทางาน (Ready Queue) เป็ นแบบมา
มีควิ ทีพร
ก่อนได ้ก่อนไว ้สาหร ับเก็บโปรเซสต่าง ๆ โปรเซสที่
่
เข ้ามาใหม่จะถูกนามาต่อไว ้ทีหางของคิ
ว ตัวจัด
่ ่ตรงหัวคิวออกมา
เวลาจะเลือกเอาโปรเซสทีอยู
แล ้วกาหนดให ้ไทม ์เมอร ์หยุดการให ้เวลาซีพย
ี ห
ู ลัง
่
จากนั้น 1 ควันตัม แล ้วนาโปรเซสออกไปต่อทีหาง
คิว ถ ้าหากว่าโปรแกรมยังไม่สนสุ
ิ ้ ดการทางาน
่ จก่อนถึงเวลา 1 ควันตัม จะต ้องให ้
 โปรเซสทีเสร็
้ ดบและออกจากการครอบครองซี
สินสุ
ี ู เพือ่
ระบบปฏิ
ต
ั ก
ิ าร (Operating Systems) พย
36

การจัดเวลาแบบวนรอบ (Round
Robin)
[(10-4)+4+7] / 3 = 17/3
= 5.66 วินาที
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
37
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบวนรอบ (RR : RoundRobin Scheduling)
ถ ้ามีโปรเซสอยู่ในคิวจานวน n โปรเซส และ
ระยะเวลาของควันตัมเท่ากับ q หน่ วย แต่ละ
่ ่ในคิวจะมีเวลาเฉลียของการคอยไม่
่
โปรเซสทีอยู
่
นานไปกว่า (n–1) x q หน่ วย ก่อนทีจะได
้ร ับการ
เข ้าไปใช ้ซีพย
ี อ
ู ก
ี ครง้ั
 เช่น ถ ้ามีโปรเซส 5 โปรเซส และระยะเวลาควันตัม
คือ 20 วินาที แต่ละโปรเซสจะต ้องคอยในคิวโดย
่
เฉลียประมาณไม่
เกิน 80 วินาที ไม่เกินก็
เพราะว่
ยกว่านี ้ ถ ้าหากว่ามี 38
ระบบปฏิ
บาต
ั การคอยอาจจะน้
ก
ิ าร (Operating อ
Systems)

อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบวนรอบ (RR : RoundRobin Scheduling)
้
ประสิทธิภาพของการวนรอบขึนอยู
ก
่ บั การกาหนด
ขนาดของควันตัม
 ถ ้าขนาดของควันตัมใหญ่หรือนานเกินไป
ประสิทธิภาพของการวนรอบก็จะใกล ้เคียงกับแบบ
มาก่อนได ้ก่อน
 แต่ถ ้าขนาดของควันตัมเล็กมากเกินไป ทรูพุต
(throughput) ของระบบก็จะช ้าลง เนื่ องจากการ
นาเอาโปรเซสเข ้าและออกจากการครอบครอง
ซีพย
ี ู จะต
ยเวลาบางส่Systems)
วนในการทา
ระบบปฏิ
บต
ั ก
ิ ้องเสี
าร (Operating
39

การจัดเวลาแบบวนรอบ (Round
Robin)
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
40
การบ้าน
่
โปรเซส เวลาทีใช้
ความสาคัญ
ลาดับ
P1
8
2
P2
1
1
P3
2
2
P4
1
3
P5
3 FCFS, SJF, Priority
1
หาเวลาคอยเฉลี
ย
่ แบบ
และ
RR (เวลาควันตัม=2)
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
41
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)



เป็ นการจัดเวลาของซีพย
ี อ
ู ก
ี แบบหนึ่ งสาหร ับระบบ
่
้ั
ทีสามารถแบ่
งระดับชนของงานได
้อย่างช ัดเจน
่ นฟอร ์กราวนด ์ (Foreground) หรือ
งานทีเป็
่ นแบ็ค
อินเตอร ์แอ็กทีฟ (Interactive) กับงานทีเป็
กราวนด ์ (Background) หรือแบ็ตช ์ (Batch)
้
้ ้องการเวลาตอบสนอง
งานทังสองแบบนี
ต
่
่
(Response time) ทีแตกต่
างกัน ซึงสามารถใช
้
่
ระบบการจัดเวลาทีแตกต่
างกันได ้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
42
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)
่ ละ
ใช ้วิธแี บ่งคิวออกเป็ นหลาย ๆ ระดับโดยทีแต่
่ ความสาคัญ
ระดับหมายถึงระดับโปรเซสทีมี
แตกต่างกัน
 การแบ่งระดับความสาคัญของโปรเซสนั้น สามารถ
แบ่งได ้หลายลักษณะ เช่นแบ่งตามขนาดโปรเซส,
่ ้องใช ้หรือจานวนอินพุต/
จานวนหน่ วยความจาทีต
เอาต ์พุต เป็ นต ้น
่
 แต่ละคิวยังสามารถใช ้หลักการจัดเวลาทีแตกต่
าง
่ นฟอร
กันได ้ดบต
เช่น
งานทีเป็
์กราวนด ์ก็อาจใช ้ 43
ระบบปฏิ
ั้วยก
ิ าร
(Operating
Systems)

การจัดเวลาแบบคิวหลายระดบ
ั
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
44
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)
่ ่ด ้านล่าง
แต่ละคิวจะมีความสาคัญเหนื อกว่าคิวทีอยู
ถัดลงไปเสมอ
่
่ ความสาคัญตาจะมี
่
 โปรเซสทีคอยอยู
่ในคิวทีมี
่ วทีมี
่
โอกาสได ้ออกมาใช ้ซีพย
ี ก
ู ็ตอ
่ เมือคิ
่ ้องทาเหลืออยู่
ความสาคัญสูงกว่าไม่มโี ปรเซสทีต
เท่านั้น
่
่ ลาดับความสาคัญกาลัง
 หรือในขณะทีโปรเซสที
มี
่ ลาดับ
ครอบครองซีพย
ี ู แล ้วมีโปรเซสทีมี
่ งกว่า 45
ความสบาคั
งกว่าเข ้ามาคอยอยู
่ในคิวทีสู
ระบบปฏิ
ต
ั ก
ิ ญ
ารสู(Operating
Systems)

อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)


่ องกันไม่ให ้โปรเซสทีอยู
่ ่ในคิวตา่ ต ้องคอยอยู่
เพือป้
นานเกินไป หรืออาจจะไม่มโี อกาสได ้เข ้าไปใช ้ซีพย
ี ู
เลย เพราะว่าในคิวบน ๆ ไม่เคยว่างเลย
ต ้องมีการกาหนดสัดส่วนเวลาให ้กับแต่ละคิวใน
การทางานเข ้าไปใช ้ซีพย
ี ู เช่น การกาหนดใหเ้ วลา
่ นฟอร ์กราวนด ์
80 เปอร ์เซ็นต ์เป็ นของโปรเซสทีเป็
และอีก 20 เปอร ์เซ็นต ์เป็ นของงานแบ็คกราวนด ์
เป็ นต ้น
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
46
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)


การทางานแบบการจัดลาดับความสาคัญแบบ
่
เปลียนแปลงได
้นั้นอาจมีชอเรี
ื่ ยกอีกอย่างได ้ว่าเป็ น
การทางานแบบ Multilevel Feedback Queue
Scheduling เพราะว่าโปรเซสในแต่ละคิว
่
้ั
้ อ
สามารถมีการเลือนช
นระดั
บความสาคัญขึนหรื
ลงได ้
่ กนิ ดหน่ อยในการ
อาจจะต ้องเสียเวลาเพิมอี
คานวณหาระดับความสาคัญใหม่ให ้กับโปรเซส
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
47
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)
ส่วนมากจะแบ่งระดับความสาคัญตามระยะเวลา
่ พย
้
ของเวลาซีพย
ี ู เช่นเมือซี
ี ท
ู างานนานขึนก็
้ั
่ ลาดับความสาคัญ
อาจจะถูกลดชนลงมาสู
ค
่ วิ ทีมี
่
่
่ การใช ้ซีพย
ตาได
้ ซึงจะท
าให ้โปรเซสทีมี
ี น
ู อ้ ยแต่มี
อินพุต/เอาต ์พุต หรืออินเทอร ์แอ็กทีฟมาก ๆ มี
่ ความสาคัญมากได ้
โอกาสเข ้าไปอยู่ในคิวทีมี
้ งเป็ นการป้ องกันไม่ให ้มีโปรเซสทีมี
่
 วิธน
ี ี ยั
ความสาคัญน้อยถูกดองอยูใ่ นคิว เพราะโปรเซสที่
่าราก็
่ (Operating
่ Systems)
้
่ งขึนถ
้ ้า 48
อยู่ในคิ
สามารถเลือนขึ
นไปสู
ค
่ วิ ทีสู
ระบบปฏิ
บวต
ั ที
ก
ิ ต

การจัดเวลาแบบคิวหลายระดบ
ั
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
49
อ ัลกอริทม
ึ ของการจัดเวลา
(Scheduling Algorithms)

การจัดเวลาแบบคิวหลายระดับ
(Multilevel Queue Scheduling)





จานวนของคิว
วิธข
ี องการจัดเวลาของแต่ละคิว
่
หลักเกณฑ ์ในการตัดสินใจเพิมความส
าคัญของ
โปรเซส
หลักเกณฑ ์ในการตัดสินใจลดความสาคัญของ
โปรเซส
หลักเกณฑ ์ในการตัดสินใจนาเอาโปรเซสที่
ต ้องการครอบครองซีพย
ี ม
ู าเข ้าในคิว
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
50
การจัดเวลาของมัลติเพิลโปรเซสเซอร ์
การออกแบบระบบปฏิบต
ั ก
ิ ารสาหร ับ
่ ซพ
่
คอมพิวเตอร ์ทีมี
ี ย
ี ห
ู ลายตัวจะเพิมความ
ซบั ซ ้อนกว่าระบบซีพย
ี ต
ู วั เดียว
 การหาวิธก
ี ารจัดเวลาไม่มค
ี วามแตกต่างจาก
การจัดเวลาของซีพย
ี ต
ู วั เดียวเลย
 ต ้องจากัดปัญหาว่าซีพย
ี ูหลายตัวเหล่านั้นจะ
ทางานคล ้ายกับซีพย
ี เู พียงตัวเดียว
่ ต
่ ้องคานึ งคือ การแชร ์โหลดให ้ซีพย
 สิงที
ี ูแต่ละตัว
มีงานทามากพอกัน โดยการจัดให ้มีระบบคิว
ระบบเดี
ยบวตั กิ าร (Operating Systems)
ระบบปฏิ
51

การจัดเวลาของมัลติเพิลโปรเซสเซอร ์
่ ซพ
ดังนั้นเมือมี
ี ย
ี ต
ู วั ใดว่าง ก็จะนาโปรเซสในคิว
ออกไปเอ็กซิควิ ต ์ได ้ทันที
่ พย
 การทางานทีซี
ี แู ต่ละตัวมีระบบจัดการเป็ นของ
ตนเองจะต ้องมีการออกแบบอย่างระมัดระวังใน
กรณี ทมี
ี่ การใช ้ข ้อมูลร่วมกัน
 ระวังอย่าให ้ซีพย
ี ูวา่ งพร ้อมกัน เลือกโปรเซสจาก
่ ้ร่วมกันเพราะอาจจะทาให ้ดึงโปรเซส
คิวทีใช
เดียวกันเข ้าไปทางาน
้
 แม้แต่การปล่อยโปรเซสทิงจากซี
พย
ี พ
ู ร ้อม ๆ กัน
หมดท
าให
ดการสู
ญหายของโปรเซสได
้
ระบบปฏิ
บต
ั ้เกิ
ก
ิ าร
(Operating
Systems)
52

การจัดเวลาของมัลติเพิลโปรเซสเซอร ์
่
การแก ้ไขทาได ้โดยการเพิมความซ
บั ซ ้อน โดย
ให ้มีระดับของซีพย
ี ท
ู ต่
ี่ างกัน โดยให ้ซีพย
ี ูตวั ใดตัว
่
หนึ่ งคอยควบคุมสังงานซี
พย
ี อ
ู ก
ี ต่อหนึ่ง เป็ น
้ นทอด ๆ ไป เรียกลักษณะเช่นนีว่้ า
เช่นนี เป็
“Master-slave structure”
 บางระบบมีการพัฒนาโดยแยกระบบการจัดเวลา
กับอินพุต/ เอาต ์พุตออกจากกัน
 โดยเฉพาะการนางานของผูใ้ ช ้ออกจากอินพุต/
เอาต ์พุตทาให ้ระบบปฏิบต
ั ก
ิ ารมีความซ ับซ ้อน
่ ้าใช ้ 53
น้ระบบปฏิ
อยลง เนื
ซพ
ี ย
ี เู พีSystems)
ยงตัวเดียวทีเข
บต
ั ่ องจากมี
ก
ิ าร (Operating


การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)
การทางานแบบเรียลไทม ์แบ่งออกเป็ น 2 ประเภท



Hard Real-time
Soft Real-time
Hard Real-time
่
่ าหนดได ้
คือระบบทีสามารถท
างานให ้เสร็จตามเวลาทีก
่
่ ับเข ้ามาแต่ละงานนั้นจะมีเวลาทีต
่ ้องการให ้
ซึงงานที
จะร
เสร็จมาด ้วย ดังนั้นตัวจัดเวลาจะต ้องตัดสินใจว่าจะร ับ
่ ้าตัดสินใจร ับงานใด ๆ เข ้ามา
งานเข ้ามาทาหรือไม่ ซึงถ
ทาก็หมายความว่า งานนั้นได ้ร ับการร ับรองว่าจะถูกทา
่ าหนด ส่วนงานทีถู
่ กปฏิเสธก็
ให ้เสร็จได ้ภายในเวลาทีก
่ าหนดมานั
้นเร็วเกินกว่าที่
หมายความว่
าิ าร
เวลาที
ก
ระบบปฏิบต
ั ก
(Operating
Systems)
54

การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)
Hard Real-time
ระบบปฏิบต
ั ก
ิ ารจะต ้องรู ้แน่ นอนว่า การทางานของ
ฟังก ์ช ันต่าง ๆ ของตัวระบบปฏิบต
ั ก
ิ ารใช ้เวลา
เท่าใด แต่จะเป็ นการยากมากถ ้าหากระบบ
่ ดเก็บข ้อมูล หรือ
คอมพิวเตอร ์มีการใช ้ สือจั
หน่ วยความจาเสมือน
 ระบบ Hard Real–time มักจะทางานกับ
่ การใช ้ฮาร ์ดแวร ์ของระบบ
โปรแกรมเฉพาะทีมี
้
่ างานหรือคานวณให ้กับงานใดงาน
ทังหมด
เพือท
หนึ่ งอย่างเฉพาะเจาะจง
้ งประกอบไปด ้วยสิงที
่ จ่ าเป็ นในการ
 ทาให ้ระบบนี จึ
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
55


การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)
Soft Real-time
่ การให ้
อาจเป็ นเพียงระบบแบ่งเวลาธรรมดาทีมี
ระดับความสาคัญแก่งานบางประเภท
่ กเลือกไว ้ล่วงหน้าว่าเป็ นงานเร่งด่วน
 หรืองานทีถู
่
ซึงอาจท
าให ้เกิดปัญหาของการทางานในระดับตา่
ๆ อาจไม่ได ้ร ับเวลาของซีพย
ี เู ลย
่ ้การ
 อย่างน้อยเราก็สามารถสร ้างการทางานทีให
ตอบสนองของระบบเข ้าใกล ้แบบ Hard–Time แต่
่ ๆ ได ้อีกหลายงาน ทา
สามารถสนับสนุ นงานอืน
ให ้การใช ้ระบบมีความคุ ้มค่ากว่า
 ในสถานการณ์จริง ระบบ Hard real–time จะมี
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
56

การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)

่ ม
กฎในการออกแบบ Soft Real-time เพิมเติ
จาก priority queue
่ นเรียลไทม ์จะต ้องได ้ร ับความสาคัญสูงสุด
งานทีเป็
่ ๆ ทังหมดที
้
่ ใช่เรียลไทม ์ และจะไม่
เหนื องานอืน
ไม่
่
้ั
มีวน
ั ทีงานแบบเรี
ยลไทม ์จะถูกลดชนลงไปอยู
่ในคิว
่ ลาดับความสาคัญทีต
่ ากว่
่ านี ้ แม้วา่ ระบบคิว
ทีมี
่ ้อาจเป็ นแบบ Priority
แบบลาดับความสาคัญทีใช
Feedback Queue ก็ตาม
 เวลาของการทา Context Switch และ
้
่ นเท่
้ าไหร่ ก็ยงจะ
Dispatcher ต ้องสันมาก
ๆ ยิงสั
ิ่
่ (Operating
ทาให บ
้งานที
เป็
น เรียลไทม ์สามารถเข
ี ูได57
้
ระบบปฏิ
ต
ั ก
ิ าร
Systems) ้าไปใช ้ซีพย

การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)
กฎข ้อที่ 1 นั้น เราอาจสามารถสร ้างออกมาใช ้
งานได ้ไม่ยาก
 กฎข ้อที่ 2 สามารถทาได ้อย่างแน่ นอนมักเป็ น
่ ยาก
่
่
เรืองที
เนื่ องจากว่าระบบปฏิบต
ั ก
ิ ารทีเคย
ออกแบบมานั้นถูกบังคับให ้คอย System Call
้ อนหรือไม่ก็ต ้องคอยให ้เกิดการ
ทุกชนิ ดเสร็จสินก่
่ การทา
บล็อกอินพุต/เอาต ์พุตเสียก่อนทีจะมี
Context Switch
่ ก
 Dispatch Latency ในระบบปฏิบต
ั ก
ิ ารทีถู
้ กจะมีคSystems)
ออกแบบมาแบบนี
มั
วามเร็วไม่คงที่ และ 58
ระบบปฏิบต
ั ก
ิ าร (Operating

การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)
การแก ้ปัญหาต ้องยอมให ้สามารถหยุด System
่ ้เวลานาน ได ้ด ้วยการใส่
Call ทีใช
preemption point ลงไปใน system call
่ จะให
่
 เพือที
้มันหยุดตรวจสอบว่ามีงานแบบ
เรียลไทม ์คอยอยูห
่ รือเปล่า และถ ้ามีก็ให ้ไป
ทางานเรียลไทม ์ก่อน แล ้วจึงกลับมาทา System
่ ออยูใ่ ห ้เสร็จ
Call ทีเหลื
 การใส่ preemption point ก็ยง
ั มีข ้อจากัดที่
่ ้อมูลของ
ไม่สามารถใส่ลงไปได ้ในขณะทีข
่
่ าให ้บางครง้ั 59
Kernel
งถู(Operating
กเปลียนแปลง
ซึงท
ระบบปฏิก
บาลั
ต
ั ก
ิ าร
Systems)

การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)


การจัดการปัญหาของการ preemption โดยการทาให ้
้
Kernel ทังหมดเป็
นแบบการให ้สิทธิก่์ อน แต่โครงสร ้าง
ข ้อมูลของ Kernel จะต ้องได ้ร ับการป้ องกันความเสียหาย
อย่างดีจากการถูกเรียกใช ้แบบกลไกการซินโครไนซ ์
การป้ องกันโครงสร ้างข ้อมูลของ Kernel จากการเรียกใช ้
่ ลาดับความสาคัญสูง ในขณะทีงานที
่
่ ลาดับ
โดยงานทีมี
มี
่ ลาดับ
ความสาคัญต่ากาลังใช ้อยู่ ทาให ้งานทีมี
่ ลาดับความสาคัญ
ความสาคัญสูงจาเป็ นต ้องคอยงานทีมี
้ าให ้ดูเหมือนว่างานทีก
่ าลังใช ้
ต่าเหล่านี ้ เหตุการณ์เช่นนี ท
่ ด เรา
โครงสร ้างข ้อมูลอยู่น้ันมีลาดับความสาคัญสูงทีสุ
เรียกเหตุการณ์นีว่้ า Priority Inversion
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
60
การจัดเวลาแบบเรียลไทม ์ (Realtime scheduling)


้ จะสามารถแก ้ได ้ด ้วยวิธ ี priority–
ปัญหาเหล่านี ก็
่ ลาดับ
inheritance protocol นั่นคือ งานทีมี
่ จะได ้ร ับลาดับความสาคัญสูงเท่ากับ
ความสาคัญตาก็
่
งานทีคอยใช
้โครงสร ้างข ้อมูลอันเดียวกันอยู่
้ าให ้งานทีมี
่ ลาดับความสาคัญตา่ ๆ มีโอกาส
วิธน
ี ี จะท
้
เสร็จได ้เร็วขึนและปล่
อยการใช ้โครงสร ้างข ้อมูลให ้กับ
่ ลาดับ
่
่ ด และเมืองานที
มี
งานเรียลไทม ์ได ้เร็วทีสุ
่
ความสาคัญตาเสร็
จจากการใช ้โครงสร ้างข ้อมูลแล ้ว ก็
้ าให ้มีลาดับความสาคัญกลับมาเท่าเดิม
จะถูกตังค่
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
61
การค ัดเลือกอ ัลกอริทมส
ึ่ าหร ับการจัด
เวลาซีพย
ี ู


่
ต ้องคิดถึงเรืองของการก
าหนดคุณสมบัตส
ิ าหร ับการ
่ ณสมบัตจิ ะ
เปรียบเทียบในกระบวนการคัดเลือก ซึงคุ
เป็ นอรรถประโยชน์ของซีพย
ี ู (CPU utilization)
เวลาตอบสนอง (Response time) และทรูพุต
(Throughput)
่ น
อาจจะกาหนดหลักเกณฑ ์ตามความต ้องการซึงเป็
่
่ ยากมาก
เรืองที
เราต ้องสมมุตวิ า่ ระบบต ้องการอะไรเพือ่
จะได ้กาหนดหลักเกณฑ ์การพิจารณา
Deterministic Modeling
 โมเดลการจัดคิว
 วิธก
ี ารจาลองระบบ (Simulations)
ระบบปฏิบต
ั ก
ิ าร้ (Operating Systems)

62
Deterministic Modeling

้ ยกว่า analytic evaluation ซึงจะ
่
วิธก
ี ารคัดเลือกนี เรี
นาเอาอัลกอริทม
ึ ชนิ ดต่าง ๆ และลักษณะของงาน มา
่ ้ในการคานวณหาตัวเลขของ
สร ้างสูตร เพือใช
่
ประสิทธิภาพทีสามารถวั
ดและเปรียบเทียบได ้
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
63
Deterministic 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
วินาที
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
64
Deterministic Modeling



้ นวิธท
ในวิธ ี Deterministic Modeling นี เป็
ี ง่ี่ ายและ
่ นตัวเลขทีแน่
่ นอน เพือการ
่
รวดเร็ว ได ้ผลลัพธ ์ทีเป็
่
เปรียบเทียบทีสามารถเห็
นได ้อย่างเด่นช ัดว่าอัลกอริทม
ึ
แบบไหนดีทสุ
ี่ ด
่ ้อาจจะไม่สามารเป็ นจริงได ้เสมอใน
ผลลัพธ ์ทีได
่ ้ในการคานวณ
เหตุการณ์จริง เนื่ องจากว่าข ้อมูลทีใช
ิ มี
ี่ เพียงค่าเดียว หรือไม่ก็มเี พียง
นั้นเป็ นข ้อมูลสมมุตท
่ ยบกับสถานการณ์จริงแล ้ว ข ้อมูล
จานวนน้อย เมือเที
สมมุตเิ หล่านี ้ ก็อาจจะไม่เป็ นตัวแทนของเหตุการณ์
จริงได ้อย่างสมบูรณ์
ในทางปฏิ
บต
ั กิ แิ าร
ล ้วระบบงาน
และระบบคอมพิ
วเตอร ์มี 65
ระบบปฏิบ
ัต
(Operating
Systems)
โมเดลการจัดคิว





่ ้ามาในระบบคอมพิวเตอร ์มีลก
ลักษณะงานทีเข
ั ษณะไม่
้ นเลย
แน่ นอน อาจจะไม่ซากั
แต่เราสามารถทานายหรือกาหนดการกระจายเวลา
ของซีพย
ี ู และการกระจายการใช ้อินพุต/เอาต ์พุตได ้
่
ระบบคอมพิวเตอร ์อาจมองเป็ นระบบเน็ ตเวิร ์คทีสถานี
่ ควิ เป็ นของตนเอง ทังซี
้ พย
งานทีมี
ี ู หรืออุปกรณ์ตา่ ง ๆ
่ ้า
ถ ้าเราทราบเวลาในการให ้บริการและจานวนงานทีเข
่ ต
่ ้องการ
มาในสถานี งาน เราก็สามารถคานวณหาสิงที
ได ้
้ ยกว่า การวิเคราะห ์การจัดคิว
การวิเคราะห ์แบบนี เรี
แบบเน็
ตเวิบรต
ระบบปฏิ
ั ์คก
ิ (Queueing-network
าร (Operating Systems)analysis)
66
โมเดลการจัดคิว





Little’s formula (n=r*w) มีประโยชน์เนื่ องจาก
่
่
สามารถใช ้อัลกอริทมใดก็
ึ่
ได ้เมือทราบค่
าเฉลียการ
กระจายเวลา
สามารถเปรียบเทียบค่าของการคอยแต่ละอัลกอริทม
ึ่
ปัญหาก็คอื ยังไม่สามารถคานวณกับอัลกอริทมได
ึ่ ้ไม่
หมด
่ ับซ ้อนมาก ๆ การคานวณค่าเฉลีย่
ถ ้าใช ้อัลกอริทมที
ึ่ ซ
้ ตทาได ้ยาก
ทาได ้ยาก เนื่ องจากการตังสู
่ งทาไว ้แบบง่าย ๆ การคานวณ
การคานวณค่าเฉลียจึ
่
อาจไม่เทียงตรง
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
67
วิธก
ี ารจาลองระบบ (Simulations)



่ ้ค่าเป็ นจริง
เป็ นการเลือกวิธก
ี ารหรืออัลกอริทมที
ึ่ ให
่ ด เนื่ องจากสามารถคานวณค่าตัวเลขออกมา
มากทีสุ
่
่ ด
ได ้อย่างเทียงตรงมากที
สุ
่ ้เป็ น
ส่วนมากจะใช ้การโปรแกรมคอมพิวเตอร ์เพือใช
้
ตัวแทนหรือหุ่นจาลองของระบบ รวมทังการเขี
ยน
่ นตัวแทนสิงแวดล
่
่ ยวข
่
โปรแกรมเพือเป็
้อมทีเกี
้องกับ
ระบบคอมพิวเตอร ์
่ าคัญคือการใช ้ตัวแปรทีเป็
่ นตัวแทนของเวลา เพือ่
สิงส
อ ้างถึงตาแหน่ งหรือหลักในการสร ้างเหตุการณ์ (ตัว
่ าเรือย
่ ๆ) หรือจะไม่เปลียนตามเหตุ
่
แปรจะเพิมค่
การณ์
่ ดขึนก็
้ ได ้
ทีระบบปฏิ
เกิ
บต
ั ก
ิ าร (Operating Systems)
68
วิธก
ี ารจาลองระบบ (Simulations)

้
้ 2
เวลาของเหตุการณ์ทจะเกิ
ี่
ดขึนในแบบจ
าลองนีมี
แบบ



่
เวลาจากการสุม
่ (เขียนโปรแกรมเพือสร
้างตัวแปรสุม
่ นี )้
โดยต ้องสร ้างงาน สร ้างเวลาซีพย
ี ู สร ้างเวลาเข ้ามาใน
ระบบ โดยอาศัยหลักความน่ าจะเป็ น โดยใช ้การกระจาย
ต่าง ๆ เช่น uniform, exponential หรือ Poisson เป็ น
ต ้น
ใช ้ข ้อมูลจากระบบจริง (Empirical) โดยสามารถหา
่
ข ้อมูลได ้มาจาก trace tape (ซึงประกอบด
้วยข ้อมูลการ
่
่
ทางานจริงของคอมพิวเตอร ์ทีเราจะต
้องหาอัลกอริทมที
ึ่ ดี
่ ด
ทีสุ
่ กต ้อง
ขระบบปฏิ
้อดีของการใช
้ข
้อมู
ล
จริ
ง
ก็
ค
อ
ื
จะได
้ค่
า
ที
ถู
บต
ั ก
ิ าร (Operating Systems)
69
้
วิธก
ี ารสร ้างขึนมาจริ
ง




่ งไม่
การสร ้างแบบจาลองก็คงยังเป็ นการจาลองทียั
่ ดี
่ กว่าคือการสร ้างอัลกริทม
สามารถเหมือนจริงได ้ สิงที
ึ่
่
ชนิ ดต่าง ๆ เพือทดลองใช
้กับโปรแกรมจัดการระบบจริง
่
ๆ ในสิงแวดล
้อมจริง
้ คอ
วิธน
ี ี ไม่
่ ยนิ ยมเนื่องจากค่าใช ้จ่ายค่อนข ้างสูง และใช ้
เวลามาก
้องใช ้ฮาร ์ดแวร ์พิเศษ ทาให ้
ในบางอัลกอริทมอาจจะต
ึ่
่
่
เครืองต
้องสามารถปร ับเปลียนได
้ ทาให ้การปฏิบต
ั เิ ป็ น
่ ค่
่ อนข ้างยุ่งยาก
เรืองที
่ ทสุ
ถึงแม้จะได ้วิธก
ี ารทีดี
ี่ ด เรายังต ้องพิจารณาว่าผลที่
ไดระบบปฏิ
้จากการทดลองท
าให ้เกิดการตั
ดสินใจได ้ถูกต ้องแค่70
บต
ั ก
ิ าร (Operating
Systems)
้
วิธก
ี ารสร ้างขึนมาจริ
ง


่ ทสุ
ทางออกทีดี
ี่ ดเราจะต ้องทาให ้ระบบคอมพิวเตอร ์
่
่ า
สามารถปร ับเปลียนได
้โดยการควบคุมของผูใ้ ช ้ ซึงท
้ าไว ้ก่อนเริมใช
่ ้งาน หรือสามารถปร ับ
ได ้โดยการตังค่
ค่าได ้ในขณะใช ้งาน
่
่
การทีเราจะท
าให ้ระบบสามารถเปลียนแปลงได
้ จะต ้อง
้ ่ นเอง
ค่าใช ้จ่ายในปริมาณมากขึนนั
ระบบปฏิบต
ั ก
ิ าร (Operating Systems)
71