( Multiple Virtual Storage ) Université de Marne La Vallée Ingénieurs 2000 Le Système MVS ( Multiple Virtual Storage ) Bertrand GUILLAUME Octobre 2000 Informatique & Réseaux 3ème annèe
SOMMAIRE 1. Présentation du système MVS 2. La ressource Processeur 3. La ressource Mémoire 4. Les fichiers
1. Présentation du système MVS 1. Historique 2. Les caractèristiques 2.1. Multi-programmation 2.2. Multi-traitement 2.3. Mémoire virtuelle
Historique MVT OS/360 PCP MFT OS/VS2 OS/VS1 SVS MVS MVS/SE MVS/SP 1964 PCP MVT MFT Apparition de la mémoire Virtuelle OS/VS2 OS/VS1 SVS MVS 1974 OS : Operating System PCP : Primary Control Program MFT : Multiprogramming with fixed tasks MVT : Multiprogramming with variable tasks OS/VS : Operating System / Virtual Storage SVS : Single Virtual Storage MVS : Multiple Virtual Storage MVS/SE : MVS / Systems Extensions MVS/SP : MVS/ System product MVS/SE MVS/SP MVS/370 MVS/XA MVS/ESA 1980 1983 1988
Caractèristiques Multi-programmation : Plusieurs utilisateurs ou travaux peuvent être servis simultanément par la machine. Multi-tâche : Plus fine que la multi-programmation. Un travail peut-être constitué de différentes tâches fonctionnant les unes après les autres (compétition pour l’usage du processeur) Multi-traitement : Plusieurs processeurs peuvent être gérés par le système. Multi-programmation : simultanément = un seul travail est traîté par le processeur a un instant donné. Les utilisateurs sont servis si rapidement qu’à l’echelle humaine les utilisateurs paraissent utiliser tous en même temps le processeur. Multi-Traitement : à un instant la machine peut traiter autant de processus que de processeurs. La mémoire virtuelle : Chaque travail se voit offrir une taille de mémoire possible pouvant être bien supérieure à la mémoire réellement disponible.
La ressource Processeur 1. Rappel sur les notions de base 2. Gestion des interruptions 3. Le distributeur (Dispatcher) 4. Les multi-processeurs
Rappel sur les notions de base Les interruptions : 6 types entrée-sortie erreur machine (“machine check”) redémarrage (“restart”) interruption externe interruption programme appel superviseur (“SVC Call”) Entrée-sortie : le matériel signale au système la fin d’une E/S ou un chgt d’état d’un périphérique. Erreur machine : mauvais fonctionnement de l’ordinateur. Pb de fiabilité des infos mémoire ou registre, Pb d’alim électrique, Pb de refroidissement Redémarrage : remise en route de la machine après la commande MVSQUISCE (mise en attente de la machine) ou quand un processeur en démarre un autre en environnement multi-processeur. Interruption externe : l’opérateur appuie sur la touche “interrupt”, sur un signal d’un autre processeur. Interruption programme : erreur incorrigible dans un programme comme la division par zero. Appel superviseur : appel au routines du système pour certaines fonctions déterminées comme la demande d’espace mémoire, abandon d’un prog, execution d’E/S …...
Rappel sur les notions de base Le mode d’adressage : 24 bits (vient de la version SP1) : barre des 16 Mo 31 bits Le DAT (Dynamic Address Translation) : Mécanisme qui traduit les adresses virtuelles en adresses réelles. Mode V=V ( programme utilise les adresses virtuelles ) Mode V=R ( programme utilise les adresses réelles ) Mode d’adressage : le mode 24 bits empeche l’accès aux données ou aux programmes d’adresse virtuelle supérieures à FFFFFF hexa. C’est la barre des 16 Mo.
Rappel sur les notions de base TCB (Task Control Block) : Représente une tâche liée à un espace-adresse ( mode habituel d’exploitation du processeur ) SRB (Service Request Block) : C’est une demande de service système de haute priorité dont le système peut demander l’exécution dans un espace-adresse donné.
Rappel sur les notions de base PSW (Program Status Word) : Registre du processeur qui caractérise l’état de la routine qui est en cours d’exécution sur le processeur. Contient les informations capitales qu’il faut sauvegarder lors d’une interruption. Mot de 64 bits.
Bits 6 7 8 14 15 16 34 64 Adresse à 24 ou 31 bits de la prochaine instruction à exécuter. Etat du processeur Proc. en attente Proc. Interruptible par interruption erreur machine Proc. Interruptible par interruption externe Proc. Interruptible par interruption E/S Utilisation du DAT
La gestion des interruptions Une interruption n’est prise en compte que si le processeur est interruptible pour ce type d’interruption. Mécanisme de traitement d’une interruption
Current PSW 1 2 3 Old PSWs New PSWs Program A Redémarrage Externe SVC PSW swap Redémarrage Externe SVC Programme Erreur Machine Entrée/Sortie Redémarrage Externe SVC Programme Erreur Machine Entrée/Sortie SVC Interrupt Handler SVC 3 1 : sauvegarde du PSW courant dans une zone fixe de la mémoire (fonction du type d’interruption) 2 : chargement du PSW qui traite le type de l’interruption. 3 : le nouveau PSW branche le processeur vers la routine de traitement de l’interruption. Sauvegarde des registres (FLIHs) puis execution de la routine exact (SLIHs) First Level Interupt Handler & Second Level Interrupt Handler Le processeur utilise les 4 premiers Ko de memoire reelle / virtuelle lorsqu’il traite une interruption : la PSA (prefix storage area Old PSWs New PSWs Dispatcher Sauvegarde des registres dans la zone des 4 premiers Ko (PSA)
Plusieurs interruptions peuvent survenir simultanément. Ce mécanisme permet de traiter uniquement 6 interruptions de natures différentes simultanément. Dans ce cas on fait six échange entre OldPSW et New PSW dans l’ordre inverse de priorités : le newPSW d’un type devenant l’OldPSW d’une autre interruption) Par branchement au dernier NewPSW sera traitée l’interruption la plus prioritaire, puis celle de priorité inférieure.
Le distributeur (Dispatcher) Il recherche le travail le plus prioritaire pour lui fournir la ressource processeur dont il a besoin. Il est appelé en particulier après le traitement d’une interruption
Work Unit Queue Dispatcher AS AS AS AS Work Element Block SRB TCB AS Work Element Block SRB AS Work Element Block SRB AS Les travaux sont classées par priorité dans la WUQ. Chaque AS a une priorité de dispatching (DPRTY) déterminé par les paramètres du système et modifiable dynamiquement par le système. Priorité sur les SRB globaux Puis SRB locaux Puis les TCB mais toujours par ordre de priorité. La gestion des priorité est faite par l’algo SRM. AS=Address Space
Les multi-processeurs Partage d’une même mémoire réelle entre plusieurs processeurs. Ce partage pose problème pour la PSA ( 4 premiers Ko pour la gestion des interruptions ). Chaque processeur doit donc avoir sa PSA qui est vue à l’adresse 0 Utilisation du PSR ( Prefix Storage Register ) qui contient l’adresse en mémoire réelle de sa PSA. A toute adresse réelle comprise entre 0 et 4095 est ajouté le contenu du PSR ce qui permet l’accès à la PSA du processeur (adresse absolue) Les processeurs peuvent communiquer entre eux : instruction SIGP Communication entre processeurs : SIGP pour demander a un autre processeur de faire une fonction : stop, restart ou demander son etat (sense)
Utilisation d’un mecanisme de verrouillage pour éviter des opérations contradictoire sur des ressources …. association de verrou à toute ressource critique tout processeur voulant accéder à une ressource représentée par un verrou doit lire l’état du verrou. Si le verrou n’est pas mis : le processeur positionne le verrou et prend la ressource. Une fois l’opération effectué, le verrou est retiré. Si le verrou est positionne : - soit le processeur se se met en attente sur le test du verrou (spin lock) - soit inactiver le processus qui demande le verrou pour passer a un autre travail (suspend lock) Problème pour l’accés concurrent aux mots memoires verrous !! Lecture et modification en même temps du verrou par l’instruction CS (Compare & Swap)
La ressource Mémoire Processor Storage Central Expanded Storage CPU
La mémoire centrale est directement adressable par le CPU On peut charger des données et des programmes en mémoire centrale La mémoire d’arrière plan est utilisée lorsque la mémoire centrale est surchargée : on déplace les données et le programmes de la mémoire centrale vers la mémoire d’arrière plan La mémoire d’arrière plan permet de charger préalablement des données pour fournir de plus grande vitesse d’E/S.
La mémoire est organisée en block de 4Ko. Une adresse mémoire peut être représentée sur 24 ou 31 bits. 16 Mo adressable 2 Go adressable
Fonctionnement de la mémoire virtuelle : Adresse virtuelle Virtual Storage 2 Go DAT Central Storage STOR Expanded Storage Segment 1 Auxiliary Storage Segment 2 La memoire virtuelle est divisé en 2048 segments de 1Mo (2 Go) Un segment est divisé en 256 pages Dans une page, pour se localiser on utilise un octet de deplacement qui correspond a la difference entre le debut de la page et la position exacte. Segment Segment 3 256 pages Segment Table des segments Table des pages 256 pages
Utilisation du DAT (Dynamic Address Translating) - Translation d’une adresse virtuelle en adresse réelle S N° de segment P N° de Page D Déplacement 255 2047 P D Zone S Table des pages du segment Cadre de Page
Les fichiers Méthodes d’accès Unix Services DataSets Orienté Enregistrement (F(B),V(B),U) Deux méthodes : - VSAM - non-VSAM Nom de DataSets sur 44 car. Max Location dans un catalogue Unix Services Fichiers HFS Orienté Octets Structure hierarchique de Fichiers : -dir/subdir/fichier - nom de fichier 256 car max Stockage dans un container DataSets
VSAM (Virtual Storage Access Method) l’enregistrment logique est l’unité de base Le Control Interval est l’unité de transfert entre la mémoire et le disque Le Control Area (CA) est un ensemble de CIs : nombre entier de pistes mais dépasse pas un cylindre. Fichier VSAM : nombre entier de CAs.
4 types de fichiers VSAM : - KSDS (Key Sequenced Data Set) : les enregistrement sont ordonnés par une clé unique. - ESDS (Entry Sequenced Data Set) : organisation séquentielle, sans clé, stockage dans l’ordre d’arrivée. - RRDS (Relative Record Data Set) : on accède directement à un enregistrement en précisant son numéro d’ordre dans le fichier. - LDS (Linear Data Set) : plus de notion d’enregistrement fichier=longue chaine d’octets découpé en CIs de taille 4096.