ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
กระบวนการ (Process)
2
Process คืออะไร Concept
โปรแกรมที่ “กำลัง” ทำงาน โปรแกรม คือ “ไฟล์” ที่เก็บอยู่ในสื่อสำรองข้อมูล แต่ Process คือการโหลดไฟล์นั้นเข้าไปใน RAM แล้ว สามารถ “สั่ง” CPU ให้ทำงานได้ เรียงตามลำดับ RAM ไฟล์ .exe One by one CPU
3
Process เมื่ออยู่ใน Main Memory
4
โปรเซสเมื่ออยู่ใน RAM สามารถตาม (Trace) ได้
5
เมื่อสลับกันทำงานแล้ว Trace มัน
Dispatcher เป็น Process ของ O.S.
6
หน้าที่ของ OS ต่อโปรเซส
ให้โปรเซสสามารถเข้าไป Run ได้ เก็บรักษาข้อมูลที่เกี่ยวกับโปรเซสแต่ละตัว ให้บริการ, ให้ทรัพยากรแก่โปรเซส ให้โปรเซสสามารถทำงานหลายตัวได้ (Multi-tasking) ทำการ Load และ Unload โปรเซส ทำการ Kill โปรเซส (End Task) สร้าง Background โปรเซส (Daemon Process) สื่อสารระหว่างโปรเซส (Interprocess Communication)
7
หน้าที่ของโปรเซส สั่งการ CPU เรียงตามลำดับ ไหล (Flow) ไปเรื่อยๆ
จะเริ่มจากคำสั่งแรก (Entry Point) เสมอ การไหลไม่จำเป็นต้องไหลแบบ Sequential เสมอไป สามารถกระโดดไป - มาได้ เมื่อมีการเรียกใช้ทรัพยากร จะต้องมีการหยุดรอ Entry Point Jump Wait End
8
สถานะของโปรเซส Ready Queue Dispatch Running Ready Time out End admit
Terminated New wait Wake up Waiting Waiting Queue
9
Ready Queue โปรเซสที่เตรียมพร้อมที่จะเข้าไปทำงานใน CPU จะรอคอยอยู่ใน Queue นี้ ***เป็นการ Link ระหว่าง PCB ของแต่ละโปรเซส
10
การสลับกันทำงาน
11
โปรเซสเกิดขึ้นได้อย่างไร
User สั่งให้ทำงาน เมื่อ User ทำการ Log in เข้าในระบบ (Multi-user) เมื่อมีบริการต่างๆ เช่นการพิมพ์งาน เป็นต้น โปรเซสสร้างโปรเซสอีกอันหนึ่ง โปรเซสลูก Fork
12
โปรเซสจบการทำงานได้อย่างไร
โปรเซสจบการทำงานโดยปกติ (รันคำสั่ง END) User ทำการ Log out ออกจากระบบ User สั่งให้จบการทำงาน (คำสั่ง Quit) เกิด Error หรือ ภาวะ Fault
13
Process Control Block (PCB)
จะเก็บข้อมูลทุกๆอย่างที่เกี่ยวข้องกับโปรเซสนั้นๆ OS รู้จักโปรเซสได้จาก PCB นี้ PCB โปรเซส
14
ข้อมูลภายใน PCB ค่า I.D. ของโปรเซส (เป็นตัวเลขที่ไม่ซ้ำกัน)
ข้อมูลที่คัดลอกมาจากใน Registers ทุกๆตัวเมื่อโปรเซสทำงาน สถานะของโปรเซส Stack ของโปรเซส pointer ที่ชี้ไปที่โปรเซสอื่น (Ready Queue) ไฟล์ที่โปรเซสใช้ (ไฟล์พอยน์เตอร์)
15
การทำงานแบบ Multi-tasking
เป็นการสลับกันทำงานของโปรเซสหลายๆโปรเซส เมื่อทำอย่างรวดเร็วก็จะเหมือนว่าทำงานพร้อมกัน มี 2 แบบ Non Preemptive Multi-tasking CPU จะไม่ควบคุมการทำงาน Preemptive Multi-tasking CPU ควบคุมการทำงาน (ใช้ Time Slice)
16
เกิดปัญหาอะไรบ้างเมื่อจะต้องสลับการทำงานของโปรเซส
หากมีโปรเซสเดียวในระบบก็ไม่มีปัญหา มันจะรันไปเรื่อยๆ แต่หากมีหลายโปรเซสก็ต้องสลับกันทำงาน จะต้องสามารถ Save งานเก่าไว้ได้ เพื่อกับมาทำต่อได้ Time out! Can be continued Time out!
17
การ Save และ Restore จะทำได้อย่างไร
ในความเป็นจริงแล้ว การทำงานของโปรเซสจะเกิดขึ้นใน Register ต่างๆ (PC เป็นตัวชี้แอดเดรสของคำสั่งที่กำลังทำงานอยู่) จากที่กล่าวมาแล้วว่าทุกๆโปรเซสจะมี PCB ของมันเอง เราสามารถใช้ PCB มาเป็นตัว Save “ข้อมูล” ทั้งหมดใน Register ทุกๆตัวได้ ดังนั้น เมื่อกลับมาทำใหม่ ก็สามารถโหลดข้อมูลจาก PCB เข้าไปใน Register ต่างๆได้
18
ภาพอธิบาย Save Restore PCB2 PCB1 copy 001000010100 CPU 0010 registers
Time out! PC
19
Context Switch เหตุการณ์ที่เกิดขึ้นในหน้าที่แล้วเรียกว่า Context Switch Context -> บริบท (ข้อมูลที่อธิบายโปรเซส) Switch -> สลับ ดังนั้น เมื่อเราสลับโปรเซส ก็เท่ากับสลับบริบทต่างๆของโปรเซสไปด้วย ดังนั้น เมื่อมีการ Context Switch ระบบจะทำงานช้าลง เพราะCPU ต้องใช้เวลาไปกับการ Copy ข้อมูล (Save และ Restore)
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.