Πολυπρογραμματισμός

Κατά τις πρώτες ημέρες των υπολογιστών, το κόστος χρήσης του χρόνου της CPU ήταν υψηλό, και η ταχύτητα των περιφερειακών συσκευών  ήταν πολύ μικρή. Κατα την διάρκεια εκτέλεσης ενός προγράμματος αν το  πρόγραμμα χρειαζόνταν να γράψει ή να διαβάσει σε μια περιφερειακή συσκευή-περιφερειακό, η CPU θα έπρεπε να σταματήσει την εκτέλεση του προγράμματος, για όσο χρόνο η περιφερειακή συσκευή έγραφε ή διάβαζε. Η τεχνική αυτή  κρίθηκε πολύ αναποτελεσματική.

Ιστορία
Οι πρώτες προσπάθειες για τη δημιουργία συστημάτων πολυπρογραμματισμού ξεκίνησαν τη δεκαετία του 1960. Πολλά διαφορετικά προγράμματα οργανώνονταν σε ένα σύνολο και στην συνέχεια όλα μαζί φορτώνονταν στη μνήμη ηλεκτρονικού υπολογιστή για επεξεργασία.. Όταν το πρώτο πρόγραμμα που εκτελούσε εντολή η οποία ζητούσε κάτι απο ένα περιφερειακό, τα δεδομένα της μέχρι τότε εκτέλεσης του προγράμματος αποθηκεύονταν (σε βοηθητική μνήμη), και το δεύτερο στη σειρά πρόγραμμα που ήταν ήδη στην μνήμη ξεκινούσε την εκτέλεση των εντολών του , μπορούσε όπως λέμε να τρέξει. Η διαδικασία συνεχίζονταν ενναλάξ για όλα τα προγράμματα μέχρι να ολοκληρωθεί η εκτέλεσή της.

Ο Πολυπρογραμματισμός δεν παρέχει καμία εγγύηση ότι ένα πρόγραμμα που θα τρέξει σε συγκεκριμένο χρόνο. Πράγματι, το πρώτο πρόγραμμα μπορεί να τρέξει όση ώρα δεν χρειάζεται πρόσβαση σε μια περιφερειακή συσκευή. Ο Πολυπρογραμματισμός μείωσε τον συνολικό χρόνο εκτέλεσης της δεσμης των προγραμμάτων εως και 5 φορες σε σχέση με τον χρόνο που χρειάζονταν ένα πρόγραμμα αν κάθε φορά είχε αποκλειστική διάθεση του χρόνου της CPU.

Τεχνολογία λειτουργικών συστημάτων
Προγραμματισμός