Όταν ένας χρήστης ξεκινά μια εφαρμογή, όπως ένα πρόγραμμα περιήγησης στο Web , η αίτηση γίνεται μια διεργασία που εκτελείται στο λειτουργικό σύστημα . Πριν από την εκτέλεση , ένα πρόγραμμα που απλά κατοικεί ως δεδομένα στο σκληρό δίσκο . Όταν εκτελεστεί , το λειτουργικό σύστημα φορτώνει το πρόγραμμα στην κύρια μνήμη , ή RAM . Όλες οι εφαρμογές που τρέχουν δώσει χώρο στη μνήμη RAM από το λειτουργικό σύστημα ενώ θα τρέχει . Ενώ τρέχει το λειτουργικό σύστημα παρακολουθεί τις διαδικασίες εφαρμογής μέσω ενός πίνακα διαδικασία που περιγράφει την κατάσταση της διαδικασίας και εφόσον κατοικεί στη μνήμη .
Εικόνων Διεργασίες ωοτοκία
Η
διεργασίες μπορούν αναπαράγονται άλλες διαδικασίες που προορίζονται να εκτελούν ταυτόχρονη εργασία κατά τη διάρκεια της εκτέλεσης του προγράμματος . Αυτό το " πολυ " επιτρέπει στα προγράμματα να χειριστεί πολλές διαφορετικές εργασίες ταυτόχρονα . Ένα πρόγραμμα σε Python , για παράδειγμα , μπορεί να γεννούν μια ξεχωριστή διαδικασία χρησιμοποιώντας το " πολυ-επεξεργασία" της βιβλιοθήκης και του «Διαδικασία» αντικείμενο , όπως στο ακόλουθο παράδειγμα :
από πολυ Διαδικασία εισαγωγής
os εισαγωγής
def hello ( ) :
print (' Hello ' )
p = Process ( target = γεια )
p.start ( ) //ξεκινά η διαδικασία του παιδιού " p"
Η Διεργασίες Κάνοντας Εργασία
Η
Μια διαδικασία παιδιού, δεδομένου κάποια εργασία , θα εκτελέσει το έργο αυτό , ενώ η μητρική διεργασία εκτελεί την αποστολή της . Στο παρακάτω παράδειγμα , ένα πρόγραμμα Python γεννά μια διαδικασία , και τόσο η διαδικασία μητρική και η θυγατρική διεργασία καλέσει την ίδια μέθοδο " os.getpid ( ) " , η οποία επιστρέφει την αριθμητική ταυτότητα της τρέχουσας διαδικασίας :
def PID ( ) :
print (' Είμαι Διαδικασία : ' , os.getpid ( ) )
p = Process ( target = PID )
p.start ( )
print (' Είμαι διαδικασία : ' , os.getpid ( ) )
p.join ( ) //τερματίζει τη διαδικασία « p»
η έξοδος από αυτά δύο διαδικασίες είναι ως ακολούθως. Σημειώστε ότι η μητρική "print " εντολή με τη "διαδικασία " πεζά συνήθως εκτελείται για πρώτη φορά
Είμαι διαδικασία : . 57883
είμαι Διαδικασία : 57884
εικόνων Sharing τα δεδομένα ανάμεσα Διεργασίες
Η
δύο διαδικασίες μπορούν επίσης να μοιραστούν δεδομένα μεταξύ τους με ένα " σωλήνα " αντικείμενο που δημιουργεί μια σύνδεση μεταξύ των δύο διαδικασιών . Χρησιμοποιώντας αυτά τα αντικείμενα σύνδεσης , μια διαδικασία που το παιδί μπορεί να στείλει τα δεδομένα σε έναν γονέα διαδικασία , επιτρέποντας τη γονική διεργασία να χειραγωγήσουν ή να εκτυπώσετε τα αποθηκευμένα δεδομένα . Το ακόλουθο παράδειγμα δείχνει την χρήση του αντικειμένου Pipe :
def στείλει ( το παιδί ) :
child.send ( [ 1 , 2 , 3 ] ) //η εξαρτημένη διεργασία στέλνει τα δεδομένα όταν εκτέλεσης
child.close ( )
αν __ name__ == ' __main__ » :
γονέας , το παιδί = Pipe ( )
p = Process (στόχος = f , args = ( παιδί , ) )
p.start ( )
parent.recv print ( ) //μητρική διαδικασία λαμβάνει δεδομένα από το παιδί
p.join
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα