บทที่ 3
ระบบปฏิบัติการกับการจัดการทรัพยากรระบบ สถานะของโปรเซส
สถานะต่างๆ ในการทำงานของโปรเซสจะมีสถานะใดสถานะหนึ่งเท่านั้น ซึ่งจะมีหลายสถานะด้วยกัน ดังนี้
รูปที่ 2.4 โอเอสจะจัดสรรและจัดการโปรเซสจำนวนมากมายให้ทำงานได้อย่างไร
1. New คือโปรเวสที่เพิ่งสร้างขึ้น
2.Ready คือสถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันทีที่โอเอสที่มอบหมายให้ โดยสถานะนี้อยู่ในสถานะพร้อมที่จะรันเท่านั้น ยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่างใด
3. Running คือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
4. Waiting คือสถานะโปรเซสนั้นกำลังรอเหตุการณ์อะไรบ้างอย่าง
5. Block คือสถานะที่เกิดการขัดจังหวะการอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คืออินเตอร์รัพต์
6.Terminated คือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
แบบมาก่อนได้ก่อน (First-Come-First-Served Scheduling:FCFS)
เป็นวิธีการจัดการที่มีความเข้าใจง่าย กล่าวคือโปรเซสใดก็ตามที่การร้องขอซีพียูก่อนก็สามารถครอบครองเวลาซีพียูได้ก่อน โดยเป็นไปตาม
ลำดับเวลาของการเข้ามาในลำดับคิวข้อดีของการจัดคิวแบบ FCFS นั้นเป็นอัลกอริทึมที่ง่าย ไม่ยุ่งยากซับซ้อน
แบบงานใดใช้เวลาสั้นให้ทำก่อน(Shortest-Jop-First Scheduling:SJF)
เป็นวิธีการจัดลำดับด้วยการนำโปรเซสที่ใช้เวลาน้อยที่สุดมาทำงานก่อน ซึ่งจัดเป็นทางเลือกวิธีหนึ่งที่ต้องการแก้ไขข้อบกพร่องของวิธีแรก แต่ก็มีข้อ
เสียคือโปรเซสที่มาก่อนอาจไม่ได้รับการบริการจากซีพียูก่อน ในขณะที่โปรเซสอื่นที่มาทีหลังจะถูกบริการก่อนถ้ามีระยะเวลาทำงานในซีพียูน้อยกว่า
การจัดตารางการทำงานแบบศักดิ์สูงได้ก่อน (Priority Scheduling)
วิธีนี้กำหนดให้แต่ละกระบวนการมีศักดิ์ (Priority) ไม่เท่ากัน และกระบวนการที่จะได้เข้าใช้หน่วยประมวลผลกลาง คือ กระบวนการที่มีศักดิ์สูงที่สุด ถ้ากระบวนการใดมีศักดิ์เท่ากันแล้ว ระบบจะให้กระบวนการที่มีศักดิ์เท่ากันนั้นทำงานแบบมาก่อน-ได้ก่อน (FCFS)
ในหัวข้อนี้เราจะอธิบายเกี่ยวกับการจัดตารางการทำงานโดยพิจารณาศักดิ์ของกระบวนการว่าสูงหรือต่ำ โดยทั่วไปแล้ว ค่าศักดิ์จะเป็นตัวเลขที่อยู่ในช่วงที่แน่นอนตายตัว เช่น 0 – 7 หรือ 0 – 4095 แต่ก็ไม่ได้มีการตกลงกันเป็นสเกลว่า 0 หมายถึง ค่าศักดิ์สูงที่สุดหรือต่ำที่สุด บางระบบตัวเลขน้อยกว่าถือว่าศักดิ์สูงกว่า บางระบบก็ใช้ตรงกันข้าม หนังสือเล่มนี้ เรากำหนดให้เลขน้อยกว่ามีศักดิ์สูงกว่า
ตัวอย่างเช่น
| ||||||
การจัดตารางการทำงานแบบเวียนเทียน (Round-Robin Scheduling / RR)
ถูกออกแบบมาเพื่อใช้กับการทำงานในระบบแบ่งส่วน (time-sharing system) โดยขั้นตอนวิธีของการจัดตารางการทำงานในวิธีนี้เริ่มจากการแบ่งเวลาออกเป็นหน่วยเล็ก ๆ ที่เรียกว่า “ส่วนแบ่งเวลา” (Time Quantum / Time Slice) ซึ่งโดยทั่วไปมีค่าอยู่ระหว่าง 10 ถึง 100 มิลลิวินาที และจัดให้แถวพร้อมของระบบมีโครงสร้างเป็นแถวรอแบบวงกลม โดยเรียงกันแบบมาก่อน-ออกก่อน (First In, First Out / FIFO) ซึ่งในกรณีที่มีกระบวนการใหม่เข้าสู่ระบบ กระบวนการใหม่นั้นจะเข้าไปต่อที่ตอนท้ายของแถวพร้อม และเมื่อมีการเลือกกระบวนการเข้าใช้หน่วยประมวลผล กลาง ตัวจัดตารางการทำงานก็จะเลือกให้กระบวนการที่อยู่หัวแถวของแถวพร้อมได้เข้าใช้หน่วยประมวลผลกลางก่อนกระบวนการอื่นในแถว โดยให้ใช้ครั้งละ 1 ส่วนแบ่งเวลา แล้วกลับไปต่อแถวใหม่
เมื่อกระบวนการได้เข้าใช้หน่วยประมวลผลกลางแล้ว กระบวนการอาจจะใช้เวลาในการทำงานกับหน่วยประมวลผลกลางน้อยกว่า 1 ส่วนแบ่งเวลา แล้วปล่อยหน่วยประมวลผลกลางคืนสู่ระบบด้วยความสมัครใจ จากนั้นตัวจัดตารางการทำงานก็จะเลือกกระบวนการที่อยู่ถัดไปในแถวพร้อมมาเข้าใช้หน่วยประมวลผลกลางต่อไป แต่ในกรณีที่กระบวนการไม่สามารถทำงานให้เสร็จสิ้นได้ภายใน 1 ส่วนแบ่งเวลา กระบวนการนั้นจะถูกแทรกกลางคันโดยระบบปฏิบัติการ และจะสับเปลี่ยนให้กระบวนการต่อไปเข้าใช้หน่วยประมวลผลกลางแทน สำหรับกระบวนการที่ถูกแทรกกลางคันนั้นก็จะถูกนำไปต่อยังท้ายแถวของแถวพร้อม
ค่าเวลารอคอยโดยเฉลี่ยภายใต้การทำงานแบบเวียนเทียนนี้ มักจะมีค่ามาก โดยพิจารณาจากกลุ่มของกระบวนการที่ได้เข้าสู่ระบบ ณ เวลา 0 และแต่ละกระบวนการจะมีช่วงเวลาในการใช้งานหน่วยประมวลผลกลางดังแสดงต่อไปนี้
กระบวนการ (Process)
|
เวลาทำงาน (Burst Time)
|
P1
P2
P3
|
24
3
3
|
ระบบโปรแกรมเดี่ยว
ระบบโปรแกรมเดี่ยว หมายถึงการรันโปรแกรมที่ใช้งานจากผู้ใช้เพียง 1 โปรเซสเท่านั้นซึ่งมักใช้งานกับคอมพิวเตอร์ขนาดเล็ก และระบบปฏิบัติการก็มีการจัดการหน่วยความจำที่ค่อนข้างง่าย ไม่สลับซับซ้อน
|
ระบบหลายโปรแกรม
ในระบบคอมพิวเตอร์ ซีพียูถือว่าเป็นหน่วยที่แพงที่สุด สำคัญที่สุด และต้องการใช้งานซีพียูให้เกิดความคุ้มค่ามากที่สุด ดังนั้นจึงมีการคิดค้นวิธีการต่างๆ เพื่อสามารถใช้งานวีพียูคุ้มค่ายิ่งขึ้น ระบบโปรแกรมเดี่ยว (Single program) ซีพียูแทบจะใช้งานน้อยมากกล่าวคือ เมื่อมีการติดต่อกับอุปกรณ์อินพุต/เอาต์พุต ซึ่งพื้นฐานของการทำงานอุปกรณ์เหล่านั้นเป็นแบบ Machanics ไม่ใช้แบบ Electronics เหมือนกับหน่วยความจำหลัก ดังนั้นการทำงานย่อมช้ากว่าซีพียูมาก ในช่วงขณะที่ซีพียูจัดการอุปกรณ์อินพุต/เอาต์พุตนั้นสถานะของซีพียูก็ว่างอยู่เฉยๆ (Idle) ไม่ได้มีการทำงานใดๆ เลย หากคิดเป็น Overhead หรือ ค่าใช้จ่าย ถือว่าได้สูญเสีย ค่าใช้จ่ายในการใช้งานซีพียูโดยไม่ได้ประโยชน์ใดๆ และไม่คุ้มกับความสามารถและราคาของซีพียูเลย จากความคิดนี้จึงได้มีการสร้างคอมพิวเตอร์ที่สามารถทำการรันงานหรือโปรแกรมต่างๆ ได้หลายๆ โปรแกรมในเวลาเดี่ยวกัน โดยระบบการทำงานคอมพิวเตอร์ ในลักษณะนี้ว่า Multiprigrammming หรือ ระบบหลายโปรแกรม
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น