• 270 likes • 458 Views
Système d’exploitation. L’architecture des ordinateurs en bref. Ordinateur personnel simple. Le processeur (CPU). Extrait les instructions de la mémoire et les exécute. Cycle de base: Extraire Décoder Exécuter Plusieurs registres de 32 ou 64 bits. Trois registres spéciaux:
E N D
Système d’exploitation L’architecture des ordinateurs en bref
Le processeur (CPU) • Extrait les instructions de la mémoire et les exécute. • Cycle de base: • Extraire • Décoder • Exécuter • Plusieurs registres de 32 ou 64 bits. • Trois registres spéciaux: • Compteur ordinal (PC) • Pointeur de pile (SP) • Mot d’état (PSW)
Pipeline Le processeur possède des unités séparées pour l’extraction, le décodage et l’exécution. Différentes étapes de différentes instructions peuvent être traitées en parallèle.
Processeur superscalaire On dispose de plusieurs unités d’exécutions (ex. arithmétique entière, en point flottant et logique). Deux ou plusieurs opérations sont traité à la fois
Modes utilisateur et noyau • 2 modes de fonctionnement: • Mode noyau: Accès à l’ensemble du système • Mode utilisateur: Accès restreint • Le système d’exploitation tourne en mode noyau • Un des bits du PSW indique le mode.
Appels système Pour accéder aux services du système d’exploitation, un programme utilisateur doit effectuer un appel système qui consiste en: • Basculer en mode noyau • Invoquer le système d’exploitation • Revenir en mode utilisateur • Retourner le contrôle au programme utilisateur. Exemple: Lecture ou écriture sur le disque dur.
Interruption La bascule entre les modes utilisateur et noyau est générée par l’instruction trap qui interrompt le programme en cours pour donner le contrôle à un gestionnaire d’interruption: • Passe en mode noyau • Trouve l’adresse de la fonction cible dans une table d’interruption • Exécute la fonction Selon le type d’interruption, le gestionnaire effectue l’action appropriée. Exemple: Une interruption peut aussi être déclenchée par le matériel pour avertir d’une situation imprévue (division par 0, débordement de pile, etc.).
Langage assembleur sur Pentium eax et ebx sont deux des registres de 32 bits. • add eax, ebx ; eax = eax + ebx • mov eax, 3 ; eax = 3 • mov ebx, eax ; ebx = eax • mov ebx, [eax] ; ebx = *eax • inc ecx ; ecx++ • sub eax, ebx ; eax = eax – ebx • cmp eax, ebx ; compare eax et abx et ; modifie le PSW (FLAGS)
Langage assembleur sur Pentium L’instruction cmp modifie le bit ZF de FLAGS Par exemple, le code C suivant: if (EAX == 0) EBX = 1; Else EBX = 2; peut s’écrire:
Langage assembleur sur Pentium cmp eax, 0 ; if ( eax==0) ZF=1 else ZF=0 jz A1 ; if (ZF==1) goto A1 mov ebx, 2 ; ebx=2 jmp A2 ; goto A2 A1: mov ebx, 1 ; ebx=1 A2:
Langage assembleur sur Pentium • Appels de fonctions effectués à l’aide de la pile. • Le registre ESP contient l’adresse du dessus de la pile. • L'instruction CALL fait un saut inconditionnel vers une sous-routine (empile l’adresse de l’instruction suivante). • L’instruction RET dépile une adresse et saute à cette adresse. • L’instruction PUSH sert à empiler les arguments • L’instruction POP sert à dépiler les arguments
La mémoire La mémoire est construite comme une Hiérarchie de couches
La mémoire cache • Principalement contrôlée par le matériel. • Souvent plusieurs niveaux. • Utilise le principe de la localité qui dit qu’une ressource utilisée à un instant donné risque fort d’être utilisée à nouveau dans un futur proche.
La mémoire principale • RAM (Random Access Memory) • La capacité augmente rapidement • Présentement on peut facilement atteindre 16 Go sur un ordinateur personnel
Les disques durs Plusieurs millions de fois plus lents que la mémoire principale
Les bandes magnétiques • Le principal avantage est le très faible coût • Peut prendre plusieurs minutes pour accéder à l’information. • Utilisé pour l’archivage des données et pour stocker de grandes quantités d’information.
Systèmes multitâches • Plusieurs programmes sont en mémoires. • Quand un programme est bloqué parce qu’il attend le résultat d’une E/S alors un autre programme peut utiliser le CPU. • Deux problèmes se posent: • Comment protéger les programmes les uns contre les autres? • Comment reloger les programmes en mémoires?
Les périphériques • Matériel • contrôleur • Périphérique • Logiciel • Pilote
Le pilote de périphérique • Fonctionne habituellement en mode noyau • 3 façons de l’installer • Lier avec le noyau et redémarrer le système (plusieurs systèmes UNIX fonctionnent ainsi) • Ajouter une entrée dans un fichier spécial et redémarrer le système (Windows fonctionne ainsi) • Ajouter sans arrêter le système et sans redémarrage (plug-and-play)
Le contrôleur de périphérique • Fourni une interface simple au système d’exploitation • Possède un petit nombre de registres utilisés pour la communication. • Le pilote reçoit une commande du SE qu’il converti en valeurs qu’il écrit dans les registres du contrôleur. • Registres mappés en mémoire • Instructions IN, OUT avec numéro de port.
Les entrées/sorties Trois méthodes: • Attente active • Utilisation des interruptions • Accès direct à la mémoire
Attente active Un appel système est effectué par un programme utilisateur. Le noyau appelle le pilote approprié qui demeure actif tant que l’opération n’est pas terminée. Le contrôle est retourné au programme utilisateur.
Utilisation des interruptions Le pilote demande au contrôleur de périphérique d’effectuer une interruption lorsque l’opération sera terminée. À la réception de l’interruption, le pilote lira l’information en provenance du contrôleur de périphérique.
Accès direct à la mémoire (DMA) • Nécessite du matériel supplémentaire: puce DMA (Direct Memory Access) • Pour communiquer avec un périphérique, le CPU initialise la puce DMA. • Celle-ci s’occupera de la communication avec le périphérique ainsi que du transfert de données entre la mémoire et le contrôleur. Il avertira le processeur lorsque l’opération sera complétée.