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