0% ont trouvé ce document utile (0 vote)
54 vues3 pages

Programmation Système Résumé

Le document présente les concepts fondamentaux de la programmation système, y compris la définition et l'état des processus, la gestion des signaux, et la compilation de programmes en C. Il aborde également les variables d'environnement et les appels système, en mettant l'accent sur les fonctions comme fork() pour la gestion des processus. Enfin, il explique l'utilisation de Makefile pour la compilation et la gestion des dépendances dans les projets de programmation.

Transféré par

aoudacht.imane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
54 vues3 pages

Programmation Système Résumé

Le document présente les concepts fondamentaux de la programmation système, y compris la définition et l'état des processus, la gestion des signaux, et la compilation de programmes en C. Il aborde également les variables d'environnement et les appels système, en mettant l'accent sur les fonctions comme fork() pour la gestion des processus. Enfin, il explique l'utilisation de Makefile pour la compilation et la gestion des dépendances dans les projets de programmation.

Transféré par

aoudacht.imane
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats ODT, PDF, TXT ou lisez en ligne sur Scribd

Programmation système

Chapitre 1:

Un processus: est l’image en mémoire d’un programme en cours d’exécution.


Il peut créer d’autre processus, il est identifié par une PID (Processus
Identifier).

Init: Processus parent : attribut nom machine + date + contrôle le bon


arrêt du systè[Link] Getty et inetd.

Getty: affiche « login : » et attend.

Inetd: processus surveillance réseau.

État d’un processus :


Initial : processus créer.
Actif : s’exécute.
En attente :suspendu.
Finale (Zombie) :terminé.

Possibilité d’arrêt d’un processus :


Normal:lui même arrête.
Autorisé :par son père.
Anormal :par le système.

Table des processus contient : l’état du processus,son compteur ordinale,


son pointeur de pile,l’état de ces fichiers ouverts.

Structure processus :
• PID
• UID
• GID
• répertoire courant
• fichiers ouverts par ce processus
• masque de création fichiers:umask
• Taille max fichier:ulimit
• Priorité (de -20 à 19 plus valeur grande plus priorité
petite)affecté avec nice. expl : nice -5 [Link].
• temps exécution
• terminal:tty

ps: donne info sur processus en cours d’exécution.

Ps -a:infos processus attaché.

Ps -l:donne pour chaque processus : user,%cpu ,size, rss(mémoire réservé)

ps -x:infos sur processus non lié.

Ps -w:cmd associé à chaque processus.

Kill:arrêt [Link] un signal au processus. exp:kill -signal pid.

Signaux :
SIGINT: 2 :CTRL+C arrêt processus.
SIGKILL: 9 :arrêt tout programme.
SIGTERM : 15 : arrêt processus permet d’effectuer des opérations avant
l’arrêt.
SIGCHLD :17:informe le père de la mort de son fils.

Gestion des jobs :


Un job est un ensemble de 1 ou plusieurs commande.
lancement job en arrière plan se fait par : cmd &.

Chapitre 2:
Compilation programme :
étape 1 : gcc -O3 -Wall -c prog.c.
traduction langage C en langage machine => résultat : prog.o.

étape 2 : gcc -o prog prog.o.


regroupement variable et fcts programme.

Étape 1+étape 2 : gcc -O3 -Wall prog.c -o prog.

-O3 :optimise le code générer.3 degrés.

-Wall : active message d’avertissement.

-c : étape compilation.

-o :précise nom fichier.

Fichier Makefile : Mémorise l’arbre des dépendances.

Cible principale : dépendance.


<TAB> action.
cible:dépendance.
<TAB> action.

variables makefile :
CC= gcc
$(CC)
pour lire le makefile : make.

Paramètre de Main :
int main(int argc , char*argv[], char*envp[]) ;
argc : argument count.(nombre argument passé au programme)
argv : argument value. pointeur sur un tableau qui pointe sur des chaînes
argv[0] : nom du programme.
Envp : environment program. pointe vers un tableau de chaînes.

Path : echo path usr/local/sbin:/usr/local/bin : … etc:contient des


chemins qui contiennent des exécutable.

Chapitre 3 :

Les variables d’environnements : sont des variables dynamiques utilisé


par différents système informatique (Windows ,UNIX, …), elles
communiquent les informations entre les programmes.
Env : permet de lister les variables d’environnements.

extern char ** environ : contient les variables d’environnement.

Variables plus utilisé :


Home : contient rep personnel du user.
Path :série de chemins vers des répertoires exécutable.
PWD : contient répertoire de travail.
USER :nom user.
TERM :type terminal utilisé.
SHELL :shell de connexion utilisé.

Créer,modifier rechercher et supprimer des variables d’environnement :

int putenv(const char* string) : créer variable.


Int setenv(const char*name,const char*value, int overwrite):modifier une
variable d’environnement.
Char* getenv(const char*name) :chercher une variable d’env.
Void unsetenv(const char*name):supprimer.

Chapitre 4 :

Les appels Système :

fork() : est une fonctionnalité sous Linux qui permet de dupliquer les
processus
pid chez le fils est 0 chez le père != de 0 mais leur descripteur de
fichier est le même

Vous aimerez peut-être aussi