You are on page 1of 19

บทที่ 4

โปรเซส
Process

Process 1
หัวข้อบรรยาย
 นิ ยามของโปรเซส
 การจัดตารางการทำางานให้กบ
ั โปรเซส
 การดำาเนิ นงานของกระบวนการ
 การทำางานร่วมกันของกระบวนการ
 การสื่อสารระหว่างกระบวนการ

Process 2
นิ ยามของโปรเซส
 โปรแกรมที่กำาลังประมวลผลอย่่
 ระบบแบ๊ท คือ งานหรือ job ต่าง ๆ )
 Time-shared systems –ระบบแบ่งเวลากัน
ทำางาน คือโปรแกรมของผ้ใ่ ช้หรือ task ต่างๆ
 คำาว่า job และ process มักถ่กนำามาใช้ในความ
หมายเดียวกัน
 โปรเซส คือโปรแกรมที่กำาลังถ่กประมวลผลอย่่ซ่ง ึ
ไม่ได้มีความหมายเฉพาะตัวโปรแกรมหรือโค้ด

Process 3
สถานะของโปรเซส
(Process State)
 กระบวนการประมวลผลโปรเซส
 new: สถานะใหม่ คือสถานะของโปรเซสที่ถ่กสร้างขึ้นมาใหม่
 running: สถานะกำาลังประมวลผล คือ สถานะของโปรเซสที่กำาลังถ่กประมวล
ผลอย่ใ่ นขณะนั้ น
 waiting: สถานะรอคอย คือสถานะที่บอกให้ทราบว่าโปรเซสนั้ นหยุดการประมวล
ผลชัว่ คราว เพื่อรอเหตุการณ์บางอย่าง
 ready: สถานะพร้อมคือ สถานะของโปรเซสที่รอคอยการประมวลผลโดยซีพย ี ่
 terminated: สถานะสิ้นสุด คือสถานะที่โปรเซสหยุดการประมวลผลแล้ว

Process 4
Diagram ของ Process State

Process 5
Process Control Block
(PCB)
ข้อม่ลสำาหรับระบบปฏิบัตก ิ ารแต่ละระบบ
 สถานะการทำางานของโปรเซส
 Program counter- เป็ นรีจิสเตอร์ตัวหนึ่ งที่ทำา
หน้าที่จัดเก็บตำาแหน่ง
 CPU registers-เป็ นการสร้างสำาเนาจัดเก็บค่าง
ของรีจิสเตอร์ชนิ ดต่าง ๆ
 CPU scheduling information-ข้อม่ลเกี่ยวกับ
การจัดตารางการทำางานให้กบ ั โปรเซส

Process 6
Process Control Block
(PCB)

Process 7
CPU Switch จาก Process to
Process

Process 8
Process Scheduling Queues
 Job queue – แถวคอยสำาหรับงานใหม่ คือ แถวคอยที่
ประกอบด้วยโปรเซสที่มอี ย่่ในระบบ
 Ready queue –แถวคอยสำาหรับงานที่พร้อมประมวลผล
ประกอบด้วยโปรเซสที่ถ่กนำาเข้ามาไว้ในหน่วยความ
จำาหลัก และมีความพร้อมที่จะประมวลผลได้

Process 9
Ready Queue และ Various
I/O Device Queues

Process 10
ลักษณะ Process Scheduling

Process 11
ตัว Schedulers
 Long-term scheduler (or job scheduler) –ตัวจัดตารางการทำางานระยะยาว ทำาหน้าที่เลือกโปรเซสจากในแถว
คอยสำาหรับงานใหม่ เพื่อนำาเข้าส่่แถวคอยสำาหรับงานที่พร้อมประมวลผล
 Short-term scheduler (or CPU scheduler) –ตัวจัดตารางการทำางานระยะสั้น ทำาหน้าที่เลือกโปรเซสจากในแถว
คอยสำาหรับงานที่พร้อมประมวลผล เพื่อส่งให้ซีพียท ่ ำาการประมวลผล

Process 12
ตัว Schedulers (ต่อ)
 Short-term scheduler ตารางระยะสั้นจะต้องทำางาน
เลือกกระบวนการบ่อย ทำางานได้เร็วมาก
 Long-term scheduler ตารางระยะยาวใช้เวลาทำางาน
เป็ นส่วนใหญ่ ทำางานช้า
 The long-term scheduler ตารางระยะยาวจะเป็ นตัว
ควบคุมเวลาให้สมดุลกัน

Process 13
การทำา Context Switch
 เกิดขึ้นเมื่อซีพีย่สลับการประมวลผลโปรเซสปั จจุบันไปประมวลผลโปรเซ
สอื่น แล้วทำาการอ่านค่าตัวแปรสำาหรับการประมวลผลของโปรเซสใหม่เข้ามา
แทนที่ก่อนที่จะเริม ่ ทำาการประมวลผลโปรเซสใหม่น้ ั น
 ระยะเวลาที่ใช้ในการทำาคอนเท็กซ์สวิทซ์ถอ ื ว่าเป็ นค่าดำาเนิ นการ คือในช่วง
เวลานี้ จะไม่มีการประมวลผลโปรเซสใด ๆ ของผ้่ใช้เกิดขึ้น
 เป็ นการทำางานโดยใช้ฮาร์ดแวร์ เพื่อทำาให้เสร็จโดยเร็วที่สด ุ

Process 14
Process Creation
 โปรเซสหนึ่ งสามารถสร้างโปรเซสล่กขึ้นมาได้ซ่ึงโปรเซสนั้ น
จะกลายสภาพเป็ นโปรเซสพ่อ โปรเซสล่กก็อาจสร้างโปรเซ
สล่กได้เรื่อย ๆ กลายเป็ น a tree of processes
 การใช้ทรัพยากรร่วมกัน
 โปรเซสพ่อและโปรเซสล่กจะใช้ทรัพยากรทั้งหมดร่วมกัน
 โปรเซสล่กจะใช้ทรัพยากรเพียงบางส่วนร่วมกับโปรเซสพ่อ
 ทั้งโปรเซสพ่อและล่กจะไม่ใช้ทรัพยากรร่วมกันเลย
 การประมวลผล
 โปรเซสพ่อและโปรเซสล่กทำาการประมวลผลแบบค่่ขนาน
 โปรเซสพ่อจะหยุดการประมวลผลเพื่อรอจนกว่าโปรเซ
สล่กจะประมวลผลเสร็จเสียก่อน

Process 15
Process Creation (ต่อ)
 การใช้เนื้ อที่หน่วยความจำา
 โปรเซสล่กคือโปรเซสที่คด ั ลอกมาจากโปรเซสพ่อ
 โปรเซสล่ก คือโปรแกรมอื่นที่ถก ่ อ่านขึ้นมา
 ตัวอย่างบน UNIX
 fork system call เป็ นคำาสัง ่ ที่เพื่อเรียกโปรแกรม
อื่นๆ
 exec system call เป็ นคำาสัง ่ ในระบบ Unix ภายหลัง
จากที่ใช้คำาสัง่ fork เพื่อเรียกโปรแกรมใหม่

Process 16
Processes Tree บน
UNIX System

Process 17
Process Termination
 การสิ้นสุดการทำางานของโปรเซส เกิดขึ้นเมื่อโปรเซ
สประมวลผลคำาสัง่ สุดท้ายแล้วร้องขอให้ระบบกำาจัด
โปรเซสทิ้งไป
 ทำาการส่งผลลัพธ์จากโปรเซสล่กกลับไปยังโปร
เซสพ่อ
 ทรัพยากรของโปรเซสนั้ นจะถ่กส่งคืนให้แก่ระบบ
ปฏิบตั ก
ิ าร

Process 18
Cooperating Processes
 Independent process - โปรเซสที่เป็ นอิสระจะประมวล
ผลได้โดยอิสระจากโปรเซสอื่น และไม่สามารถรบกวน
หรือถ่กรบกวนการทำางานของโปรเซสอื่นได้
 Cooperating process - โปรเซสที่ทำางานร่วมกับโปรเซ
สอื่นจึงอาจมีผลกระทบหรือถ่กกระทบจากโปรเซสอื่น
ได้

Process 19