IFT2245 ? Systèmes d'exploitation Cours 1, mercredi 6 septembre ...

exec nom de programme / adresse mémoire. Job typique: loop .... Process classique: - fork(): tous les registres. Process ..... Retour sur l'examen ... Cours 15  ...


un extrait du document




IFT2245 - Systèmes d'exploitation
Cours 1, mercredi 6 septembre 2006 Définition (Système d'exploitation): Une couche de logiciel qui gère le
matériel afin d'offrir les services requis par les
autres programmes. OS = logiciel gratuit livré avec le matériel (avant Gates) OS primitifs: CPM - micros à mémoire de 4ko (associés à des disquettes)
OS modernes: (associés à un CD de 650 Mo)
Ordinateur: mais on doit garder à l'esprit que le BUS est très
complexe ... Autres exemples: un floppy: 16 commandes
registres
13 paramètres (lire)
réponse: 23 params.
Objectifs fondamentaux des SE:
1. Ergonomie: Donner une vision plus simple de l'ordinateur.
(Functionality)
2. Efficacité: Permettre de fonctionner plus vite. (Gérer la capacité
de parallélisme des composantes de l'ordi.)
( + débit [Gestion efficace des ressources]
( - temps de passage
3. Évolutif: (Par exemple, les disquettes sont passé de 256Ko à 1Mo
à 1Go à 100Go
[problèmes d'adressage... 18bits 20bits 30bits
36bits] Fonctions principales (modules):
1. Gestion des périphériques (drivers / pilotes)
- Interruptions
2. Gestion de fichiers. (espace secondaire)
- Gestion de l'espace
- Correspondance nom(adresse
- Sécurité
3. Gestion de la mémoire centrale.
- Gestion de l'espace
- Sécurité
4. Interface usager
- Fenêtres
- Shell [enocre très utile pour scripts]
5. Gestion du parallélisme
- Process
6. Communication entre process
- Télécommunication / Réseaux
7. Protection et partage (verouillage de fichier...)
- bits de protection
- Comptes usagers
8. Performance
- comptabilité
- mesure
9. Utilitaires
- librairies mathématiques
- compilateur
- assembleur
- éditeur de liens
- date/time
10. Démarrage
Démo 1, jeudi 7 septembre 2006 David - 3332 - Mercredi 10h@12h
Cours 2, lundi 11 septembre 2006 1950: eniac, 200 caractères
1960: ibm 1401, ordinateur commercial, premier à utiliser des transistor,
16 kilooctets
1984: mac Flop: Floating point operation |Année |1950 |1960 |1985 |2000 |
| | | |3M (1mega | |
| | | |op/pixel/octet) | |
|Nom |Eniac |IBM1401 |Next |PC typique |
|Mémoire |200 octets |8-16 Ko |1Mo |100Mo |
|CPU (ULA) |5000 add/s et 400 mult. ou |1Mflops |1GHz |
| |div./s | | |
|Disque |non |10Mo | |100Go |
| | |100ms + accès | |10ms |
|Modem |non |300bauds | |10Mb/s (Ethernet)|
| | |(50octets/s) | | |
| | | | | |
| | | | | | Éléments physiques: Impression (1200 lignes/min ( 20 pages/min)
approximativement la même chose! Disque + accès: 100ms ( 10ms peu de
différence... Donc, les OS doivent gérer un ensemble de composantes à vitesses très
différentes.
- Parallélisme
- Disparité des vitesses Vitesse ( Garder les unités occupées en leur donnant un ensemble de
tâches.
( Donc, parallélisme et multi-tâches
Process(us) -- Threads (fil d'exécution)
-- Tasks
-- activités
Un OS: fournit à chaque process une machine virtuelle séquentielle. Ressources: quelque chose dont un process a besoin pour avancer.
. mémoire centrale / disque
. cpu
. périphériques
Partage des ressources physiques entre les process. (Multiplexage)
Multiplexage dans l'espace: diviser la ressource en portionset les
affecter pour la durée de l'activité.
Multiplexage dans le temps: toute la ressource est affectée pour une
tranche de temps.
Cours 3, mercredi 13 septembre 2006
Multiplexage (suite):
Performance: Peut-on aller plus vite avec le parallélisme?
ex.: T1 [ R1 ] tâches/ressources
T2 [ R2 ]
8hrs (
( Débit x2
ex.2: T1: [ Calcule | Écrire | Calcule | Écrire ] ( 8
T2: [ Lire | Calcule | Lire | Calcule ] ( 8 Ici, comme les ressources ne sont pas utilisées en même temps, il
n'y a pas d'impact et on peut ainsi tout faire en 8 unités de
temps. (Multiprogrammation) Note: Pour accélérer T2 ( Lecture de parallèle avec le calcul.
(Spooling)
Problèmes de protection: Dès qu'on a plusieurs choses en même temps en mémoire, on a des
problèmes de:
- Protection
- Synchronisation Diapo 1-31
ENIAC: Calculatrice
- Pas de mémoire programmable (filage)
- Pas d'OS Ordinateurs industriels: IBM-1401 (décimal variable)
IBM-7040 (point flottant)
o Lampes
o Transistors Mémoire ferrite ~ 10 Ko
. Data
. PGM Lecteur de carte, imprimante ... Chargeur: Premier logiciel utilitaire. (logiciel)
BootStrap: mini-chargeur. (matériel?)
- Lire enregistrement du device dont l'adresse est sur
le panneau et d'y brancher.
Matériel: Logiciel:
Bootstrap Chargeur
Cartes
o 600 cartes / minute
10 cartes/s ( ~1Ko/s
Périphériques rapides
o Bandes ( Vitesse + RW Assembleurs
10 Ko/s à 100Ko/s Compilateurs
o Disques
100Ko/s à 1Mo/s Stockage rapide de données intermédiaires (plusieurs passes) Programmation complexe:
. Avancer, reculer
. Lire, écrire
. Vérification d'erreur
( IOCS (Input Output Control System) qui est un pilote: Une
librairie pour gérer les lectures et écritures!
Donc, 2em morceau de logiciel après chargeur. (Le Bootstrap
est passé de soft à hardware) Encore plus difficile: disques. ( pilotes
Avantage des disques: accès aléatoire/direct.
( Organisation de l'espace en fichiers. VTOC: index
Volume Table Of Contents: |Nom |Début |Taille |
| | | |
|ASM | | |
|FTN | | |
|TMP1 | | | Cette table généralement positionnée en début de
disque. Donc, en mémoire, on a donc: Bootstrap (BIOS), Chargeur, IOCS, File
system, Copie du VTOC, etc. Cours 4, lundi 18 septembre 2006 Bootstrap: Mini mini pour charger... le chargeur. Booting:
1. Charger n caractères de l'unité 0 dans TAMPON. (Tampon étant une
adresse juste après bootstrap)
2. Goto Tampon Très rapidement, le Bootstrap a été mis en ROM.
Dès l'arrivée des supports plus rapides, on a ajouter un IOCS en
mémoire. Le BIOS d'aujourd'hui contient le Bootstrap, le Chargeur et le IOCS. Système de fichier: nom ( adresse sur disque Moniteur: (shell)
Interprète de commandes + teletype (machine à écrire)
ex.: dir (ls) ( sur le papier de la "machine à
écrire"
type (cat, print)
charger xxx ( amener le programme en mémoire
exec ( nom de programme / adresse mémoire Job typique:
loop
lire quelque chose
clacul
écrire quelque chose
end. Plus tard:
|CPU |1401 |360 |360 |1GHz |
|Calc. I/S |5000 |106 (x200) |ES(disque |109 |
| | | |106 | |
|Lecture |0.1s |100ms |10ms |5ms |
|Calcul |0.1s |0.5ms |0.5ms |0,0005ms |
|Écriture |0.1s |1000ms |10ms |5ms |
|Utilisation |33% |0,25% |2,5% |0,005% |
|CPU | | | | |
|Durée job pour|~5 min |200s |20s |10s |
|1000 bandes | | | | | Canaux: (DMA: Direct Memory Access)
CPU ultra simple qui fait le transfert mémoire à périphérique en
parallèle avec CPU.
Permet parallélisme: Cours 5, mercredi 20 septembre 2006 Devrait avoir lu les chapîtres 1, 3 et 4 à la fin de ce cours. Évolution des systèmes: . Chargeurs & Bootstrap
. IOCS (pilotes)
. Fichiers
. Shell
. Monoprogrammation BATCH !!! Problèmes d'efficacité ( Parallélisme / process . ES complexes: canaux (DMA) & interuption
. Multiprogrammation
. Spooling (files d'impression)
. Hiérarchie de mémoire
o Mémoire virtuelle
o Caches
. Multi-tâches interactif (quantum)
. Systèmes distribués:
o Lan & Internet [ Sockets ]
. JVM (Java Virtual Machine)
Multiprogrammation: - plusieurs jobs en mémoire en même temps. Mais
- Nécessite plus de mémoire
- Nécessite plus de périphériques (pas partageables) Besoin
- Protection mémoire
- Parallélisme ( Canaux
- Commutation de tâche
- Interruptions
Spooling: Technique pour gér
....