SlideShare a Scribd company logo
1 of 66
Sisteme de operare
Planificarea proceselor, IPC
Cuprins
• Planificare
– Non-preemtivă
– Preemetivă
• IPC
– semnale
– pipe
– memorie partajată
– socket
2
Bibliografie
• Modern Operating Systems
– Capitolul 2
• 2.3
• 2.5
• Operating Systems Concepts
– Capitolul 6
3
PLANIFICAREA PROCESELOR
4
Procese și procesoare
• Pentru a executa, un proces are nevoie de
procesor
• Procesele de pe un sistem sunt mai multe
decât procesoare
• SO le permite proceselor accesul pe rând la
procesoare
5
Multitasking
6
Multitasking
• SO oferă fiecărui proces pe rând accesul la
procesor
• După un anumit timp (cuantă, time slice), un
proces este oprit de pe un procesor și procesorul
este dat altui proces
– spunem că "a expirat cuanta"
– acțiunea se numește "schimbare de context"
• Cuanta este de ordinul milisecundelor
– procesele pe procesor se schimbă foarte rapid
– impresia este că ar rula simultan
Tranzițiile între stările proceselor
8
Tranzițiile între stările proceselor
• RUNNING -> READY
– a expirat cuanta de timp
– există un alt proces în starea READY
care are prioritate mai mare
• RUNNING -> WAITING
– procesul a executat o operație
blocantă
• WAITING -> READY
– evenimentul după care așteaptă
procesul s-a produs (procesul are
date disponibile)
• READY -> RUNNING
– există un procesor liber
– procesul este primul în coada READY
de așteptare
9
Planificare (scheduling)
• Un proces este pus din starea READY în starea
RUNNING
– Primește un procesor liber
• Un procesor este liber dacă
– nu are un proces în execuție pe el
• Spunem că se face o schimbare de context
(context switch)
10
Tipuri de SO (dpdv. planificator)
• Preemptive
– procesele sunt oprite la expirarea cunatei de timp
• Windows, macOS, Linux, UNIX, Minix etc.
• Non-preemptive (cooperative)
– procesele trebuie să se oprească singure (dacă
vor) la expirarea cunatei de timp
• mac OS <= 9
• unele RTOS
11
Schimbarea de context
• Un proces este înlocuit de pe procesor cu alt proces
• Salvarea procesului vechi / contextul
• Încărcarea procesului nou / contextul
• Schimbarea de context înseamnă overhead
– multe schimbări de context: overhead suplimentar
– mai puține schimbări de contexte: mai puțină
interactivitate
12
Puncționarea unui proces
13
Schimbarea de context
14
Tipuri de procese (CPU)
• CPU bound (CPU intensive)
– folosesc mult pătoesorul
• I/O bound (I/O intensive)
– folosesc rar procesorul
– execută multe oprrații de I/O -> se blochează
15
Planificatorul de procese
• Componentă a SO
• Agent de planificare de procese
– asigură accesul proceselor la procesor
– compromis (tarde-off) între echitate și
productivitate
16
Definiții
Definition Description
WT Wait Time Timpul de așteptare pentru a primi CPU
MWT Mean Wait Time Timpul de mediu așteptare pentru a primi CPU
TT Turnaround Time Timpul total de execuție al procesului
MTT Mean Turnaround Time Timpul mediu total de execuție al procesului
J Job Proces în background
P Process Proces interactiv
17
Sistem ideal
• Wait Time Minim
– procesul așteaptă cât de puțin în starea READY
– interactiv
• Turnaround Minim
– procesul execută cât de repede posibil
– productiv
• Fairness
– toate procesele trebuie să aibă acces la CPU
18
Tipuri de sisteme
• Procesare în background
– Batch Job
– Nu interacționează cu utilizatorii
• Interactive
– Procese
– Interacțiune cu utilizatorii
• Timp real
19
PROCESARE ÎN BACKGROUND
20
Procesare în background
• Metrici
– Throughput
• Procese incheiate / unitate de timp
– Turnaround time
– Utilizarea de CPU
• Algoritmi
– First Come First Served (FCFS)
– Shortest Job First (SJF)
– Shortest Remaining Time First (SRTF)
21
First Come First Served
• Ușor de implementat
• Procesele CPU Bound încetinesc procesele I/O
Bound
• MWT și TT mare
22
Exemple
Job Timp de execuție
J1 24
J2 3
J3 3
J4 5
• Calculați
– TT
– MTT
• J1, J2, J3, J4
• J2, J1, J4, J3
23
Shortest Job First
• Ușor de implementat
• Timpul de execuție a fiecărui proces trebuie să
fie cunoscut
24
Exemple
Job Temp d’execution
J1 12
J2 9
J3 5
J4 20
• Calculați
– TT
– MTT
• FCFS
– J1, J2, J3, J4
• SJF
– J3, J2, J1, J4
25
Shortest Remaining Time First
• Versiunea preemtivă pentru SJF
• Ușor de implementat
• Timpul de execuție a fiecărui proces trebuie să
fie cunoscut
26
Exemple
Job Timp de execuție Timp de sosire
J1 8 0
J2 4 1
J3 9 2
J4 4 3
• Calculați
– TT
– MTT
• FCFS
– J1, J2, J3, J4
• SJF
– J3, J2, J1, J4
• SRTF
27
SISTEME INTERACTIVE
28
Sisteme Interactive
• Parametri optimizați
– Wait Time
– Fairness
• Algoritmi
– Round Robin (RR)
– Clase de Priorități
– Shortest Process Next (SPN)
29
Round Robin
• FCFS preemtiv
– Cuantă de timp
• Cuantă de timp mare
– Throughput mare
– Wait Time mare
• Cuantă de timp mică
– Throughput mic
• Timp mare pentru
schimbarea de context
– Wait Time mic
30
Clase de priorități
• Round Robin
– Cu unele procese mai importante decât altele
• Mai multe cozi de așteptare
31
Clase de priorități
Windows
• Prioritate
– 0 sistem
– 1 la 15 utilizator
– 16 la 30 timp real
Linux
32
• Prioritate
– 0 la 99 timp real
– 100 la 139 utilizator
• Nice
– -20 la 19
• Prioritate efectivă
– 100 + 20 + NI
Clase de priorități (Linux)
33
Shortest Process Next
• SJF Preemptiv
• Estimare bazată pe comportamentul
precedent
• T0 – cuantă de timp estimată
• T1 – cuantă de timp reală
• a - vârsta
• Cuantă de timp următoare
– a * T1 + (1-a) * T0
34
TIMP REAL
35
Timp Real
• Limită maximă
– Turnaround
– Wait Time
• Hardware
– Resurse alocate
• Software
– Procesele în timp real au prioritate maximă
– Celelalte procese sunt întârziate
36
Priority Inversion
• Un proces cu o prioritate mică (P1) ocupă o
resursă
• Un alt proces cu o prioritate mare (P2) are
nevoie de acea resursă
• Procesul P2 are aceeași prioritate ca procesul
P1
37
Priority Boosting
• Creșterea priorității într-un timp limită
• La primirea datelor de intrare/ieșire
– Depinde de Wait Time
• Un alt proces cu o prioritate mai mare
așteaptă o resursă blocată de un alt proces
38
Starvation
• Un proces nu are acces la CPU pentru o
perioadă mare de timp
39
COMPLETELY FAIR SCHEDULER
40
Completly Fair Scheduler
• Virtual Runtime (vruntime)
– Timp de utilizare al CPU
• Arbore roșu-negru
– Ordonare bazată pe vruntime
• Proces nou
– vruntime = vruntime minimal
41
Completly Fair Scheduler
42
IPC - COMMUNICATION ENTRE
PROCESSUS
43
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
44
IPC
• signaux (Linux)
• pipe
• mémoire partagé
• socket
45
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
46
Signaux
47
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
48
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);
49
Action sur réception d'un signal
• Action implicite
– fermer processus (généralement)
• Action utilisateur
– signal handler
• Ignorance
– sauf SIGKILL et SIGSTOP
50
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;
};
51
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;
}
52
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);
53
PIPE
54
Anonymes
• Communication entre processus liés (parent /
enfant)
• Fonction pipe
– Retourne deux descripteurs:
• l'un utilisé pour écrire
• un autre pour lire
55
Anonymes
56
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
}
57
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);
// ...
}
}
58
Nommés
• mkfifo / mknod
• Utilisé comme un fichier normal
– open
– read, write
• Half-duplex (Linux)
59
Exemple Linux
int mkfifo(const char *pathname, mode_t mode);
60
AUTRES SYSTEMES IPC
61
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
62
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
63
PLANIFICATION
64
Mot clés
• Signaux
• Pipe
• Mémoire partage
• Socket
• 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
65
Questions
66

More Related Content

What's hot

Sisteme de Operare: Gestiunea memoriei
Sisteme de Operare: Gestiunea memorieiSisteme de Operare: Gestiunea memoriei
Sisteme de Operare: Gestiunea memorieiAlexandru Radovici
 
Sisteme de Operare: Sincronizare
Sisteme de Operare: SincronizareSisteme de Operare: Sincronizare
Sisteme de Operare: SincronizareAlexandru Radovici
 
Sisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si IesireSisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si IesireAlexandru Radovici
 
Sisteme de Operare: Memorie virtuala
Sisteme de Operare: Memorie virtualaSisteme de Operare: Memorie virtuala
Sisteme de Operare: Memorie virtualaAlexandru Radovici
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraWellington Oliveira
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadoresPimentel
 
Linux Kernel Image
Linux Kernel ImageLinux Kernel Image
Linux Kernel Image艾鍗科技
 
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineArquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineCleber Fonseca
 
The future of RISC-V Supervisor Binary Interface(SBI)
The future of RISC-V Supervisor Binary Interface(SBI)The future of RISC-V Supervisor Binary Interface(SBI)
The future of RISC-V Supervisor Binary Interface(SBI)Atish Patra
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processosComputação Depressão
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOMauro Duarte
 
Risc e cisc resumo
Risc e cisc resumoRisc e cisc resumo
Risc e cisc resumoredesinforma
 
Testing real-time Linux. What to test and how
Testing real-time Linux. What to test and how Testing real-time Linux. What to test and how
Testing real-time Linux. What to test and how Chirag Jog
 
Process Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionProcess Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionShivam Mitra
 
História dos Sistemas Operacionais
História dos Sistemas OperacionaisHistória dos Sistemas Operacionais
História dos Sistemas OperacionaisSheldon Led
 

What's hot (20)

Sisteme de Operare: Gestiunea memoriei
Sisteme de Operare: Gestiunea memorieiSisteme de Operare: Gestiunea memoriei
Sisteme de Operare: Gestiunea memoriei
 
Sisteme de Operare: Sincronizare
Sisteme de Operare: SincronizareSisteme de Operare: Sincronizare
Sisteme de Operare: Sincronizare
 
Sisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si IesireSisteme de Operare: Sistemul de Intrare si Iesire
Sisteme de Operare: Sistemul de Intrare si Iesire
 
Sisteme de Operare: Memorie virtuala
Sisteme de Operare: Memorie virtualaSisteme de Operare: Memorie virtuala
Sisteme de Operare: Memorie virtuala
 
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de OliveiraSistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
Sistemas Operacionais Processos e Threads - Wellington Pinto de Oliveira
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Escalonamento de processos
Escalonamento de processosEscalonamento de processos
Escalonamento de processos
 
Linux Kernel Image
Linux Kernel ImageLinux Kernel Image
Linux Kernel Image
 
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - PipelineArquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
Arquiteturas Paralelas e Distribuídas - Aula 3 - Pipeline
 
The future of RISC-V Supervisor Binary Interface(SBI)
The future of RISC-V Supervisor Binary Interface(SBI)The future of RISC-V Supervisor Binary Interface(SBI)
The future of RISC-V Supervisor Binary Interface(SBI)
 
Barramentos
Barramentos Barramentos
Barramentos
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
2009 1 - sistemas operacionais - aula 4 - threads e comunicacao entre processos
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SOSistemas Operacionais - 03 - Tipos e Estrutura dos SO
Sistemas Operacionais - 03 - Tipos e Estrutura dos SO
 
Risc e cisc resumo
Risc e cisc resumoRisc e cisc resumo
Risc e cisc resumo
 
Testing real-time Linux. What to test and how
Testing real-time Linux. What to test and how Testing real-time Linux. What to test and how
Testing real-time Linux. What to test and how
 
Process Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race conditionProcess Synchronization in operating system | mutex | semaphore | race condition
Process Synchronization in operating system | mutex | semaphore | race condition
 
História dos Sistemas Operacionais
História dos Sistemas OperacionaisHistória dos Sistemas Operacionais
História dos Sistemas Operacionais
 

More from 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
 
SdE2 - Planification, IPC
SdE2 - Planification, IPCSdE2 - Planification, IPC
SdE2 - Planification, IPC
 
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 10 - Threads
SdE 10 - ThreadsSdE 10 - Threads
SdE 10 - Threads
 
SdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de executionSdE 8 - Synchronisation de execution
SdE 8 - Synchronisation de execution
 
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
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
SdE 5 - Planification
SdE 5 - PlanificationSdE 5 - Planification
SdE 5 - Planification
 
ALF 6 - Parser
ALF 6 - ParserALF 6 - Parser
ALF 6 - Parser
 

Recently uploaded

Igiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aIgiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aCMB
 
Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11CMB
 
Catalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCatalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCori Rus
 
Strategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxStrategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxMoroianuCristina1
 
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...bdngeorge11
 
ziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiAndr808555
 
Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10CrciunAndreeaMaria
 
Literatura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba românăLiteratura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba românăBibliotecaMickiewicz
 

Recently uploaded (8)

Igiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aIgiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-a
 
Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11
 
Catalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCatalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptx
 
Strategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxStrategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptx
 
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
 
ziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantului
 
Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10
 
Literatura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba românăLiteratura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba română
 

Sisteme de Operare: Planificarea proceselor

  • 2. Cuprins • Planificare – Non-preemtivă – Preemetivă • IPC – semnale – pipe – memorie partajată – socket 2
  • 3. Bibliografie • Modern Operating Systems – Capitolul 2 • 2.3 • 2.5 • Operating Systems Concepts – Capitolul 6 3
  • 5. Procese și procesoare • Pentru a executa, un proces are nevoie de procesor • Procesele de pe un sistem sunt mai multe decât procesoare • SO le permite proceselor accesul pe rând la procesoare 5
  • 7. Multitasking • SO oferă fiecărui proces pe rând accesul la procesor • După un anumit timp (cuantă, time slice), un proces este oprit de pe un procesor și procesorul este dat altui proces – spunem că "a expirat cuanta" – acțiunea se numește "schimbare de context" • Cuanta este de ordinul milisecundelor – procesele pe procesor se schimbă foarte rapid – impresia este că ar rula simultan
  • 9. Tranzițiile între stările proceselor • RUNNING -> READY – a expirat cuanta de timp – există un alt proces în starea READY care are prioritate mai mare • RUNNING -> WAITING – procesul a executat o operație blocantă • WAITING -> READY – evenimentul după care așteaptă procesul s-a produs (procesul are date disponibile) • READY -> RUNNING – există un procesor liber – procesul este primul în coada READY de așteptare 9
  • 10. Planificare (scheduling) • Un proces este pus din starea READY în starea RUNNING – Primește un procesor liber • Un procesor este liber dacă – nu are un proces în execuție pe el • Spunem că se face o schimbare de context (context switch) 10
  • 11. Tipuri de SO (dpdv. planificator) • Preemptive – procesele sunt oprite la expirarea cunatei de timp • Windows, macOS, Linux, UNIX, Minix etc. • Non-preemptive (cooperative) – procesele trebuie să se oprească singure (dacă vor) la expirarea cunatei de timp • mac OS <= 9 • unele RTOS 11
  • 12. Schimbarea de context • Un proces este înlocuit de pe procesor cu alt proces • Salvarea procesului vechi / contextul • Încărcarea procesului nou / contextul • Schimbarea de context înseamnă overhead – multe schimbări de context: overhead suplimentar – mai puține schimbări de contexte: mai puțină interactivitate 12
  • 15. Tipuri de procese (CPU) • CPU bound (CPU intensive) – folosesc mult pătoesorul • I/O bound (I/O intensive) – folosesc rar procesorul – execută multe oprrații de I/O -> se blochează 15
  • 16. Planificatorul de procese • Componentă a SO • Agent de planificare de procese – asigură accesul proceselor la procesor – compromis (tarde-off) între echitate și productivitate 16
  • 17. Definiții Definition Description WT Wait Time Timpul de așteptare pentru a primi CPU MWT Mean Wait Time Timpul de mediu așteptare pentru a primi CPU TT Turnaround Time Timpul total de execuție al procesului MTT Mean Turnaround Time Timpul mediu total de execuție al procesului J Job Proces în background P Process Proces interactiv 17
  • 18. Sistem ideal • Wait Time Minim – procesul așteaptă cât de puțin în starea READY – interactiv • Turnaround Minim – procesul execută cât de repede posibil – productiv • Fairness – toate procesele trebuie să aibă acces la CPU 18
  • 19. Tipuri de sisteme • Procesare în background – Batch Job – Nu interacționează cu utilizatorii • Interactive – Procese – Interacțiune cu utilizatorii • Timp real 19
  • 21. Procesare în background • Metrici – Throughput • Procese incheiate / unitate de timp – Turnaround time – Utilizarea de CPU • Algoritmi – First Come First Served (FCFS) – Shortest Job First (SJF) – Shortest Remaining Time First (SRTF) 21
  • 22. First Come First Served • Ușor de implementat • Procesele CPU Bound încetinesc procesele I/O Bound • MWT și TT mare 22
  • 23. Exemple Job Timp de execuție J1 24 J2 3 J3 3 J4 5 • Calculați – TT – MTT • J1, J2, J3, J4 • J2, J1, J4, J3 23
  • 24. Shortest Job First • Ușor de implementat • Timpul de execuție a fiecărui proces trebuie să fie cunoscut 24
  • 25. Exemple Job Temp d’execution J1 12 J2 9 J3 5 J4 20 • Calculați – TT – MTT • FCFS – J1, J2, J3, J4 • SJF – J3, J2, J1, J4 25
  • 26. Shortest Remaining Time First • Versiunea preemtivă pentru SJF • Ușor de implementat • Timpul de execuție a fiecărui proces trebuie să fie cunoscut 26
  • 27. Exemple Job Timp de execuție Timp de sosire J1 8 0 J2 4 1 J3 9 2 J4 4 3 • Calculați – TT – MTT • FCFS – J1, J2, J3, J4 • SJF – J3, J2, J1, J4 • SRTF 27
  • 29. Sisteme Interactive • Parametri optimizați – Wait Time – Fairness • Algoritmi – Round Robin (RR) – Clase de Priorități – Shortest Process Next (SPN) 29
  • 30. Round Robin • FCFS preemtiv – Cuantă de timp • Cuantă de timp mare – Throughput mare – Wait Time mare • Cuantă de timp mică – Throughput mic • Timp mare pentru schimbarea de context – Wait Time mic 30
  • 31. Clase de priorități • Round Robin – Cu unele procese mai importante decât altele • Mai multe cozi de așteptare 31
  • 32. Clase de priorități Windows • Prioritate – 0 sistem – 1 la 15 utilizator – 16 la 30 timp real Linux 32 • Prioritate – 0 la 99 timp real – 100 la 139 utilizator • Nice – -20 la 19 • Prioritate efectivă – 100 + 20 + NI
  • 33. Clase de priorități (Linux) 33
  • 34. Shortest Process Next • SJF Preemptiv • Estimare bazată pe comportamentul precedent • T0 – cuantă de timp estimată • T1 – cuantă de timp reală • a - vârsta • Cuantă de timp următoare – a * T1 + (1-a) * T0 34
  • 36. Timp Real • Limită maximă – Turnaround – Wait Time • Hardware – Resurse alocate • Software – Procesele în timp real au prioritate maximă – Celelalte procese sunt întârziate 36
  • 37. Priority Inversion • Un proces cu o prioritate mică (P1) ocupă o resursă • Un alt proces cu o prioritate mare (P2) are nevoie de acea resursă • Procesul P2 are aceeași prioritate ca procesul P1 37
  • 38. Priority Boosting • Creșterea priorității într-un timp limită • La primirea datelor de intrare/ieșire – Depinde de Wait Time • Un alt proces cu o prioritate mai mare așteaptă o resursă blocată de un alt proces 38
  • 39. Starvation • Un proces nu are acces la CPU pentru o perioadă mare de timp 39
  • 41. Completly Fair Scheduler • Virtual Runtime (vruntime) – Timp de utilizare al CPU • Arbore roșu-negru – Ordonare bazată pe vruntime • Proces nou – vruntime = vruntime minimal 41
  • 43. IPC - COMMUNICATION ENTRE PROCESSUS 43
  • 44. 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 44
  • 45. IPC • signaux (Linux) • pipe • mémoire partagé • socket 45
  • 46. 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 46
  • 48. 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 48
  • 49. 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); 49
  • 50. Action sur réception d'un signal • Action implicite – fermer processus (généralement) • Action utilisateur – signal handler • Ignorance – sauf SIGKILL et SIGSTOP 50
  • 51. 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; }; 51
  • 52. 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; } 52
  • 53. 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); 53
  • 55. Anonymes • Communication entre processus liés (parent / enfant) • Fonction pipe – Retourne deux descripteurs: • l'un utilisé pour écrire • un autre pour lire 55
  • 57. 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 } 57
  • 58. 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); // ... } } 58
  • 59. Nommés • mkfifo / mknod • Utilisé comme un fichier normal – open – read, write • Half-duplex (Linux) 59
  • 60. Exemple Linux int mkfifo(const char *pathname, mode_t mode); 60
  • 62. 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 62
  • 63. 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 63
  • 65. Mot clés • Signaux • Pipe • Mémoire partage • Socket • 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 65