บทที่ 3 การจ่ายงาน (Process Managemnt)
พื้นฐานการทำงานของคอมพิวเตอร์์์
หัวใจในการทำงานของระบบปฏิบัติการ คือการจัดการให้งานหรือโปรแกรมต่างๆของผู้ใช้
และโปรแกรมของระบบสามารถทำงานได้ซึ่งงานแต่ละงานอาจจำเป็นต้องใช้ทรัพยากรต่างๆ
ของระบบ เช่น หน่วยประมวลผล หน่วยความจำ แฟ้มข้อมูล หรืออุปกรณ์รอบข้างต่างๆและเพื่อ
ให้สามารถมองเห็นโครงสร้างและหลักการทำงานของระบบปฏิบัติการได้อย่างชัดเจนจะขอกล่าว
ถึงเฉพาะระบบปฏิบัติการของระบบคอมพิวเตอร์แบบซีพียูเดียวเช่นในขณะที่กำลังรันโปรแกรมอยู่
ก็สามารถอ่านข้อมูลจากดิสก์ และพิมพ์งานทางเครื่องพิมพ์ได้พร้อมได้พร้อมๆกับไปด้วยซึ่งในระบบ
หลายโปรแกรม หน่วยประมวลผลจะทำการสลับการทำงานจากโปรแกรมหนึ่งไปอีกโปรแกรมหนึ่ง
สำหรับคำนิยมที่เป็นที่ยอมรับกันมากที่สุดคือโพรเซสเป็นส่วนของโปรแกรมที่ กำลังทำงาน
แต่เนื่องจากในระบบคอมพิวเตอร์ ณ เวลาหนึ่งอาจจะมีหน้าที่กำลังทำงานได้หลายงาน
ในการทำงานของระบบคอมพิวเตอร์โปรแกรมทุกโปรแกรมที่ทำงานอยู่รวมถึงโปรแกรม
ที่เป็นของระบบปฏิบัติการเองก็ตามจะมีการทำงานแบบตามลำดับ โดยโปรแกรมที่ได้ครอง
ทรัพยากรเพื่อทำงานนั้นเรียกว่าโพรเซส แต่เนื่องจากในระบบซีพียูเดียวนั้นจะมีซีพียูเพียง
ตัวเดียวทำหน้าที่ประมวลผลโปรแกรม หรือโพรเซสต่างๆ ในระบบซึ่งมีอยู่จำนวนมากและเพื่อ
ให้ทุกโปรแกรมได้ครองซีพียูไปจนกว่าการทำงานของโพรเซสนั้นจะเสร็จสิ้นแต่จะได้ครองซีพียู
ภายในเวลาที่ได้รับจัดสรรให้ครองเท่านั้นดังนั้นอาจจะเป็นไปได้ดังนั้นอาจจะเป็นไปได้ว่าเมื่อ
ครองซีพียูครบตามเวลาที่ได้รับจัดสรรแล้วแต่การทำงานของโพรเซสนั้นๆยังไม่เสร็จสิ้นสมบูรณ์
โพรเซสนั้นจะต้องทำการปลดปล่อยซีพียูและคอยการจัดสรรในรอบใหม่ต่อไป
ในระบบหลายโปรแกรมจะพบว่าในช่วงเวลาหนึ่งมีการทำงานของหลายโพรเซส
ซึ่งแต่ละโพรเซสนั้นจะมีการทำงานที่เหมือนกันหรือแตกต่างกันก็ได้คุณลักษณะหรือ
สถานะที่แตกต่างกันแต่ละโพรเซสจะต้องมีสถานะเป็นอย่างใดอย่างหนึ่ง มี ดังนี้
โพรเซสในสถานะพร้อม (Ready) คือ สถานะที่โพรเซสคอยที่จะเข้าครองซีพียู หรือ พร้อม
ที่จะใช้ซีพียูทันทีที่ระบบระบบปฏิบัติการมอบหมายให้ในสถานะที่ไม่มีการทำงานของโพรเซส
โพรเซสในสถานะติดขัด (Blocked) หรือ สถานะพัก (Suspend) คือ สถานะที่โพรเซสติดต่อกับ
อุปกรณ์ หรือ คอยเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น
ภาพการแสดงการเปลี่ยนสถานะโพรเซส
เมื่อผู้ใช้ต้องการส่งงานให้เครื่องคอมพิวเตอร์โดยการสั่งให้โปรแกรมทำงาน ผ่านทาง
ระบบปฏิบัติการแล้วระบบปฏิบัติการจะมีการเตรียมการที่จะสร้างโพรเซสให้กับงานใหม่ที่ถูก
ส่งเข้า มาโดยแต่ละโพรเซสจะถูกสร้างขึ้นมาได้นั้นจะต้องมีองค์ประกอบต่างๆเช่นคำสั่ง
ของโปรแกรม ข้อมูลที่โปรแกรมต้องการใช้ และต้องมีเนื้อที่ในหน่วยความจำหลักเพียงพอ
สำหรับโพรเซสใหม่ที่กำลังจะเข้า ไปในระบบ
เมื่อมีโพรเซสที่เข้ามาในระบบปฏิบัติการจะมีการเก็บรายละเอียดต่างๆ ของโพรเซสนั้นไว้
เอาเป็นข้อมูลในการจัดการโพรเซส เช่นการจัดลำดับงานการจัดสรรเวลาหรือให้สามารถทำ
งานต่อจากจุดเดิมที่ค้างไว้ได้อย่างถูกต้อง โดยข้อมูลที่เก็บไว้นี้จะมีการปรับปรุงค่าข้อมูลอยู่
ตลอดเวลา เพื่อให้สอดคล้องกับสถานะของโพรเซสที่เปลี่ยนแปลงไป โดยข้อมูลต่างๆ ของ
แต่ละโพรเซสจะถูกเก็บไว้ในตารางโพเซสข้อมูลเพื่อการจัดการโพรเซสค ่าของเรจิสเตอร์
โดยจะทำการเก็บค่าต่างๆที่ทำงานค้างไว้ใน เรจิสเตอร์ ก่อนที่จะปลดปล่อยซีพียุเพื่อให้เป็น
ข้อมูลในการทำงานต่อเมื่อได้ครองซีพียูอีกครั้ง
ค่าของเรจิสเตอร์ โดยจะทำการเก็บค่าต่าง ๆ ที่ทำงานค้างไว้ในเรจิสเตอร์ก่อนที่จะปลดปล่อยซีพียู
เพื่อใช้เป็นข้อมูลในการทำงานต่อเมื่อได้ครองซีพียูอีกครั้ง การที่ต้องเก็บค่าในเรจิสเตอร์ไว้นี้ก็เนื่อง
จากเรจิสเตอร์ไว้นี้ ก็เนื่องจากเรจิสเตอร์ภายในซีพียูํเป็นหน่วยความจำที่ใช้ในการเก็บข้อมูลชั่วคราว
ในขณะที่ซีพียูทำงานหากโพรเซสใหม่เข้ามาครองและใช้งานซีพียูก็จะทำให้ข้อมูลในเรจิสเตอร์ถูกแทน
ที่ด้วยข้อมูลของโพรเซสใหม่ทำให้โพรเซสเดิมไม่สามารถทำงานต่อได้โปรแกรมเค้าเตอร์( Program
Counter เพื่อจัดตำแหน่งปัจจุบันของการทำงานไว้และใช้ค่านี้ในการทำงานต่อเมื่อได้เข้าตรองซีพียู
ใหม่เวลาเริ่มทำงานของโพรเซสเวลาของซีพียูที่ใช้ไปแล้วหมายเลขประจำตัวของโพเซส
ข้อมูลเพื่อการจัดการโพรเซสที่สำคัญได้แก่พอยน์เตอร์ชี้ไปยังตำแหน่งของโพรเซสในหน่วย
ความจำเพื่อเก็บตำแหน่งของหน่วยความจำที่ใช้เก้บข้อมูลหรือโปรแกรมของแต่ละโพรเซสเพื่อให้
สามารถอ้างอิงและนำมาใช้งานได้อพนากรต่าง ๆ ได้อย่างถูกต้องพอยน์เตอร์ชี้ไปยังทรัพยากรต่าง ๆ
ที่โพรเซสครอบครองหมายเลขประจำตัวของโพเซส
ข้อมูลเพื่อการจัดการโพรเซสที่สำคัญ ๆ ได้แก่ไดเร็กทอรี่รากเป็นการเก็บที่อยู่ของโปรแกรมของ
โพรเซสแต่โพรเพื่อการอ้างอิงและการนำมาใช้งานไดดร็กทอรี่ปัจจุบันรายละเอียดของแฟ้มหมายเลข
ประจำตัวของโพเซส