The present invention provides predictable scheduling of programs using a
repeating precomputed schedule. In a preferred embodiment, a scheduler
accesses an activity scheduling graph. The activity scheduling graph is
comprised of nodes each representing a recurring execution interval, and
has one root, one or more leaves, and at least one path from the root to
each leaf. Each node is on at least one path from the root to a leaf, and
the number of times the execution interval represented by each node occurs
during the traversal of the graph is equal to the number of paths from the
root to a leaf that the node is on. Each node has associated with it an
execution interval length, and is adapted to being dedicated to executing
the threads of a single activity. The scheduler first selects a current
node within the accessed scheduling graph. When the processor becomes
available to execute threads, the scheduler advances from the current node
to a new current node in accordance with a root-to-leaf traversal of the
scheduling graph. After advancing to the new current node, the scheduler
executes one or more threads of the activity to which the new current node
is dedicated for the execution interval length associated with the new
current node. In a further preferred embodiment, the scheduler allocates
specific iterations through specific nodes to satisfy the constraints
submitted by threads.
Η παρούσα εφεύρεση παρέχει ότι ο προβλέψιμος σχεδιασμός των προγραμμάτων που χρησιμοποιούν μια επανάληψη το πρόγραμμα. Σε μια προτιμημένη ενσωμάτωση, ένας χρονοπρογραμματιστής έχει πρόσβαση σε μια δραστηριότητα σχεδιάζοντας τη γραφική παράσταση. Η δραστηριότητα που σχεδιάζει τη γραφική παράσταση αποτελείται από τους κόμβους κάθε μια που αντιπροσωπεύει ένα επαναλαμβανόμενο διάστημα εκτέλεσης, και έχει μια ρίζα, ένα ή περισσότερα φύλλα, και τουλάχιστον μια πορεία από τη ρίζα σε κάθε φύλλο. Κάθε κόμβος είναι τουλάχιστον σε μια πορεία από τη ρίζα σε ένα φύλλο, και ο αριθμός χρόνων που το διάστημα εκτέλεσης που αντιπροσωπεύεται από κάθε κόμβο εμφανίζεται κατά τη διάρκεια του traversal της γραφικής παράστασης είναι ίσος με τον αριθμό πορειών από τη ρίζα σε ένα φύλλο ότι ο κόμβος είναι ανοικτός. Κάθε κόμβος έχει συνδέσει με τον ένα μήκος διαστήματος εκτέλεσης, και προσαρμόζεται στην αφιέρωση στην εκτέλεση των νημάτων μιας ενιαίας δραστηριότητας. Ο χρονοπρογραμματιστής επιλέγει αρχικά έναν τρέχοντα κόμβο μέσα στην προσεγγισμένη γραφική παράσταση σχεδιασμού. Όταν ο επεξεργαστής διατίθεται για να εκτελέσει τα νήματα, ο χρονοπρογραμματιστής προωθεί από τον τρέχοντα κόμβο σε έναν νέο τρέχοντα κόμβο σύμφωνα με ένα ρίζα-$$$-ΦΎΛΛΟ traversal της γραφικής παράστασης σχεδιασμού. Μετά από να προωθήσει στο νέο τρέχοντα κόμβο, ο χρονοπρογραμματιστής εκτελεί ένα ή περισσότερα νήματα της δραστηριότητας στην οποία ο νέος τρέχων κόμβος αφιερώνεται για το μήκος διαστήματος εκτέλεσης που συνδέεται με το νέο τρέχοντα κόμβο. Σε μια περαιτέρω προτιμημένη ενσωμάτωση, ο χρονοπρογραμματιστής διαθέτει τις συγκεκριμένες επαναλήψεις μέσω των συγκεκριμένων κόμβων για να ικανοποιήσει τους περιορισμούς που υποβάλλονται από τα νήματα.