Tạo lập tiến trình: Cấp phát tài nguyên cho tiến trình con ? Hoạt động của cha và con độc lập Kết thúc tiến trình : Thu hồi tài nguyên ? Ep buộc kết thúc ? Thay đổi trạng thái tiến trình : Assign(), Block(), Awake(), Resume(), Suspend() | Baøi 3 : QUAÛN LYÙ TIEÁN TRÌNH Phaân chia CPU cho caùc tieán trình ? Tieáp caän Muïc tieâu ? Toå chöùc ? Chieán löôïc ? Traïng thaùi tieán trình ? Löu tröõ thoâng tin tieán trình ? Caùc thao taùc treân tieán trình ? Baûo veä tieán trình ? Trao ñoåi thoâng tin giöõa caùc tieán trình ? Phaân chia CPU ? 1 CPU vaät lyù : laøm theá naøo ñeå taïo aûo giaùc moãi tieán trình sôû höõu CPU rieâng cuûa mình ? Dispatcher luaân chuyeån CPU giöõa caùc tieán trình: Ngöõ caûnh xöû lyù rieâng bieät cho moãi tieán trình (PCB) Dispatching loop : CPU while(1) { interrupt Pcur save state Pcur Scheduler gets Pnext load state Pnext jump to it } Traïng thaùi tieán trình ? ready Rs CPU running Rs CPU blocked Rs CPU Nhaän CPU Traû CPU Chôø R Nhaän R Khoái quaûn lyù tieán trình trong moâ hình multiprocesses pid State (State, details) Context (IP, Mem, Files ) Scheduling statistic Relatives ( Dad, children) Process control Block PCB PCB vaø TCB trong moâ hình multithreads pid Threads list Context (Mem, global ressources ) Scheduling statistic Relatives ( Dad, children) PCB tid State (State, details) Context (IP, local stack ) Thread Control Block TCB Caùc thao taùc treân tieán trình Taïo laäp tieán trình : Caáp phaùt taøi nguyeân cho tieán trình con ? Hoaït ñoäng cuûa cha vaø con ñoäc laäp Keát thuùc tieán trình : Thu hoài taøi nguyeân ? Eùp buoäc keát thuùc ? Thay ñoåi traïng thaùi tieán trình : Assign(), Block(), Awake(), Resume(), Suspend() Traïng thaùi tieán trình ? Coù nhu caàu Suspend &Resume : Heä thoáng quaù taûi Kieåm soaùt hoaït ñoäng cuûa tieán trình con An ninh traät töï cho moâi tröôøng ña tieán trình ! Baûo veä tieán trình : Ngaên caûn caùc tieán trình xaâm phaïm taøi nguyeân, can thieäp vaøoxöû lyù cuûa nhau => KGÑC rieâng bieät, 2 mode xöû lyù Baûo ñaûm quyeàn tieán trieån xöû lyù cho moãi tieán trình => coâng baèng trong caùc chieán löôïc phaân phoái taøi nguyeân. Trao ñoåi thoâng tin , phoái hôïp hoaït ñoäng ? Nhu caàu ? Vaán ñeà ? => . | Baøi 3 : QUAÛN LYÙ TIEÁN TRÌNH Phaân chia CPU cho caùc tieán trình ? Tieáp caän Muïc tieâu ? Toå chöùc ? Chieán löôïc ? Traïng thaùi tieán trình ? Löu tröõ thoâng tin tieán trình ? Caùc thao taùc treân tieán trình ? Baûo veä tieán trình ? Trao ñoåi thoâng tin giöõa caùc tieán trình ? Phaân chia CPU ? 1 CPU vaät lyù : laøm theá naøo ñeå taïo aûo giaùc moãi tieán trình sôû höõu CPU rieâng cuûa mình ? Dispatcher luaân chuyeån CPU giöõa caùc tieán trình: Ngöõ caûnh xöû lyù rieâng bieät cho moãi tieán trình (PCB) Dispatching loop : CPU while(1) { interrupt Pcur save state Pcur Scheduler gets Pnext load state Pnext jump to it } Traïng thaùi tieán trình ? ready Rs CPU running Rs CPU blocked Rs CPU Nhaän CPU Traû CPU Chôø R Nhaän R Khoái quaûn lyù tieán trình trong moâ hình multiprocesses pid State (State, details) Context (IP, Mem, Files ) Scheduling statistic Relatives ( Dad, children) Process control Block PCB PCB vaø TCB trong moâ hình multithreads pid Threads list