Accueil M.A.S.I.  

Cours de Systèmes d'Exploitation 
Licence MIAGE et de Licence ASR
Université d'Evry Val d'Essonne

Documents Généraux (compléments au cours):

Introduction à UNIX

Introduction à MS-DOS

Support de cours

Systèmes d'exploitation

Les Processus

Ordonnancement de l'Unité de Traitement

Gestion de la Mémoire Centrale (MC et MS)

Les Disques

TD - Interruptions sous MS-DOS

SE_BREAK.PASSE_CLICK.PASSE_ITIME.PASSE_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.CPS_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

CP_CHAR.pas, CP_TEXT.pas, CP_BLOC.pas, CP_BNCH.exe

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.club-java.com

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.html

http://www.ecs.soton.ac.uk/~dem/teaching/proginjava/s12.html

http://www.isr.umd.edu/~austin/ence489c.d/threads.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:

http://www.univ-bechar.dz/Boutiche/Logiciels.htm

http://java.sun.com/j2se/1.4.2/download.html

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://mire.ipadsl.net

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

http://informatique.lami.univ-evry.fr/Emploi_du_temps