การจัดการ Process Management
การศึกษาเรื่องโปรเซส เป็นหัวใจของการทำความเข้าใจของระบบคอมพิวเตอร์ที่มีผู้ใช้หลายคน ( multiuser computer system ) คำว่าโปรเซสถูกใช้ครั้งแรกโดยผู้ออกแบบระบบมัลติกส์ ( multics ) ในทศวรรษ 1690 มีการให้ความหมายของคำว่า "โปรเซส" ไว้หลายความหมายเช่น
- โปรแกรมที่กำลังถูกเอ็กซีคิ้ว - กิจกรรมที่มีการทำงานสัมพันธ์กัน - สิ่งที่ถูกมอบหมายไปให้โปรเซสเซอร์ได้ - หน่วยซึ่งถูกส่งต่อได้ ( dispatchable ) ยังไม่มีความหมายใดที่เป็นที่ยอมรับกันทุกคน แต่ความหมายที่ว่า โปรเซส คือ "โปรแกรมที่กำลังถูกเอ็กซีคิ้ว" นั้นถูกใช้บ่อยมากที่สุด ดังนั้นจึงเอาความหมายนี้เป็นความหมายของคำว่า โปรเซส เราอาจเปรียบเทียบโปรแกรมเหมือนกับรถยนต์ที่จอดนิ่งอยู่ที่พร้อมที่จะวิ่งไป ในระบบหลายโปรแกรม ( multiprogramming ) โปรเซสอาจเปรียบกับรถยนต์ที่วิ่งออกจากจุดเริ่มต้น ถ้ามีหลายโปรเซสอยู่ในระบบก็เหมือนกับการที่เรามีรถหลายคันที่จะต้องออกวิ่งไปพร้อม ๆ กัน ตัวซีพียูเปรียบได้กับคนขับรถ ถ้าซีพียูมีตัวเดียวก็เหมือนกับคนขับรถมีเพียงคนเดียว ดังนั้นเมื่อรถหลายคันออกวิ่งการที่คนขับคนเดียวจะพารถหลายๆ คันวิ่งไปต้องขับรถทีละคันให้วิ่งเดินหน้าไปทีละนิด เวียนเปลี่ยนไปจนครบทุกคัน จนถึงจุดหมายปลายทาง ( โปรแกรมสิ้นสุดลง ) นั้นคือเราสามารถมีโปรเซสหลายๆ โปรเซสทำงานไปพร้อมๆ กันได้โดยมีซีพียูเพียงตัวเดียว 1 องค์ประกอบของโปรเซส 1. หมายเลขโปรเซส (Process id) 2. โค้ดโปรแกรม (Program code) 3. ข้อมูล (Data) 4. บล็อกควบคุมโปรเซส (Process control block)
- 4.1 พอยเตอร์ (Pointer)
- 4.2 สถานะของโปรเซส (Process state)
- 4.3 หมายเลขโปรเซส (Program id)
- 4.4 ตัวนับจำนวน (Program counter)
- 4.5 รีจิสเตอร์ (Register)
- 4.6 ข้อมูลการจัดเวลาของซีพียู (CPU scheduling information)
- 4.7 ข้อมูลการจัดการหน่วยความจำ (Memory management information)
- 4.8 ข้อมูลแอ็กเคาต์ (Account information)
- 4.9 ข้อมูลสถานะอินพุต/เอาต์พุต (I/O status information)
pointer |
process state |
process id |
process counter |
registers
|
list of open files |
::: |
::: |
5. PSW (Program status word) 6. คุณสมบัติของโปรเซส (Properties of process)
- 6.1 ลำดับความสำคัญของโปรเซส (Priority)
- 6.2 อำนาจหน้าที่ของโปรเซส (Authority)
- 6.3 คุณสมบัติอื่นที่ระบบปฏิบัติการกำหนดให้มี
2 สถานะของโปรเซส สถานะของโปรเซสแบ่งได้ 6 สถานะ 1. สถานะเริ่มต้น (New : The process is being created.) 2. สถานะพร้อม (Ready : The process is waiting to be assigned to a processor.) 3. สถานะรัน (Running : Instructions are being executed.) 4. สถานะรอ (Wait : The process is waiting for some event to occur.) 5. สถานะบล็อก (Block : The process is blocked for some event to occur.) 6. สถานะสิ้นสุด (Terminate : The process has finished execution.)
สถานะของโปรเซสแบ่งได้อีกแบบมี 4 สถานะ 1. สถานะพร้อม (ready state) คือสถานะที่โปรเซสพร้อมที่จะใช้ซีพียูทันทีที่ระบบปฏิบัติการมอบหมายให้ ในสถานะนี้ไม่มีการรันของโปรเซส 2. สถานะรัน (running state) คือสถานะที่โปรเซสกำลังครอบครองซีพียูอยู่ มีการรันของโปรเซสจริงๆ เพราะโปรเซสใช้ซีพียูเอ็กซีคิ้วคำสั่ง หรือโค้ดโปรแกรมของโปรเซสนั้น 3. สถานะติดขัด (blocked state) คือสถานะที่โปรเซสหยุดรอเหตุการณ์ใดเหตุการณ์หนึ่งให้เกิดขึ้น โปรเซสไม่จำเป็นต้องใช้ซีพียูและยังไม่พร้อมที่จะครอบครองซีพียู ซึ่งจะทำให้โปรเซสอื่นเข้ามาครอบครองซีพียูในช่วงนี้ได้ 4. สถานะพัก (suspend state) คือสถานะที่โปรเซสไม่มีการทำงานใดๆ หยุดนิ่งอย่างสมบูรณ์ ไม่มีการรอการใช้ซีพียูหรือเหตุการณ์ใดๆ ให้เกิดขึ้น
|