Vous êtes sur la page 1sur 81

UNIVERSITE ABDELMALEK ESSAADI

FACULTE DES SCIENCES ET TECHNIQUES


TANGER

Dpartement de Gnie Informatique

Master Mathmatiques Appliques et Informatique

Module : Systmes dexploitation et Rseaux Informatiques


Encadr par :

Professeur Chakkor Saad


Anne Universitaire : 2011-2012

21/11/2012

** Planning de cours **
- Gnralits sur les systmes dexploitation.
- Sujets des exposs. - Systme dexploitation Unix. - Programmation Scripts Shell - Appels systmes pour les processus. - Travaux Dirigs et pratiques UNIX.

Chapitre 1: :

Gnralits sur les systmes dexploitation

Un systme informatique se compose de deux parties : 1) La partie matrielle (Hardware) : unit dentre/sortie, mmoires, unit de traitement. 2) La partie logicielle (Software) : ensemble de programmes que la machine doit excuter pour effectuer un traitement.

Deux grandes catgories de logiciels :


1. Logiciels de base : systme dexploitation + BIOS 2. Logiciel dapplication

Principales fonctionnalits :
Le systme d'exploitation gre les ressources matrielles et logicielles de lordinateur . tablir les liens entre le matriel, l'utilisateur et les applications via : Interface graphique

Grer les erreurs et les pannes. Grer lespace mmoire principale et des mmoires secondaires. : sauvegarde, lecture, suppression Grer les priphriques dentre/sortie : rglage et configuration. Grer lexcution des applications : excution, installation, mise jour Grer les fichiers et les dossiers : cration, copie, suppression, arborescence.

Multi programmation, temps partag, paralllisme Lancement des outils systme et des outils pour ladministration du systme. Rseaux, Protection et scurit.

Systme dexploitation :
Un Systme dExploitation (Operating System) est un ensemble de programmes.

- Un S.E est un logiciel destin faciliter lutilisation

dun ordinateur. - Le S.E assure linterface entre le matriel et lutilisateur en mettant sa disposition un ensemble de services. - Le succs des ordinateurs tient une partie au dveloppement des S.E plus conviviaux, plus simple utiliser grce lutilisation du graphisme.

Il sagit donc dun logiciel volumineux ncessitant de gros efforts de programmation : on utilisait surtout lassembleur (langage machine), aujourdhui on crit ces programmes laide des langages volus adapts la ralisation de ce type de logiciel.

On peut voir lordinateur et les diffrents programmes qui laccompagne selon le modle couche suivant:

Logiciel de gestion Compilateur

Jeux

Logiciel dadministration Interprteurs de commandes

Systme dexploitation Langage machine Dispositifs physiques

Le systme dexploitation a deux buts distincts :


A. Faciliter la tche de lutilisateur en lui prsentant

une machine virtuelle plus simple exploiter que la machine relle et en assurant un service fiable.
B. Assurer une exploitation efficace et conomique des

ressources de lordinateur.

II- diffrentes types dun S.E


1) systme mono/multi tches Multi tches cest la capacit du systme pouvoir excuter plusieurs processus simultanment, cest le cas dUnix, Win 95,98, XP, vista,7. Par contre le DOS est un systme mono tche. Un systme multitches peut tre premptif sil comporte un programme spcial : planificateur (scheduler ), alloue du temps tout programme prsent dans la machine.

Il interrompe le programme lorsque le temps qui lui est consacr sest coul. Les systmes Unix ou Windows ( partir de 95 ) sont des exemples. Non premptif lorsque le planificateur nexiste pas; les programmes doivent tre conus de manire sarrter de temps en temps pour passer un autre programme. Un exemple dun tel systme est Windows 3.A

2 ) systme multi-utilisateurs : Est un systme accessible plusieurs utilisateurs en mme temps pour raliser des tches diffrentes. Chaque utilisateur est identifi par son login et son mot de passe. Exemple : Unix, Windows 2003 server. DOS est un systme mono utilisateur.

3) systme propritaire : Est un systme spcifique une machine ou une gamme de machine dun certain constructeur tel que : a. Mac OS pour les macintoshs dApple. b. DOS pour les micro ordinateurs bass sur les processeurs Intel. 4) systme ouvert (open source libre ) : Cest un systme portable sur diffrentes machines, Unix est lexemple type dun systme ouvert.

Il a t implant sur des machines trs divers allant de micro ordinateurs jusquau super ordinateurs. Les systmes propritaires ont tendance disparaitre au profit des systmes ouverts standards (libre).

5) systme centralis/rpartis : Un systme centralis est essentiellement prsent sur la machine considre, les machines ventuellement relies sont vues comme des entits trangres disposant elles aussi dun systme centralis. Le systme ne gre que les ressources de la machine sur laquelle il est install. Un systme rpartis est distribu sur plusieurs machines.

6) systme temps rel : Un systme d'exploitation temps rel multitche destin aux applications temps rel. Ces applications comprennent les systmes embarqus (thermostats programmables, contrleurs lectromnagers, tlphones mobiles), des robots industriels, les vaisseaux spatiaux, les systmes de contrle commande industriel, et le matriel de recherche scientifique.

On parle d'un systme temps rel lorsque ce systme informatique contrle (ou pilote) un procd physique une vitesse adapte l'volution du procd contrl. Les systmes informatiques temps rel se diffrencient des autres systmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du rsultat, Le systme ne doit pas simplement dlivrer des rsultats exacts, il doit les dlivrer dans des dlais imposs.

7) SE embarqu : SE ddi lutilisation sur des ressources plus limites (mmoire, capacit de calcul) , IPAD, IPHONE, GSM

III- interface utilisateur


La communication entre utilisateur et systme dexploitation s effectue par lintermdiaire dun langage appel langage de commande. La nature de ce langage dpend du systme concern. La manipulation des informations se fait soit par : une interface graphique GUI (Graphical User Interface ) o les objets sont manipuls grce aux fentres, menus droulants etc.

Un interprteur de commandes avec lapproche ligne de commande CLI (Command Line Interface ) cet interprteur sappelle Shell sur le systme Unix, sur les machines utilisant Microsoft, le programme sappelle commande.com

IV-Elments de base dun S.E


Le bloc matriel (couche physique, hardware) : ressources matrielles (processeur, mmoires, priphriques, . . . ) Le noyau : gre les ressources en temps et en mmoire, le contenu des disques, contrle les changes avec les diffrents priphriques ; Fonctions systmes : bibliothque standard dappels systme ; Utilitaires : interprteurs de commandes (shell), diteurs, compilateurs, gestionnaire de fentres et de bureau, etc.

Linterface entre un S.E et des programmes utilisateurs est constitue dun ensemble dinstructions appel appels systme . Gnralement les appels systmes concernent soit les processus, soit le systme de gestion de fichiers.

Processus :
Un processus est un programme qui sexcute et qui possde : Une pile excution. Un compteur ordinal des registres et des renseignements ncessaires lexcution du programme. Chaque processus sexcute sur processeur virtuel.

Le processeur rel ne peut excuter quun seul processus la fois : Le processeur se partage entre eux. Il y a commutation rapide dun processus un autre : multi-programmation.

vnements causant la cration dun processus :


Initialisation du systme. Excution dun appel systme demand par un processus. Un usager demande de crer un processus. Initiation dune tche sur un systme de traitement par lots.

vnement causant la mort d'un processus :


Sortie normale (volontaire). Sortie avec erreur (volontaire). Erreur fatale (involontaire). Tu par un autre processus (involontaire).

Les diffrents tats dun processus :


Au fur et mesure quun processus sexcute il change

dtat :

1. 2. 3.

lu en cours dexcution lu: Bloqu : en attente dun vnement extrieur Prt : suspendu pour excuter un autre processus

Lordonnanceur : composant du noyau du systme

dexploitation qui choisit les processus qui vont tre excuts par les processeurs d'un ordinateur. En anglais, l'ordonnanceur est appel scheduler.

lu

Bloqu

Prt

Le processus est bloqu, en attente dune donne, vnement Lordonnanceur choisit un autre processus La donne devient disponible

31

Il existe partir de ces trois tats 4 transitions possibles : De lu bloqu : sil lui manque quelque chose (donne, signal) pour continuer 2. De lu prt: si le processus sest excut suffisamment longtemps, ou sil rend la main au systme. 3. De prt lu: si lordonnanceur donne la main au processus 4. De bloqu prt : si ce qui manquait est dsormais disponible .
1.

Interruption :
Une interruption est un arrt temporaire de

l'excution normale d'un programme informatique par le microprocesseur afin d'excuter un autre programme (appel routine d'interruption).

Une interruption est provoque par un signal gnr

par le matriel.

Ce signal est la consquence dun vnement interne aux processus, ou bien extrieur indpendant de son excution. Il existe diffrents types de signaux provoquant une interruption :
Logiciel : division par zroetc. 2. Dfaillance matrielle : coupure dalimentation
1.

Il existe un contrleur dinterruption qui peut masquer certaines interruptions dans des phases critiques du fonctionnement de lunit centrale CPU.

Ressource:
dune manire gnrale une ressource est un lment ncessaire un processus pour mener bien son excution. Les ressources matrielles (CPU, Mmoires, ) sont disponibles en quantit limite et doivent tre partages entre les diffrents processus.

Les logiciels ou des fichiers dans la mesure o ils

peuvent tre partags, font aussi partie des ressources que le systme doit grer.
Les mcanismes dallocation dune ressource

particulire sont raliss dans les diffrentes couches du S.E.


Exemple : le dispatcher dcide de lallocation du

CPU et lallocation dun fichier un processus est implante au niveau de la gestion des fichiers.

Ordonnancement :
Le noyau doit rpartir le temps dexcution entre les processus et dcider le prochain processus faire passer en U.C selon un algorithme dit ordonnancement La partie du noyau charge de cette tche sappelle Ordonnanceur = Scheduler . Ordonnanceur : est programme se chargeant dans un systme multitche de distribuer le temps de calcul aux diffrents programmes.

Sujets des exposs


1) Installation de UNIX et des logiciels 2) Le shell et les commandes UNIX 3) La gestion mmoire et le systme de fichiers 4) Processus et threads 5) Le scheduling - Algorithmes dordonnancement 6) Comparaison UNIX, MS-DOS, Windows NT 7) Les systmes distribus 8) Dmarrage , services, noyau et priphriques 9) Programmation parallle et script UNIX

Chapitre 2 :

Le systme dexploitation UNIX

Caractristique dUnix
Multi-Utilisateurs Multi-tches Multi plate-formes : (portable crit en C) Interactif Un systme de fichiers hirarchis Un mcanisme de protection Distribu gratuitement: bas sur le principe du logiciel libre et selon le terme de la licence GPL. Fiable, robuste, puissant et efficace.

Architecture gnrale du systme.


Unix est constitu principalement de trois couches :
Couche physique : priphriques + BIOS ; Couche systme : Kernel et Processus ; Couche Interface : Shell;

La communication entre ces couches est rglemente par le noyau (Kernel).

Couches de programmes sous Unix

Shell (Interprteur de (Interprteur commandes) commandes)

Programmes Systme Noyau

Lutilisateur communique avec le noyau par l'intermdiaire d'un SHELL. Les shells sont aussi des langages de commandes et de programmation. Les principaux SHELLS et leurs excutables sont : Bourne Shell ===> /bin/sh C Shell ===> /bin/csh Korn Shell ===> /bin/ksh Bash ===> /bin/bush

Le noyau UNIX
Le noyau est le programme qui assure la gestion de la mmoire, le partage du processeur entre les diffrentes tches excuter et les entres/sorties de bas niveau. Il est lanc au dmarrage du systme (le boot) et sexcute jusqu son arrt.
Le noyau est constitu dun ensemble de procdures et de fonctions crites pour lessentiel en langage C. La taille dun noyau Unix est denviron 12000 lignes de programmes sources.

Les tches du noyau


Quelques tches gres par Le noyau : L'initialisation du systme. La gestion de mmoire. La gestion des fichiers. La gestion des processus. etc.

Initialisation du systme
Lors du lancement du systme, deux processus sont cres swapper et init : swapper est un processus systme qui nexcute que des fonctions et procdures et qui gre en particulier le va et vient des programmes entre les mmoires principales et secondaires. init a pour rle de crer un processus pour chacun des terminaux des systmes partir desquels un utilisateur peut ouvrir une session.

Systme de Gestion de Fichiers(SGF)


Les SGF sont structurs hirarchiquement et regroupent les fichiers dans les rpertoires. Il existe un rpertoire racine (/) qui contient tous les fichiers et les dossiers. Les noms des fichiers et des rpertoires peuvent tre trs longs ( jusqu 256 caractres par nom ) Exemple : ext2, ext3.

Remarque : les systmes des fichiers Unix sont dits mono-tte ce qui signifie quils nont quun point de dpart le rpertoire racine, les systmes de Microsoft sont multi-ttes puisquils ont un point de dpart par lecteur.

Hirarchie standard du systme de fichiers:


/: rpertoire racine /boot: rpertoire contenant le noyau de linux. /dev: rpertoire contenant les fichiers spciaux permettent daccder aux priphriques. /sbin: rpertoire contenant les commandes systmes rserves ladministrateur. /bin: ce rpertoire contient les commandes systmes gnrales /lib: contient les bibliothques partages /etc: Rpertoire contenant tous les fichiers de configuration du systme. /tmp: rpertoire permettant de stocker les donnes temporaires.

/usr: programmes et utilitaires des utilisateurs et contient de nombreux sous-rpertoires : /usr/bin: contient lexcutable des utilitaires exemple : (gcc -->compilateur, ls --> liste les fichiers et les rpertoires ,etc) /usr/bin: les fichiers dvelopps en C , sources des programmes de systme. /var: Rpertoire contenant les rpertoires personnels des utilisateurs. /root: ce rpertoire contient le rpertoire personnel de ladministrateur. /mnt : rserv au montage des systmes de fichiers non permanants (Cd-ROM , disquette ..etc.)

Remarque : Pour accder un fichier lutilisateur donne le chemin daccs : Le chemin daccs peut tre relatif ou absolu: Absolu en partant toujours de la racine de larbre. Ex: /home/etudiant1/cours/chap1.htm Relatif en partant du rpertoire courant. /cours/chap1.htm

Les SGFs dUnix utilisent les structures de donnes appeles inodes pour dfinir les fichiers. Un inode contient toutes les informations dun fichiers, savoir : Son propritaire et son groupe Ses droits daccs Ses dates de cration, modification, accs. Les blocs quil utilise. Dautres informations utilises pour le SGF.

Ces inodes sont stocks dans une table du systme de fichier ce qui permet daccder trs rapidement toutes ces informations et de retrouver galement trs simplement ces donnes.

Chapitre 3: :

Programmation Scripts Shell

Introduction
Un script Shell est un ensemble de commandes rpertories dans un fichier et ayant ventuellement des paramtres. Le nom de la commande correspond au nom du fichier. Les paramtres sont des chanes de caractres identifies par leur position sur la ligne de commande.

Les variables suivantes sont prdfinies dans les procdures de commandes dites scripts Shell : $* : listes des paramtres ; echo $* affiche la liste des paramtres $0, $1, $2etc : contiennent successivement : le nom du script, valeur du premier argument , valeur de deuxime argument etc. $# : variable contenant le nombre de paramtres ; $$ : numro du processus courant ; pour lafficher echo $$ $!: numro du dernier processus en arrire plan $?: valeur de code de retour de la dernire commande excute.

Exemple 1 : le nom du script est sc1 # !/bin/sh echo n Bonjour on est le date +"%y/%m/%d" Pour excuter le script il faut lui donner le droit dexcution en utilisant la commande chmod chmod u+x sc1 ensuit on lexcute : ./sc1

Exemple 2 : le nom du script est sc2 Le script suivant illustre l'utilisation des variables prdfinies : #!/bin/sh echo 'nom du script :' $0 echo 'argument 1 :' $1 echo 'argument 2 :' $2 echo 'argument 3 :' $3 echo "nombre d'arguments :" $# echo "tous les arguments:" $*

Exemple d'utilisation du script sc2: $ ./sc2 aa bb cc nom du script : ./sc2 argument 1 : aa argument 2 : bb argument 3 : cc nombre d'arguments : 3 tous les arguments: aa bb cc

Enchainement des commandes Dans un script Shell on trouve les structures classiques des langages de programmation : structures alternatives, structures de contrles, choix multiples etc. L'instruction if permet d'excuter des instructions si une condition est vraie. Sa syntaxe est la suivante : if [ condition ] then action fi

action est une suite de commandes quelconques. L'indentation n'est pas obligatoire mais trs fortement recommande pour la lisibilit du code. On peut aussi utiliser la forme complte : if [ condition ] then action1 else action2 fi

ou encore enchaner plusieurs conditions : if [ condition1 ] then action1 elif [ condition2 ] then action2 elif [ condition3 ] then action3 else action4 fi

Oprateurs de comparaison Le Shell tant souvent utilis pour manipuler des fichiers, il offre plusieurs oprateurs permettant de vrifier diverses conditions sur ceux-ci : existence, dates, droits. D'autres oprateurs permettent de tester des valeurs, chanes ou numriques.

A) Oprateurs sur des fichiers


Oprateur Description -e fichier vrai si fichier existe -d fichier vrai si fichier est un rpertoire Exemple if [ -e /etc/shadow ] if [ -d /home/tp2 ]

-f fichier vrai si fichier est un fichier ordinaire if [ -f bonjour.c ] -L fichier vrai si fichier est un lien symbolique if [ -L /home ] -r fichier vrai si fichier est lisible (r) -w fichier vrai si fichier est modifiable (w) -x fichier vrai si fichier est excutable (x) if [ -r /home/etudiant2 ] if [ -w /home/etudiant2 ] if [ -x /home/etudiant2 ]

B) Oprateurs de comparaison numrique


Oprateur Description Exemple if [ $nombre -eq 27 ] if [ $nombre -ne 27 ] if [ $nombre -lt 27 ] if [ $nombre -le 27 ] if [ $nombre -gt 27 ]

num1 -eq num2 galit (equal) num1 -ne num2 ingalit (not equal) num1 -lt num2 infrieur ( < less than) num1 -le num2 infrieur ou gal ( less or equal ) num1 -gt num2 suprieur ( > greater than )

num1 -ge num2 suprieur ou gal ( greater or equal) if [ $nombre -ge 27 ]

C) Oprateurs sur les chanes


Oprateur -z chaine -n chaine Description vrai si la chaine est vide vrai si la chaine est non vide Exemple if [ -z "$VAR" ] if [ -n "$VAR" ] if [ "$VAR" = "fstt" ]

chaine1 = chaine2 vrai si les deux chanes sont gales

chaine1 != chaine2 vrai si les deux chanes sont diffrentes

if [ "$VAR" != "MIGI" ]

Remarques : Toutes les variables sont de type chane de caractres. La valeur est juste convertie en nombre pour les oprateurs de conversion numrique. Il est ncessaire d'entourer les variables de guillemets (") dans les comparaisons. Le code suivant affiche "OK" si $var est gale "FST de Tanger " : if [ "$var" = " FST de Tanger " ] then echo "OK"

Exemple :
#!/bin/sh if [ -f $1 ] ; then echo " $1 est un fichier " elif [ -d $1 ] ; then echo " $1 est repertoire " else echo "Le fichier $1 nexiste pas " ; exit 1 fi

Exemple : #!/bin/sh if [ $# -ne 1 ] ; then echo " un seul paramtre est autoris " ; exit 1 fi Exemple : #!/bin/sh if [ ! d $1 ] ; then echo " $1 nest pas un rpertoire " ; exit 1 fi

Choix multiple :
L'instruction case permet de choisir une suite d'instruction suivant la valeur d'une expression : case "$x" in Mon) echo "Lundi" ;; Tue) echo "Mardi " ;; *) echo "entrer un choix valable'' esac Noter les deux ; pour signaler la fin de chaque squence d'instructions.

Exemple :
#!/bin/sh case $# in 1) echo " $0 sans argument" ;; 2) echo " $0 possde un argument" ;; 3) echo " $0 possde deux arguments" ;; *) echo " $0 possde plus de deux arguments" ;; esac

Boucle for Comme dans d'autre langages la boucle for permet d'excuter une suite d'instructions avec une variable parcourant une suite de valeurs. Exemple : affichera le calendrier de chaque anne
for i in 2008 2009 2010 do echo calendrier de $i cal $i done

On utilise frquemment for pour numrer des noms de fichiers, comme dans cet exemple : for fichier in /etc/rc* do if [ -d "$fichier" ] then echo "$fichier (repertoire)" else echo "$fichier" fi done

Ou encore, pour traiter les arguments passs sur la ligne de commande : #!/bin/bash for arg in $* do echo $arg done

Boucle while : while command do commandes done Exemple:


while echo n " votre choix (1,2,3 ou 4) ?" read choix [ $choix lt 1 o $choix gt 4 ] ; do echo e "\n Une valeur entre 1 et 4 svp !" done exit $choix

Les oprateurs Logiques : -o : le OU logique ; -a : le ET logique

Syntaxe de rpter : until .. do done


Exemple : choix=0 until [ $choix ge 1 a $choix le 4 ] ; do echo n " votre choix (1,2,3 ou 4) ? " read choix done exit $choix

La commande expr : offre la possibilit deffectuer les oprations arithmtiques sur des variables contenant des nombres entiers :
Exemple 1 : N1=1 N2=3 N3=$( expr $N1 + $N2 ) echo la somme est $N3 N.B : par dfaut les variables en sont des chanes de caractres

Exemple 2 : N1=1 N2=3 N3=$(( $N1 + $N2 )) echo la somme est $N3

Travaux Dirigs