Le système Windows

Transcription

Le système Windows
Introduction
Le système Windows
Yves Denneulin
Introduction
Linux : 91
Développé par L. Torvalds
Bénéficie des travaux de
Stallman (GNU+GPL)
• Windows a 25 ans
–Au début basé sur MS/DOS
–Multi-tâches coopératifs
–Pas de réelle protection entre applications
–Famille 1.0 -> 386 -> 95 -> 98 -> Me
• Version « moderne » de Windows
–Issu du noyau NT (New Technology)
–Premier OS pour entreprises et serveurs de Microsoft
–Multi-tâches préemptifs, protection entre application
–NT -> 2000 (et serveur) -> XP -> Vista -> 7
• Windows a 25 ans
–Au début basé sur MS/DOS
–Multi-tâches coopératifs
–Pas de réelle protection entre applications
–Famille 1.0 -> 386 -> 95 -> 98 -> Me
• Version « moderne » de Windows
–Issu du noyau NT (New Technology)
–Premier OS pour entreprises et serveurs de Microsoft
–Multi-tâches préemptifs, protection entre application
–NT -> 2000 (et serveur) -> XP -> Vista
Plan
• Schéma général
• Gestion des processus et ordonnancement
• Gestion mémoire
Schéma général
• OS structuré en couches
1.Support du matériel
2.Noyau
3.Utilisateur
• Fonctions
1.Fournir des abstraction de plus haut niveau que les
ressources physiques,
2.Répartir les ressources entre les processus et les
utilisateurs,
3.Sécurité : séparation entre applications et utilisateurs,
notions de rôle
Support matériel : HAL
• Hardware Abstraction Layer (Assembleur et C)
• Rôle
–Abstraire le matériel pour le noyau
–Simple appel de fonctions
• Exemple d’éléments
–Ports d’entrée/sortie
–Gestion des interruptions
–Outils de synchronisation
–Verrous matériels
• Une version par configuration matériel
• Une partie connue : DirectX
Noyau du système
• Drivers de périphériques
– Source d’instabilité
– Maintenant doivent être signés
• Ordonnancement des processus
– Partage du temps, gestion des priorités
• Gestion des objets
• Gestion de la configuration (base de registres)
• Gestion de la mémoire
– Partage
– Gestion des caches
• Sécurité (niveau C2 du orange book)
– Contrôle des accès
• Aux ressources
• Aux données
Espace utilisateur
• Interface avec le système
–NTDLL.DLL : la libc de Windows
• Environnements de programmation et d’exécution
–Posix, WPF
–Win32
–OS/2
–.NET
• Environnement graphique
–Gestion des fenêtres et des interactions
–Rentre en noyau pour XP (pas 2000!)
• En ressort pour Vista
Processus et ordonnancement
Arborescence des processus
• Les fibres sont des threads users
• Les threads sont ordonnancés par le noyau
–Une pile user + une pile noyau
• Et contenus dans des processus
• Regroupés en jobs
–Unité pour fixer des limitations par applications
–Rarement utilisé
• Ordonnanceur appelé par un thread lorsque
–Blocage
–Fin d’un quantum
–Fin d’entrée/sortie ou timeout
Ordonnancement (2)
Linux
Une liste de processus prêts
Triée par priorité
Quantum : 20ms
• Augmentation de la priorité
–Si retour d’I/O (+2) ou de synchronisation
–Perte bonus lors de la consommation de tout un
quantum
• Risque de famine ?
–Bidouille : si inactif longtemps, 2 quantums avec
priorité = 15
• Valeur du quantum
–120ms sur serveurs, 20ms sur les autres
• Conclusion
–Algorithme traditionnel, les ajustements sont issus de
l’expérience
Ordonnancement
• Choix du prochain thread dépend
–Classe de priorité du processus
–Priorité du thread
• Structure de données : tableau de FIFOs
–Processus temps réel : 31-16
–Processus utilisateur : 15-1
–Nettoyeur de pages : 0
–-1 : idle
• Thread de plus haute priorité toujours exécutés
–Risque de famine
–Mais existence de pénalité
Ordonnancement (3)
• Windows server
–Une liste par processeur
–Meillleur efficacité
• Windows 7
–Ajout du User Mode Scheduler (UMS)
• Permet à une application d’ordonnancer ses
threads
Principes de base
Gestion mémoire
• Basé sur l’architecture x86
–2 niveaux de table des pages
• Toujours des pages disponible
–Le but du système est d’assurer cela
–Maintient différentes listes de pages utilisables
http://support.microsoft.com/kb/888732
Répartition entre processus
• Principe du « working set »
–Nombre de pages du processus effectivement
mappées sur des pages physiques
• Bornes
–Taille minimum et maximum
–Réglable par l’administrateur
–Lorsque working set < minimum ajout de pages
physiques
–Lorsque > maximum suppression de pages
–Ajustement possible (dernières 512 pages toujours
libres)
Répartition entre processus (2)
• Thread balanced set manager
–Réveillé chaque seconde
–Vérifie qu’il y a assez de pages disponible
–Sinon active le working set manager
• Working set manager
–Si < min ou si le processus swappe beaucoup ne
change pas son working set
–Sinon lui enlève des pages
• En mono-processeur : utilisation du bit de
référence et algo de la deuxième chance
• En multi-processeur : choisit les plus anciennes
Répartition entre processus (3)
• Stratégie locale
–Le thread regarde la quantité de pages pour chaque
processus
–Décision prise seulement par rapport aux bornes min
et max
• Mais dimension globale
–Ajustement des bornes max et min
–L’administrateur a son mot à dire
Gestion des pages disponible (2)
• Lorsqu’une page est libérée
–Si elle a été modifiée (dirty) va dans modified
–Sinon dans standby
–Elle reste associée au processus
• Si ce dernier gagne des pages on récupère
directement celles-là
• Si un processus se termine
–Toutes ses pages physiques sont libérées
–Elles sont dans libre
• Aucune chance que le processus les ré-utilise
Gestion des pages disponibles
• Que deviennent les pages libérées ?
• Existence de 4 listes de pages
–Modifié
Peuvent encore être rendues au processus
–Standy
–Libre
Définitivement séparées d’un processus
–zéro
}
}
Gestion des pages disponible (3)
• Transitions
–Modifié->standy : lorsqu’elle a été écrite
• Un thread de vidange est activé toutes les 4 sec.
–Standby -> libre : terminaison du processus
–Sinon dans standby
–Elle reste associée au processus
• Si ce dernier gagne des pages on récupère
directement celles-là
• Si un processus se termine
–Toutes ses pages physiques sont libérées
–Elles sont dans libre ou zéro
• Aucune chance que le processus les ré-utilise
Gestion des pages disponible (4)
• Transitions
• Libre -> zéro : thread de mise à zéro
• Rôle de la liste zéro
–Empêcher la ré-utilisation de données
–Extension de la mémoire d’un processus
• Rôle de la liste libre
–Pages dont le contenu sera écrasé
• Sortie de swap
• création d’un processus
Conclusion sur Windows
• Vieux noyau toujours d’actualité
–Dans Vista et 7
• Concepts et structures traditionnels
–Tout accès se fait par des objets
• Différents sous-systèmes pour la compatibilité
–16 bits : msdos, win16
–Posix, Win32, OS/2
• Algorithmes traditionnels
–Mais subtilité dans gestion mémoire
–Ordonnancement customizé suivant les versions
Liens avec les entrées/sorties
• Utilisation de mémoire cache
–Priorité par rapport à l’espace mémoire des
processus ?
• Le cache est lié au fichier
–Pas au niveau habituel des périphériques
• Chaque fichier est mappé en mémoire
–Tout accès se fait par la mémoire
–C’est la gestion de mémoire virtuelle qui fait les
accès
Vista/7
• Améliorations de sécurité
–DEP (Data Execution Protection)
–UAC (User Access Control)
–Adress Space Layout Randomization
• Modifications du noyau de base
–Dans les réglages mais pas dans les algorithmes
• Nouvelles interfaces de programmation
–WPF remplace win32
–.NET unifie les communications entre les éléments