Brevet FR2691556A1 — publié le 19931126

À PROCÉDÉ ET DISPOSITIF DE DÉMARRAGE D'UN ORDINATEUR À UN INSTANT PROGRAMME La présente invention concerne les procédés de démar- rage d'un ordinateur, notamment d'un ordinateur fonctionnant avec un système d'exploitation monotâche. Les ordinateurs de bureau sont de plus en plus couram- ment employés Ces ordinateurs de bureau peuvent fonctionner avec différents types de système d'exploitation Le système d'exploitation le plus courant, pour lequel on a développé la majeure partie des logiciels, est appelé DOS (du terme anglo saxon "Disc Operating System"). Il existe des systèmes d'exploitation dits "multi- tâche" qui permettent l'exécution simultanée de plusieurs pro- grammes et de partager des ressources, telles que la mémoire de l'ordinateur, un disque dur Le système d'exploitation DOS présente l'inconvénient d'être monotâche, c'est-à-dire qu'il ne15 permet que l'exécution d'un seul programme à la fois, toutes les ressources partageables étant alors attribuées uniquement à ce programme. De nombreux ordinateurs de bureau munis du système d'exploitation DOS peuvent être connectés à un réseau desservi par un serveur Le serveur est généralement équipé de périphéri- ques coûteux (tables traçantes, imprimantes lase) qui peu- vent être utilisés par tous les ordinateurs connectés au réseau Le serveur dispose également d'une mémoire de masse de grande capacité permettant de mémoriser un grand nombre d'infor- mations et de logiciels Un ordinateur connecté au réseau peut avoir sa propre mémoire de masse (disque dur) dans laquelle un utilisateur ne stocke que les logiciels du serveur dont il a le plus souvent besoin. Dans une société o de nombreux ordinateurs de bureau sont utilisés, il arrive souvent que l'on ait à mettre à jour des données ou des logiciels sur le disque dur de ces ordina- teurs Une mise à jour étant souvent trop délicate pour un uti- lisateur moyen, c'est une personne compétente qui doit venir sur chaque ordinateur effectuer la mise à jour à partir du réseau ou de disquettes, ce qui est long et fastidieux. En outre, un utilisateur est souvent amené à effectuer des tâches de sécurité périodiques telles qu'une sauvegarde de disque dur ou une vérification de présence de virus De telles opérations sont souvent longues et l'utilisateur est, de ce fait, incité à les effectuer moins souvent que nécessaire et il s'expose à un risque de perte de données. Si un ordinateur connecté au réseau est muni d'un système d'exploition multitâche, il serait envisageable que le serveur vienne effectuer des mises à jour pendant que l'ordina- teur est sous-tension, même si un utilisateur est en train de s'en servir Il serait même envisageable dans cette situation que le serveur fasse exécuter des tâches dans l'ordinateur, telles que des tâches de sécurité Par contre, il n'est à l'heure actuelle pas envisageable que le serveur à n'importe quel instant, accède au disque dur ou provoque l'exécution de tâches dans un ordinateur muni d'un système d'exploitation mono- tâche, notamment si un utilisateur est en train de se servir de l'ordinateur. Les systèmes d'exploitation monotâche présentent d'autres inconvénients que l'on verra apparaître ci-après. Lorsqu'on démarre un ordinateur avec le système d'ex- ploitation DOS, par exemple, un èrtain nombre de programmes dits résidants ou TSR (du terme anglo-saxon "Terminate and Stay Resident") sont installés en mémoire Les programmes résidants à installer sont énumérés dans des fichiers de démarrage appelés10 CONFIG SYS et AUTOEXEC BAT stockés localement, par exemple sur disque dur, ou fournis par un serveur Un programme résidant est exécuté lors d'événements spécifiques (un éventuel programme principal en cours d'exécution étant alors interrompu) Ces évènements spécifiques peuvent être l'actionnement d'une cer- taine séquence de touches, le déplaoement d'une souris, la transmission de données de ou vers un périphérique Parmi les programmes résidants, il y a des programmes que l'on appelle pilotes de périphérique, que l'on doit néces- sairement installer si l'on veut pouvoir utiliser un périphéri-20 que associé Un pilote de périphérique a généralement pour rôle d'interèpter et traduire des informations circulant entre un périphérique et l'ordinateur Par exemple, un pilote de clavier traduit les codes fournis par le clavier lorsqu'on appuie sur des touches en des codes standardisés correspondant aux symboles25 marqués sur les touches. Les programmes résidants installés accaparent de la mémoire qui, souvent, ne peut être libérée qu'en redémarrant l'ordinateur L'installation de programmes résidants laisse parfois insuffisamment de mémoire à certains logiciels En30 outre, les programmes résidants peuvent présenter des incompati- bilités entre eux et avec certains logiciels En particulier, l'utilisation d'un dispositif de sauvegarde de disque dur sur bande est incompatible avec certains programmes résidants souvent installés dans un ordinateur. Lorsque l'on rencontre un problème de compatibilité avec des programmes résidants installés, il faut les supprimer dans le fichier de démarrage et provoquer le redémarrage de l'ordinateur Pour retrouver les conditions initiales, il faut rajouter les programmes résidants supprimés au fichier de démar- rage et redémarrer de nouveau Si l'on doit effectuer ces opéra- tions à chaque fois que l'on veut effectuer une tâche de sécu- rité, notamment une sauvegarde de disque dur, on est également tenté d'effectuer cette tâche moins souvent qu'il est néces- saire. Un objet de la présente invention est de rendre possible l'exécution de tâches dans un ordinateur initialement éteint. Un autre objet de la présente invention est de permet- tre à un serveur d'agir sur un ordinateur initialement éteint. La présente invention atteint ces objets en prévoyant autour d'une horloge temps réel alimentée en permanence et clas- siquement présente dans un ordinateur, des registres accessibles par l'ordinateur et un circuit de commande d'alimentation relié à certains des registres Le circuit de commande a pour rôle d'activer un bloc d'alimentation de l'ordinateur en fonction de l'état de certains des registres. Dans un registre d'heure programmée est stockée l'heure à laquelle une tâche doit être exécutée L'ordinateur étant initialement éteint, lorsque l'horloge temps réel indique l'heure programmée, le circuit de commande met l'ordinateur sous tension Si le système d'exploitation doit être chargé à partir du réseau, un programme de démarrage adéquat s'exécutant avant le chargement du système d'exploitation, envoie sur le réseau une requête de chargement en indiquant un fichier de démarrage associé à la tâche programmée Le réseau fournit alors le système d'exploitation et le fichier de démarrage. Si le système d'exploitation est chargé localement, un fichier de démarrage par défaut est exécuté Dans ce fichier de démarrage, un programme adéquat remplace le fichier de démarrage courant par un fichier de démarrage associé à la tâche program- mée et provoque un redémarrage de l'ordinateur Alors, le fichier de démarrage correspondant à la tâche programmée est exécuté Dans ce fichier, il est prévu un programme qui, à la fin, rétablit le fichier de démarrage par défaut. La présente invention vise plus particulièrement un procédé de démarrage d'un ordinateur consistant à exécuter un programme de test, à charger un système d'exploitation et à exécuter au moins un fichier de démarrage courant comprenant des programmes choisis par un utilisateur Selon l'invention, le procédé comprend en outre les étapes suivantes: a) stocker dans un registre non volatile acoessible par un bus de l'ordinateur une heure programmée d'une tâche à faire; b) détecter l'égalité entre l'heure indiquée par une horloge alimentée en permanence et l'heure programmée, et mettre l'ordinateur sous tension; et c) exécuter, à la place dudit au moins un fichier de démarrage courant, au moins un fichier de démarrage associé à la tâche à faire. Selon un mode de réalisation de la présente invention, le procédé de démarrage comprend les étapes suivantes: mettre à un état actif un bit de tâche à faire non volatile accessible par ledit bus et indiquant si une tâche correspondante est à faire lorsque l'heure indiquée par l'horloge atteint l'heure programmée; détecter l'état actif du bit de tâche à faire, et mettre l'ordinateur sous tension; et désactiver le bit de tâche à faire dès que celle-ci est terminée. Selon un mode de réalisation de la présente invention, le procédé de démarrage comprend les étapes suivantes: stocker dans un registre non volatile de numéro de fichier accessible par ledit bus, un numéro de fichier de démarrage associé à ladite tâche à faire; stocker dans un bit non volatile de char- gement sur réseau accessible par ledit bus, une valeur indiquant si, pour la tâche à faire, il faut charger le système d'exploi- tation à partir du réseau; si le bit de chargement sur réseau est actif, envoyer sur le réseau une requête de chargement en passant comme paramètre le numéro de fichier associé à ladite tâche à faire, un serveur fournissant alors à l'ordinateur un système d'exploitation et un fichier de démarrage associés au numéro de fichier; et si le bit de chargement sur réseau est inactif, charger un système d'exploitation se trouvant sur un support local. Selon un mode de réalisation de la présente invention, si ledit bit de chargement sur réseau est inactif, le procédé comprend les étapes suivantes: remplacer sur le support local le fichier de démarrage courant par un fichier de démarrage associé audit numéro de fichier; redémarrer l'ordinateur, d'o il résulte que le fichier de démarrage associé au numéro de fichier est exécuté; et rétablir le fichier de démarrage initial. Selon un mode de réalisation de la présente invention, le procédé de démarrage comprend les étapes suivantes effectuées par un programme de test modifié: vérifier si l'ordinateur a été mis sous tension manuellement et, dans la négative, conti- nuer selon les étapes suivantes; écrire dans un registre d'identification accessible par ledit bus une information indi- quant qu'une tâche est à faire; et charger le système d'exploi- tation à partir du réseau ou d'un support local, selon l'indi- cation du bit de chargement sur réseau. Selon un mode de réalisation de la présente invention, le procédé de démarrage comprend les étapes suivantes effectuées par un fichier de démarrage par défaut sur un support local: lire le registre d'identification; si le registre d'identifi- cation indique qu'une tâche est à faire, remplacer le fichier de démarrage courant par un fichier de démarrage associé à la tâche à faire et redémarrer à chaud. Selon un mode de réalisation de la présente invention, le procédé de démarrage comprend les étapes suivantes effectuées par un fichier de démarrage fourni par le réseau, autre que le fichier de démarrage par défaut: exécuter des programmes choi- sis; initialiser le registre d'identification; et désactiver le bit de tâche à faire. Selon un mode de réalisation de la présente invention, le procédé de démarrage comprend les étapes suivantes effectuées par un fichier de démarrage sur un support local, autre que le fichier de démarrage par défaut: exécuter des programmes choi- sis; rétablir le fichier de démarrage par défaut; initialiser le registre d'identification; et désactiver le bit de tâche à faire. La présente invention vise également un ordinateur comprenant une horloge temps réel alimentée en permanence et un bloc d'alimentation commandable par un signal logique Selon l'invention, l'ordinateur comprend: un premier jeu de registres non volatiles accessibles par un bus de l'ordinateur, comprenant un registre de tâches à faire dont chaque bit indique si une tâche correspondante est à faire ou non; un jeu de registres non volatiles spécifique à chaque tâche à faire et accessible par le bus, chaque jeu de registres spécifique comprenant un registre de numéro de fichier de démarrage spécifique et un registre d'heure programmée de la tâche; des moyens pour comparer le contenu des registres d'heure programmée à l'heure indiquée par l'horloge temps réel et pour activer un bit de tâche à faire si l'heure de l'horloge temps réel atteint une heure programmée correspondante; et des moyens pour détecter l'état actif de l'un quelconque des bits de tâche à faire et pour commander la mise sous tension de l'ordinateur. Selon un mode de réalisation de la présente invention, le premier jeu de registres comprend un registre de numéro de fichier de démarrage courant dans lequel, à chaque mise sous tension provoquée par une tâche à faire, est écrit le numéro de fichier de démarrage spécifique à la tâche à faire, et en ce que chaque jeu de registres spécifique comprend un bit de chargement sur réseau indiquant si un système d'exploitation doit, pour la tâche associée, être chargé à partir d'un réseau ou d'un support local. Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles: la figure 1 représente des ordinateurs connectés à un réseau ainsi que èrtains éléments d'un ordinateur classique; la figure 2 illustre un organigramme d'un procédé de démarrage classique; la figure 3 illustre un organigramme d'opérations effectuées à la fin de l'exécution d'un programme de test dans la figure 2; la figure 4 illustre des éléments d'un ordinateur selon la présente invention; la figure 5 représente un organigramme d'opérations effectuées par un programme de test modifié selon l'invention; les figures 6 A et 6 B représentent des organigrammes de l'exécution de fichiers de démarrage locaux selon l'invention et; la figure 7 représente un organigramme de démarrage sur réseau selon la présente invention. Avant de décrire la présente invention, on décrira d'abord un système informatique classique ainsi qu'un procédé de démarrage classique d'ordinateur. A la figure 1, des ordinateurs (COMP) 10 sont connec- tés à un réseau N desservi par un serveur (SERVER) 12 On a représenté à l'intérieur d'un cadre en pointillés des éléments d'un ordinateur classique 10 Un bus B relie entre eux une unité centrale (CPU) 14, une mémoire 16 comprenant de la mémoire vive (RAM) et de la mémoire morte (ROM), une mémoire de masse 18 telle qu'un disque dur et/ou une disquette, et un circuit 20 comprenant une horloge temps réel (RTC, du terme anglais "Real Time Clock") et une mémoire volatile (CMOS) Une batterie 22 alimente en permanence le circuit 20 Le bus B est relié au réseau N par l'intermédiaire d'un circuit d'interface (LAN) 24. Le bus B comprend également des lignes d'alimentation V reliées à un bloc d'alimentation (PWR) 26 branché sur le secteur Dans des ordinateurs récents, le bloc d'alimentation 26 comporte une entrée de commande ON/OFF reliée à la masse par l'intermédiaire d'un interrupteur manuel K Cette entrée ON/OFF est sensible à des niveaux logiques de faible tension (O et 5 volts). La figure 2 représente un organigramme des opérations effectuées lors d'un démarrage classique d'un ordinateur Le début de cet organigramme peut avoir trois origines différen- tes Une première origine est une mise sous tension de l'ordina- teur, ce que l'on appelle un démarrage à froid Une deuxième origine est ce que l'on appelle un démarrage à chaud qui consiste à redémarrer l'ordinateur alors qu'il reste sous-ten- sion Un tel démarrage se produit lors d'une action sur un bouton spécifique ou sur une séquence spécifique de touches d'un clavier La troisième origine est ce que l'on appelle un retour de mode protégé Le microprocesseur d'un ordinateur fonctionnant avec le système d'exploitation DOS présente deux modes de fonc- tionnement, l'un dit mode réel o le microprocesseur ne peut accéder qu'au premier bloc de 1 mégaoctet de la mémoire, et l'autre dit mode protégé o il peut accéder à autant de mémoire que le permet son bus d'adresses Le passage du mode protégé au mode réel s'effectue par une remise à zéro du microprocesseur. Ci-après, un paragraphe décrivant un bloc d'organi- gramme est précédé du numéro du bloc. Le microprocesseur est remis à zéro. 102 Dès la remise à zéro, une routine de démarrage, stockée en mémoire ROM, est exécutée Cette routine de démarrage sert à déterminer l'origine de la remise à zéro du microproces- seur. 104 Selon l'origine de la remise à zéro, les opéra- tions continuent en bloc 106, 108 ou 110. 106 L'origine de la remise à zéro est un retour de mode protégé Le mode réel est rétabli et l'ordinateur se retrouve en bloc 118 prêt à être utilisé de nouveau. 108 L'origine de la remise à zéro est un démarrage à froid Le début d'un programme de test à la mise sous tension, couramment désigné POST (du terme anglo-saxon "Power On Self Test") est exécuté Le programme POST effectue divers tests tels que la vérification de la mémoire RAM. Le début du programme POST est achevé ou bien 1 'origine de la remise à zéro est un démarrage à chaud Une deuxième partie du programme POST, POST court, est exécutée. Les opérations effectuées par le programme POST court sont détaillées dans l'organigramme de la figure 3. 112 Le système d'exploitation est chargé Selon ce qui a été déterminé par le programme POST court en bloc 110, le système d'exploitation est chargé, soit localement à partir d'un disque dur ou d'une disquette 18, soit à partir du réseau En général, il est vérifié par le programme POST court si la dis- quette est présente Si la disquette est présente, on tente de charger le système d'exploitation à partir de celle-ci (le chargement sur disquette est prioritaire), sinon à partir du disque dur Si ces deux tentatives échouent, le chargement est effectué à partir du serveur (si l'ordinateur est équipé pour cela).25 114 Des programmes résidants sont installés en mémoire et divers réglages logiciels sont effectués Les réglages logiciels servent à adapter le système d'exploitation au goût de l'utilisateur et/ou aux besoins de certains logi- ciels.30 116 Des programmes choisis par un utilisateur à lanoer au démarrage de l'ordinateur sont exécutés. Les programmes résidants à installer, les réglages logiciels à effectuer et les programmes à lanoer sont énumérés dans un fichier de démarrage Dès que le système d'exploitation il est chargé, ce dernier cherche le fichier de démarrage sur un support de démarrage (disque ou disquette) ou sur le réseau Le fichier de démarrage du système d'exploitation DOS est décomposé en deux fichiers, l'un appelé CONFIG SYS dans lequel sont essentiellement énumérés des pilotes de périphériques, et l'autre appelé AUTOEXEC BAT o sont essentiellement énumérés les programmes à lancer au démarrage Ci-après, lorsque les opéra- tions des blocs 114 et 116 sont effectuées, on parlera de "exécution du fichier de démarrage". 118 Lorsque les programmes choisis par l'utilisateur sont exécutés au bloc 116 ou si le mode réel a été rétabli à la suite d'un retour de mode protégé, l'ordinateur est prêt à être utilisé. La figure 3 représente un organigramme de la fin des opérations effectuées par le programme POST court au bloc 110. Le contenu de la mémoire CMOS 20 est lu Dans la mémoire CMOS sont stockées des données, ci-après données de "configuration", permettant d'effectuer des réglages matériels de l'ordinateur Par exemple, dans la mémoire CMOS sont stockés la quantité de mémoire RAM installée, les types et les capacités des lecteurs de disque et de disquette, la vitesse de l'horloge de l'unité centrale 202 L'ordinateur est configuré selon les données de configuration lues dans la mémoire CMOS On vérifie également si une disquette est présente dans un lecteur de disquettes et si un disque dur est présent. 204 Si l'utilisateur actionne une séquence spécifique de touches pendant la procédure de démarrage, un programme stocké en mémoire ROM, couramment appelé SETUP, est exécuté Ce programme SETUP permet à l'utilisateur de modifier les données de configuration à stocker dans la mémoire CMOS Si l'utilisa- teur modifie les données de configuration, le programme SETUP invite l'utilisateur à redémarrer l'ordinateur afin que celui-ci soit réglé selon les nouvelles données de configuration Si aucune modification n'est faite, les opérations continuent. 206 Il est vérifié si un chargement local du système d'exploitation est possible (on a détecté un support local tel qu'une disquette et/ou un disque dur). 208 Le chargement est possible Le programme POST court cherche le système d'exploitation sur le support local. 210 Le chargement n'est pas possible Le programme POST court envoie sur le réseau une requête RQ de chargement La requête RQ passe en tant que paramètre au serveur du réseau une adresse spécifique à l'ordinateur, appelée adresse MAC (du terme anglais "Media Access Control", signifiant contrôle d'accès de support), permettant au serveur d'identifier l'ordinateur qui demande à charger le système d'exploitation. 212 L'ordinateur attend la fourniture par le réseau du système d'exploitation et du fichier de démarrage. Une fois que le système d'exploitation est trouvé au bloc 208 ou fourni au bloc 212, la procédure de démarrage continue normalement au bloc 112 de la figure 2 o le système d'exploitation est chargé. La présente invention peut être mise en oeuvre en modifiant le circuit 20 d'horloge temps réel RTC/mémoire CMOS de la figure 1 et le programme POST court. La figure 4 représente schématiquement des éléments d'un ordinateur à circuit 20 d'horloge temps réel RTC/mémoire CMOS modifié selon la présente invention Dans cette figure, on retrouve de mêmes éléments qu'à la figure 1 désignés par des mêmes références. Selon l'invention, au circuit 20 d'horloge temps réel/ mémoire CMOS est associé un premier jeu de registres 40, commun à un ensemble de tâches à faire Ce jeu 40 comprend un registre TP de tâches à faire et un registre ID de numéro de fichier de démarrage courant. Chaque bit T Px du registre TP détermine si une tâche x correspondante est à faire ou non A chaque tâche x est associé un jeu de registres spécifique 42 comprenant un registre PT(x) d'heure programmée de la tâche x, un registre ID(x) de numéro de fichier de démarrage associé à la tâche x, et un bit NB(x) de chargement sur réseau. Le registre ID(x) permet d'associer à la tâche x un fichier de démarrage parmi plusieurs prévus sur un support local et/ou dans le serveur Dans le fichier de démarrage associé à un numéro ID(x) sont énumérés des programmes spécifiques permettant d'effectuer diverses tâches souhaitées, telles qu'une sauvegarde de disque dur, une vérification d'absence de virus L'un de10 ces fichiers est un fichier de démarrage par défaut (affecté du numéro O) qui permet à l'utilisateur de retrouver son environ- nement habituel en dehors de l'exécution d'une tâche à faire. Le rôle des registres ou bits TP, ID, PT(x), ID(x), NB(x), ainsi que d'autres est décrit plus en détail ultérieu- rement Le tableau ci-dessous récapitule les abbréviations utilisées pour les bits et les registres ainsi que leur rôle. TP registre indiquant la présence de tâches à (Tasks Pending) faire ID registre identifiant la tâche courante PS bit indiquant une action sur le bouton de (Power Switch) mise sous tension OFF bit non mémorisé de mise hors tension PT(x) registre indiquant l'heure d'une tâche x (Programmed Time) ID(x) registre identifiant un fichier de démarrage (liste de sous-tâches) associé à la tâche x NB(x) bit indiquant, pour la tâche x, qu'il faut (Network Boot) charger le système d'exploitation à partir du réseau BM(x) bit indiquant, pour la tâche x, sur quel (Boot Media) support local il faut charger le système d'exploitation On a également associé au circuit 20 d'horloge temps réel/mémoire CMOS un circuit de commande 44 auquel est relié un bouton poussoir K de mise sous tension manuelle de l'ordina- teur Ce circuit de commande pilote directement 1 ' entrée de commande ON/OFF du bloc d'alimentation 26. Dans le jeu de registres 40 commun aux tâches à faire, l'état d'un bit PS est basculé à chaque action sur le bouton poussoir K, et un bit OFF non mémorisé peut être mis à 1 afin d'éteindre l'ordinateur (ce bit OFF retrouve son état initial dès l'extinction). Chacun des registres ou bits des jeux 40 et 42 est accessible de la même manière que la mémoire CMOS La mémoire CMOS est accessible selon un mode dit indexé, c'est-à-dire que pour accéder à un emplacement de la mémoire CMOS, on écrit d'abord l'adresse de l'emplacement à une première adresse spéci- fique fixe et des données à transférer entre l'emplacement et l'ordinateur sont lues ou écrites à une deuxième adresse fixe spécifique Dans les ordinateurs fonctionnant avec le système d'exploitation DOS, ces adresses spécifiques sont 070 h et 071 h. En général, un grand nombre d'adresses d'emplacements dans la mémoire CMOS sont disponibles et on pourra les utiliser pour adresser les registres et les bits supplémentaires 40, 42. Le circuit de commande 44 et les jeux de registres 40, 42 sont également alimentés par la batterie 22 et peuvent donc fonctionner même si l'ordinateur est éteint. Le circuit de commande 44 est prévu pour satisfaire les fonctions suivantes: comparer le contenu de chacun des registres PT(x) d'heure programmée à l'heure indiquée par l'horloge temps réel RTC; en cas d'égalité d'heure, mettre à 1 le bit associé T Px du registre de tâches à faire TP; comparer le contenu du registre TP à zéro et, si le contenu est non nul, fournir un état actif sur l'entrée de commande ON/OFF du bloc d'alimentation 26 (mettre sous tension l'ordinateur); si le bit OFF passe à 1, fournir un état inactif sur l'entrée ON/OFF (éteindre l'ordinateur); fournir un état actif sur l'entrée ON/OFF lorsque le bit PS bascule de O à 1 et un état inactif lorsque le bit PS bascule de 1 à O; et basculer 1 'état du bit PS à chaque action sur le bouton poussoir K, et l'annuler lorsque le bit OFF passe à 1. Ces fonctions du circuit 44 peuvent facilement être réalisées par l'homme du métier à l'aide de portes logiques, de bascules, et de comparateurs binaires. La figure 5 illustre un organigramme de la fin des opérations effectuées par un programme POST court modifié selon l'invention Ce programme POST court modifié est exécuté, à la place du programme POST court classique dans le bloc 110 de la figure 2, à la suite de tout démarrage (à chaud, à froid, à la suite du passage à une valeur non nulle du contenu du registreTP).20 Dans le programme POST court modifié, on exécute d'abord les opérations classiques correspondant aux blocs 200 à 204 de la figure 3. 300 Le bit PS de mise sous tension et le registre TP de tâches à faire sont lus. 302 Il est vérifié si le bit PS est à 1 La question est de savoir si l'ordinateur a été mis sous tension manuelle- ment (à la suite d'une action sur le bouton K) Si la mise sous tension est manuelle, on effectue un démarrage classique à partir du bloc 206 o le chargement est aiguillé vers un support30 local ou vers le réseau Alors l'utilisateur retrouvera, comme cela sera décrit ultérieurement, son environnement habituel défini par le fichier de démarrage par défaut (ID=O). 308 La mise sous tension n'est pas manuelle L'ordi- nateur est en train de démarrer car au moins une tâche program- mée est à faire On cherche le rang de tous les bits non nuls du registre TP. 309 Parmi les bits non nuls du registre TP, on en choisit un, T Px, selon un ordre de priorité choisi; par exemple, selon l'heure programmée (PT(x)) la plus ancienne Le rang x du bit choisi correspond au numéro de la tâche. 310 On lit le registre ID(x) de numéro de fichier de démarrage, le bit NB(x) de chargement sur réseau, et le bit BM(x) d'identification de support de chargement, spécifiques à la tâche x. 312 Le numéro ID(x) est transféré dans le registre ID de numéro de fichier de démarrage courant. 316 Il est vérifié si le bit de chargement sur réseau NB(x) est égal à 1 La question est de savoir si le système d'exploitation doit être chargé à partir du réseau. 317 Le système d'exploitation ne doit pas être chargé à partir du réseau Le système d'exploitation est cherché sur un support local (disquette ou disque) indiqué par le bit BM(x) et la procédure se poursuit par le chargement du système d'exploi- tation au bloc 112. Canme cela sera décrit ultérieurement, le fichier de démarrage associé au numéro ID(x) sera alors exécuté. 318 Le système d'exploitation doit être chargé à partir du réseau On envoie sur le réseau une requête de charge- ment RQ en passant comme paramètre l'adresse MAC classique ainsi que le numéro de fichier de démarrage courant ID (valant ici ID(x)). Le programme du serveur gérant le réseau est adapté, selon l'invention, pour envoyer à l'ordinateur en réponse à cette requête un système d'exploitation et un fichier de démar- rage associés au numéro ID reçu La procédure se poursuit au bloc 212 de la figure 3 par l'attente de la fourniture par le réseau du système d'exploitation. Les opérations exécutées selon la présente invention par le programme POST court modifié correspondent à une première phase du procédé selon l'invention La deuxième et dernière phase est assurée par les fichiers de démarrage eux-mêmes Les opérations effectuées par les fichiers de démarrage sont différentes selon que le système d'exploitation est chargé loca- lement ou à partir du réseau. Les figures 6 A et 6 B représentent des organigrammes d'opérations effectuées par des fichiers de démarrage locaux. La figure 6 A représente un organigramme des opérations effectuées par un fichier de démarrage local par défaut Ce fichier de démarrage par défaut est celui qui doit être exécuté normalement lorsque l'ordinateur est démarré à chaud ou à froid par un utilisateur Cet organigramme comprend les blocs clas- siques 114 d'installation de programmes résidants et 116 d'exé- cution de programmes Toutefois, parmi les programmes à exécuter figure un programme particulier effectuant des opérations cor- respondant aux blocs 160, 162, 166 et 168. Le registre ID de numéro de fichier de démarrage courant est lu. 162 Il est vérifié si le numéro ID est non nul La question est de savoir si une tâche est à faire On rappelle que dans le bloc 312 de la figure 5, le numéro ID est affecté d'un numéro de fichier de démarrage si l'ordinateur démarre alors qu'une tâche est à faire (au moins un des bits du registre TP est non nul). 168 Une tâche n'est pas à faire Il s'agit d'un démarrage normal provoqué par un utilisateur Des programmes par défaut choisis sont exécutés.30 118 L'ordinateur est prêt à être utilisé. 166 Une tâche est à faire Le fichier de démarrage courant (le présent fichier de démarrage) est remplacé sur le support de chargement par un fichier de démarrage associé au numéro ID En général, le fichier de démarrage à exécuter pos- sède un nom attribué; par exemple, le système d 'exploitation DOS possède deux fichiers de démarrage nommés CONFIG SYS et AUTOEXEC BAT Ainsi, pour remplacer le fichier de démarrage courant, il suffit de renommer celui-ci et de donner au fichier de démarrage choisi le nom attribué. 168 Un démarrage à chaud de l'ordinateur est pro- voqué, ce qui peut classiquement être effectué par une instruc- tion de programme. Alors, les étapes de démarrage sont effectuées de nouveau du bloc 100 jusqu'au chargement local du système d'exploitation au bloc 112 en passant par les blocs 300 à 317. Le fichier de démarrage qui est ensuite exécuté est le nouveau fichier courant associé au numéro ID. La figure 6 B représente un organigramme effectué par un tel fichier de démarrage associé à un numéro ID=ID(x) non nul. 114 Les programmes résidants associés au numéro ID(x) sont installés. 116 Les programmes à lancer énumérés sont exécutés. Dans la liste de programmes à lancer figurent des programmes choisis associés au numéro ID(x) En début et en fin de liste, des programmes particulier effectuent les opérations indiquées dans des cadres en pointillés Ces opérations sont, au début, annuler le numéro de fichier de démarrage courant ID et le bit associé de tâche à faire T Px et rétablir le fichier local de démarrage par défaut; et, à la fin, éteindre l'ordinateur Pour éteindre l'ordinateur, on écrit un 1 dans le bit OFF précédem- ment mentionné par l'intermédiaire du bus B On rappelle que le bit OFF n'est pas mémorisé, c'est-à-dire qu'il retrouve son état initial O dès que le signal d'écriture sur le bus B disparaît, par exemple, à l'extinction de l'ordinateur Ceci permet de ne pas bloquer l'ordinateur en son état hors tension. Avec le procédé selon l'invention décrit jusqu'à maintenant, un utilisateur peut programmer autant de tâches à faire qu'il y a de bits dans le registre TP à des heures o l'ordinateur est supposé être éteint, par exemple pendant la nuit Ainsi, des tâches fastidieuses telles qu'une sauvegarde de disque dur ou une vérification de virus peuvent être effectuées aussi souvent que nécessaire sans que l'utilisateur soit gêné. Comme cela sera décrit ci- après, un chargement du système d'exploitation sur réseau présente des avantages supplémen- taires. La figure 7 représente un organigramme des opérations effectuées lors d'un chargement sur réseau selon la présente invention. 400 Le serveur reçoit la requête de chargement RQ envoyée par l'ordinateur à l'étape 318 de la figure 5 ou au bloc 210 de la figure 3 La requête de chargement envoyée à l'étape 318 passe comme paramètre l'adresse MAC de l'ordinateur ainsi qu'un numéro de fichier de démarrage ID La requête envoyée à l'étape 210 ne transmet comme paramètre que l'adresse MAC; on peut alors supposer que le numéro de fichier de démarrage ID est nul (correspond à un fichier de démarrage par défaut). 402 Le serveur transmet à l'ordinateur le système d'exploitation et le fichier de démarrage associés au numéro ID. 112 L'ordinateur charge classiquement le système d'exploitation transmis. 114 Les programmes résidants énumérés dans le fichier de démarrage transmis par le serveur sont classiquement instal- lés. 116 Les programmes à lancer énumérés dans le fichier de démarrage transmis sont exécutés Dans la liste de programmes à lancer figurent des programmes choisis et, en début et en fin de liste, des programmes particuliers exécutant les opérations encadrées en pointillés Ces opérations consistent, au début, à annuler le numéro ID et le bit de tâche à faire associé T Px, et, à la fin, à éteindre l'ordinateur Bien entendu, si le fichier de démarrage est le fichier par défaut (ID= 0), celui-ci ne comprend pas les programmes effectuant les opérations encadrées en pointillés. Un technicien s'occupant du réseau, ou administrateur de réseau, peut périodiquement modifier un fichier de démarrage de mise à jour dans lequel sont énumérés des programmes effec- tuant une mise à jour de données ou de logiciels du disque dur d'un ordinateur qui exécuterait ce fichier de démarrage Ainsi, si un utilisateur programme l'exécution de ce fichier de mise à jour à des intervalles périodiques, ses données et ses logiciels se trouveront mis à jour automatiquement Ceci évite les mises à jour fastidieuses que devait effectuer l'administrateur de réseau auprès de chaque ordinateur. Si une tâche programmée est interrompue, par exemple à la suite d'une panne de courant, le bit T Px associé n'est pas annulé Ainsi, dès que le courant est rétabli, l'état 1 du bit T Px est de nouveau détecté par le circuit de commande 44 qui provoque la remise sous tension de l'ordinateur Dans le cas d'un chargement local, le fichier de démarrage courant est toujours celui correspondant à la tâche interrompue et il est de nouveau exécuté Dans le cas d'un chargement sur réseau, le serveur fournira de nouveau le fichier de démarrage associé à la tâche. Si plusieurs tâches sont à faire (plusieurs bits du registre TP sont à 1), une deuxième tâche est exécutée après une première dès que la première tâche se termine en éteignant 1 'ordinateur. Si une tâche est à faire à un instant o l'ordinateur est sous tension, le bit correspondant T Px passe à 1 mais n' a aucun effet tant que l'ordinateur est sous-tension Dès que l'ordinateur sera éteint, le circuit de commande 44 détectera l'état 1 du bit T Px et provoquera la remise sous tension de30 l'ordinateur pour exécuter la tâche. * Si l'utilisateur désire se servir de l'ordinateur lorsqu'une tâche programmée s'exécute, il devra actionner trois fois le bouton de mise sous tension Une première action fait passer le bit PS de O à 1, ce qui n'a aucun effet puisque l'ordinateur est déjà sous tension La deuxième action fait passer le bit PS de 1 à 0, ce qui provoque l'extinction de l'ordinateur La troisième action fait repasser le bit PS de O à 1 en provoquant une mise sous tension manuelle et donc un démarrage classique (on passe par les blocs 302 et 206, figure ) Bien entendu, il faut que la troisième action sur le bouton se produise avant que le circuit de commande détecte une tâche à faire (un bit T Px actif); il faut pour cela inhiber la détec- tion des tâches pendant un délai laissant le temps à l'utili- sateur pour effectuer cette troisième action. Plusieurs autres registres ou bits pourront être prévus dans le jeu commun 40 ou les jeux spécifiques 42 Notam- ment, on peut prévoir dans le jeu commun 40 un registre indi- quant un délai minimum devant s' écouler entre l'extinction de l'ordinateur et une détection d'une nouvelle tâche programmée. On peut également prévoir, par tâche, un bit dont 1 'état détermine si la tâche peut être interrompue ou non par une action sur le bouton de mise sous tension. On peut également prévoir un bit indiquant qu'il faut verrouiller le clavier lorsqu'une tâche programmée est exécutée afin que celle-ci ne soit pas interrompue intempestivement par une action sur le clavier. On peut également prévoir un registre dans lequel figure une heure programmée d ' extinction de l'ordinateur, le circuit de commande 44, lorsque cette heure est atteinte, mettant brièvement le bit OFF à 1, ce qui provoque l'extinction de l'ordinateur et l'annulation du bit PS Ceci permet, lors- qu'un utilisateur oublie d'éteindre son ordinateur, d'exécuter quand même les tâches à faire.30 On peut également prévoir, pour une tâche programmée, un bit qui doit être mis à 1 avant l'écoulement d'un délai pré- déterminé (stocké dans encore un autre registre) depuis le démarrage de l'ordinateur Si le bit n'est pas mis à 1 avant le délai, le circuit de commande 44 éteint l'ordinateur et met à O le bit T Px associé Ceci permet de détecter que la tâche s'est bloquée en cours d'exécution et d'exécuter quand même des tâches ultérieures. De nombreuses autres applications de l'invention peu- vent être envisagées Un utilisateur peut programmer la mise sous tension et l'exécution quotidiennes d'un logiciel juste avant l'heure de son arrivée Ceci permet d'éviter des attentes fastidieuses de démarrage. Les circuits additionnels (registres 40, 42, circuit 44) de l'invention ont été prévus autour d'un circuit existant d'horloge temps réel/mémoire CMOS Bien entendu, ils peuvent être prévus séparément pourvu qu'ils soient alimentés en perma- nence. De nombreuses variantes et modifications de la présente invention apparaîtront à l'homme du métier Notamment, les divers organigrammes sont fournis à titre d'exemple mais ils peuvent bien entendu être modifiés ou optimisés sans sortir du cadre de l'invention De même, ces organigrammes peuvent utiliser les registres décrits ou d'autres registres de manière différente pour aboutir aux mêmes résultats. La réalisation des programmes correspondant aux divers organigrammes sont à la portée de tout programmeur. REVENDICATIONS 1 Procédé de démarrage d'un ordinateur consistant à exécuter un programme de test (POST), à charger un système d'exploitation et à exécuter au moins un fichier de démarrage courant comprenant des programmes choisis par un utilisateur; 5 caractérisé en ce qu'il comprend les étapes suivantes: a) stocker dans un registre non volatile accessible par un bus (B) de l'ordinateur une heure programmée (PT(x)) d'une tâche à faire (x); b) détecter l'égalité entre l'heure indiquée par une horloge (RTC) alimentée en permanence et l'heure programmée, et mettre l'ordinateur sous tension; et c) exécuter, à la plaoe dudit au moins un fichier de démarrage courant, au moins un fichier de démarrage associé à la tâche à faire (x).15 2) Procédé de démarrage selon la revendication 1, caractérisé en ce qu'il comprend les étapes suivantes: mettre à un état actif un bit de tâche à faire non volatile (T Px) accessible par ledit bus (B) et indiquant si une tâche correspondante (x) est à faire lorsque l'heure indiquée20 par l'horloge (RTC) atteint l'heure programmée (PT(x)); détecter 1 ' état actif du bit de tâche à faire, et mettre l'ordinateur sous tension; et désactiver le bit de tâche à faire dès que celle-ci est terminée. 3) Procédé de démarrage selon la revendication 1, caractérisé en ce qu'il comprend les étapes suivantes: stocker dans un registre non volatile de numéro de fichier (ID(x)) accessible par ledit bus (B), un numéro de fichier de démarrage associé à ladite tâche à faire; stocker dans un bit non volatile de chargement sur réseau (NB(x)) accessible par ledit bus (B), une valeur indi- quant si, pour la tâche à faire, il faut charger le système d'exploitation à partir du réseau (N); si le bit de chargement sur réseau est actif, envoyer sur le réseau une requête de chargement (RQ) en passant comme paramètre le numéro de fichier (ID(x)) associé à ladite tâche à faire (x), un serveur fournissant alors à l'ordinateur un système d'exploitation et un fichier de démarrage associés au10 numéro de fichier (ID(x)); et si le bit de chargement sur réseau est inactif, charger un système d' exploitation se trouvant sur un support local ( 18). 4 Procédé de démarrage selon la revendication 3, caractérisé en ce que, si ledit bit de chargement sur réseau (NB(x)) est inactif, il comprend les étapes suivantes: remplacer sur le support local ( 18) le fichier de démarrage courant par un fichier de démarrage associé audit numéro de fichier (ID(x)); redémarrer l'ordinateur, d'o il résulte que le fichier de démarrage associé au numéro de fichier est exécuté; et rétablir le fichier de démarrage initial. Procédé de démarrage selon la revendication 3, caractérisé en ce qu'il comprend les étapes suivantes effectuées par un programme de test (POST) modifié: vérifier si l'ordinateur a été mis sous tension manuellement et, dans la négative, continuer selon les étapes suivantes;30 écrire dans un registre d'identification (ID) acces- sible par ledit bus (B) une information indiquant qu'une tâche est à faire; et charger le système d'exploitation à partir du réseau ou d'un support local, selon l'indication du bit de chargement sur réseau (NB(x)). 6 Procédé de démarrage selon la revendication 5, caractérisé en ce qu'il comprend les étapes suivantes effectuées par un fichier de démarrage par défaut sur un support local: lire le registre d'identification (ID); si le registre d'identification indique qu'une tâche est à faire, remplacer le fichier de démarrage courant par un fichier de démarrage associé à la tâche à faire (x) et redé- marrer à chaud. 7 Procédé selon la revendication 5, caractérisé en ce qu'il comprend les étapes suivantes effectuées par un fichier de démarrage fourni par le réseau, autre que le fichier de démar- rage par défaut: exécuter des programmes choisis; initialiser le registre d'identification (ID); et désactiver le bit (T Px) de tâche à faire. 8 Procédé selon la revendication 6, caractérisé en ce qu'il comprend les étapes suivantes effectuées par un fichier de démarrage sur un support local, autre que le fichier de démar- rage par défaut: exécuter des programmes choisis; rétablir le fichier de démarrage par défaut; initialiser le registre d'identification (ID); et désactiver le bit (T Px) de tâche à faire. 9 Ordinateur comprenant une horloge temps réel (RTC) alimentée en permanence et un bloc d'alimentation ( 26) comman- dable par un signal logique, caractérisé en ce qu'il comprend: un premier jeu de registres non volatiles ( 40) accessibles par un bus (B) de l'ordinateur, comprenant un regis- tre de tâches à faire (TP) dont chaque bit (T Px) indique si une tâche correspondante (x) est à faire ou non; un jeu de registres non volatiles ( 42) spécifique à chaque tâche à faire et accessible par le bus, chaque jeu de registres spécifique comprenant un registre de numéro de fichier de démarrage spécifique (ID(x)) et un registre d'heure program- mée (PT(x)) de la tâche; des moyens pour comparer le contenu des registres d'heure programmée à l'heure indiquée par l'horloge temps réel et pour activer un bit (T Px) de tâche à faire si l'heure de l'horloge temps réel atteint une heure programmée correspon- dante; et des moyens pour détecter l'état actif de l'un quel- conque des bits de tâche à faire et pour commander la mise sous tension de l'ordinateur. Ordinateur selon la revendication 9, caractérisé en ce que le premier jeu de registres ( 40) comprend un registre de numéro de fichier de démarrage courant (ID) dans lequel, à chaque mise sous tension provoquée par une tâche à faire (x), est écrit le numéro de fichier de démarrage spécifique (ID(x)) à la tâche à faire (x), et en ce que chaque jeu de registres spécifique ( 42) comprend un bit de chargement sur réseau (NB(x)) indiquant si un système d'exploitation doit, pour la tâche associée, être chargé à partir d'un réseau (N) ou d'un support local ( 18).