Please enable JavaScript.
Coggle requires JavaScript to display documents.
บทที่ 6
กำหนดการใช้ซีพียู - Coggle Diagram
บทที่ 6
กำหนดการใช้ซีพียู
6.1 หลักความต้องการพื้นฐาน ความต้องการที่จะให้ซีพียูมีการทำงาน
ตลอดเวลา เพื่อให้มีการใช้ซีพียูอย่างเต็มที่และเต็มประสิทธิภาพ ซึ่งระบบคอมพิวเตอร์ซีพียูตัวเดียวซึ่งระบบคอมพิวเตอร์มีซีพียูตัวเดียว ใน
เวลาใดเวลาหนึ่งซีพียูจะทำงานได้เพียงงานเดียวเท่านั้นถ้ามีหลายโปรแกรมหรือหลายงาน งานที่เหลือก็
ต้องคอยจนกว่าจะมีการจัดการให้เข้าไปใช้ซีพียู
6.1.1 ช่วงเวลาอินพุต/เอ้าต์พุต และช่วงเวลาใช้ซีพียู (I/O and CPU Burst Cycle) ความสำคัญของการจัดเวลาของซีพียูนั้น ขึ้นอยู่กับคุณลักษณะการทำงานของโพรเซส โดยทั่ว ไปการทำงานของโพรเซสจะประกอบด้วยเวลาที่ใช้ซีพียู (CPU burst cycle) และเวลาที่คอยอุปกรณ์อินพุต/เอาต์พุต (Input/Output and CPU burst cycle) ในขณะที่มีการทำงานโพรเซส จะมีการสลับการทำงานระหว่าง 2 ช่วงเวลานี้เท่านั้น
6.2 ตัวจัดการเวลาซีพียู เมื่อใดก็ตามที่ซีพียูว่าง ระบบปฏิบัติการจะต้องเข้ามาเลือกโพรเซสตัวใดตัวหนึ่งที่คอยอยู่ในคิวเข้ามาใช้งานซีพียู การเลือกโพรเซสเพื่อเข้ามาใช้ซีพียูนี้ จะถูกจัดการด้วยส่วนที่เรียกว่า ตัวจัดการช่วงสั้น(Short – term scheduler) หรือตัวจัดการเวลาซีพียู (CPU scheduler)
-
6.2.2 ตัวส่งต่อ (Dispatcher) องค์ประกอบที่ส าคัญอีกตัวหนึ่งที่เกี่ยวข้องกับฟังก์ชันในการจัดเวลาซีพียูก็คือ สิ่งที่เรียกว่า
Dispatcher ซึ่งเป็นโมดูลที่ทำหน้าที่ควบคุมการครอบครองซีพียูของโพรเซส โมดูลนี้ประกอบด้วยฟังก์ชัน
-
- กระโดดไปยังตำแหน่งที่เหมาะสมของโปรแกรม เพื่อที่จะเริ่มรันโปรแกรมนั้นใหม่อีกครั้ง
-
-
-
6.5 คิวหลายระดับ โพรเซสสามารถถูกแบ่งออกเป็นกลุ่มต่าง ๆ ได้หลายกลุ่มโพรเซสแต่ละกลุ่มจะมีเวลาการตอบสนอง (Response time) ที่แตกต่างกัน จึงต้องการการ
จัดลำดับที่แตกต่างกันด้วย
6.5.1 การจัดตํารางการทำงานแบบจัดลำดับหลายชั้นแบบเลื่อนชั้นได้(Multilevel Feedback Queue Scheduling) โดยปกติแล้วในวิธีการจัดตารางการท างานแถวคอยหลายชั้น (Multilevel queue scheduling)โพรเซสที่เข้าสู่ระบบจะถูกกำหนดแถวที่แน่นอนตลอดการทำงาน โดยไม่อาจเปลี่ยนแถวได้อีกเลย
-
6.7 การจัดตํารางการทำงานแบบตอบสนองฉับพลัน การจัดตารางการทำงานแบบตอบสนองฉับพลัน แบ่งเป็น 2 ประเภท คือ
- Hard Real-Time System ต้องการเวลาที่คงที่แน่นอนตายตัว โดยทั่วไปโพรเซสจะได้รับ
เวลาจำนวนหนึ่งเพื่อน ไปทำงานให้เสร็จ
- Soft Real-Time System เป็นระบบที่ทำงานโดยไม่ต้องมีเวลามาจำกัด นั่นหมายถึงจะมีโพรเซสอยู่โพรเซส
หนึ่งมีลำดับความสำคัญสูงกว่าโพรเซสอื่น
6.8 การประเมินอัลกอริทึม
6.8.1 กํารกำหนดโมเดล (Deterministic Modeling) วิธีนี้ทำโดยการกำหนดกลุ่มงานทดสอบขึ้นมาหนึ่งกลุ่ม แล้วคำนวณค่าคุณสมบัติของวิธีการจัดตารางแต่ละแบบ
6.8.2 การวิเคราะห์แถว (Queuing Models) ระบบคอมพิวเตอร์อาจถือได้ว่าเป็นเครือข่ายของผู้ให้บริการ (Network of servers) ผู้ให้บริการ แต่ละตัวมีแถวคอยของตนเอง หน่วยประมวลผลกลาง (ผู้ให้บริการประมวลผล) มีแถวพร้อมของตนเองอุปกรณ์รับส่งข้อมูลแต่ละตัว (บริการรับส่งข้อมูล) ก็มีแถวคอยอุปกรณ์ของตนเราสามารถคำนวณหาค่าเฉลี่ยของ
ประสิทธิผล ความยาวแถวคอย เวลารอคอย และอื่น ๆ ได้
6.8.3 การจำลองสถานการณ์(Simulations) ข้อมูลของโพรเซสที่เข้าระบบ สร้างโดยใช้ตัวแปรสร้างที่สุ่มค่าตัวเลขขึ้นมา (Random-number generator) ค่าที่มากที่สุดการสร้างค่าเหล่านี้ ทำโดยการใช้ความน่าจะเป็นซึ่งจะสามารถเลือกได้มากแบบกว่าการใช้วิธีวิเคราะห์แถวคอย เพราะไม่ต้องคำนวณผลลัพธ์เองผลลัพธ์จะได้จากโปรแกรมแบบจำลองการทำงานแทนระบบจริง
6.8.4 การปฏิบัติจริง (Implementation) กำหนดตัวแปรในระบบให้ผู้ควบคุมระบบสามารถแก้ไขวิธีจัดตารางได้ตลอดเวลา(ขณะทำงานจริง) เช่น ถ้าต้องการใช้พิมพ์เช็คอย่างเร่งด่วน (ปกติถือเป็นงานแบบกลุ่มและมีลำดับความสำคัญต่ำ) ผู้ควบคุมระบบอาจกำหนดให้งานนี้มีศักดิ์สูงเป็นการชั่วคราว
6.9 สรุป การจัดตารางการท างานของซีพียูให้ได้ผลดีต้องทราบถึงลักษณะการทำงานของโพรเซส ซึ่งโพรเซสโดยทั่วไปจะทำงานเป็นวงจรคือ ทำงานในซีพียูและรอคอยการรับส่งข้อมูลสลับกันไป โดยมีหน้าที่หลักก็คือการตัดสินใจเลือกงานเข้ามาใช้งาน โดยมี Dispatcher เป็นเครื่องมือในการนำเอางานที่ได้รับคัดเลือกนี้เข้าและออกจากการใช้ซีพียูการมาก่อนบริการก่อน (FCFS) เป็นอัลกอริทึมแบบให้สิทธิ์ก่อน (Preemptive)ส่วนงานสั้นได้ท าก่อน (SJF) ก็เป็นอัลกอริทึมที่สามารถเป็นทั้งแบบให้สิทธิ์ก่อนและ
ไม่ให้สิทธิ์ก่อน SJF จะให้ค่าเฉลี่ยของการรอคอย (Waiting time) สั้นที่สุด
อัลกอริทึมแบบวนรอบ เป็นระบบการจัดเวลาแบบให้สิทธิ์ก่อนเหมาะสมกับระบบคอมพิวเตอร์แบบแบ่งเวลา หรือการทำงานแบบ Interactive
คิวแบบหลายระดับ อาจมีการรวมเอาอัลกอริทึมหลายชนิดเข้าไว้ด้วยกันเพื่อให้สามารถรองรับระบบงานที่มีงานหลายประเภทมากขึ้น โดยจะให้บริการแก่งานต่าง ๆ อย่างเท่าเทียมกันตามระดับความสำคัญของงานนั้น ๆ