Jaron
Un groupe de travaux prêts à être exécutés est appelé pool de travaux. Puisqu'il y a plus d'un travail qui peut être exécuté, il est possible pour le système d'exploitation de prendre une décision sur le travail à exécuter ensuite. Cette décision maintient l'utilisation du processeur aussi élevée que possible.
En général, il n'est pas possible pour un seul utilisateur d'occuper en permanence le processeur ou les périphériques d'E/S. La multiprogrammation permet au système d'augmenter l'utilisation du processeur en garantissant que le processeur a toujours une tâche à exécuter.
Le processeur a un pool de tâches. Lorsque le travail en cours d'exécution doit attendre (s'il effectue des E/S), il est supprimé du CPU. Un autre travail est sélectionné et le CPU l'exécute maintenant. Ce processus garantit que la CPU exécute toujours un travail s'il y a un travail à exécuter. Dans un système non multiprogrammé, si une tâche devait attendre une opération d'E/S, la CPU devrait également attendre la fin des E/S.
Le processeur nécessite des structures de données sophistiquées pour implémenter la multiprogrammation. La CPU doit pouvoir décider quelle tâche doit être exécutée ensuite. Certains travaux entreront dans la mémoire à la fois. Certains travaux peuvent devoir rester sur le disque. Le système d'exploitation doit être capable d'effectuer une sorte de planification sur les travaux du pool de travaux. Il détermine quelles tâches resteront sur le disque et lesquelles seront chargées en mémoire. Le système d'exploitation doit avoir une certaine forme de gestion de la mémoire. La gestion de la mémoire est utilisée pour garder une trace des travaux stockés, où et combien d'espace est disponible.
Parfois, plusieurs tâches peuvent être exécutées à tout moment. L'interaction entre les emplois doit être contrôlée. En général, un travail ne devrait pas être capable de manipuler les données ou le code de programme d'un autre travail.
Isabelle
Système de multiprogrammation Un système dans lequel plusieurs programmes individuels peuvent être actifs. Chaque programme actif implique un processus en cours d'exécution, il peut donc y avoir plusieurs processus, mais un seul processus s'exécute à la fois sur un processeur particulier.