Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. Commandes de rpertoires
Sans rentrer dans tous les dtails de ces commandes, nous allons nous dplacer d'un
rpertoire l'autre, en crer et en supprimer, visualiser le contenu.
DIR affiche le contenu du rpertoire en cours
CHDIR ou CD en abrg: commande interne
c:>CD rpertoire <entre> ou CHDIR rpertoire <entre> permet de se dplacer dans le
rpertoire indiqu
CD .. permet de remonter d'un niveau de rpertoire
CD \ revient au rpertoire principal (root) quelque soit le sous-rpertoire courant (en cours).
CD\<sous-rpertoire1>\<sous-rpertoire2>: positionne le curseur sur le rpertoire <sous-
rpertoire2>, inclus dans le <sous-rpertoire1> lui-mme inclus dans le rpertoire en cours
MKDIR <Sous-rpertoire> ou MD <sous-rpertoire>: cre un sous rpertoire dans le
rpertoire en cours suivant le nom spcifi.
RMDIR <sous-rpertoire> ou RD <sous-rpertoire>: supprime le rpertoire s'il est vide
Si le dossier supprimer n'est pas vide, la commande est refuse. DOS affiche un
message pour le signaler.
Tree affiche tous les rpertoires contenus dans le rpertoire courant
TREE /F: affiche les rpertoires et les fichiers contenus dans ces rpertoires
TREE /F |more: affiche les rpertoires et leur contenu par page.
L'affichage se fait sous forme d'arbre
2. Manipulations de fichiers
Copy
COPY fichier1 fichier2: copie le fichier1 vers un fichier dont le nom est fichier2
RENAME (REN en abrg)
c:\>RENAME fichier1 fichier2: renomme le fichier1 en fichier2
DEL ou ERASE
DEL fichier1: efface le fichier spcifi.
UNDELETE
UNDELET fichier 1: rcupre sous certaines conditions les fichiers effacs par une
commande DEL ou ERASE
3. Commandes systmes
TIME affiche et permet jour l'heure du systme
DATE affiche et permet jour l'heure du systme
1
CHKDSK
CHKDSK <Drive>: vrifie le disque spcifi
Format Cette commande permet de formater (prparer) la surface d'un disque dur ou
d'une disquette.
FORMAT <Drive>: formate le disque <drive>
Label
LABEL <disque><nom du disque>: donne un label (nom) au disque spcifi
FDISK permet de crer, modifier ou supprimer des partitions sur les disques durs
II- Les scripts batch
Un fichier batch est, sous le systme d'exploitation Windows, un fichier (ou script) contenant
une srie d'instructions MS-DOS. Ces fichiers, lorsqu'ils sont lancs, excutent les
commandes contenues dans le fichier. Ces commandes sont alors interprtes par les
excutables cmd.exe et command.com. Les scripts ainsi crer pourront s'excuter sur les tous
les environnements Windows.
Une fois le fichier taper il faut l'enregistrer avec une extension spcifique .bat, en
slectionnant le Type "All Types (*.*), pour l'diteur bloc note.
Pour l'excuter double cliquez simplement sur le fichier.
2. Les Variables
Une variable permet de stocker une donne indique, tous moment dans le script on pourra
faire appel elle.
Exemple 2 :
rem dsactive l'affichage des commandes
echo off
rem remise blanc de l'cran
cls
rem dfinition de la valeur de la variable
set variable=1
rem affiche du texte en rappelant la variable grce aux %
2
echo la valeur de la variable est %variable%
rem arrt
pause
Rsultat :
3
rem dsactive l'affichage des commandes
echo off
rem remise blanc de l'cran
cls
rem liste des variables
echo Salut %USERNAME%,nous sommes le %DATE%
echo il est %Time% dj!,
echo %RANDOM% est un chiffre alatoire.
echo Ton PC se nomme %COMPUTERNAME%,
echo il possde %NUMBER_OF_PROCESSORS% processeur,
echo c'est une architecture %PROCESSOR_IDENTIFIER%
rem arrt
pause
Rsultat :
Voici une liste des principales variables d'environnement sur les systmes Windows :
Variable d'environnement Description
Retourne un chemin d'accs au rpertoire par dfaut
%APPDATA%
contenant les programmes utilisateur.
Retourne la commande exacte utilise pour accder
%CMDCMDLINE%
l'interprteur de commandes (cmd.exe).
%COMPUTERNAME% Retourne le nom attribu l'ordinateur.
%DATE% Retourne la date actuelle.
Contient le code d'erreur de la dernire commande
%ERRORLEVEL%
utilise.
Contient la lettre de lecteur sur laquelle le rpertoire de
%HOMEDRIVE%
l'utilisateur courant est situ.
Contient le chemin d'accs complet au rpertoire de
%HOMEPATH%
l'utilisateur courant.
Contient le nombre de processeurs prsents sur le
%NUMBER_OF_PROCESSOR%
systme.
Contient une chane de caractres dcrivant le systme
%OS% d'exploitation install. Noter que Windows 2000 se
dclare comme tant WINDOWS_NT.
Spcifie le chemin d'accs vers les principaux
%PATH%
excutables du systme.
4
Dcrit les extensions que le systme considre comme
%PATHEXT%
excutables.
Dcrit l'architecture du processeur (x86 pour les
%PROCESSOR_ARCHITECTURE%
machines Intel, IA64 pour les architectures RISC).
Retourne un entier compris entre 0 et 32167 choisi
%RANDOM%
alatoirement par le systme.
Contient la lettre de lecteur sur laquelle le systme est
%SYSTEMDRIVE%
situ (gnralement C:).
Contient le chemin d'accs au rpertoire racine du
%SYSTEMROOT%
systme.
Contient le chemin d'accs du rpertoire temporaire
%TEMP%
pour les applications.
Contient le chemin d'accs du rpertoire temporaire
%TMP%
pour les applications.
%TIME% Retourne l'heure actuelle.
%USERDOMAIN% Contient le domain auquel appartient le compte courant.
Contient le nom d'utilisateur correspondant au compte
%USERNAME%
courant.
Contient l'emplacement du profil utilisateur du compte
%USERPROFILE%
courant.
Contient le chemin d'accs au rpertoire du systme
%WINDIR%
(gnralement C:\WINDOWS ou C:\WINNT).
Sous Windows, la commande set permet de crer, de modifier et d'afficher les variables
d'environnement. Nanmoins, les modifications interviennent uniquement dans la session en
cours.
5
rem arrt
pause
Rsultat :
6
Il est possible de donner des priorits aux oprations grce aux parenthses
ex 2 : Crez un script Ex2 qui lit deux variables a et b partie de clavier et qui calcule leur
somme et le met dans une variable S
3. Les tiquettes
Typiquement le script va excuter les commandes les une la suite des autres. Pour casser
tout a les tiquettes permettent d'accdes directement un endroit du script.
Exemple 1 :
8
echo off
cls
rem dfinition du point de retour
:boucle
echo salut
rem indique de retourner la :boucle
goto boucle
Rsultat :
Si vous avez besoin d'utiliser plus de 9 arguments, vous pouvez utiliser la commande shift, qui
permet de faire un 'dcalage' sur les arguments (remplace %0 par %1, puis %1 par %2,
etc...)
5. Les Structures conditionnelles
If / else :
9
La signification de base d'une instruction "if" (si) est la suivante :
if (condition) (commande1) else (commande2)
Si la premire condition n'est pas remplie, le systme va excuter la ligne suivante dans le
fichier batch. La partie "Else" est facultative. Vous pouvez aussi utiliser la forme "if not" pour
tester si une condition est fausse. Notez que "if" teste vrai et faux dans le sens boolen.
Instructions spciales
- "if exist" utilise pour tester l'existence d'un fichier, suivie d'une commande. exemple :
if exist unFichier.ext del unFichier.ext
Vous pouvez galement utiliser un test la forme ngative :
if not exist unFichier.ext echo Pas de fichier
- "if defined" celle-ci est utilise pour tester l'existence d'une variable. Exemple :
if defined uneVariable uneCommande
Vous pouvez aussi utiliser la forme ngative : "if not defined".
Comparaison des oprateurs dans l'instruction "if"
iF "chane1" comparant "chane2" (action)
10
6. La boucle for
L'instruction de base est de la forme :
for {chaque lment} in {un ensemble d'lments} do {commande}
Noter que les variables utilises ici, ne sont pas de la forme %a%, mais de la forme %%a.
for %%X in (ensemble) do (commande)
Les commutateurs utiliss avec FOR sont :
Commutateur Fonction
/D Indique que l'ensemble contient des rpertoires.
La commande est excute rcursivement dans les sous-rpertoires du
/R
rpertoire parent indiqu.
Boucle sur une commande en utilisant des paramtres de dbut, de fin et
/L
de pas indiqus dans l'ensemble.
/F Parcours des fichiers ou une sortie de commande de plusieurs manires.
Exemple 4 : compte rebours
@echo off
echo Dbut du compte rebours
for %%v in (5 4 3 2 1) do (
echo %%v
)
echo Fin du compte rebours
pause
Rsultat :
11
Utiliser les rpertoires
Si vous souhaitez utiliser les rpertoires, utilisez le commutateur /d. La syntaxe est :
for /d %%X in (ensembleDeRepertoires) do commande
Exemple 5 : afficher tous les rpertoires (pas les sous-rpertoires) prsents sur le disque "C:"
@echo off
Cls
12
Exemple 5 :
@echo off
Cls
13
TP 02 : Script batch partie II (3h)
COMPTE RENDU
Nom : Prnom : Date :
Ex 1 : Crer un script qui demande l'utilisateur de saisir une note et qui affiche un message
en fonction de cette note :
"trs bien" si la note est entre 16 et 20 ;
"bien" lorsqu'elle est entre 14 et 16 ;
"assez bien" si la note est entre 12 et 14 ;
"moyen" si la note est entre 10 et 12 ;
"insuffisant" si la note est infrieur 10.
14
Ex 3 : Crer un script qui permet de calculer le factoriel dun entier n pass en paramtre
15
III- Ordonnancement des processus
Objectif
L'objectif de ce TP est d'tudier un certain nombre d'algorithmes d'ordonnancement afin
de comprendre l'ordonnancement dans le systme d'exploitation.
Selon les politiques d'ordonnancement, des manipulations sont proposes l'aide de
logiciels de simulation.
Rappels
l'ordonnanceur (Scheduler ): Assure la distribution de l'UC aux diffrents processus.
Sans rquisition : le processus se termine compltement avant de rendre la main au
scheduler (non premption)
Avec rquisition : le scheduleur prend la main sur le processus. Cela entrane des
problmes dans le partage de ressources entre processus (premption).
Dispatcheur : Assure lors du changement de processus, la commutation de contexte, la
commutation en mode utilisateur, le branchement au bon emplacement dans le
programme utilisateur. Il doit tre le plus rapide possible (latence de dispatching).
Simulation des algorithmes de scheduling
L'analyse de certains algorithmes est illustre avec le programme Simor. Simor est un
simulateur graphique d'ordonnancement qu'il faut lancer partir de de la commande
java -jar Simor.jar
Prsentation du simulateur ''Simor''
Lancer le simulateur avec la commande prcdente et dcouvrez l'interface utilisateur.
La zone centrale de la partie haute de Simor permet de dfinir le nombre de processus dans la
simulation ainsi que le quantum pour le systme Tourniquet (Round Robin).
La zone basse dans la partie gauche permet de dfinir les paramtres des diffrents processus
crs : leur temps d'excution ncssaire et leur date d'arrive.
16
TP 03 : Ordonnancement des processus (3h)
COMPTE RENDU
Nom : Prnom : Date :
travail demande :
On considre lensemble de processus suivant :
processus Date darrive dure dexcution
A 0 9
B 1 6
C 3 2
D 5 3
E 7 2
Algorithme FCFS (FIFO) : First Come-First Served
1. Lancer la simulation et visualiser le rsultat dans l'onglet FCFS. Que se passe-t-il ?
Dans quel ordre sont lus les processus ?
2. Que se passe-t-il ? Que provoque le processus A d'une dure plus longue ?
3. Calculer le tma pour chaque processus .
4. Avantages et inconvnients de cet algorithme pour l'excution des processus ? Que
peut-on dire du temps moyen d'attente (tma) d'un processus pour accder au
processeur ?
17
18
TP 03 : Ordonnancement des processus (3h)
COMPTE RENDU
Nom : Prnom : Date :
travail demande :
On considre lensemble de processus suivant :
processus Date darrive Priorit dure dexcution
A 0 2 9
B 1 3 6
C 3 4 2
D 5 5 3
E 7 1 2
Algorithme avec priorit statique
On suppose quon utilise un algorithme dordonnancement du processeur bas sur la priorit
1. Lancer la simulation et visualiser le rsultat dans l'onglet Priorit. Que se passe-t-il ?
Dans quel ordre sont lus les processus ?
2. Calculer le tma pour chaque processus .
3. Avantages et inconvnients de cet algorithme pour l'excution des processus ? Que peut-
on dire du temps moyen d'attente (tma) d'un processus pour accder au processeur ?
Algorithme avec priorit statique
On suppose quon utilise un algorithme dordonnancement du processeur bas sur la priorit,
Seulement on voudrait que la priorit des processus sera dynamique au cours du temps. Ainsi,
pour calculer la priorit dun processus, on utilise la formule suivante :
Remarque :
Lors des calculs, on arrondira par excs :exemples : 1.5 ou 1.6 cest arrondi 2, 1.4 arrondi 1
1. Tracer le diagramme de Gannt sachant que la priorit est calcul toutes les 4 units
19
2. Calculer le tma pour chaque processus .
3. Avantages et inconvnients de cet algorithme pour l'excution des processus ?
20
Services Posix sur les fichiers
Les fichiers permettent de stocker des informations et de les rechercher ultrieurement. Les
systmes fournissent un ensemble d'appels systme relatifs aux fichiers. Dans le cas
d'Unix/Linux, les principaux appels systme Posix relatifs aux fichiers sont :
Le mode est une combinaison de plusieurs lments assembls par un OU logique. Il faut
utiliser de faon oblige l'une de trois constantes :
On peut ensuite utiliser d'autres constantes qui permettent de mieux prciser l'usage :
. O_EXCL : employ conjointement avec O_CREAT, cette constante garantit qu'on n'crasera
pas un fichier dj existant. L'ouverture choue si le fichier existe dj.
21
. O_TRUNC : utilise avec O_WRONLY ou avec O_RDWR, permet de ramener la taille d'un
fichier existant zro.
#include <unistd.h>
L'appel systme read() lit, partir de la position courante du pointeur, count octets au
maximum et les copie dans le tampon buf. En cas de succs, il retourne le nombre d'octets
rellement lus. L'appel systme read() retourne 0 si la fin de fichier est atteinte. Il retourne -1,
en cas d'erreur.
#include <unistd.h>
L'appel systme write() copie count octets du tampon buf vers le fichier fd, partir de la
position pointe par le pointeur de fichier. En cas de succs, il retourne le nombre d'octets
rellement crits. Sinon, il renvoie -1.
Exemple 1 : Le programme suivant cre un fichier appel "fichier1.txt" dans lequel il copie
les donnes lues partir du clavier.
#include<unistd.h>
#include<fcntl.h>
#include<stdio.h>
main()
{
22
int i;
for(i=0;i<80;i++)
buf[i]='b';
if(write(fd,buf,80)==-1) return -1;
return 0;
}
Les permissions
Les permissions sont utilises lors de la cration d'un fichier. Elles servent signaler les
autorisations d'accs au nouveau fichier cre. On peut les fournir en reprsentation octale
directement (prcdes d'un 0) ou bien on peut utiliser les constantes symboliques les plus
frquentes de la table
donne les droits de lecture tous et les droits de lecture et criture seulement au propritaire
du fichier.
Exemple : Cet appel systme cre, puis ouvre un fichier nomm archivo pour un accs en
lecture/criture. Le descripteur de chier est fd. Le code de protection du chier est 0600 ce
qui correspond (wr-----).
int fd;
Exemple : Cet appel systme ouvre le fichier archivo en mode criture et positionne le
pointeur la fin du fi chier. Les critures dans le fichier ajouteront donc des donnes la
fin de celui-ci.
int fd;
23
fd = open("archivo", O_WRONLY | O_APPEND);
Exemple 2 : modifier le programme de l'exemple 1 pour pouvoir crer le fichier avec un nom
pass en paramtre et avec les permissions de lecture et d'criture pour tout le monde .
#include<unistd.h>
#include<fcntl.h>
#include<stdio.h>
main(int argc, char* argv[])
{
int fd, nbcar;
char buf[80];
//crer un fichier
fd=open(........................,O_CREAT|O_RDWR,......................... );
if(fd==-1)
{
write(2,"erreur d'ouverture\n",25);
return -1;
}
write(2,"ouverture avec succes\n",30);
//while((nbcar=read(0,buf,80))>0)
int i;
for(i=0;i<80;i++)
buf[i]='b';
if(write(fd,buf,80)==-1) return -1;
return 0;
}
main()
{
int src,dst,in,out;
char buf[4096];
//ouvrir le fichier source
src=open("fich1.txt",O_RDWR);
if(src<0)
{
printf("erreur d'ouverture du fichier source \n");
return -1;
}
dst=open("fich2.txt",O_RDWR);
if(dst<0)
{
24
printf("erreur d'ouverture du fichier destination \n");
return -1;
}
while((in=read(src,buf,4096))>0)
{
out=write(dst,buf,in);
}
return 0;
}
#include <sys/types.h>
#include <dirent.h>
int mkdir(const char *name, mode_t mode);
Effacer un rpertoire
#include <sys/types.h>
int rmdir(const char *nom);
rmdir() efface le rpertoire s'il est vide. Si le rpertoire n'est pas vide, on ne l'efface pas.
Arguments : nom correspond au nom du rpertoire. Il retourne 0 ou -1 en cas d'erreur.
#include <sys/types.h>
#include <dirent.h>
25
opendir() ouvre un rpertoire comme une squence d'entres. Il met le pointeur au premier
lment. opendir() reoit comme argument nom qui est le nom du rpertoire. Il retourne un
pointeur du type DIR pour l'utiliser en readdir() ou closedir() ou bien NULL s'il a eu une
erreur.
Fermer un rpertoire
#include <sys/types.h>
#include <dirent.h>
L'appel systme closedir() ferme le lien entre dirp et la squence d'entres du rpertoire.
Arguments : dirp pointeur retourn par opendir(). Il retourne 0 ou -1 en cas d'erreur.
#include <sys/types.h>
#include <dirent.h>
L'appel systme readdir() reoit comme arguments dirp qui est le pointeur retourn par
opendir(). Il retourne un pointeur un objet du type struct dirent qui reprsente une entre de
rpertoire ou NULL s'il y a eu erreur. Il retourne l'entre suivante du rpertoire associ dirp
et avance le pointeur l'entre suivante. La structure est dpendante de l'implantation. Pour
simplification, on peut assumer qu'on obtient un membre char *d_name.
Changer du rpertoire
int chdir(char *name);
chdir() modie le rpertoire actuel, partir duquel se forment les noms relatifs. Arguments :
name est le nom d'un rpertoire. Il retourne 0 ou -1 en cas d'erreur.
Renommer un rpertoire
#include <unistd.h>
rename() change le nom du rpertoire old. Le nom nouveau est new. Arguments : old nom
d'un rpertoire existant, et new le nom nouveau du rpertoire. Il retourne 0 ou -1 en cas
d'erreur.
#include<stdio.h>
#include<sys/types.h>
#include<dirent.h>
26
main()
{
DIR * dirp;
struct dirent *dp;
char buf[256],rep[20];
//montrer le repertoire actuel
getcwd(buf,256);
printf("repertoire actuel : %s\n",buf);
//lecture du nom du repertoire ouvrir
printf("donner le nom du repertoire\n");
scanf("%s",rep);
//ouvrir le repertoire
dirp=opendir(rep);
if(dirp==NULL)
{
printf("impossible d'ouvrir %s\n",rep);
}
else
{
//lecture du contenu du repertoire
while((dp=readdir(dirp))!=NULL)
printf("%s\n",dp->d_name);
closedir(dirp);
}
return 0;
}
27
TP 03 : Gestion de fichiers (3h)
COMPTE RENDU
Nom : Prnom : Date :
Ex 1 :
Ecrire un programme qui permet de Copier un fichier texte dans un autre: crer un fichier
"essai.dat" sous lditeur. Tester le programme en vrifiant aprs excution la prsence du
fichier copi dans le directory.
28
29