SlideShare une entreprise Scribd logo
Systèmes
d'exploitation
Planification, IPC
Bibliographie pour aujourd'hui
• Modern Operating Systems
– Chapitre 2
• 2.3
• 2.5
• Operating Systems Concepts
– Chapitre 6
2
Margaret Hamilton
• Américaine
• MIT Instrumentation Lab
• Apollo Guidance
Computer
3
Contenu
• Planification
– Non-préemptif
– Préemptif
• IPC
– signal
– pipe
– socket
4
SYSTÈMES INTERACTIFS
5
Systèmes Interactifs
• Paramètres optimisé
– Wait Time
– Fairness
• Algorithmes
– Round Robin (RR)
– Classes des Priorisées
– Shortest Process Next (SPN)
6
Round Robin
• FCFS Préemptif
– Quantum de temps
• Grand Quantum de temps
– Grand throughput
– Grand Wait Time
• Pietit Quantum de temps
– Petit throughput
• Temps pur le changement
de contexte este grand
– Petit Wait Time
7
Classes des Priorisées
• Round Robin
– avec de processus plus important que autres
• Plusieurs files d'attente
8
Classes des Priorités
Windows
• Priority
– 0 Système
– 1 a 15 User
– 16 a 30 temps réel
Linux
9
• Priority
– 0 a 99 temps reel
– 100 a 139 user
• Nice
– -20 a 19
• Priority effective
– 100 + 20 + NI
Classes des Priorités (Linux)
10
Shortest Process Next
• SJF Préemptif
• Estimation basée sur le comportement
précédent
• T0 - quantum de temps estimée
• T1 - quantum de temps réel
• a - âgée
• Quantum de temps suivante
– a * T1 + (1-a) * T0
11
TEMPS RÉEL
12
Temps Reel
• Limite maximale
– Turnaround
– Wait Time
• Hardware
– ressources alloue
• Software
– Les processus de temps réel ont la priorité
maximale
– Les autres processus sont retardé
13
Priority Inversion
• Un processus avec un priorité petit (P1) prend
un ressource
• Un autre processus avec un priorité plus grand
(P2) a besoin de cette ressource
• Processus P2 a la même priorité avec le
processus P1
14
Priority Boosting
• Augmenter la priorité pendant un temps
limité
• À la réception des données d’E/S
– En dépendant de Wait Time
• Un autre processus avec un priorité plus
grande attend un ressource bloque par le
processus
15
Starvation
• Un processus ne prend pas le CPU pour un
long temps
16
FERMER UN PROCESSUS
17
Fermer un processus
• Terminer l’exécution
• Fermé par le SE
18
Terminer l'exécution d'un processus
• Le processus termine sa exécution
– arrivé la fin du programme
– appelé exit
• La décision c’est au processus
19
Fermé par le SE
• Le SE ferme le processus
– à la demande d'un autre processus (kill)
– le processus a effectué une erreur
• Envoyer un signal (Unix) ou une exception
(Windows)
20
Effacer le processus
• Le SE efface toute les informations du
processus
– PCB
– PID
– Tableau des descripteurs
– Mémoire alloue
– …
• Le SE envoie un signal (Unix) / message
(Windows) aux processus parent
21
Attendre le fin du processus
• Synchroniser l'action de certains processus
– tu fais X après Y
– le processus qui fait l'action X attend la fin de
l'exécution du processus qui fait l’action Y
• Cela s'appelle "attendre un processus"
• Informations utiles sur le fin du processus
– la valeur de retour
22
La valeur de retour
int main ()
{
// do some work ...
if (error)
{
// exit with an error code, here -120
exit (-120);
}
// exit without error, success
return 0;
}
23
Exemple
int fd, status;
pid_t pid = fork ();
if (pid == 0)
{
// child
if (!execl ("/bin/ls", "/bin/ls", "-l", NULL))
{
perror ("Error loading /bin/lsn");
abort ();
}
}
else if (pid > 0) {
// parent
waitpid (pid, &status, 0);
printf ("/bin/ls exited with %dn", WEXITSTATUS (status));
}
24
Processus orphelin
• Un processus dont le parent a terminé sa
exécution
• Il perd sa connexion dans la hiérarchie des
processus
• Il est adopté par un processus dédié (init sur
Unix)
25
Processus zombie
• Un processus qui s'est terminé mais n'était pas
attendu
– Les informations résiduelles restent (elles prouvent
être utilisé par le processus parent)
• Si un processus zombie reste orphelin, il est
adopté par init puis il est terminé
• Les processus zombies plus longs occupent (en
vain) les ressources de système
26
Le operateur shell &
• En règle générale, le shell attend le fin des
processus créés
• L'opérateur &: shell n'attend plus la fin du
processus
– le processus s'exécute en background
– le shell contrôle le stdin
27
Exemple
28
shell
parent
shell
child
fork()
child
exec(“/bin/ls”)
ls
shell
parent
COMPLETELY FAIR SCHEDULER
29
Completly Fair Scheduler
• Virtual Runtime (vruntime)
– Temp d’utilisation de CPU
• Arbre Rouge - Noir
– ordonné par la vruntime
• Processus nouveau
– vruntime = vruntime minimale
30
Completly Fair Scheduler
31
IPC - COMMUNICATION ENTRE
PROCESSUS
32
Processus
• processus - une unité d'exécution
• Chaque processus a:
– Propre espace mémoire virtuel
– Tableau de descripteurs
• processus de séjour:
– READY
– RUNNING
– WAITING
• Multitasking
33
IPC
• signaux (Linux)
• pipe
• mémoire partagé
• socket
34
Signaux
• Une notification à un processus
• SO peut transmettre des évènements a un
processus
• SO découvre un événement (par exemple une
interruption)
– SO arrête le processus (où il est frappé)
– Le signal handler fonctionne
– Le processus continue là où il en reste
35
Signaux
36
Liste des signaux - Linux
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1
35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5
39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9
43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13
47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
37
Envoyer un signal
• Shell
– kill -numero_signal pid
• POSIX
– int kill(pid_t pid, int sig);
– int sigqueue(pid_t pid, int sig,
const union sigval value);
38
Action sur réception d'un signal
• Action implicite
– fermer processus (généralement)
• Action utilisateur
– signal handler
• Ignorance
– sauf SIGKILL et SIGSTOP
39
Action Utilisateur
int sigaction(int signum,
const struct sigaction *act, struct
sigaction *oldact);
struct sigaction {
void (*sa_handler)(int);
void (*sa_sigaction)(int, siginfo_t *, void *);
sigset_t sa_mask;
int sa_flags;
};
40
Exemple
static void usr2_handler(int signum) {
/* actions that should be taken when the signal signum
is received */
...
}
int main(void) {
struct sigaction sa;
memset(&sa, 0, sizeof(sa));
sa.sa_flags = SA_RESETHAND; /* restore handler to
previous state */
sa.sa_handler = usr2_handler;
sigaction(SIGUSR2, &sa, NULL);
return 0;
}
41
Mask des signaux
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset(sigset_t *set, int signo);
int sigdelset(sigset_t *set, int signo);
int sigismember(sigset_t *set, int
signo);
42
PIPE
43
Anonymes
• Communication entre processus liés (parent /
enfant)
• Fonction pipe
– Retourne deux descripteurs:
• l'un utilisé pour écrire
• un autre pour lire
44
Anonymes
45
Pipe Exemple Linux
int p[2];
int rc;
rc = pipe (p);
if (rc < 0)
{
perror ("pipe");
}
else
{
// p[0] <- read from here
// p[1] -> write here
}
46
Pipe Exemple Linux
int p[2];
int rc, pid;
char buffer[BUFFER_SIZE];
rc = pipe (p);
if (rc < 0) {
perror ("pipe");
}
else
{
pid = fork ();
if (pid == 0) {
close (p[1]);
read (p[0], buffer, BUFFER_SIZE);
// ...
}
else
if (pid > 0) {
close (p[0]);
memcpy (buffer, ..., BUFFER_SIZE);
write (p[1], buffer, BUFFER_SIZE);
// ...
}
}
47
Nommés
• mkfifo / mknod
• Utilisé comme un fichier normal
– open
– read, write
• Half-duplex (Linux)
48
Exemple Linux
int mkfifo(const char *pathname, mode_t mode);
49
AUTRES SYSTEMES IPC
50
Mémoire partagé
• Chaque processus a sa propre mémoire
– Une zone de mémoire peut être partagée entre
processus
• shmget / shmat
• mmap
• Communication sans overhead
– Pas de traversée dans le noyau
– Accès à la mémoire
– Nécessite une synchronisation
51
socket
• La forme de IPC la plus répandue
– sockets Unix: similaire aux pipes nommées
• BSD sockets
– TCP / UDP
– Cross-machine
– Synchronisation explicite
• API: flux d'octets fiable
– socket / connect / accepter / envoyer / recv
52
Mot clés
• Planification
• Procession en
background
• Job
• Systèmes interactifs
• Process
• Temps réel
• Shortest Job First
• Shortest Remaining Job
• First
• Round Robin
• Shortest Process Next
• Priorité
• Priority Inversion
• Priority Boosting
• Starvation
• Completly Fair
Scheduler
53
Questions
54

Contenu connexe

Tendances

SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
Alexandru Radovici
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
Alexandru Radovici
 
Boot
BootBoot
SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
Alexandru Radovici
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
Alexandru Radovici
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
Alexandru Radovici
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processusSelman Dridi
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
Alexandru Radovici
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linux
embedded-linux-bdx
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
Malak Souf
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
Alexandru Radovici
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercicesSelman Dridi
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
Alexandru Radovici
 
Gestion et surveillance du reseau syslogng
Gestion et surveillance du reseau  syslogngGestion et surveillance du reseau  syslogng
Gestion et surveillance du reseau syslogng
Kiemde Franck
 
Formation linux temps réel - Rennes 14 octobre 2014
Formation linux temps réel  - Rennes 14 octobre 2014Formation linux temps réel  - Rennes 14 octobre 2014
Formation linux temps réel - Rennes 14 octobre 2014
eurogicielgroup
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
Alexandru Radovici
 
Corrige tp3 m3102_dut2
Corrige tp3 m3102_dut2Corrige tp3 m3102_dut2
Corrige tp3 m3102_dut2Youssef Rvd
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
Christian Charreyre
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
Alexandru Radovici
 

Tendances (20)

SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
SdE2 4 - Processus
SdE2 4 - ProcessusSdE2 4 - Processus
SdE2 4 - Processus
 
Boot
BootBoot
Boot
 
SdE 3 - System de fichiers
SdE 3 - System de fichiersSdE 3 - System de fichiers
SdE 3 - System de fichiers
 
SdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoireSdE 2 - Langage C, Allocation de memoire
SdE 2 - Langage C, Allocation de memoire
 
SdE 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
Ordinnancement des processus
Ordinnancement des processusOrdinnancement des processus
Ordinnancement des processus
 
Ordonnancement SJF
Ordonnancement SJFOrdonnancement SJF
Ordonnancement SJF
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
 
Solutions temps réel sous linux
Solutions temps réel sous linuxSolutions temps réel sous linux
Solutions temps réel sous linux
 
Chap06 1
Chap06 1Chap06 1
Chap06 1
 
SdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiersSdE 3 - Systemes de fichiers
SdE 3 - Systemes de fichiers
 
Ordonnancement exercices
Ordonnancement exercicesOrdonnancement exercices
Ordonnancement exercices
 
Systemes d'explotation: Threads
Systemes d'explotation: ThreadsSystemes d'explotation: Threads
Systemes d'explotation: Threads
 
Gestion et surveillance du reseau syslogng
Gestion et surveillance du reseau  syslogngGestion et surveillance du reseau  syslogng
Gestion et surveillance du reseau syslogng
 
Formation linux temps réel - Rennes 14 octobre 2014
Formation linux temps réel  - Rennes 14 octobre 2014Formation linux temps réel  - Rennes 14 octobre 2014
Formation linux temps réel - Rennes 14 octobre 2014
 
SdE - Introduction
SdE - IntroductionSdE - Introduction
SdE - Introduction
 
Corrige tp3 m3102_dut2
Corrige tp3 m3102_dut2Corrige tp3 m3102_dut2
Corrige tp3 m3102_dut2
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
SdE 9 - Threads
SdE 9 - ThreadsSdE 9 - Threads
SdE 9 - Threads
 

Similaire à SdE2 - Planification, IPC

Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processus
Fatima Zahra Fagroud
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
MedBechir
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
guebba sara
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
sarah Benmerzouk
 
Ed2 corrige 2
Ed2 corrige 2Ed2 corrige 2
Ed2 corrige 2
IsimmSpotted
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
BoudarraWalid
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
ECAM Brussels Engineering School
 
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifsTechniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
Yann Rouillard
 
Chapitre 5 Linux
Chapitre 5 LinuxChapitre 5 Linux
gestion de processus
gestion de processusgestion de processus
gestion de processus
MoodyBop
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
MoodyBop
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
ECAM Brussels Engineering School
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
Kais Baccour
 
Raspberry Pi: Les utilisations
Raspberry Pi: Les utilisationsRaspberry Pi: Les utilisations
Raspberry Pi: Les utilisations
Café Numérique Arlon
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
cppfrug
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
DenisKouakou1
 

Similaire à SdE2 - Planification, IPC (20)

Expose linux gestion des processus
Expose linux  gestion des processusExpose linux  gestion des processus
Expose linux gestion des processus
 
Cours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdfCours SE Ordonnancement des processus - IPSET.pdf
Cours SE Ordonnancement des processus - IPSET.pdf
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
SYSTèmes d'exploitation
SYSTèmes d'exploitationSYSTèmes d'exploitation
SYSTèmes d'exploitation
 
Ed2 corrige 2
Ed2 corrige 2Ed2 corrige 2
Ed2 corrige 2
 
Cours se chap3_2
Cours se chap3_2Cours se chap3_2
Cours se chap3_2
 
Cours se chap3
Cours se chap3Cours se chap3
Cours se chap3
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
 
Développement informatique : Programmation concurrente
Développement informatique : Programmation concurrenteDéveloppement informatique : Programmation concurrente
Développement informatique : Programmation concurrente
 
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifsTechniques sysadmin d'investigation de dysfonctionnements applicatifs
Techniques sysadmin d'investigation de dysfonctionnements applicatifs
 
Chapitre 5 Linux
Chapitre 5 LinuxChapitre 5 Linux
Chapitre 5 Linux
 
gestion de processus
gestion de processusgestion de processus
gestion de processus
 
Gestion des processus
Gestion des processusGestion des processus
Gestion des processus
 
Power Shell V2 Full
Power Shell V2 FullPower Shell V2 Full
Power Shell V2 Full
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
 
Raspberry Pi: Les utilisations
Raspberry Pi: Les utilisationsRaspberry Pi: Les utilisations
Raspberry Pi: Les utilisations
 
Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++Comment développer un serveur métier en python/C++
Comment développer un serveur métier en python/C++
 
0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt0081-cours-systemes-exploitations.ppt
0081-cours-systemes-exploitations.ppt
 

Plus de Alexandru Radovici

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
Alexandru Radovici
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
Alexandru Radovici
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
Alexandru Radovici
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
Alexandru Radovici
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
Alexandru Radovici
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
Alexandru Radovici
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
Alexandru Radovici
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
Alexandru Radovici
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
Alexandru Radovici
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
Alexandru Radovici
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
Alexandru Radovici
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
Alexandru Radovici
 
SdE 8 - Memoire Virtuelle
SdE 8 - Memoire VirtuelleSdE 8 - Memoire Virtuelle
SdE 8 - Memoire Virtuelle
Alexandru Radovici
 
SdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la MémoireSdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la Mémoire
Alexandru Radovici
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
Alexandru Radovici
 
ALF 5 - Parser
ALF 5 - ParserALF 5 - Parser
ALF 5 - Parser
Alexandru Radovici
 
ALF 4 - Grammaires
ALF 4 - GrammairesALF 4 - Grammaires
ALF 4 - Grammaires
Alexandru Radovici
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
Alexandru Radovici
 
ALF 1 - Automates finis
ALF 1 - Automates finis ALF 1 - Automates finis
ALF 1 - Automates finis
Alexandru Radovici
 
SdE 2 - System de fichiers
SdE 2 - System de fichiersSdE 2 - System de fichiers
SdE 2 - System de fichiers
Alexandru Radovici
 

Plus de Alexandru Radovici (20)

SdE2 - Pilot Tock
SdE2 - Pilot TockSdE2 - Pilot Tock
SdE2 - Pilot Tock
 
SdE2 - Systèmes embarquées
SdE2 - Systèmes embarquéesSdE2 - Systèmes embarquées
SdE2 - Systèmes embarquées
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 
SdE2 - Introduction
SdE2 - IntroductionSdE2 - Introduction
SdE2 - Introduction
 
MDAD 6 - AIDL and Services
MDAD 6 - AIDL and ServicesMDAD 6 - AIDL and Services
MDAD 6 - AIDL and Services
 
MDAD 5 - Threads
MDAD 5 - ThreadsMDAD 5 - Threads
MDAD 5 - Threads
 
MDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recyclingMDAD 4 - Lists, adapters and recycling
MDAD 4 - Lists, adapters and recycling
 
MDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI ApplicationsMDAD 3 - Basics of UI Applications
MDAD 3 - Basics of UI Applications
 
MDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android FrameworkMDAD 2 - Introduction to the Android Framework
MDAD 2 - Introduction to the Android Framework
 
MDAD 1 - Hardware
MDAD 1 - HardwareMDAD 1 - Hardware
MDAD 1 - Hardware
 
MDAD 0 - Introduction
MDAD 0 - IntroductionMDAD 0 - Introduction
MDAD 0 - Introduction
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
SdE 8 - Memoire Virtuelle
SdE 8 - Memoire VirtuelleSdE 8 - Memoire Virtuelle
SdE 8 - Memoire Virtuelle
 
SdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la MémoireSdE 7 - Gestion de la Mémoire
SdE 7 - Gestion de la Mémoire
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 
ALF 5 - Parser
ALF 5 - ParserALF 5 - Parser
ALF 5 - Parser
 
ALF 4 - Grammaires
ALF 4 - GrammairesALF 4 - Grammaires
ALF 4 - Grammaires
 
ALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et LexerALF 3 - Expressions régulières et Lexer
ALF 3 - Expressions régulières et Lexer
 
ALF 1 - Automates finis
ALF 1 - Automates finis ALF 1 - Automates finis
ALF 1 - Automates finis
 
SdE 2 - System de fichiers
SdE 2 - System de fichiersSdE 2 - System de fichiers
SdE 2 - System de fichiers
 

Dernier

Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
Morzadec Cécile
 
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
MustaphaZhiri
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
Txaruka
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
mohammadaminejouini
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 
Margaux Laurens - Neel.pptx
Margaux        Laurens     -     Neel.pptxMargaux        Laurens     -     Neel.pptx
Margaux Laurens - Neel.pptx
Txaruka
 

Dernier (7)

Proyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de pazProyecto Erasmus Jardineros y jardineras de paz
Proyecto Erasmus Jardineros y jardineras de paz
 
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
Dimensionnement réseau de transmission pour un réseau GSM-R - AIT KADDOUR Ghi...
 
BATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en FranceBATIMENT 5.pptx. Fil français tourné en France
BATIMENT 5.pptx. Fil français tourné en France
 
Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Presentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechniquePresentation powerpoint sur la filiere electrotechnique
Presentation powerpoint sur la filiere electrotechnique
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 
Margaux Laurens - Neel.pptx
Margaux        Laurens     -     Neel.pptxMargaux        Laurens     -     Neel.pptx
Margaux Laurens - Neel.pptx
 

SdE2 - Planification, IPC

  • 2. Bibliographie pour aujourd'hui • Modern Operating Systems – Chapitre 2 • 2.3 • 2.5 • Operating Systems Concepts – Chapitre 6 2
  • 3. Margaret Hamilton • Américaine • MIT Instrumentation Lab • Apollo Guidance Computer 3
  • 4. Contenu • Planification – Non-préemptif – Préemptif • IPC – signal – pipe – socket 4
  • 6. Systèmes Interactifs • Paramètres optimisé – Wait Time – Fairness • Algorithmes – Round Robin (RR) – Classes des Priorisées – Shortest Process Next (SPN) 6
  • 7. Round Robin • FCFS Préemptif – Quantum de temps • Grand Quantum de temps – Grand throughput – Grand Wait Time • Pietit Quantum de temps – Petit throughput • Temps pur le changement de contexte este grand – Petit Wait Time 7
  • 8. Classes des Priorisées • Round Robin – avec de processus plus important que autres • Plusieurs files d'attente 8
  • 9. Classes des Priorités Windows • Priority – 0 Système – 1 a 15 User – 16 a 30 temps réel Linux 9 • Priority – 0 a 99 temps reel – 100 a 139 user • Nice – -20 a 19 • Priority effective – 100 + 20 + NI
  • 11. Shortest Process Next • SJF Préemptif • Estimation basée sur le comportement précédent • T0 - quantum de temps estimée • T1 - quantum de temps réel • a - âgée • Quantum de temps suivante – a * T1 + (1-a) * T0 11
  • 13. Temps Reel • Limite maximale – Turnaround – Wait Time • Hardware – ressources alloue • Software – Les processus de temps réel ont la priorité maximale – Les autres processus sont retardé 13
  • 14. Priority Inversion • Un processus avec un priorité petit (P1) prend un ressource • Un autre processus avec un priorité plus grand (P2) a besoin de cette ressource • Processus P2 a la même priorité avec le processus P1 14
  • 15. Priority Boosting • Augmenter la priorité pendant un temps limité • À la réception des données d’E/S – En dépendant de Wait Time • Un autre processus avec un priorité plus grande attend un ressource bloque par le processus 15
  • 16. Starvation • Un processus ne prend pas le CPU pour un long temps 16
  • 18. Fermer un processus • Terminer l’exécution • Fermé par le SE 18
  • 19. Terminer l'exécution d'un processus • Le processus termine sa exécution – arrivé la fin du programme – appelé exit • La décision c’est au processus 19
  • 20. Fermé par le SE • Le SE ferme le processus – à la demande d'un autre processus (kill) – le processus a effectué une erreur • Envoyer un signal (Unix) ou une exception (Windows) 20
  • 21. Effacer le processus • Le SE efface toute les informations du processus – PCB – PID – Tableau des descripteurs – Mémoire alloue – … • Le SE envoie un signal (Unix) / message (Windows) aux processus parent 21
  • 22. Attendre le fin du processus • Synchroniser l'action de certains processus – tu fais X après Y – le processus qui fait l'action X attend la fin de l'exécution du processus qui fait l’action Y • Cela s'appelle "attendre un processus" • Informations utiles sur le fin du processus – la valeur de retour 22
  • 23. La valeur de retour int main () { // do some work ... if (error) { // exit with an error code, here -120 exit (-120); } // exit without error, success return 0; } 23
  • 24. Exemple int fd, status; pid_t pid = fork (); if (pid == 0) { // child if (!execl ("/bin/ls", "/bin/ls", "-l", NULL)) { perror ("Error loading /bin/lsn"); abort (); } } else if (pid > 0) { // parent waitpid (pid, &status, 0); printf ("/bin/ls exited with %dn", WEXITSTATUS (status)); } 24
  • 25. Processus orphelin • Un processus dont le parent a terminé sa exécution • Il perd sa connexion dans la hiérarchie des processus • Il est adopté par un processus dédié (init sur Unix) 25
  • 26. Processus zombie • Un processus qui s'est terminé mais n'était pas attendu – Les informations résiduelles restent (elles prouvent être utilisé par le processus parent) • Si un processus zombie reste orphelin, il est adopté par init puis il est terminé • Les processus zombies plus longs occupent (en vain) les ressources de système 26
  • 27. Le operateur shell & • En règle générale, le shell attend le fin des processus créés • L'opérateur &: shell n'attend plus la fin du processus – le processus s'exécute en background – le shell contrôle le stdin 27
  • 30. Completly Fair Scheduler • Virtual Runtime (vruntime) – Temp d’utilisation de CPU • Arbre Rouge - Noir – ordonné par la vruntime • Processus nouveau – vruntime = vruntime minimale 30
  • 32. IPC - COMMUNICATION ENTRE PROCESSUS 32
  • 33. Processus • processus - une unité d'exécution • Chaque processus a: – Propre espace mémoire virtuel – Tableau de descripteurs • processus de séjour: – READY – RUNNING – WAITING • Multitasking 33
  • 34. IPC • signaux (Linux) • pipe • mémoire partagé • socket 34
  • 35. Signaux • Une notification à un processus • SO peut transmettre des évènements a un processus • SO découvre un événement (par exemple une interruption) – SO arrête le processus (où il est frappé) – Le signal handler fonctionne – Le processus continue là où il en reste 35
  • 37. Liste des signaux - Linux 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1 35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5 39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX 37
  • 38. Envoyer un signal • Shell – kill -numero_signal pid • POSIX – int kill(pid_t pid, int sig); – int sigqueue(pid_t pid, int sig, const union sigval value); 38
  • 39. Action sur réception d'un signal • Action implicite – fermer processus (généralement) • Action utilisateur – signal handler • Ignorance – sauf SIGKILL et SIGSTOP 39
  • 40. Action Utilisateur int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact); struct sigaction { void (*sa_handler)(int); void (*sa_sigaction)(int, siginfo_t *, void *); sigset_t sa_mask; int sa_flags; }; 40
  • 41. Exemple static void usr2_handler(int signum) { /* actions that should be taken when the signal signum is received */ ... } int main(void) { struct sigaction sa; memset(&sa, 0, sizeof(sa)); sa.sa_flags = SA_RESETHAND; /* restore handler to previous state */ sa.sa_handler = usr2_handler; sigaction(SIGUSR2, &sa, NULL); return 0; } 41
  • 42. Mask des signaux int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signo); int sigdelset(sigset_t *set, int signo); int sigismember(sigset_t *set, int signo); 42
  • 44. Anonymes • Communication entre processus liés (parent / enfant) • Fonction pipe – Retourne deux descripteurs: • l'un utilisé pour écrire • un autre pour lire 44
  • 46. Pipe Exemple Linux int p[2]; int rc; rc = pipe (p); if (rc < 0) { perror ("pipe"); } else { // p[0] <- read from here // p[1] -> write here } 46
  • 47. Pipe Exemple Linux int p[2]; int rc, pid; char buffer[BUFFER_SIZE]; rc = pipe (p); if (rc < 0) { perror ("pipe"); } else { pid = fork (); if (pid == 0) { close (p[1]); read (p[0], buffer, BUFFER_SIZE); // ... } else if (pid > 0) { close (p[0]); memcpy (buffer, ..., BUFFER_SIZE); write (p[1], buffer, BUFFER_SIZE); // ... } } 47
  • 48. Nommés • mkfifo / mknod • Utilisé comme un fichier normal – open – read, write • Half-duplex (Linux) 48
  • 49. Exemple Linux int mkfifo(const char *pathname, mode_t mode); 49
  • 51. Mémoire partagé • Chaque processus a sa propre mémoire – Une zone de mémoire peut être partagée entre processus • shmget / shmat • mmap • Communication sans overhead – Pas de traversée dans le noyau – Accès à la mémoire – Nécessite une synchronisation 51
  • 52. socket • La forme de IPC la plus répandue – sockets Unix: similaire aux pipes nommées • BSD sockets – TCP / UDP – Cross-machine – Synchronisation explicite • API: flux d'octets fiable – socket / connect / accepter / envoyer / recv 52
  • 53. Mot clés • Planification • Procession en background • Job • Systèmes interactifs • Process • Temps réel • Shortest Job First • Shortest Remaining Job • First • Round Robin • Shortest Process Next • Priorité • Priority Inversion • Priority Boosting • Starvation • Completly Fair Scheduler 53