Nutchasan Jantarah
3 min readSep 4, 2018

--

week 13 04/09/2018

เรามาเข้าใจ Process กันดีกว่า : Part 1

โดยความหมายในทางคอมพิวเตอร์ process นั้นหมายถึง โปรแกรมที่กำลังจะถูกประมวลผล หรือ กำลังจะถูกทำการ execute โดยจะ execute เข้าไปใน ram ซึ่งในการ process จะมีสิ่งที่เรียกว่า process state นั่นคือ กระบวนการทำงานในแต่ละขั้นของการ process ในระหว่างที่ program กำลังจะถูก execute

Process State
ใน Process State จะมีขั้นตอนที่เป็นส่วนประกอบอยู่ด้วยทั้งหมด 5 ส่วน ซึ่งได้แก่
1. new : บ่งบอกถึง ได้ทำการสร้าง หรือจองพื้นที่ใน memory แล้ว
2. ready : เป็นส่วนของการรอ processor ที่จะทำการดึงคำสั่งไปใช้ในการ execute
3. running : คำสั่งนั้น กำลังจะถูก execute
4. waiting : เป็นการรอคำสั่งอื่นให้เกิดขึ้นก่อน
5. terminate : process ได้ถูก execute เรียบร้อยแล้ว

รูปภาพจาก http://www.hexainclude.com/process-state-diagram-and-pcb/

จากภาพ จะอธิบายเป็นส่วนๆ ได้ว่า
1. เริ่มต้น ต้องทำการสร้าง process new ก่อน โดย process มีสถานะเป็น new ก็ต่อเมื่อถูกสร้างขึ้นมา โดยการจองพื้นที่บน memory
2. เมื่อกลายเป็น process new แล้ว จะเปลี่ยนสถานะเป็น ready โดยจะทำการเปลี่ยนก็ต่อเมื่อ process ถูกรับเข้ามาในคิว เพื่อรอทำงาน
3. ต่อมาเป็นการ running โดย process ready จะเปลี่ยนเป็น running ก็ต่อเมื่อในคิวถูกส่งไปทำงานบน CPU
4. เมื่อ running อยู่ถึงคำสั่งสุดท้ายแล้ว Process จะถูกสั่ง terminate ซึ่งก็คือ จบ Process ทันที
- ถ้า running แล้วถูกสั่งด้วยคำสั่ง input output อื่นๆ ก็จะถูกส่งไปที่สถานะ waiting
- Process ใดๆ ที running อยู่ จะเปลี่ยนสถานะเป็น ready ก็ต่อเมื่อเกิดการ interrupt จาก short term schedulers หรือ I/O request
- เมื่อขอใช้ I/O และ waiting อยู่ จะย้ายจาก waiting เป็น ready ก็ต่อเมื่อได้รับข้อมูล I/O request นั้นๆเีรียบร้อยแล้ว

Process Concept
หรือเรียกง่ายๆว่า แนวคิดของ process ที่โดยทั่วไป แนวคิดนั้นคือ โปรแกรมที่กำลัง execution อยู่ จะเรียงลำดับกันไปเรื่อย ๆ เพราะต้องดำเนินไปตามลำดับ ซึ่งจะประกอบไปด้วย 3 ส่วน นั่นคือ
1. program counter : นับจำนวนโปรแกรม
2. stack : เก็บคำสั่งในรูปการ stack
3. data section : ข้อมูลที่ใช้ในการทำงาน

Process Control Block
หรือที่เรียกกันว่า PCB ซึ่งก็คือ ข้อมูลที่เกี่ยวข้องกันในแต่ละ process โดย OS จะเก็บไว้เพื่อติดตามการทำงาน ประกอบไปด้วย
1. Process state : บอกสถานะปัจจุบันของ Process
2. Process number : เพื่อใช้แยกแยะ Process
3. Program counter : เก็บ Address ของคำสั่งที่ทำการ execute
4. CPU registers : เก็บค่าต่างๆของ CPU ที่กำลัง Process
5. Memory-management information : จัดการหน่วยความจำ
6. Accounting information : บัญชีตัวข้อมูล
7. I/O status information : สถานะอุปกรณ์ I/O

Process Scheduling Queues
เป็นวิธีการจัดการ การทำงานของ process ให้ทำงานเป็นคิว โดยสามารถแยกย่อยได้ คือ
1. Job queue : ชุดการทำงานทั้งหมด ในระบบ
2. Ready queue : ชุดการทำงาน ที่ถูกพักเอาไว้ในหน่วยความจำ ซึ่งจะพร้อมรอสำหรับการ execute
3. Device queues : ชุดการทำงาน ที่รอคำสั่งจาก I/O device

Ready Queue And Various I/O Device Queues

Context Switch
ในการที่ CPU เปลี่ยนจากการทำงานงานหนึ่ง ไปอีกงานหนึ่ง หรือการสลับการทำงาน เราจะเรียกวิธีนี้ว่า context Switch

ในการทำงาน เมื่อมีการเปลี่ยนงาน ระบบจะทำการบันทึกสถานะเดิมไว้ แล้วจะทำการเปลี่ยนไปทำอีกงาน และเมื่อจะกลับมางานก่อนหน้า ระบบก็จะทำการโหลดสถานะที่ได้บันทึก เพื่อนำมาทำงานต่อ ให้เกิดความต่อเนื่อง และจะสลับวิธีการนี้ไปเรื่อยๆ เมื่อมีการเปลี่ยนตัวงาน

--

--

Nutchasan Jantarah

Faculty of Computer Engineering at Prince Of Songkla University