Page 29 - สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
P. 29
การจ ัดเวลาซ ีพียูและก ารติดตาย 11-19
- ต่อจากนั้นโพรเซส C ได้เข้าใช้ซีพียูเป็นลำ�ดับต่อมา โดยต้องรอโพรเซส B โพรเซส E และโพรเซส A
ประมวลผ ลจนเสร็จก่อน ดังนั้นเวลาร อคอยก ารใช้ซีพียูของโพรเซส C เท่ากับ 3 + 8 + 11 = 22 มิลลิวินาที โพรเซส
C จึงได้เข้าใช้ซ ีพียูแ ละใช้เวลาป ระมวลผ ลง าน 5 มิลลิว ินาทีจ ึงป ระมวลผ ลเสร็จ ดังน ั้นเวลาค รบร อบง านข องโพรเซส C
คือเวลาร อค อยก ารใช้ซ ีพียูข อง โพรเซส B โพรเซส E และโพรเซส A บวกด้วยเวลาท ี่เข้าใช้ซ ีพียูข องโพรเซส C เท่ากับ
22 + 5 = 27 มิลลิว ินาที
- โพรเซส D ได้เข้าใช้ซีพียูเป็นลำ�ดับสุดท้าย โดยต้องรอคอยการใช้ซีพียูของโพรเซส B E A และ C
ตามลำ�ดับจ นเสร็จก่อนโดยต ้องเสียเวลาร อคอยท ั้งสิ้นเท่ากับ 3 + 8 + 11 + 5 = 27 มิลลิวินาทีจากน ั้นจึงได้เข้าใช้
ซีพียูโดยใช้เวลาในก ารประมวลผ ลงาน 3 มิลลิวินาที ดังนั้นเวลาค รบรอบง านของโพรเซส D คือ เวลารอค อยการใช้
ซีพียูของโพรเซส B E A และ C บวกด ้วยเวลาเข้าใช้ซ ีพียูข องโพรเซส D เท่ากับ 27 + 3 = 30 มิลลิว ินาที
สรปุ ค า่ เวลารอค อยและเวลาครบรอบงาน ได้ด ังนี้
โพรเซส เวลารอคอย (มลิ ลวิ นิ าท)ี เวลาครบรอบงาน (มลิ ลิวนิ าที)
B 0 3
E 3 11
A 11 22
C 22 27
D 27 30
คา่ เฉลย่ี 63/5 = 12.6 93/5 = 18.6
การก ำ�หนดค่าค วามสำ�คัญ (priority) ให้แต่ละโพรเซส สามารถกระทำ�ได้ 2 แนวทางคือ
1) ก�ำ หนดภ ายในร ะบบค อมพวิ เตอร์ สามารถพ ิจารณาจ ากจ ำ�นวนแ ฟ้มท ี่โพรเซสใช้ง าน หรือร ะยะเวลา
เขา้ ใชซ้ พี ียู หรือร ะยะเวลาท ตี่ ้องการใชอ้ ปุ กรณอ์ ินพตุ ห รอื เอาตพ์ ุต หรือข นาดข องห น่วยค วามจ ำ�หลกั ท โี่ พรเซสต ้องการ
หรืออัตราส่วนเฉลี่ยของระยะเวลาที่ต้องการใช้อุปกรณ์อินพุตหรือเอาต์พุตต่อระยะเวลาเข้าใช้ซีพียู หรือระยะเวลา
ค วอนตัมในก ารป ระมวลผลแ ต่ละโพรเซส
2) ก�ำ หนดภ ายนอกร ะบบค อมพวิ เตอร์ สามารถพิจารณาได้จาก ประเภทข องโพรเซส ประเภทของผ ู้ใช้
หรือห น่วยงานข องโพรเซส เป็นต้น
การจัดเวลาตามความสำ�คัญนี้สามารถจัดการได้ทั้งแบบตัดตอนหรือแบบไม่ตัดตอน ปัญหาของวิธีการนี้
ที่สำ�คัญคือ การอดตาย (starvation) ซึ่งเป็นเหตุการณ์ที่มีหลายโพรเซสพร้อมถูกประมวลผลอยู่ที่ ready queue
แต่มีความสำ�คัญตํ่าเป็นอันดับท้าย ๆ ระบบจะคัดเลือกโพรเซสที่มีความสำ�คัญสูงกว่าเข้าใช้ซีพียูซึ่งโพรเซสที่มี
ความส ำ�คัญส ูงก ว่าท ยอยเข้าม าใน ready queue อย่างต ่อเนื่อง ทำ�ใหโ้พรเซสท ีม่ คี วามส ำ�คัญต ํ่าท ีอ่ ยูใ่น ready queue
ก่อนห น้าไมไ่ดร้ ับก ารค ัดเลือกต ้องร อค อยอ ย่างไม่มกี ำ�หนด การแ ก้ไขก ารเกิดก ารอ ดต ายน ีร้ ะบบป ฏิบัตกิ ารส ามารถใช้
วิธีที่เรียกว่า เอดจิ้ง (aging) โดยท ำ�การเพิ่มล ำ�ดับค วามส ำ�คัญของโพรเซสให้สูงขึ้นในท ุก ๆ ระยะเวลารอค อย ทำ�ให้
โพรเซสที่ลำ�ดับความสำ�คัญตํ่าจะมีค่าความสำ�คัญสูงขึ้น ๆ ทำ�ให้มีโอกาสได้ครอบครองซีพียูไม่ต้องค้างอยู่ที่ ready
queue นานเกินไป