บทที่ 3 การจัดเวลา CPU
บทที่ 3 การจัดเวลาซีพียู (CPU Scheduling)
โดย นายวีรินทร์ เรือนก้อน รหัสนักศึกษา 6031280063
การจัดเวลาซีพียู
การจัดเวลาซีพียู (CPU Scheduling) เป็นหลักการทำงานหนึ่งของระบบปฏิบัติการที่ทำให้คอมพิวเตอร์มีความสามารถในการรันโปรแกรมหลายๆ
โปรแกรมในเวลาเดียวกัน
ซึ่งการแบ่งเวลาการเข้าใช้ซีพียูให้กับโปรเซสที่อาจถูกส่งมาหลายๆ
โปรเซสพร้อมๆกัน ในขณะที่ซีพียูอาจมีจำนวนน้อยกว่าโปรเซส
หรืออาจมีซีพียูเพียงตัวเดียว
จะทำให้คอมพิวเตอร์สามารถทำงานได้ปริมาณงานที่มากขึ้นกว่าการที่ให้ซีพียูทำงานให้เสร็จทีละโปรเซส
ในบทนี้ เราจะมาพูดถึงอัลกอริทึมพื้นฐานของการจัดเวลาซีพียูนี้
โดยจะพูดถึงวิธีการหลักๆ ที่แต่ละอัลกอริทึมมีแตกต่างกัน ข้อดีข้อเสีย
และความเหมาะสมต่อระบบงานแบบต่างๆ เพื่อการเลือกใช้อย่างถูกต้อง
เป้าหมาย
๐ใช้งานซีพียูได้อย่างเต็มประสิทธิภาพ
สิ่งที่ต้องคำนึง
๐ในระบบโปรเซสเซอร์เดียวซีพียูจะทำงานได้ครั้งละ 1 งาน
๐ถ้ามีหลาย ๆ งานจะต้องเกิดการรอ
ระบบโปรแกรมเดียว
- ไม่ซับซ้อน
- ทำงานทีละโปรแกรมจนเสร็จกระบวนการ
- ทำงานตัวเองจนเสร็จ หรือจนกระทั่งมีการรออะไรบางอย่าง เช่น I/O
- การรอนี้ทำให้ซีพียูเกิดการว่างงาน อยู่เฉย (idle)
- ไม่ซับซ้อน
- ทำงานทีละโปรแกรมจนเสร็จกระบวนการ
- ทำงานตัวเองจนเสร็จ หรือจนกระทั่งมีการรออะไรบางอย่าง เช่น I/O
- การรอนี้ทำให้ซีพียูเกิดการว่างงาน อยู่เฉย (idle)
ระบบหลายโปรแกรม
- เสมือนกับหลายโปรแกรมดำเนินไปพร้อมกัน
- จะไม่ยอมให้ซีพียูเกิดการรอ
- โปรเซสใดมีการรอการใช้ อุปกรณ์ I/O จะมีการนำออกไปจากซีพียู และนำโปรเซสใหม่เข้าไปใช้งานซีพียูแทน
- เสมือนกับหลายโปรแกรมดำเนินไปพร้อมกัน
- จะไม่ยอมให้ซีพียูเกิดการรอ
- โปรเซสใดมีการรอการใช้ อุปกรณ์ I/O จะมีการนำออกไปจากซีพียู และนำโปรเซสใหม่เข้าไปใช้งานซีพียูแทน
ข้อพิจารณาในการจัดเวลา

การทำงานของคอมพิวเตอร์ ใช้หลักการเก็บคำสั่งไว้ที่หน่วยความจำ
ซีพียูอ่านคำสั่งจากหน่วยความจำมาแปลความหมายและกระทำตามเรียงกันไปทีละคำสั่ง
หน้าที่หลักของซีพียู คือควบคุมการทำงานของคอมพิวเตอร์ทั้งระบบ
ตลอดจนทำการประมวลผล
กลไกการทำงานของซีพียู มีความสลับซับซ้อน ผู้พัฒนาซีพียูได้สร้างกลไกให้ทำงานได้ดีขึ้น โดยแบ่งการทำงานเป็นส่วน ๆ มีการทำงานแบบขนาน และทำงานเหลื่อมกันเพื่อให้ทำงานได้เร็วขึ้น
กลไกการทำงานของซีพียู มีความสลับซับซ้อน ผู้พัฒนาซีพียูได้สร้างกลไกให้ทำงานได้ดีขึ้น โดยแบ่งการทำงานเป็นส่วน ๆ มีการทำงานแบบขนาน และทำงานเหลื่อมกันเพื่อให้ทำงานได้เร็วขึ้น

การพัฒนาซีพียูก้าวหน้าอย่างรวดเร็ว
และถูกพัฒนาให้อยู่ในรูปไมโครชิบที่เรียกว่าไมโครโพรเซสเซอร์
ไมโครโพรเซสเซอร์จึงเป็นหัวใจหลักของระบบคอมพิวเตอร์ตั้งแต่ซูเปอร์คอมพิวเตอร์ถึงไมโครคอมพิวเตอร์
ล้วนแล้วแต่ใช้ไมโครชิปเป็นซีพียูหลัก ในเมนเฟรมคอมพิวเตอร์ เช่น ES9000
ของบริษัทไอบีเอ็มก็ใช้ไมโครชิปเป็นซีพียู
แต่อาจจะมีมากกว่าหนึ่งชิปประกอบรวมเป็นซีพียู
เทคโนโลยีไมโครโพรเซสเซอร์ได้พัฒนาอย่างรวดเร็ว โดยเริ่มจากปี พ.ศ. 2518
บริษัทอินเทลได้พัฒนาไมโครโพรเซสเซอร์ที่เป็นที่รู้จักกันดีคือ
ไมโครโพรเซสเซอร์เบอร์ 8080 ซึ่งเป็นซีพียูขนาด 8 บิต
ซีพียูรุ่นนี้จะรับข้อมูลเข้ามาประมวลผลด้วยตัวเลขฐานสองครั้งละ 8 บิต
และทำงานภายใต้ระบบปฎิบัติการซีพีเอ็ม (CP/M)
ต่อมาบริษัทแอปเปิ้ลก็เลือกซีพียู 6502
ของบริษัทมอสเทคมาผลิตเป็นเครื่องแอปเปิ้ลทู
ได้รับความนิยมเป็นอย่างมากในยุคนั้น

ทรุพุต (Throughput)
เป็นจำนวน transaction/request ที่ถูกสร้างขึ้นหรือทำงานได้ในช่วงเวลาการทดสอบหนึ่งๆ
ค่าใช้สำหรับบอกว่า ระบบงานมีความสามารถในการจัดการงานจำนวนเท่าไรในแต่ละหนึ่งหน่วยเวลานั้นๆ
ค่าใช้สำหรับบอกว่า ระบบงานมีความสามารถในการจัดการงานจำนวนเท่าไรในแต่ละหนึ่งหน่วยเวลานั้นๆ
สูตรการคำนวณนั้นไม่ยากเท่าไร นั่นก็คือ
Throughput = (จำนวน request หรือ transaction) / จำนวนเวลาการทำงานรวม
ก่อนเริ่มทำการทดสอบประสิทธิภาพ คุณจะต้องกำหนดเป้าหมาย
ในค่าของ Throughput ไว้ก่อนเสมอ ว่าต้องการเท่าไร เช่น
๐ จำนวนใน 1 วินาที
๐ จำนวนใน 1 นาที
๐ จำนวนใน 1 ชั่วโมง
ตัวอย่างเช่น
ระบบงานสามารถทำงานได้ 5 งานพร้อมๆ กันใน 1 นาที
๐ จำนวนใน 1 นาที
๐ จำนวนใน 1 ชั่วโมง
ตัวอย่างเช่น
ระบบงานสามารถทำงานได้ 5 งานพร้อมๆ กันใน 1 นาที
ดังนั้น ถ้ามีงานเข้ามา 5 งานพร้อมๆ กัน
ระบบจะสามารถทำงานทั้ง 5 งานได้พร้อมๆ กัน โดยไม่มีงานใดรอเข้าทำงานเลย
แสดงว่าระบบงานมีค่า Throughput = 5 ต่อ 1 นาที
ดังรูป
ระบบจะสามารถทำงานทั้ง 5 งานได้พร้อมๆ กัน โดยไม่มีงานใดรอเข้าทำงานเลย
แสดงว่าระบบงานมีค่า Throughput = 5 ต่อ 1 นาที
ดังรูป

แต่ถ้ามีงานจำนวน 10 งานเข้ามาพร้อมๆ กันใน 1 นาที
ซึ่งจำนวนงานเกินความสามารถของระบบงาน
ดังนั้นจะมีงานจำนวน 5 งานที่ต้องเข้าคิวเพื่อรอทำงาน ดังรูป
ซึ่งจำนวนงานเกินความสามารถของระบบงาน
ดังนั้นจะมีงานจำนวน 5 งานที่ต้องเข้าคิวเพื่อรอทำงาน ดังรูป

หน่วยที่นิยมใช้สำหรับวัดค่า Throughput
นั่นก็คือ Transaction Per Second ( TPS )
นั่นคือจำนวน transaction ที่สามารถทำงานได้ใน 1 วินาที
นั่นก็คือ Transaction Per Second ( TPS )
นั่นคือจำนวน transaction ที่สามารถทำงานได้ใน 1 วินาที
เวลาทั้งหมด (Turnaround Time)
:
คือช่วงเวลาทั้งหมดที่ใช้ในการทำงานใดงานหนึ่งตั้งแต่เริ่มต้นเข้าไปในระบบ
จนงานถูกทำจนเสร็จเรียบร้อย (รวมเวลาที่รอเข้าหน่วยความจำ
เวลาที่คอยอยู่ในคิว เวลาที่ใช้ซีพียู และเวลาของอินพุต/เอาต์พุต)
เวลารอคอย (Waiting Time)
: ช่วงเวลาที่งานใดงานหนึ่งต้องรอการทำงานของตัวจัดเวลา
โดยไม่รวมเวลาของการใช้ซีพียู และเวลาของการติดต่ออินพุต/เอาต์พุต
ส่วนใหญ่ก็คือเวลาที่งานต้องคอยอยู่ในคิว (Ready Queue)
เวลารอคอย (Waiting Time) :
ช่วงเวลาที่งานใดงานหนึ่งต้องรอการทำงานของตัวจัดเวลา
โดยไม่รวมเวลาของการใช้ซีพียู และเวลาของการติดต่ออินพุต/เอาต์พุต
ส่วนใหญ่ก็คือเวลาที่งานต้องคอยอยู่ในคิว (Ready Queue)
เวลาตอบสนอง (Response Time)
: คือเวลาที่วัดระหว่างเวลาที่มีการร้องขอการกระทำใดๆ
ต่อระบบแล้วมีการตอบรับกลับออกมา
(ความเร็วของเวลาตอบสนองจึงมักจะขึ้นอยู่กับอุปกรณ์อินพุต/เอาต์พุต)
การจัดคิวระยะสั้น (Short-term scheduling)
การจัดคิวระยะสั้นมีดังนี้
๐ การจัดคิวแบบ FCFS๐ การจัดคิวแบบ RR
๐ การจัดคิวแบบลำดับความสำคัญ
๐ การจัดคิวแบบ SJN
๐ การจัดคิวแบบ SRT
๐ การจัดคิวแบบหลายระดับ
การจัดคิวแบบมาก่อนได้ก่อน (First-come-first-served : FCFS
๐ เป็นวิธีการที่ง่ายที่สุด
๐ โปรเซสใดเข้ามารอในคิวก่อนจะมีสิทธิครอบครอง CPU ก่อน
๐ โปรเซสที่ได้ครอบครอง CPU จะทำงานไปจนเสร็จ ไม่มีระยะเวลาควอนตัม
๐ ถ้าโปรเซสมีการเรียกใช้งานอุปกรณ์อินพุต/เอาท์พุต หรือรอเหตุการณ์บางอย่าง โปรเซสนั้นต้องปลดปล่อยซีพียู และออกจากสถานะรันไปอยู่ในสถานะบล็อค
๐ เมื่อการเรียกใช้อุปกรณ์อินพุต/เอาท์พุตเสร็จสิ้นลง หรือเกิดเหตุการณ์ที่กำลังรออยู่ โปรเซสนั้นจะกลับไปอยู่ต่อท้ายคิวของสถานะพร้อม
ข้อดีคือการจัดคิวทำได้ง่ายไม่ยุ่งยากซับซ้อน
ตัวอย่างการจัดคิวเมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU
ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C แต่การใช้หลักการของการจัดลำดับความสำคัญ จะจัดคิวออกมาในลักษณะดังนี้
โปรเซส A ต้องรอเวลาในการประมวลผล = 0 วินาที
โปรเซส B ต้องรอเวลาในการประมวลผล = 15 วินาที
โปรเซส C ต้องรอเวลาในการประมวลผล = 16 วินาที
เวลาเฉลี่ยในการรอ = (0+15+16)/3 = 10.33 วินาที
จากตัวอย่างจะพบว่าการจัดคิวแบบ FCFS เป็นผลเสียอย่างมากกับโปรเซส B คือ
โปรเซส B ต้องการเวลาในการทำงานเพียง 1 วินาที แต่ต้องรอให้โปรเซส A
ซึ่งเข้ามาก่อนทำงานเสร็จ
เวลาเฉลี่ยในการรอ = (15+16)/3 = 10.33 วินาที
ทำให้การทำงานของโปรเซส B นั้นใช้เวลา 16 วินาทีจึงจะเสร็จสิ้น
เทียบเวลาในการทำงานคือ 1/16*100 = 6 %
สำหรับเวลาในการรอคือ 100-6 = 94 % ซึ่งจะเห็นว่าโปรเซส B ต้องเสียเวลารอนานมาก
การจัดคิวแบบงานสั้นทำก่อน (Short-Job-first : SJF)
จากปัญหาของการจัดคิวแบบมาก่อนได้ก่อน
จึงทำให้เกิดแนวคิดที่จะคัดเลือกโปรเซสที่ต้องการเวลาในการทำงานน้อยที่สุดเข้ามาใช้
CPU ก่อนเพื่อทำให้ โปรเซสที่ต้องการเวลาในการทำงานน้อยจบออกไปได้เร็วขึ้น
และจำนวนโปรเซสที่รออยู่ในคิวก็จะมีจำนวนลดลง
แต่ถ้ามีโปรเซสหลายตัวที่มีความต้องการเวลาในการทำงานเท่ากัน ก็จะใช้หลักการแบบมาก่อนได้ก่อนมาใช้ในการคัดเลือก
ตัวอย่างการจัดคิวเมื่อมี 4 โปรเซส (A,B,C,D) ต้องการใช้ CPU โดยมีลำดับการเข้ามาในคิวเป็น A,B,C,D

ถึงแม้ว่าลำดับการเข้ามาในคิวอาจจะเป็น A,B,C,D แต่การใช้หลักการของ SJF จะจัดคิวออกมาในลักษณะดังนี้
เวลาเฉลียในการรอ 0+3+9+16 =28/4=7
เวลาเฉลี่ยในการทำงานเสร็จ 3+9+16+24=52/4=13
จากการทดลองพบว่า SJF จะให้ค่าเฉลี่ยของการคอยได้ต่ำที่สุด เพราะมีการเลื่อนโปรเซสที่มีเวลาใช้ CPU น้อยสุดมาไว้หน้าคิว
ปัญหาสำหรับการจัดคิวแบบ SJF คือ ตัวจัดคิวระยะสั้นไม่ทราบว่าแต่ละโปรเซสต้องการใช้เวลาเท่าใด
วิธีแก้คือ
ให้แต่ละโปรเซสกำหนดเวลาที่ต้องการในการใช้ CPU มาด้วยให้ OS สร้างโปรเซสเพื่อคำนวณเวลาโดยประมาณของแต่ละโปรเซสที่ต้องการใช้ CPU
การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue)
วิธีนี้จะมีการจัดลำดับความสำคัญให้กับแต่ละโปรเซสที่ต้องการใช้ CPU
โปรเซสที่อยู่ ณ. ต้นคิวก็จะเป็นโปรเซสที่มีความ สำคัญมากที่สุด
และลดลงเรื่อย ๆ โปรเซสที่อยู่ท้ายคิวคือโปรเซสที่มีความสำคัญต่ำสุด
ถ้ามีโปรเซสใหม่เข้ามาในคิว ก็จะมีการแซงคิวได้ถ้าโปรเซสที่เข้ามาใหม่มีลำดับความสำคัญสูงกว่าโปรเซสที่กำลังบรรจุอยู่ในคิว
ตัวอย่างการจัดคิวเมื่อมี 4 โปรเซส (A,B,C,D) ต้องการใช้ CPU โดยมีลำดับการเข้ามาในคิวเป็น A,B,C,D
โปรเซส B ต้องรอเวลาในการประมวลผล = 5 วินาที
โปรเซส A ต้องรอเวลาในการประมวลผล = 6 วินาที
โปรเซส C ต้องรอเวลาในการประมวลผล = 16 วินาที
เวลาเฉลี่ยในการรอ = (0+5+6+16)/4 = 6.75 วินาที
เวลาเฉลี่ยในการทำงานเสร็จ =(5+6+16+18)/4=11.25
การจัดคิวแบบตามลำดับความสำคัญ (Priority Queue)
ปัญหาที่สำคัญสำหรับการจัดคิวแบบนี้ ได้แก่
โปรเซสที่มีลำดับความสำคัญต่ำอาจจะไม่มีโอกาสได้ใช้ CPU
ถ้ามีโปรเซสที่มีลำดับความสำคัญสูงอยู่เป็นจำนวนมาก
หรือมีโปรเซสที่มีลำดับความสำคัญสูงเข้ามาใหม่ตลอดเวลา
วิธีการพิจารณากำหนดลำดับความสำคัญของโปรเซสต่าง ๆ อาจพิจารณาได้จากองค์ประกอบต่าง ๆ เช่น
เจ้าของโปรเซส : โปรเซสที่มาจากผู้ใช้ทั่ว ๆ ไป จะมีลำดับความสำคัญต่ำกว่า โปรเซสที่มาจากผู้ควบคุมระบบ
ประเภทของโปรเซส : โปรเซสของงานในระบบแบตซ์ (Batch mode) มักมีลำดับความสำคัญต่ำกว่าโปรเซสของงานแบบตอบโต้ (Interactive mode)
ผู้ใช้ที่ยินยอมจ่ายเงินเพิ่ม
ระยะเวลาที่โปรเซสเข้ามาอยู่ในระบบ
การจัดคิวแบบงานที่เหลือเวลาน้อยทำก่อน (Shortest-remaining-first : SRJ)
วิธีการนี้จะคล้ายกับแบบ SJF แต่ SRJ จะนำเอาโปรเซสที่เหลือเวลาในการใช้
CPU น้อยที่สุดมาอยู่ที่ต้นคิวเพื่อเข้าไปใช้งาน CPU ก่อน
วิธีการนี้จะทำให้ทั้งโปรเซสที่ต้องการเวลาในการใช้ CPU น้อย
และโปรเซสที่ต้องการเวลาในการใช้ CPU
มากแต่ใกล้จะจบสามารถออกจากระบบได้เร็วขึ้น
วิธีการนี้นอกจากจะต้องทราบเวลาที่ต้องการใช้ CPU แล้วยังต้องมีการบันทึกเวลาที่โปรเซสทำงานไปแล้วด้วย
การจัดคิวแบบวนรอบ (Round-Robin : RR)
ใช้กับระบบงานคอมพิวเตอร์แบบแบ่งเวลา โดยมีลักษณะการจัดคิวเป็นแบบ FCFS
แต่ให้มีกรรมวิธีของการให้สิทธิในการครอบครอง CPU ของแต่ละโปรเซส คือ
“แต่ละโปรเซสที่เข้ามาในระบบจะถูกจำกัดเวลาการเข้าไปใช้ CPU เท่า ๆ กัน ”
ซึ่งเรียกช่วงเวลานี้ว่า เวลาควันตัม (Quantum Time)
ตัวจัดเวลาระยะสั้นจะมีการให้ CPU กับโปรเซสที่อยู่ในคิวแบบวนรอบ
โดยมีกฏเกณฑ์ว่า ถ้าโปรเซสใดไม่สามารถกระทำได้สำเร็จภายใน 1 ควันตัม
โปรเซสจะต้องถูกนำกลับไปไว้ในคิวเช่นเดิม
สถานภาพต่าง ๆ
ของโปรเซสที่ยังทำไม่เสร็จจะถูกบันทึกไว้ เมื่อถึงโอกาสได้ครอบรอง CPU อีก
ก็จะได้เริ่มต้นรันต่อจากครั้งที่แล้วโดยไม่ต้องเริ่มใหม่ทั้งหมด
ตัวอย่างการจัดคิวแบบ FCFS เมื่อมี 3 โปรเซส ( A,B,C) ต้องการใช้ CPU
เวลาเฉลี่ยในการรอ = (15+16)/3 = 10.33 วินาที
ตัวอย่างการจัดคิวแบบ RR เมื่อมี 3 โปรเซส (A,B,C) ต้องการใช้ CPU โดยมีเวลาควันตัมเป็น 1 วินาที
เวลาเฉลี่ยในการรอ = (11+1+11)/3 = 7.67 วินาที
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 จะเป็นประโยชน์ต่อโปรเซส B หรือโปรเซสที่ต้องการเวลาในการใช้ CPU น้อยแต่เข้าคิวมาทีหลัง
ในทางตรงกันข้ามจะเกิดผลเสียต่อโปรเซส A หรือโปรเซสที่ต้องการเวลาในการใช้ CPU มากประสิทธิภาพของการวนรอบขึ้นอยู่กับการกำหนดขนาดของควันตัมเป็นอย่างยิ่ง
ถ้าขนาดของควันตัมใหญ่หรือนานเกินไป ประสิทธิภาพของการวนรอบก็จะใกล้เคียงกับแบบมาก่อนได้ก่อน
ถ้าขนาดของควันตัมเล็กเกินไป ระยะเวลาที่ใช้ในการทำงานของระบบ (throughput) ก็จะช้าลง
ตัวอย่าง
จงหาค่าเฉลี่ยทั้ง 3 วิธี คือ FCFS, SJF และ RR เวลาควอนตัม = 10
การจัดคิวแบบหลายระดับ
การจัดคิวดังที่กล่าวมาแล้วทั้งสิ้นเป็นการจัดคิวภายในคิวเพียง 1 คิว เรียกว่าการจัดคิวแบบ 1 ระดับดังรูป
เพื่อให้การจัดคิวเป็นไปอย่างมีประสิทธิภาพมากขึ้น
เราจึงจัดให้มีคิวหลาย ๆ คิวแทนที่จะมีเพียงคิวเดียว
เรียกว่าเป็นการจัดคิวแบบหลายระดับ
- การจัดคิวแบบหลายระดับนั้น แต่ละคิวไม่จำเป็นเป็นต้องเป็นประเภทเดียวกัน
- การคัดเลือกโปรเซสนั้นจะคัดเลือกจากคิวที่ 1 ก่อนจนกระทั่งโปรเซสภายในคิวที่ 1 ทำงานเสร็จทั้งหมด แล้วจึงคัดเลือกโปรเซสในคิวลำดับถัดไป
- โปรเซสที่มีความสำคัญมาก มักจะอยู่ในคิวระดับแรก โปรเซสที่มีลำดับความสำคัญน้อยลงไปก็จะอยู่ในคิวระดับหลัง
- โปรเซสประเภทเดียวกันมักอยู่ในคิวระดับเดียวกัน
การจัดคิวระยะยาว
การจัดคิวระยะสั้นเป็นการจัดคิวในระดับโปรเซส
โดยมีตัวจัดคิวระยะสั้นทำหน้าที่คัดเลือกโปรเซสที่อยู่ในคิวที่มีสถานะพร้อม
ส่งเข้าไปอยู่ในสถานะรัน
การจัดคิวระยะยาวเป็นการจัดคิวในระดับงาน ไม่ใช่ระดับโปรเซส
เมื่อผู้ใช้ส่งงานเข้ามาในระบบ งานเหล่านี้จะไปรออยู่ในคิวงานเมื่อระบบอยู่ในสภาพพร้อมที่จะรับโปรเซสใหม่ได้ เช่น มีหน่วยความจำเหลือมากพอ
การจัดคิวระยะยาวเป็นการจัดคิวในระดับงาน ไม่ใช่ระดับโปรเซส
เมื่อผู้ใช้ส่งงานเข้ามาในระบบ งานเหล่านี้จะไปรออยู่ในคิวงานเมื่อระบบอยู่ในสภาพพร้อมที่จะรับโปรเซสใหม่ได้ เช่น มีหน่วยความจำเหลือมากพอ
ตัวจัดคิวระยะยาวจะคัดเลือกงานที่อยู่ในคิวงานขึ้นมาพร้อมทั้งสร้างโปรเซสใหม่สำหรับงานนั้น ส่งให้กับตัวจัดคิวระยะสั้นทำงานต่อไป
ตัวจัดคิวระยะสั้นยังมีหน้าที่ยุติโปรเซสที่จบการทำงานแล้ว
คิวงานจะต่างกับคิวของโปรเซสเล็กน้อย คือ งานที่ถูกคัดเลือกขึ้นมาและสร้างเป็นโปรเซสใหม่แล้วจะไม่มีการวนกลับมาเข้าคิวใหม่เหมือนกับโปรเซส
การคัดเลือกงานเพื่อสร้างโปรเซสใหม่ มีวิธีการเหมือนกับการคัดเลือกโปรเซสที่อยู่ในคิว ยกเว้นวิธีแบบ RR ที่ไม่ได้ใช้กับคิวงาน
ตัวจัดคิวระยะสั้นยังมีหน้าที่ยุติโปรเซสที่จบการทำงานแล้ว
คิวงานจะต่างกับคิวของโปรเซสเล็กน้อย คือ งานที่ถูกคัดเลือกขึ้นมาและสร้างเป็นโปรเซสใหม่แล้วจะไม่มีการวนกลับมาเข้าคิวใหม่เหมือนกับโปรเซส
การคัดเลือกงานเพื่อสร้างโปรเซสใหม่ มีวิธีการเหมือนกับการคัดเลือกโปรเซสที่อยู่ในคิว ยกเว้นวิธีแบบ RR ที่ไม่ได้ใช้กับคิวงาน
ระบบหลายโปรเซสเซอร์ (Multi-processor System)
คอมพิวเตอร์ที่ใช้งานทั่วไปในปัจจุบันจะเป็นประเภท SISD
ระบบคอมพิวเตอร์ประเภทนี้มีโปรเซสเซอร์อยู่เพียงตัวเดียว
การทำงานของโปรเซสเซอร์ในระบบนี้จะทำงานได้ทีละ 1 คำสั่งและรับข้อมูลได้ 1 ชุด
P (Processor) แทนโปรเซสเซอร์ I (Instruction) แทนคำสั่ง D (Data) แทนข้อมูล และ O (Output) แทนผลลัพธ์
ระบบคอมพิวเตอร์ประเภทนี้มีโปรเซสเซอร์อยู่เพียงตัวเดียว
การทำงานของโปรเซสเซอร์ในระบบนี้จะทำงานได้ทีละ 1 คำสั่งและรับข้อมูลได้ 1 ชุด
P (Processor) แทนโปรเซสเซอร์ I (Instruction) แทนคำสั่ง D (Data) แทนข้อมูล และ O (Output) แทนผลลัพธ์
คำสั่งเดี่ยวและหลายชุดข้อมูล
( Single Instruction Multiple Data : SIMD )
การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกัน
หรือที่เรียกว่าทำงานขนานกัน (parallel processing)
โปรเซสเซอร์ทุกตัวทำคำสั่งเดียวกันหมด แต่มีข้อมูลเป็นของตนเอง
ดังนั้นผลลัพธ์ที่ได้จึงมีหลายชุด
SIMD มีประโยชน์ต่องานทางด้านการคำนวณที่ต้องการคำนวณแบบเดียวกันกับข้อมูลหลาย ๆ ชุดเช่น การบวกเมตริกซ์
เช่น
เช่น
หลายชุดคำสั่งและข้อมูลเดี่ยว
(Multiple Instruction Single Data : MISD )
(Multiple Instruction Single Data : MISD )
การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกัน หรือที่เรียกว่าทำงานขนานกัน (parallel processing)
โดยโปรเซสเซอร์ทุกตัวจะมีคำสั่งของตนเอง แต่ทุกตัวจะใช้ข้อมูลชุดเดียวกัน
โดยโปรเซสเซอร์ทุกตัวจะมีคำสั่งของตนเอง แต่ทุกตัวจะใช้ข้อมูลชุดเดียวกัน
เมื่อโปรเซสเซอร์ตัวแรกทำงานเสร็จ
ผลลัพธ์ที่ได้จะเป็นข้อมูลของโปรเซสเซอร์ตัวต่อไป เช่นถ้าในระบบ MISD
หาค่าจากสมการนี้ y = 2*X2+4 โดยที่ x มีค่าระหว่าง 1 ถึง 5
จากตัวอย่างพบว่ามี 3 คำสั่ง
หาค่า X ยกกำลัง 2
คูณผลลัพธ์จากข้อแรก ด้วย 2
เพิ่มค่าผลลัพธ์ที่ได้จากข้อ 2 ด้วย 4
จากตัวอย่างพบว่ามี 3 คำสั่ง
หาค่า X ยกกำลัง 2
คูณผลลัพธ์จากข้อแรก ด้วย 2
เพิ่มค่าผลลัพธ์ที่ได้จากข้อ 2 ด้วย 4
การทำงานของระบบนี้เป็นการทำงานของโปรเซสเซอร์หลายตัวพร้อมกันและโปรเซสเซอร์แต่ละตัวจะมีคำสั่งและข้อมูลเป็นของตนเอง
ดังนั้นในการทำงานแต่ละโปรเซสเซอร์จะเป็นอิสระจากกัน
ตัวอย่างระบบคอมพิวเตอร์ประเภท MIMD ที่เห็นได้ชัดเจนคือระบบเครือข่ายคอมพิวเตอร์ (Computer Network)
ดังนั้นในการทำงานแต่ละโปรเซสเซอร์จะเป็นอิสระจากกัน
ตัวอย่างระบบคอมพิวเตอร์ประเภท MIMD ที่เห็นได้ชัดเจนคือระบบเครือข่ายคอมพิวเตอร์ (Computer Network)
The Ultimate Guide to Pure Titanium Earrings
ReplyDelete› › Clothing › apple watch titanium › titanium pots and pans Clothing Buy Pure Titanium Earrings best titanium flat iron with our titanium alloy nier T-Shirts today. Choose from 5 titanium hair trimmer different sizes of earrings (standard size 7.5mm) and more. Rating: 4 1,506 reviews $52.00 In stock