GEF 435 Principes des systèmes d’exploitations Processus (Tanenbaum 2.1)
Revue Quelles sont les cinq structures des SE discutées le dernier cours? Qu’est-ce qu’un système d’exploitation virtuel? Monolithic Layered Virtual Machine Exokernel Client-Server
Synopsis Processus Le modèle des processus Création de processus Terminaison de processus État des Processus Implémentation d’un processus Revue des interruptions
Processus Le processus est LE concept central dans les systèmes d’exploitation Un processus est une abstraction d’un programme en exécution Auquel on a donné des ressources Un certain nombre de processus (2 ou plus) exécutant en même temps forment un système multitâches, multithreads, ou multiprogrammation Est-ce que ces programmes exécute vraiment en parallèle?
Le model des processus Le model des processus est tout simplement l’idée que tout logiciel qui est exécutable est organisé en un nombre de processus séquentiels incluant le SE.
Processus Conceptuel Écoulement du prog Is the rate at which a process performs its computation uniform? Almost certainly not...CPU is interrupted for all sorts of things like interrupt requests and other processes may use more or less of their slice on each pass. What is the implication for this when using a for...next loop to insert a delay. Could you use it to insert delays when reading from a disk? Écoulement du prog Temps d’exécution des processus
Processus Pseudo-parallélisme est parfois utilisé pour référer à des processus multiples exécutant sur un seul processeur Ceci diffère du parallélisme sur un système à multiprocesseurs
Création de Processus Certains SE peuvent être capables de créer tout les processus requis durant l’initialisation Les systèmes communs ont besoin de créer des nouveaux processus durant l’opération. Quand? Initialisation du système Exécution d’un système de création de processus appelé par un processus en exécution Demande d’un utilisateur pour créer un processus Initialisation d’une job batch Ask for examples Microwave oven MP3 player The point is these systems have very specific purposes, not general purpose
Création de Processus Initialisation de système Demande de processus en exécution Demande d’utilisateur Note that Running Process request is really a catch-all for the other. A process could not be started without a request from a bit of executing code, which must be in a process The distinction is why...if it was for a process to get help in accomplishing a task then it is referred to as “Execution of a process creation system call by a running process. Batch requests only happen on batch systems on large mainframes. Users submit jobs that have no immediate requirement to be done and the OS decides when it has the resources to run the next request.
Terminaison de Processus Je serai Gouverneur. Les processus terminent quand la job est faite. Raisons de terminaison Normale (volontaire) Erreur (volontaire) Erreur fatal(involontaire) Tué par un autre processus (involontaire) Volutary error exit is when the program finds the error and decides to exit. Example: myImage = LoadImage(“ahnold.jpg”) if(myImage = 0) notify(“Error in loading image. Program will exit.”) end end if Fatal error is caused by things like accessing memory out of bounds ore dividing by zero. Sometimes languages can catch errors like this themselves (try...catch) instead A process with the right authorization can kill another process. This may or may not destroy the chain of process below it in the tree.
Hiérarchies de processus Dans les systèmes où il y a des processus enfants et parents, il y a une hiérarchie qui existe Dans *NIX, un processus et tout ces descendants forment un groupe de processus. Les signaux (clefs frappées sur clavier) peuvent être partagés avec tout les membres du groupe. Windows n’a pas de concept de hiérarchie de processus. Is Windows the system for communists?
États des processus Quand le processus est en exécution ‘running’ il utilise le CPU pour faire son travail Quand le processus est prêt ‘ready’, il voudrait exécuter mais le CPU est alloué à un autre.
États des processus En état bloqué ‘blocked’, le processus ne peut exécuter parce qu’il attend après une condition (entrée/sortie, expiration du chrono, un autre processus etc...) Des fois, des commandes sont appelées pour entrer dans l’état bloqué (block, pause,wait). Parfois le système cause la transition automatiquement à l’état ready (ordonnancement) The system would cause the transition if it saw the process waiting on input, for example. What causes transitions 2 and 3? The scheduler giveth, and the scheduler taketh away.
États des processus Quand le SE a pour but principal l’ordonnancement des processus pour exécution, quel model a le SE? Une couche de processus séquentiel par dessus un ordonnanceur QNX – Black Berry
Implémentation des Processus Comment le SE implémente le model des processus? La table des processus, un tableau ou liste chaînée de structures avec une entrée par processus. Information typique: État des Processus Compteur ordinal Pointeur de pile Allocation de la mémoire État des fichiers ouverts Information de gestion/ordonnancement... Et encore plus!
Implémentation des Processus Champs typiques pour une entrée dans la table des processus
De retour vers les interruptions Maintenant que nous savons les entrées dans la table des processus nous pouvons revisiter les interruptions! Durant une interruption, le matériel pousse le PC, PS, PSW et autres registres sur sa pile. L’ordinateur saute au vecteur d’interruptions. Le matériel a fait son travail à ce point. Maintenant, la routine d’interruption sauve toute l’information du processus dans la table des processus. (une tâche fait en assembleur)
De retour vers les interruptions Une nouvelle pile est établie et l’interruption est servit Quand l’interruption est fini, l’ordonnanceur est appelé pour voir quel est le prochain processus à exécuter Une procédure en assembleur charge les registres la mémoire, etc. avec l’information du nouveau processus, pour commencer l’exécution. Comme de raison les détails varient de système à système.
Questions? Quiz Time! What are the three process states? What is the difference between blocked and ready?