Vous êtes sur la page 1sur 11

des procedures logicielles standards (lecture, ecriture, operations annexes) integrer au systeme (en ROM-BIOS et/ou sur disquette,

CD-ROM); la documentation technique.

La partie adaptation-bus peut egalement etre disponible isolement (interface universelle), ce qui permet a un usager competent de realiser la connexion d'instruments non standard. Le developpement des circuits d'adaptation des signaux et du logiciel de commande est alors a sa charge.

Le principal inconvenient de la conduite logicielle integrale, outre l'encombrement de la memoire centrale, reside dans la contrainte de temps reel. L'unite centrale, monopolisee par la commande du peripherique, passe l' essentiel du temps a attendre des echeances qu'il ne faut manquer en aucun cas. Une telle contrainte ne permet pas - sans risques - de concevoir une activite parallele, meme la commande simultanee d'un autre peripherique. Aussi Ie contrale peutil etre realise (figure 25.10) par un circuit electronique integre a l'interface, appelee alors controleur.

Adresses

Commandes

I I t

L; ~ Donnees

a commande
integree (CONTROLEUR) COMMANDE INTEGREE DU PERIPHERIQUE (circuit sequentiel dote d'une horloge temps reel)

INTERFACE

Si Ie conrraleur dispose d'une totale autonomie de commande du peripherique, l'initiative du Iancement revient toujours au logiciel, par Ie biais d'un code

d' ordre, accompagne eventuellement de parametres (adresse disque, reseau, ete.). Le controleur est dote d'un tampon qui permet des echanges par paquets de bits avec 1'unite centrale. Un code d'etat permet au processeur de s'informer en permanence de 1'avancement du processus (processus en cours/acheve/abandonne, incidents), et de pro ceder en temps voulu a 1'evacuation (tampon plein) ou la livraison (tampon vide) de donnees.

25.3.3 Acces direct memoire (DMA) -Interruptions


En presence d'un controleur, le logiciel n'a presque plus rien a faire, si ce n'est des echanges unitaires de donnees entre memo ire centrale et tampon, echanges rares mais a echeances imperatives (synchrones). Le manquement d'un echange compromettrait definitivement le deroulement du processus. Il est vrai que, moyennant une rapidite d' execution suffisante, 1'unite centrale peut desservir plusieurs interfaces simultanement actives. L interrogation d'etat se fait alors en scrutation (polling). Il y a cependant une difference essentielle entre les echeances : si un echange de donnee est requis, Ie logiciel doit y pro ceder a temps (asservissement a la cadence imposee par l'interface); si le processus complet est acheve, le logiciel peut entamer le traitement (synchronisation au plus tot sur fin d'entree/sortie). La responsabilite du logiciel concernant les echanges elementaires est liee manifestement au monopole du processeur (seul maitre du bus central), en matiere d'acces ala memoire centrale. Par consequent, un partage de cette autorite avec 1'interface pourrait affranchir totalement le logiciel des contraintes imperatives (temps reel) en cours de processus. Un controleur conyu pour centrale (interface DMA, l'ordre initial de lancement, choisie par le logiciel. On (memoire) (figure 25.11). prendre lui-meme 1'initiative des acces en memoire Direct Memory Access) se voit communiquer, avec l' adresse de la zone d' echange en memo ire centrale dit aussi que l'interface procede par vol de cycle

Le mecanisme d'interruption constitue une autre forme de synchronisation entre logiciel et controleur : Ie circuit de commande du processeur realise alo's, simultanement a l' execution normale de logiciel, une scrutation permanente des demandes d'interruption. Sur activation du signal d'interruption par une interface, le processeur suspend l' execution du logiciel en cours, pour executer un programme particulier appele routine d'interruption, puis reprend le logiciel suspendu. La routine d'interruption, apres analyse de l' origine de la demande, procede a 1'echange requis. Le mode DMA est cependant indispensable lorsque la cadence des echanges depasse les possibilites du processeur, sans pouvoir depasser toutefois la bande passante de la memo ire centrale.

Commandes demande Acces au BUS Realisation des echanges de donnees avec la memoire centrale INTERFACE CONTROLEUR avec acces direct Registres de gestion BUFFER en memoire centrale

t t

L,

Donnees

+ + +
Detection des demandes du processeur pour acquisition de ORDRE + BUFFER

en
memoire centrale (DMA) COMMANDE INTEGREE DU PERIPHERIQUE (circuit sequentiel dote d'une horloge temps-reel)

25.3.4 (anaux et processeurs d'entrees / sorties


La possibilite, pour un controleur DMA, d'acceder a volonte a la memoire centrale lib ere Ie logiciel d'une contrainte majeure: une fois qu'un processus d' echange est lance, la circulation des donnees entre la memo ire centrale et 1'interface est transparente. Le logiciel retrouve alors immediatemem toute liberte d' action; illui reviendra toutefois d' assumer sa coherence algorithmique en evitant d'interagir avec Ie buffer pendant Ie processus d' echange et de se synchroniser sur la fin de ce dernier. Cette liberte d'action rend possible Ie parallelisme traitement/echange et peut notamment conduire Ie logiciel a solliciter de nouveaux echanges, destines ou non a la meme interface. II en resulte deux problemes nouveaux : Ie Iancement d'une interface n'est evidemment possible qu'en 1'absence de processus deja en cours, d' OU un blocage possible pour Ie logiciel; l'activite simultanee de plusieurs interfaces est possible en raison de leur totale autonomie, mais a la condition que Ie debit de la memoire centrale et la vitesse de part age du bus supportent la cadence ainsi cumulee.

Pour prevenir Ie blocage logiciel, Ie controleur peur etre conc;:upour executer successivement une liste d' ordres, construite prealablement en memoire centrale. I..:interface est alors appelee canal. Le logiciel construit cette liste et en transmet l'adresse au canal. Peuvent donc coexister en memoire, une liste en cours d' execution par Ie canal (programme-canal), et une liste en cours de construction par Ie logiciel (file d'attente). Le canal marque les elements du programme-canal a mesure de leur achevement, pour permettre au logiciella synchronisation individuelle. La limitation du debit cumule des echanges peripheriques a la bande passante de la memo ire centrale necessite une instance de regulation centralisee, dont Ie role est de decider si un nouveau lancement est possible, compte tenu des echanges deja en cours. Cette instance peut erre Ie systeme d' exploitation, qui centralise de route maniere et pour des raisons de securite les requetes des applications. Mais lorsque l'equipement peripherique s'accroit, la complexite de la regulation augmente sensiblement. Dans ce cas, il est souhaitable que la fonction de regulation soit assuree par un dispositif materiel associe aux interfaces, qui coordonne l'activite de plusieurs canaux, et que l' on appelle processeur d'entrees!sorties ou canal multiple (figure 25.12).

BUS CENTRAL (partageable)

accord demande

Aaresses

' .

Commandes

+++

Donnees

f.

t
PROCESSEUR D'ENTREES/SORTIES Detection des ordres (du processeur) Execution regulee des programmes-canal Lancement des controleurs Realisation des echanges-memoire Bus peripherique

[I

Figure 25. 12 - Interface a contro/eurs multiples et regulation de flux (processeur d'entree/sortie).

25.3.5

Genese de 10 multiprogrommotion -Interruptions


Du point de vue du logiciel, qui reste la reference unique de l' ordonnancement global d'un traitement, 1'introduction du parallelisme se heurte a la complexite

dissuasive de sa maltrise. En revanche, si 1'on considere que plusieurs programmes independants peuvent trouver place dans la meme memo ire centrale, rien ne s'opposerait a priori a leur execution simultanee, a condition que la structure sequentielle interne a chacun soit assuree. C' est ce qui a constitue, historiqueme nt, la genese de la multiprogrammation. Un programme d'application, qui parvient au cours de son execution a un point d'attente, peur ceder provisoirement Ie processeur a un autre programme d' application qui n' est pas (ou plus) triburaire lui-meme d'une attente, ... et a charge de revanche. De cette manihe, l'execution de plusieurs programmes peur etre entrelacee, au gre des cessions mutuelles du processeur. En raison de l'unicite du processeur, il ne s'agit pas d'une execution reellement simultanee de plusieurs applications en ce qui concerne Ie calcul, mais d'une illusion a l'echelle humaine. L'execution d'une application n' est pas plus rapide, mais il est possible d' executer plus d' applications ala fois, ce qui est un facteur de rentabilisation de l' architecture materielle. Le mecanisme de cession mutuelle (commutation de process) est, a priori, strictement logiciel et a 1'initiative du programme en cours d' execution. Ii se traduit par rappel d'une procedure-relai du systeme d'exploitation appelee dispatcher, qui detient une table de localisation des programmes presents, et de leurs points d'arret (valeur de compteur ordinal). Ii est apparu cependant que Ie mecanisme de cession volontaire n' etait pas suffisant, ni pour la securite operatoire (programmes errones monopolisant indefiniment Ie processeur), ni pour l' exploitation optimale de la peripherie (interfaces inactives malgre les files d'attente), ni pour une gestion fine de la multiprogrammati on (priorites ou paftage equitable du temps). Pour ces differentes raison, un systeme d'interruptions permet de contraindre Ie processeur a une action urgente et independante de l' execution en cours. Ainsi par exemple, les interruptions regulierement sollicitees par une minuterie de temps reel, permettent-elles de realiser un paftage temporel equitable du temps-processeur entre applications (temps partage). Celles sollicitees par une interface en fin de travail permettent de relancer Ie programme qui attend, de meme que 1'interface elle-meme, pour un travail en souffrance (liste d'attente). Celles generees par un clavier permettent a 1'usager de tuer un programme errone (avortement).

25.4 Logicield'exploitation
La fonction premiere de l'ordinateur est la realisation de traitements d'information tres divers, par Ie recours a une architecture materielle unique, mise en action par du logiciel amovible en memoire centrale. Aurant Ie processeur central d' execution ne connah-il qu'un Rot continuel d'instructions elementaires, aurant l'usager est amene a considerer Ie logiciel comme forme d' entites bien delimitees (programmes), et nommees en rapport avec leur objet - gestion de stocks, controle de processus, etc.

Lexploitation de 1'ordinateur peut se definir comme 1'ensemble des actes qui conduisent a l'objectif central qu' est l'execurion d'un logiciel : conception et realisation, stockage du logiciel et des donnees permanentes sur des supports adaptes, enfin entegistrement pour execution. 5i la signification (semantique) d'un traitement d'information, et donc son expression particuliere en termes de logiciel, reste du ressort exclusif de son concepteur humain, les manipulations liees a son exploitation peuvent en revanche etre considerees comme des servitudes banalisables. C' est la precisement l' objet du logiciel d' exploitation. La fonction fondamentale du systeme d'exploitation est de permettre aux logiciels d'application de venir prendre place en memoire centrale (chargement) pour leur execution. Cette fonction est assuree par un programme que l' on appelle interpreteur de commandes ou moniteur qui, par un dialogue avec 1'usager a travers un ensemble clavier-souris-ecran, met Ie systeme materiel a sa disposition. Accessoirement, un moniteur offre aussi certains services d'utilite generale, tels que copies d'information pour sauvegarde, initialisation et reorganisation des supports de stockage, ete. La deuxieme fonction du systeme d'exploitation est de prendre en charge, pour Ie compte des applications, les problemes d'acces aux supports peripheriques standard (gestion de la peripherie), de maniere a affranchir les applications de toutes les contingences liees a la conduite du materiel; ce role d'interface est assure par un ensemble de fonctions logicielles organisees en couches fonctionnelles de niveau croissant d'integration de services. Enfin, lorsque l'ordinateur est exploite en multiprogrammation, Ie role du systeme d' exploitation est de partager l'acces a l' execution, de prevenir les conflits et d' optimiser les ressources (memo ire, peripherie). La majeure partie des fonctionnalites decrites ci-dessus est residante, c' est-a-dire a demeure en memoire centrale, par necessite (chargeur, relais multiprogrammation) ou par efficacite (gestion de la peripherie).

25.4.1 Gestion de 10 peripherie


Lorganisation du logiciel d'interface avec la peripherie standard est fondee sur la recherche de la transparence pour les applications, donc de leur adaptabilite : a regard des particularites technologiques d'abord, de la localisation des donnees ensulte.

Acces

DUX

supports

Au niveau Ie plus elementaire, 1'acces a un support necessite la connaissance de l'adressage physique de 1'interface materielle sur Ie bus central, de son langage particulier (codage des ordres et etats), des incidents habituels et de leurs reparations possibles. Les fonctions de base telles que acquisition/restitution (support

de dialogue), lecrure/ecriture (support de stockage) ou reception/emission (support de transmission), SOntprises en charge par des logiciels pilotes (driver on BIOS). Le recours aces logiciels permet de masquer, pour les applications, la diversite technologique des supports et de l'architecture materielle de l' ordinateur. Ainsi, par exemple, un logiciel de facruration est-il rendu independant du type d'imprimante ou de disque utilise, et des incidents pouvant survenir a l'execution. Ii s'agit d'un facteur de portabilite important.

Methodes de gestion des supports standard


La couche logicielle suivame f(~pond a un objectif d' ordre methodologique. Ii s'agit de partager rationnellement 1'usage des supports entre les applications. Ainsi, l'espace physique de stockage d'un disque peut-il etre reparti en sous-espaces appeles fichiers, identifies par des noms symboliques, et repertories dans une table permanente situee sur Ie meme disque (directory). De meme, la connexion de l'ordinateur a un reseau de communication lui permet-elle d' acceder, a travers un lien physique unique, a divers autres ordinateurs, grace a des annuaires d' abonnes identifies par leurs noms, associes a leur localisation physique. Enfin, 1'espace de visualisation d'un ecran est partageable en fenetres, ce qui offre un moyen de dialogue avec plusieurs applications simultanement actives. Pat les conventions qu'il imroduit necessairement, notamment en matiere de reseaux (trames et protocoles), dans une moindre mesure pour les disquettes (formats), ce service logiciel est fortement normatif, mais facilite considerablemem la communication entre materiels differents. La transparence apportee a ce niveau permet aux applications de s'adresser a des fichiers, des abonnes, des fenetres de dialogue, qui SOnt des designations symboliques et non a des disques, des lignes et des ecrans physiques.

Assignation, redirection

A un

niveau d'abstraction plus eleve, les communications d'une application avec les instances de stockage, transport et dialogue peuvent etre integrees en une vision unique. Dans son expression logicielle, une application identifiera les donnees relatives a son travail, non par leur localisation, qui pourra varier d'une execution a l' autre, mais par leur fonction, qui releve de leur semantique invatiable. Par exemple, un logiciel de gestion commerciale doit acceder a des donnees relatives aux cliems et aux stocks. Ces deux categories d'information ressortissent a des semantiques differentes, et seront necessairement organisees en fichiers distincts. En revanche, les fichiers de stocks et de clients de plusieurs entreprises independantes doivent pouvoir cohabiter, sous des noms differents sur un meme disque, et etre traites en plusieurs executions independames, par Ie meme logiciel. Lassociation temporaire d'un idemifiant formel invariant (fonction) et d'un identifiant reel variable (localisation), appelee assignation est un parametrage qui

permet d' adapter une version unique de logiciel d' application de donnees a l'execution.

a differents

choix

Le concept d' assignation prend une importance considerable avec la mise en reseau. Ainsi, une execution de l' application com.merciale peut-elle etre realisee sur 1'unite centrale d'un premier ordinateur (serveur d'application), acceder aux nchiers stocks et clients situes sur Ie disque d'un deuxieme ordinateur (serveur de bases de donnees), sous Ie contr6le d'un usager utilisant Ie clavier-ecran d'un troisieme ordinateur. Dans cet exemple, Ie mecanisme d' assignation est mis en ceuvre de fac;:onrecurrente, et conduit en quelque sorte a la connexion en chaine des fonctions de dialogue, de transport et de stockage, au sein d'un meme ordinateur, et entre ordinateurs relies en reseau.

25.4.2

Gestion de 10 multi-progrommotion
Gestion de 10 peripherie et multi-programmation
:Lexecution entrelacee de plusieurs taches, qui dennit la multi-programmation, trouve son origine dans la simultaneite de fonctionnement des interfaces avec un processeur central unique ( 25.2). Pour que la mise en ceuvre reste transparente aux taches d' application, les commutations (passages du processeur a une autre tache) ont lieu par Ie biais des procedures standards de gestion de la peripherie. Lors de 1'interrogation sur l'achevement d'une entree/sortie (etat de 1'interface), en cas de reponse negative, la procedure standard passe le relais a une tache susceptible de beneficier du processeur, au lieu de se cantonner a re-interroger 1'interface en boucle d'attente, comme ce serait Ie cas en monoprogrammation. Le contexte de la multi-programmation introduit aussi la necessite de precautions specinques quant a 1'usage des supports. On n'imagine pas qu'au hasard de l'execution entrelacee, deux taches puissent produire sur une imprimante unique un document enchevetrant des caracteres ou lignes issues des deux. II convient donc de reglementer de fac;:oncentralisee l'acces aux ressources peripheriques de 1'ordinateur. Dne ressource physique, comme 1'acces a une imprimante, devra etre attribuee de fac;:onexclusive a une seule tache, alors qu'un disque ou une ligne de transmission seront partageables : c' est l'acces a un nchier ou une voie de communication qui sera considere comme une ressource. :Lattribution et la restitution d'une ressource sont integrees aux fonctions d'ouverture et de fermetUJre de nchiers ou de sessions, vues par l' application comme des services (localisatiun du nchier-disque ou de 1'abonne-reseau). On notera que 1'attente de liberation d'une ressource allouee constitue un nouveau pretexte a commutation, genere par l'existence meme de la multiprogrammation.

Gestion des taches, temps portage, taches de fond


Dne tache en cours d'execution peut ceder volontairement Ie processeur des qu'elle est en attente d'entree/sortie ou de ressource. Dn systeme d'interruption

peut aussi provoquer de telles commutations de maniere asynchrone. Une commutation se traduit par l' abandon provisoire de l'execution de la tache en cours, et Ie choix d'une tache beneficiaire eligible, c'est-a-dire qui ne soit pas ellememe en attente de ressource: ce choix peut se faire au hasard (time slicing), mais il est plus pertinent d' associer aux taches un niveau de priorite, ce qui permet de gerer des degres d'urgence differents dans 1'exploitation. Lapproche la plus courante consiste a distinguer trois classes de priorites. La plus prioritaire rassemble les taches de type temps reel, la moins prioritaire les taches dites de fond ou d' arriere-plan. Les taches de ces deux classes n' ont qu' exceptionnellement recours au dialogue humain. La classe intermediaire correspond aux taches dites conversationnelles qui sont au contraire en dialogue continue!. Le temps partage (time sharing) est un systeme de priorites tournantes qui permet, grace aux interruptions generees regulierement par une horloge, de partager equitablement Ie temps d' execution entre ces taches.

Systemes multitoches
Un systeme multitaches permet de concevoir la programmation d'une application comme un ensemble de taches executables simultanement, mais qui dialoguent ou se synchronisent entre elles au lieu d' etre reputees independantes. Ces fonctionnalites d' ordonnancement intertaches permettent a une application d' exploiter explicitement la multiprogrammation (ou une architecture a processeurs multiples), par un parallelisme entre taches qui cooperent, plutot que par des parallelismes internes que ne permettent pas d'exprimer les langages ordinaires de programmation.

25.4.3 Systemes multi-usagers


Lorsque plusieurs usagers se servent d'un meme systeme materiel-Iogiciel, que ce soit alternativement (monoprogramme), ou bien simultanement (multiprogramme, avec plusieurs consoles), se pose un probleme de protection de leurs donnees permanentes contre un acces maladroit ou malveillant. Un systeme est dit multi-usagers lorsque les fichiers sont assortis des parametres identifiant leur proprietaire (nom, mot de passe), et precisant les droits d' acces concedes a d'autres usagers (par exemple lecture seulement). Un fichier specifique consigne alors la liste des usagers, et Ie programme de dialogue d' exploitation n' accepte de commandes que provenant d'un usager qui s'est d' abord identifie sur une console de dialogue (login) et jusqu'a ce que celui-ci avertisse de son depart (logout). Un usager privilegie, appele administrateur du systeme, dispose seul du droit d' acces ala liste des usagers (ajout, retrait).

25.4.4 Developpement de logiciel


Un programme d'application n'est directement executable que s'il est code dans Ie langage-machine du processeur cible. D' OU les termes d' executable ou de

code que 1'usage a consacres pour qualifier les fichiers et les programmes correspondants. De meme que 1'interpreteur des cornman des d' exploitation permet de masquer les particularitt?s et la complexite materielles par un dialogue simple et convivial en langage familier (ecrit ou gestuel), d' autres logiciels peuvent etre imagines pour traduire et decomposer en langage-machine des traitements exprimables dans un langage plus lisible par 1'usager. La lisibilite tient essentiellement au fait que donnees et operations peuvent y etre codees par des noms, des verbes et des formes grammaticales tires du langage courant, donc charges de la signification qui s'y attache implicitement. Une traduction litterale en langage-machine par un processus auto mati que est concevable, dans la mesure OU elle ne concerne que la seule transcription d'une syntaxe (codage) vers une autre.

Interpreteurs et compilateurs

Les competences d'un traducteur peuvent etre sollicitees en direct (conference) ou en differe (texte ecrit). A ces deux conditions de travail correspondent respectivement, et pour un meme langage, Ie logiciel interpreteur (direct) ou compilateur (differe). Linterpretation est un mode conversationnel, qui traduit une phrase et en lance l'execution immediate. Elle convient particulierement a la phase de mise au point d'un programme ou encore a des operations circonstancielles que l'on ne pense pas renouveler systematiquement; en effet, apres traduction-execution, il ne restera pas trace de la version traduite. Au contraire, la compilation se limite a une pure traduction : elle produit une version en langage-machine d'un logiciel complet. Pour une application dont la mise au point est achevee, la disponibilite de la version traduite est plus efficace pour l'exploitation.

De meme que la construction d'architectures materielIes, celIe de logiciels peut recourir a des developpements particuliers et/ou integrer par interconnexion des composants existants. Les outils logiciels les plus courants, qui industrialisent l'activite de developpement, sont : l'editeur, qui permet la creation et la mise langage evolue (ou en assembleur) ; Ie compilateur, I'interpreteur; l'editeur de liens, qui permet la construction de programmes par assemblage (interconnexion logicielle) de composants nouvellement developpes et/ou pre-existants. Les composants pre-existants sont souvent organises en bibliotheques specialisees, par exemple pour Ie calcul scientifique, la synthese d'image ou 1'acces a des bases de donnees. Lorsqu'elles sont associees a des langages et des compilateurs particuliers, de telles bibliotheques sont appelees run-time.

a jour

de fichiers de programmes en

Progidels et applications standards


Le terme de progiciel (neologisme qui vient de produit logiciel) designe un logiciel d'application conyu selon une norme reconnue (a moins qu'il ne cree par luimeme une norme de fait) et dont les fonctionnalites s'adaptent, moyennant la possibilite de parametrages, a l' ensemble des usagers. Apres avoir envahi les domaines les plus facilement normalisables, tels que la bureautique (traitements de textes, tableurs, editeurs de fichiers et de bases de donnees), la comptabilite, la gestion commerciale ou du personnel, les progiciels s'etendent de plus en plus vers les activites plus specifiques des entreprises (production), et y introduisent des effets normatifs.