RAWI JAEMPINIT awe412@gmail.com
การจัดการ Process
“ ง30202 ระบบปฏิบัติการ”
ผลการเรียนรู้ที่คาดหวัง
นักเรียนสามารถบอกการ
“ ง30202 ระบบปฏิบัติการ”
วัตถุประสงค์การเรียนรู้
เพื่อท าความเข้าใจเกี่ยวกับองค์ประกอบของโปรเซส
คุณสมบัติของโปรเซส
สถานะของโปรเซส
การติดต่อระหว่างโปรเซส (Interprocess
communication)
การเข้าจังหวะของโปรเซส (Process Synchronization)
ปัญหาการท างานของโปรเซส
“ ง30202 ระบบปฏิบัติการ”
Agenda
Computer System Operation
I/O Structure
Storage Structure
Storage Hierarchy ล าดับขั้นของหน่วยเก็บข้อมูล
Hardware Protection
“ ง30202 ระบบปฏิบัติการ”
การจัดการโปรเซส Process Management
•
โปรเซส หมายถึง โปรแกรมที่ก าลังเอ็กซิคิวต์อยู่•
ในขณะที่โปรเซสก าลังเอ็กซิคิวต์อยู่นั้นจะมีการใช้ทรัพยากร (Resource) ของระบบ เช่น CPU, หน่วยความจ า, ไฟล์, อุปกรณ์ อินพุต/เอาต์พุต•
ในระบบ Multiprogramming อาจประกอบด้วยโปรเซส มากมาย•
OS จึงมีหน้าที่ในการจัดการโปรเซสในระบบทั้งหมด ไม่ว่าจะ เป็นการสร้าง ลบ การจัดเวลา การจัดจังหวะและการ ติดต่อสื่อสารภายในโปรเซส“ ง30202 ระบบปฏิบัติการ”
องค์ประกอบของโปรเซส
• โปรเซสที่สมบูรณ์มีองค์ประกอบดังนี้ 1. ชื่อและหมายเลขโปรเซส (Process ID) • เป็นหมายเลขประจ าโปรเซสเพื่อก าหนดล าดับการเอ็กซีคิ้วต์ 2. โค้ดโปรแกรม (Program code) เป็นโค้ดค าสั่งที่เป็นภาษาเครื่องที่ สามารถเอ็กซิคิวต์ได้ทันที 3. ข้อมูล (Data) เป็นข้อมูลของโปรเซสหนึ่ง หรืออาจใช้ร่วมกับ โปรเซสอื่น ๆ ก็ได้ 4. บล็อกควบคุมโปรเซส (Process Control Block : PCB)
• เป็นเนื้อที่ของหน่วยความจ าที่ระบบปฏิบัติการก าหนดไว้เพื่อเก็บข้อมูลที่ ส าคัญของโปรเซสไว้
“ ง30202 ระบบปฏิบัติการ”
องค์ประกอบของโปรเซส
5. PSW (Program Status Word) เป็นตัวควบคุมล าดับ
การ เอ็กซิคิวต์ค าสั่งของโปรเซส และเก็บข้อมูลเกี่ยวกับ
สถานะของโปรเซส ที่อยู่ของค าสั่งที่จะเอ็กซิคิวต์ต่อไป
6. คุณสมบัติของโปรเซส
ล าดับความส าคัญของโปรเซส (Priority) อ านาจหน้าที่ของโปรเซส (Authority) คุณสมบัติอื่น ๆ“ ง30202 ระบบปฏิบัติการ”
บล็อกควบคุมโปรเซส (Process Control Block : PCB)
OS จะก าหนดเนื้อที่บางส่วนในหน่วยความจ าเพื่อ
ท าเป็น PCB
พอยเตอร์ สถานะโปรเซส หมายเลขโปรเซส รีจิสเตอร์ ข้อมูลการจัดเวลา ข้อมูลหน่วยความจ า ข้อมูลแอ็กเคาต์ ข้อมูลสถานะ I/O :“ ง30202 ระบบปฏิบัติการ”
(Process Control Block : PCB)
พอยเตอร์(Pointer) ส าหรับชี้ต าแหน่งของโปรเซสที่อยู่
ในหน่วยความจ า และต าแหน่งของทรัพยากรที่โปรเซส
ครอบครองอยู่
สถานะของโปรเซส(Process Status) แสดงสถานะของ
โปรเซสที่เป็นอยู่ในปัจจุบัน
9“ ง30202 ระบบปฏิบัติการ”
(Process Control Block : PCB)
หมายเลขโปรเซส(Process ID) เป็นหมายเลข
ประจ าตัวของโปรเซส
ตัวนับจ านวน(Program Counter) เป็นตัวนับที่
แสดงที่อยู่ของค าสั่งต่อไปที่จะถูกประมวลผล
“ ง30202 ระบบปฏิบัติการ”
(Process Control Block : PCB)
o
รีจิสเตอร์(Register)
ท าหน้าที่เก็บข้อมูลสถานะระบบเมื่อ
มีอินเทอร์รัพเกิดขึ้นเพื่อท าให้โปรแกรมสามารถท างาน
ต่อไปได้เมื่อกลับมาท างานอีกครั้ง
รีจิสเตอร์จะมีค่าและ
ประเภทที่เปลี่ยนแปลงได้ขึ้นอยู่กับสถาปัตยกรรมของ
คอมพิวเตอร์ ประเภทของรีจิสเตอร์คือ Accumulator,
Index, Stack Pointer และรีจิสเตอร์ทั่วไป
“ ง30202 ระบบปฏิบัติการ”
(Process Control Block : PCB)
o
ตัวจัดล าดับงานซีพียู(CPU Scheduling Information)
เป็นข้อมูลที่
ประกอบด้วยล าดับความส าคัญของโปรเซส
ที่ถูกก าหนดโดยระบบปฏิบัติการเมื่อโปรเซสถูกสร้าง
ขึ้นมา สามารถเปลี่ยนค่าไปได้ ซึ่งโปรเซสใดที่มี
ความส าคัญมากระบบปฏิบัติการจะให้สิทธิมากกว่า
โปรเซสอื่น เช่นให้เวลาซีพียูนานกว่า
เป็นต้น
12“ ง30202 ระบบปฏิบัติการ”
(Process Control Block : PCB)
o
ตัวจัดการหน่วยความจ า(Memory Management
Information) เป็นข้อมูลเกี่ยวกับหน่วยความจ าที่
ระบบปฏิบัติการก าหนดไว้ เช่นขนาด
หน่วยความจ า, ค่าของรีจิสเตอร์, Page table และ
Segment table เป็นต้น
13“ ง30202 ระบบปฏิบัติการ”
(Process Control Block : PCB)
ข้อมูลแอ็กเคาต์(Account Information) เป็นข้อมูลที่
อาจประกอบด้วยจ านวน CPU, เวลาที่ก าหนด, หมาย
เลขแอ็กเคาต์, หมายเลขโปรเซส และอื่นๆ
ข้อมูลสถานะอินพุต/เอาต์พุต(I/O Status
Information) เป็นข้อมูล
แสดงรายการของอุปกรณ์
อินพุต/เอาต์พุตที่โปรเซสนี้ใช้
เป็นต้น
14“ ง30202 ระบบปฏิบัติการ” คุณสมบัติของโปรเซส ล ำดับควำมส ำคัญของโปรเซส (Priority) โดยเมื่อโปรเซสถูก สร้างขึ้นมา ล าดับความส าคัญของโปรเซสจะถูกก าหนดโดย ระบบปฏิบัติทันที สามารถเปลี่ยนค่าไปได้ ซึ่งโปรเซสใดที่มี ความส าคัญมากระบบปฏิบัติการจะให้สิทธิมากกว่าโปรเซสอื่น อ ำนำจหน้ำที่ของโปรเซส (Authority) เป็นการบอกอ านาจหน้าที่ ของโปรเซสนั้นว่าสามารถท าอะไรได้บ้าง ใช้อุปกรณ์อะไรได้บ้าง เป็นต้น คุณสมบัติอื่น ที่ระบบปฏิบัติการก าหนดให้มี 15
“ ง30202 ระบบปฏิบัติการ”
สถานะของโปรเซส
ในขณะที่เอ็กซิคิวต์โปรเซสอยู่นั้น โปรเซสจะมีการเปลี่ยนแปลง สถานะอยู่ตลอดเวลาสามารถแบ่งสถานะดังนี้
สถานะเริ่มต้น (New) เป็นสถานะที่เริ่มต้นสร้างโปรเซส
สถานะพร้อม (Ready) เป็นสถานะที่พร้อมจะครอบครองซีพียู แต่ยังไม่มีการรัน
สถานะรัน (Running) เป็นสถานะที่โปรเซสเข้าครอบครองซีพียู และมีการเอ็กซิคิวต์ค าสั่งในโปรแกรมของโปรเซส“ ง30202 ระบบปฏิบัติการ”
สถานะของโปรเซส (ต่อ)
สถานะรอ (Wait) เป็นสถานะที่โปรเซสก าลังรอเหตุการณ์บางอย่าง เช่น การรอสัญญาณ การจัดการอินพุต/เอาต์พุตดีไวซ์ สถานะบล็อก (Block) เป็นสถานะที่โปรเซสต้องการใช้อุปกรณ์ อินพุต/เอาต์พุต หรือเกิดอินเทอร์รัพต์ระหว่างที่รันโปรเซส ซึ่ง จะต้องรอให้มีการจัดการอุปกรณ์อินพุต/เอาต์พุต หรือจัดการอิน เทอร์รัพต์ให้เรียบร้อยก่อนจะกลับไปสถานะรันได้ต่อไป สถานะสิ้นสุด (Terminate) เป็นสถานะที่หยุดนิ่งอันเกิดจาก โปรเซสถูกเอ็กซิคิวต์หมดทุกค าสั่งในโปรแกรมแล้ว“ ง30202 ระบบปฏิบัติการ”
สถานะของโปรเซส (ต่อ)
เริ่มต้น new รัน Running บล็อก Block พร้อม Ready รอ Wait สิ้นสุด Terminate ยอมรับให้ท างาน อินพุต/เอาท์พุต หรืออีเวนต์เสร็จแล้ว รออินพุต/เอาต์พุต หรืออีเวนต์ ท างานเสร็จสิ้นแล้ว อินเทอร์รัพต์ Scheduler dispatch“ ง30202 ระบบปฏิบัติการ”
ขั้นตอนการเปลี่ยนสถานะของโปรเซส
เมื่อผู้ใช้ต้องการส่งงานให้เครื่องคอมพิวเตอร์ท างาน OS จะเป็นผู้ที่รับทราบ ความต้องการนี้ และจะเตรียมสร้างโปรเซสให้กับงานใหม่ที่ถูกส่งเข้ามา OS จะต้องพิจารณาว่าเนื้อที่หน่วยความจ าหลักของระบบมีเพียงพอหรือไม่ ถ้าเพียงพอก็จะท าการสร้างโปรเซสใหม่โดยเก็บไว้ในหน่วยความจ าหลัก ถ้าไม่เพียงพอก็จะต้องรอจนกว่าจะมีโปรเซสอื่นจบลงและมีเนื้อที่ใน หน่วยความจ าเหลือมากพอ เมื่อโปรเซสถูกสร้างขึ้นมาใหม่จะอยู่ในสถานะพร้อมก่อน ยังไม่สามารถเข้า ไปใช้งาน CPU ได้“ ง30202 ระบบปฏิบัติการ”
ขั้นตอนการเปลี่ยนสถานะของโปรเซส(ต่อ)
สาเหตุที่โปรเซสไม่สามารถเข้าใช้งาน CPU ได้ทันที เนื่องจากระบบคอมพิวเตอร์ในปัจจุบันเป็นระบบที่มีผู้ใช้หลายคนใน เวลาเดียวกัน ท าให้มีโปรเซสมากมายเกิดขึ้น ซึ่งโปรเซสเหล่านี้ต้องการใช้ CPU ทั้งสิ้น ต้องมีการจัดคิวและแจ้งสถานะพร้อมให้กับโปรเซสไว้ก่อน เมื่อโปรเซสที่ใช้งาน CPU ท างานเสร็จสิ้นหรือถูกยกเลิก ท าให้ CPU จะ ว่าง โปรเซสต่อไปที่อยู่ในคิวก็จะเลื่อนเข้าไปใช้ CPU (เปลี่ยนสถานะจาก พร้อมเป็นสถานะรัน) เหตุการณ์ทั้งหมดตัวที่ควบคุมการท างานคือ OS