การสลับการทำงานของซีพียู (Context Switch)

การสลับการทำงานของซีพียู (Context Switch)   หมายถึง   การที่ CPU สลับไปประมวลผลโปรเซส

(process) อื่นโดยจะทำการบันทึก (save)  สถานะของโปรเซสปัจจุบันเอาไว้  จากนั้นจะเรียก (load) สถานะที่ถูกบันทึกไว้กลับขึ้นมาประมวลผลต่ออีกครั้งเมื่อย้อนกลับมาทำงานเดิม   เมื่อโปรเซสเซอร์ (processor)  ประมวลผลโปรเซสเสร็จก็จะสลับไปยังโปรเซสอื่นถัดไปที่อยู่ในคิว (Queue)

ระหว่างที่ CPU สลับการประมวลผลนั้น  (switch)  CPU จะว่าง ไม่มีการทำงาน ซึ่งเวลาระหว่างนี้จะสูญ

เปล่า เวลาที่ใช้ในการสลับจะเปลี่ยนไปตามเครื่อง ซึ่งขึ้นอยู่กับความเร็วของหน่วยความจำจำนวน รีจีสเตอร์ (Register)  ที่ถูกคัดลอก (copy) และคำสั่งพิเศษที่มีอยู่ในระบบ

                ดังนั้นการสลับการทำงาน (context switch)  จึงขึ้นอยู่การสนับสนุน (support)  ของฮาร์ดแวร์ด้วยเช่น โปรเซสเซอร์บางตัวมีรีจีสเตอร์อยู่หลายชุดก็จะเปลี่ยนตัวชี้ (pointer) ไปยังชุดของรีจีสเตอร์แต่หากมีจำนวน โปรเซสมากกว่า ชุดของรีจีสเตอร์  ระบบจะคัดลอกข้อมูลระหว่างรีจีสเตอร์กับหน่วยความจำ

การสลับการทำงานนี้จะเข้ามาแก้ปัญหาคอขวดของระบบ (performance bottleneck)  ซึ่งการใช้

context switch กลายเป็นสิ่งที่เพิ่มประสิทธิภาพให้กับระบบ  เกิดเป็นโครงสร้างใหม่ที่เรียกว่าเธรด (threads) ที่ใช้เพื่อหลีกเลี่ยงปัญหาคอขวด

 

·        การสร้างและจบการทำงานของโปรเซส

การทำงานของโปรเซส (Operations on Processes)

                โปรเซสสามารถทำงานภายในระบบไปได้พร้อม  ๆกัน โดยจะต้องมีโปรเซสหนึ่งถูกสร้าง และมีอีกโปรเซสหนึ่งถูกลบออกจากระบบ   ซึ่งการสร้งโปรเซสนั้น (Process creation) จะมีโปรเซสแม่ (parent)  โปรเซสลูก (child)  โดยจะเป็นโครงสร้างแบบต้นไม้ (tree of processes)  ส่วนการจบการทำงานของโปรเซส (Process termination)  จะจบการทำงานเมื่อโปรเซสถูกประมวลผลคำสั่งเสร็จสิ้น หรือเมื่อโปรเซสแม่จบการทำงานก็จะส่งผลให้โปรเซสลูกจบการทำงานด้วย  หรือบางครั้งโปรเซสลูกใช้เวลาหรือทรัพยากรมากไปก็จะส่งผลให้จบการทำงานโดยการจัดการของ OS

 

การสร้างโปรเซส (Process Creation)

-                    เมื่อมีงานเข้ามาในระบบ (Submission of a batch job)

-                    เมื่อผู้ใช้ล๊อกออนเข้าสู่ระบบ (User logs on)

-                    เมื่อมีการเรียกใช้หรือจัดเตรียมบริการต่าง ๆ ของระบบ เช่น มีคำสั่งพิมพ์งานออกทางเครื่องพิมพ์ (printing)

-                    เมื่อโปรเซสถูกสร้างโดยโปรเซสอื่น (Process creates another process)