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