21. Παράδειγμα κύκλου ζωής διεργασίας
Ο προσομοιωτής
αυτός περιγράφει ένα παράδειγμα κύκλου ζωής διεργασίας. Κατά τη διάρκεια ζωής
της μια διεργασία αλλάζει διάφορες καταστάσεις.
Οι μεταπτώσεις ανάμεσα στις καταστάσεις συμβαίνουν εξαιτίας διάφορων
γεγονότων.
Η αρχική κατάσταση μιας διεργασίας είναι “new”. H μετάβαση “Admitted” παραδίδει τη
διεργασία στον scheduler και αυτή έρχεται σε
κατάσταση «ready». Στη συνέχεια η μετάβαση
“Scheduler Dispatch”, φέρνει τη διεργασία σε “running”
state. Από την ώρα που έχει δρομολογηθεί η λειτουργία
της και είναι σε “running” state
υπάρχουν 3 επιλογές: να δεχθεί κάποιο «Interrupt», να
ζητήσει έσοδο/έξοδο ή να περιμένει ένα
γεγονός («Ι/Ο or wait event»), είτε να τερματίσει “Exit”.
Σε περίπτωση που δεχτεί “Interrupt”, επιστρέφει σε κατάσταση “ready”
. Στη 2η περίπτωση, έρχεται σε κατάσταση “waiting”
και περιμένει να τελειώσει η είσοδος/έξοδος. Στη συνέχεια η μοναδική επιλογή
“I/Ο or event completion” προσομοιάζει την ολοκλήρωση του I/O και η
διεργασία επιστρέφει σε κατάσταση “ready”.
Η τελική κατάσταση της
διεργασίας είναι η “terminated” η οποία συμβαίνει
όταν ο χρήστης επιλεγεί η μετάβαση “exit” και εφόσον η διεργασία είναι σε κατάσταση “running”.