บทที่4 Process
posted on 18 Aug 2008 05:08 by 490702464037กระบวนการ การทำงานของกระบวนการต้องการเป็นแบบลำดับ หรืออีกนัยหนึ่ง ณ เวลาใดๆ จะมีเพียงอย่างมากหนึ่งคำสั่งที่กำลังดำเนินการอยู่ในนามของกระบวนการนี้
สถานะของกระบวนการ (Process State)
สถานะของกระบวนการเกิดขึ้นต่อไปนี้
· New : กระบวนการใหม่กำลังถูกสร้างขึ้น
· Running : กระบวนการกำลังทำงานตามคำสั่งในโปรแกรม
· Waiting : กระบวนการกำลังรอคอยให้เหตุการณ์บางอย่างเกิดขึ้น
· Ready : กระบวนการกำลังรอคอยที่จะเข้าใช้หน่วยประมวลผล
· Terminate : กระบวนการเสร็จสิ้นการทำงาน
แสดงแผนภาพสถานการณ์ของกระบวนการ
ตารางข้อมูลการประมวลผล (Process Control Block)ระบบปฏิบัติการแทนกระบนการต่างๆด้วยตารางข้อมูลของกระบวนการ PCB ซึ่งก็เป็นระเบียนหรือตารางข้อมูลที่ใช้เก็บข้อมูลต่างๆที่เกี่ยวข้องกับแต่ละกระบวนการโดยเฉพาะ ดังรูป
แสดงตารางข้อมูลประมวลผล
ข้อมูลต่างๆที่ปรากฏใน PCB มีดังต่อไปนี้
· สถานะของกระบวนการ
· ตัวชี้โปรแกรม
· รีจิสเตอร์ของหน่วยประมวลผล
· ข้อมูลในการจัดตารางทำงานของหน่วยประมวลผลกลาง
· สารสนเทศเกี่ยวกับการจัดการหน่วยความจำ
· ข้อมูลทางการบัญชี
· ข้อมูลสถานการณ์รับ-ส่งข้อมูล
แสดงแผนภาพการสับเปลี่ยนซีพียู จากกระบวนการหนึ่งไปสู่อีกกระบวนการหนึ่ง
ตัวจัดตารางของกระบวนการ (Scheduling)กระบวนการหนึ่งๆ จะถูกย้ายจากแถวคอยหนึ่งไปยังอีกแถวคอยหนึ่งอยู่ตลอดเวลาที่กระบวนการนั้นทำงานอยู่ ซึ่งระบบปฏิบัติการจะเป็นผู้เลือกกระบวนการจากแถวคอยแต่ละแถวออกมา โดยการเลือกกระบวนการออกมานั้นจะกระทำโดยตัวจัดตารางที่เหมาะสม
· ตัวจัดตารางระยะยาว ทำห้าที่เลือกกระบวนการจากหน่วยเก็บข้อมูล เพ่อนำเข้าสู่หน่วยความจำหลัก
· ตัวจัดตารางระยะสั้น ทำหน้าที่เลือกกระบวนการที่รออยู่ในแถวพร้อมขึ้นมา เพื่อเข้าใช้หน่วยประมวลผลกลางต่อไป
การเปลี่ยนงาน (Context Switch)การเปลี่ยนกระบวนการที่ทำงานในหน่วยประมวลผล จากกระบวนการหนึ่งไปเป็นอีกกระบวนการหนึ่ง จำเป็นต้องเก็บค่าสถานะของกระบวนการเดิม และนำเอาค่าสถานะของกระบวนการใหม่มาลง การทำเช่นนี้เรียกว่า การเปลี่ยนงาน
การสร้างกระบวนการ (Process Creation)กระบวนการที่เป็นผู้สร้าง เรียกว่า กระบวนการแม่ กระบวนการใหม่ที่ถูกสร้างขึ้นมาเรียกว่า กระบวนการลูก โดยทั่วไปกระบวนการหนึ่งๆจะต้องการทรัพยากร
แสดงต้นไม้ของกระบวนการบนระบบ UNIX
กระบวนการแม่อาจทำงาน ได้ 2 วิธี คือ
· กระบวนการแม่ทำงานพร้อมๆ กัน ไปกับกระบวนการลูก
· กระบวนการแม่คอยจนกระทั่งกระบวนการลูกทั้งหมดสิ้นสุดการทำงาน
การระบุที่ว่างของกระบวนการใหม่ทำได้ 2 วิธี คือ
· กระบวนการลูกสำเนามาจากกระบวนการแม่
· กระบวนการลูกแม่โปรแกรมทีถูกโหลดเข้ามาเอง (สร้างเอง)
การเสร็จสิ้นกระบวนการ (Process Termination)กระบวนการจะสิ้นสุดหรือถูกยกเลิกเมื่อทำงานเสร็จในขั้นสุดท้าย แล้วร้องขอให้ระบบปฏิบัติการลบกระบวนการทิ้งไป โดยใช้คำสั่งเรียกระบบ exit ซึ่งกระบวนการสามารถส่งข้อมูลกลับไปให้กระบวนการแม่ได้ โดยคำสั่งเรียกระบบ wait กระบวนการหนึ่งอาจยกเลิกกระบวนการอื่นได้ โดยใช้คำสั่งเรียกระบบ
กระบวนการแม่อาจต้องการยกเลิกกระบวนการลูกตัวหนึ่งเพราะ
· กระบวนการลูกใช้ทรัพยากรที่กระบวนการแม่แบ่งให้จนหมดแล้ว ทรัพยากรไม่พอใช้
· กระบวนการแม่ไม่ต้องการใช้กระบวนการลูกตัวนี้อีกต่อไป
· กระบวนการแม่เสร็จสิ้นและระบบปฏิบัติการไม่ต้องการให้กระบวนการลูกทำงานต่อ
การทำงานร่วมกันของกระบวนการ (Cooperating Processes)กระบวนการที่ทำงานระบบปฏิบัติการ อาจจะเป็นกระบวนการออิสระ หรือกระบวนการที่ต้องทำงานร่วมกัน
· กระบวนการอิสระ คือ กระบวนการที่ไม่มีผลกระทบต่ออกระบวนการอื่นในระบบ
· กระบวนการที่ต้องทำงานร่วมกัน คือ กระบวนการที่มีผลต่อกระบวนการอื่นในระบบ
เหตุผลต่างๆ ที่ทำให้ต้องจัดเตรียมสิ่งแวดล้อมให้กับกระบวนการที่ต้องทำงานร่วมกัน คือ
1. การร่วมกันใช้ข้อมูลข่าวสาร
2. การคำนวณรวดเร็วขึ้น
3. ระบบย่อย
4. ความสะดวกสบาย
edit @ 18 Aug 2008 07:18:54 by

#1 By (117.47.102.114) on 2009-02-06 00:47