Ο διαδικτυακός προγραμματισμός είναι μια τεχνική που χρησιμοποιείται σε λειτουργικά συστήματα στα οποία μια διαδικασία προγραμματίζεται μόνο αφού φτάσει και γίνει διαθέσιμη για εκτέλεση. Αυτό σημαίνει ότι ο προγραμματιστής λαμβάνει υπόψη μόνο εκείνες τις διεργασίες για τον προγραμματισμό που είναι διαθέσιμες αυτήν τη στιγμή στην κύρια μνήμη.
Ορισμένες διεργασίες ενδέχεται να εισέλθουν στην ουρά ετοιμότητας και ορισμένες διεργασίες μπορεί να απομακρυνθούν δυναμικά από την ουρά ετοιμότητας. Λόγω αυτής της δυναμικής και απρόβλεπτης φύσης του διαδικτυακού προγραμματισμού, είναι δύσκολο να εκτιμηθούν με ακρίβεια οι πόροι που απαιτούνται για την εκτέλεση μιας διαδικασίας.
Μερικοί από τους δημοφιλείς αλγόριθμους για διαδικτυακό προγραμματισμό περιλαμβάνουν:
- First Come First Served (FCFS)
- Πρώτη θέση εργασίας (SJF)
- Round Robin (RR)
- Υψηλότερη αναλογία απόκρισης Επόμενο (HRRN)
Προγραμματισμός εκτός σύνδεσης:
Σε αντίθεση με τον διαδικτυακό προγραμματισμό, ο προγραμματισμός εκτός σύνδεσης εξετάζει όλες τις διαδικασίες πριν φτάσουν στην πραγματικότητα για εκτέλεση. Αυτή η τεχνική μπορεί να εφαρμοστεί όταν είναι εκ των προτέρων γνωστή η μελλοντική γνώση ολόκληρου του συνόλου των διαδικασιών.
Με βάση το δεδομένο σύνολο διαδικασιών, ένας αλγόριθμος προγραμματισμού εκτός σύνδεσης δημιουργεί ένα χρονοδιάγραμμα που καθορίζει πότε θα εκτελεστεί κάθε διεργασία και για πόσο χρόνο. Δεδομένου ότι οι αφίξεις και οι λεπτομέρειες εκτέλεσης των διεργασιών είναι γνωστές εκ των προτέρων, ο προγραμματισμός εκτός σύνδεσης μπορεί να καθορίσει το βέλτιστο χρονοδιάγραμμα.
Ωστόσο, ο προγραμματισμός εκτός σύνδεσης δεν είναι εφικτός σε σενάρια όπου οι διεργασίες φτάνουν δυναμικά και η συμπεριφορά τους κατά την εκτέλεση δεν μπορεί να προβλεφθεί εκ των προτέρων.
Οι συνηθισμένοι αλγόριθμοι για προγραμματισμό εκτός σύνδεσης περιλαμβάνουν:
- Non-preemptive Shortest Job First (SJF)
- Μη προληπτικός προγραμματισμός προτεραιότητας (Προτεραιότητα)
- Round Robin (RR)
Σύγκριση:
| Χαρακτηριστικό | Ηλεκτρονικός Προγραμματισμός | Προγραμματισμός εκτός σύνδεσης |
|---|---|---|
| Γνώση άφιξης διαδικασίας | Απαιτεί μόνο τρέχουσες πληροφορίες σχετικά με τις διαδικασίες | Απαιτεί πλήρη γνώση όλων των διαδικασιών εκ των προτέρων |
| Προσαρμοστικότητα | Μπορεί να χειριστεί αποτελεσματικά τις δυναμικές αφίξεις διαδικασιών | Δεν μπορεί να προσαρμοστεί σε δυναμικές αφίξεις διεργασιών |
| Βελτιστότητα | Δεν είναι δυνατή η παροχή βέλτιστων χρονοδιαγραμμάτων | Μπορεί να παρέχει βέλτιστα χρονοδιαγράμματα ανάλογα με τον αλγόριθμο |
| Πολυπλοκότητα | Λιγότερο περίπλοκη υλοποίηση | Πιο πολύπλοκο στην εφαρμογή λόγω της ανάγκης για λεπτομερή γνώση όλων των διαδικασιών |
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα