Cours de Systèmes d'Exploitation
Licence MIAGE et de Licence ASR
Université d'Evry Val d'EssonneDocuments Généraux (compléments au cours):
Support de cours
Ordonnancement de l'Unité de Traitement
Gestion de la Mémoire Centrale (MC et MS)
Les Disques
TD - Interruptions sous MS-DOS
SE_BREAK.PAS, SE_CLICK.PAS, SE_ITIME.PAS, SE_HALT.PAS
Les programmes utilisant les interruptions, il faut compiler avec TPC.EXE puis lancer la commander hors environnement TURBO-P.
Pour vérifier les programmes chargés en mémoire, on peut utiliser la commande MEMMAP.EXE fournie dan le fichier TPE.ZIP (environnement de programmation TURBO-P).
N.B. La commande RUNTIME.EXE permet de connaître les messages d'erreur d'exécution. On peut aussi utiliser l'environnement TURBO.EXE.
TD - Interruptions sous UNIX et Gestion des Processus en C
- Lancer la commande "sleep 2000" en arrière-plan (&)
- Lancer la commande "sleep 1000" en arrière-plan (&)
- Visualiser les processus en arrière-plan (background) avec la commande jobs.
- Visualiser tous les processus en cours avec la commande ps.
- Ramener la commande "sleep 2000" en avant-plan (foreground) avec la commande fg (fg %1).
- La remettre en arrière-plan (CTRL+Z) et vérifier avec la commande jobs.
- Lancer la commande "sleep 3000 en arrière-plan.
- Ramener la commande sleep 1000 en avant-plan et l'interrompre par CTRL+C.
- Stopper le processus "sleep 2000" à l'aide de la commande kill.
Tester différents signaux (Cf. kill -l) sur uen commande "sleep xxxx".
- Récupérer les programmes PS_EXEC.C, PS_FORK.C qui ont été préparés sous Windows.
- Compiler avec la commande make (faire attention aux extensions C et C++)
- Expliquer le fonctionnement de ces programmes.
[TD]# ls -l
-rw-r--r-- 1 root root 523 oct 11 10:03 PS_EXEC.C
-rw-r--r-- 1 root root 1203 oct 11 10:03 PS_FORK.C
-rw-r--r-- 1 root root 550 oct 11 10:03 PS_SIG1.C
-rw-r--r-- 1 root root 759 oct 11 10:03 PS_SIG2.C
-rw-r--r-- 1 root root 1556 oct 11 10:03 PS_SIG3.C
[TD]# make PS_EXEC
g++ PS_EXEC.C -o PS_EXEC
PS_EXEC.C:12: " argc " n'a pas été déclaré dans cet horizon
PS_EXEC.C:12: " argv " n'a pas été déclaré dans cet horizon
PS_EXEC.C:13: ISO C++ interdit la déclaration de " main " sans type
PS_EXEC.C:13: liste d'initaliseurs a été traité comme une expression
composée
PS_EXEC.C:13: erreur de syntaxes avant " int "
PS_EXEC.C:14: erreur d'analyse syntaxique avantle jeton " { "
PS_EXEC.C:16: ISO C++ interdit la déclaration de " printf " sans type
PS_EXEC.C:16: " printf " redéclaré comme une sorte différente de symbole
/usr/include/stdio.h:300: déclaration précédente de "int printf(const
char*, ...)"
PS_EXEC.C:16: conversion invalide de " const char* " vers " int "
PS_EXEC.C:17: " getpid " n'a pas été déclaré dans cet horizon
PS_EXEC.C:17: ISO C++ interdit la déclaration de " printf " sans type
PS_EXEC.C:17: redefinition of `int printf'
PS_EXEC.C:16: "int printf" précédemment défini ici
PS_EXEC.C:17: liste d'initaliseurs a été traité comme une expression
composée
PS_EXEC.C:18: " argc " n'a pas été déclaré dans cet horizon
PS_EXEC.C:18: ISO C++ interdit la déclaration de " printf " sans type
PS_EXEC.C:18: redefinition of `int printf'
PS_EXEC.C:17: "int printf" précédemment défini ici
PS_EXEC.C:18: liste d'initaliseurs a été traité comme une expression
composée
PS_EXEC.C:21: erreur d'analyse syntaxique avant " for "
PS_EXEC.C:21: " argc " n'a pas été déclaré dans cet horizon
PS_EXEC.C:21: erreur d'analyse syntaxique avantle jeton " ; "
PS_EXEC.C:21: erreur de syntaxes avantle jeton " ++ "
PS_EXEC.C:25: ISO C++ interdit la déclaration de " printf " sans type
PS_EXEC.C:25: redefinition of `int printf'
PS_EXEC.C:18: "int printf" précédemment défini ici
PS_EXEC.C:25: conversion invalide de " const char* " vers " int "
PS_EXEC.C:26: ISO C++ interdit la déclaration de " exit " sans type
PS_EXEC.C:27: erreur d'analyse syntaxique avantle jeton " } "
make: *** [PS_EXEC] Erreur 1
[TD]# mv PS_EXEC.C ps_exec.c
[TD]# mv PS_FORK.C ps_fork.c
[TD]# make ps_exec
cc ps_exec.c -o ps_exec
[TD]# ./ps_exec a b c
ps_exec> Debut execution
ps_exec> Numero PID = 10960
ps_exec> Nb arguments = 4
ps_exec> argv[ 0 ] = ./PS_EXEC
ps_exec> argv[ 1 ] = a
ps_exec> argv[ 2 ] = b
ps_exec> argv[ 3 ] = c
[TD]# make ps_fork
cc ps_fork.c -o ps_fork
[TD]# ./ps_fork
ps_fork > Debut execution : pid = 10978
ps_fork > Code execute par les 2 ! mais : getpid() = 10978
PS_FORK(p)> Valeur retournee par le fork = 10979
ps_fork > Code execute par les 2 ! mais : getpid() = 10979
ps_fork(f)> Valeur retournee par le fork = 0
ps_fork(f)> PID( avant exec ) = 10979
ps_exec> Debut execution
ps_exec> Numero PID = 10979
ps_exec> Nb arguments = 1
ps_exec> argv[ 0 ] = liste des arguments
PS_FORK(p)> PID du fils se terminant = 10979
ps_fork > Fin Processus : 10978
TD - Gestion des signaux (interruptions) dans les programmes C
- Récupérer les programmes PS_SIG1.C, PS_SIG2.C, PS_SIG3.C qui ont été préparés sous Windows.
- Chercher les numéros de signaux
1) avec kill -l,
2) dans /usr/include (man signal)
- Compiler avec la commande make (faire attention aux extensions C et C++)
- Expliquer le fonctionnement de ces programmes
TD - Gestion des Sémaphores en langage C
Les sémaphores : sema1.c, sema2.c
et préparation du projet (recherche su Internet de technologies)
TD - Entrées / Sorties en Turbo-Pascal
TD - Allocation Mémoire en Turbo-Pascal / MS-DOS
SE_AVAIL.PAS, SE_DIR.pas, SE_DIRT.pas
et préparation du projet
TD - Parallélisme en Java
JAVA et préparation du projet
Liens JAVA
http://cui.unige.ch/~billard/systemeII/cours15.html - SE RPC
http://www.cs.technion.ac.il/~cs236370/recitations/java2.html
http://www.doc.ic.ac.uk/~jnm/book/index.html
http://www.doc.ic.ac.uk/~jnm/book/book_applets/concurrency.htmlhttp://www.ecs.soton.ac.uk/~dem/teaching/proginjava/s12.html
Liens LINUX
http://www.linux-france.org/prj/edu/archinet/systeme/index_monopage.html
Projet L3 MIAGE en Apprentissage 2007 / 2008
Objectif : Réaliser une application communicante utilisant des processus en parallèle. Apprendre à monter un projet informatique, Analyse des besoins client. Proposition de réalisation. Remise d'un état d'avancement (1ert lot) du projet.
Sujet : Réalisation d'une commande de copie récursive de fichiers d'un dossier vers un autre.
Remarque : on doit pouvoir observer le parallélisme au fur et à mesure du traitement.
Projet L3 MIAGE en Apprentissage 2005 / 2006
Objectif : Réaliser une application communicante utilisant des processus en parallèle. Apprendre à monter un projet informatique, Analyse des besoins client. Proposition de réalisation. Remise d'un état d'avancement (1ert lot) du projet.
Sujet : Réalisation d'une page WEB avec un traitement parallèle sur une image.
Autres infos:
"Le client final a un traitement compliqué mais ne veut pas donner les sources de son algorithme...."
On prendra donc prendre des traitements simples que l'on ralentira pour observer le parallélisme:
Traitements sur les pixels : négatif, permutation de deux composantes RVB ( Rouge / Vert, Vert / Bleu.. )
Traitements géométriques : retournement horizontal / vertical ou gauche / droite , rotation ...
Effets de transition entre deux images : les pixels de la deuxième image s'affichent sur la première.
Effets de déplacement: la seconde image apparaît en se déplaçant, s'agrandissant ....
Remarque : on doit pouvoir observer le parallélisme au fur et à mesure du traitement.
Exemples de pages sans parallélisme ni communication entre animations :
Animation de texte : Effet de Zoom ( source java )
Animation d'image : Effet de vague ( voir site http://www.anfyteam.com )
Animation d'image : Effet psychédélique ( source java )
Animation 3D : Cube avec photos ( voir site http://www.anfyteam.com )
Si rien ne se passe dans les exemples (après l'ouverture grandissante de la fenêtre), il vous manque peut-être le Runtime Environment J2RE de Java. Utilisez alors les liens suivants:
Projet pour les redoublants
Objectif : Approfondir un sujet connexe aux techniques de systèmes d'exploitation : parallélisme, communication, performances, entrées / sorties ...
A rendre au format HTML....dans un fichier archive (exemple ZIP)
Exemples de Sujets:
- Techniques de tri parallèle interne (en mémoire centrale)
Techniques de tri parallèle externe (en mémoire secondaire)
Réseaux de Pétri et parallélisme
- Outils de mesures de performances (CPU , I/O) sous Windows
- Outils de mesures de performances (CPU , I/O) sous GNU / Linux
- Supervision des travaux sous GNU / Linux. Gestion des Processus
- Architecture d'un cluster (IBM ou HP ou Bull ...)
- Goulot d'étranglement des Clusters en exploitation - Étude comparative
- Bibliothèque de communication (PVM ou MPI ou ... - Exemples d'utilisation
- Langages de programmation parallèles en utilisation
Comment détecter les virus ? Conseils à l'utilisateurs
- Comment détecter les troyens ? Conseils à l'utilisateurs
- Techniques utilisées par les virus
- Techniques utilisées par les troyens
- Comparaison des systèmes d'exploitation temps réel
- Architecture d'un microprocesseur (P4 ou Athlon ou Opteron ou ...)
- Formats et outils de conversion de fichiers Texte (ASCII, rtf, html, pdf, ps, Unicode, Dos, Windows, Linux ...)
- Outils et techniques de compression de données (free et Opensource)
- Caractéristiques et attributs de fichiers sous différentes File System (NTFS, FAT, EXT3...)
- Gestion des évènements slot / signal et des processus sous QT
- Benchmarks numériques - Top 500
- Microprogrammation dans les microprocesseurs
- Architecture RISC
- Architecture CISC
- Organisations et Techniques de gestion de la Mémoire Centrale
- Organisations et Stratégies de gestion de la Mémoire Secondaire
OUTILS Système
http://www.spybot.info/fr/download/
http://www.microsoft.com/technet/sysinternals/default.mspx
http://www.microsoft.com/technet/sysinternals/Processesandthreadsutilities.mspx?wt.svl=featured
![]()
Testez la vitesse de votre connexion Internet avec
http://www.abeltronica.com/PagInstrucoes/fr/index.html
Autres Tests ADSL
http://www.alaide.com/outils_testbandepassante.php?con=14&vdown
http://www.journaldunet.com/vitesse/9803947016/1428/resultat_adsl.shtml
http://www.linternaute.com/vitesse/6999802301/1096/resultat_adsl.shtml
http://www.sos-adsl.com/modules/debit
Éligibilité ADSL
http://www.ariase.com/fr/observatoire/vitesse-connexion.html
( Attention : plugin java à installer )http://www.pcentraide.com/test-connexion.html
Liens Université Évry Val d'Essonne