Compte Rendu
Scheduler & SLA
UNIVERSITÉ ABDELAMLEK ESSADI
FACULTE DES SCIENCES ET TECHNIQUES DE TANGER
MASTER : « SYSTEMES INFORMATIQUES ET RESEAUX »
Réalisé par : - Encadré par :
- Rouzi Ayoub Mr. M El amrani
MASTER-SIR R a p p o r t | 2
AYOUB ROUZI
- Politiques de scheduling
Le schedulingde Linux fonctionne avecdesquantadynamiques
Les processussontordonnéspar priorité
La valeurindiqueauscheduleurquel processus exécuterenpriorité
Les prioritéssontdynamiques
Les processusqui n’ontpaseule CPU ont leurpriorité augmentée,etréciproquement
Linux reconnaîtlesprocessustempsréel
Mais aucune notionde batch vsinteractif
Décisionprise avecune heuristique basée surle comportementantérieurduprocessus
- Appelssystèmes
nice() :change la priorité statique d’unprocessus
getpriority():obtientlapropriété statique max d’ungroupe de
processus
setpriority() :
sched_getscheduler():obtientlapolitique de scheduling
sched_setscheduler()
sched_getparam() :obtientlapriorité tempsréel
sched_setparam()
sched_yield() :Rendle processeurvolontairement
sched_get_priority_min() :Obtientlapriorité tempsréel min
sched_get_priority_max()
sched_rr_get_interval() :valeurduquantum
sched_getaffinity():masque d’affinitéCPU
sched_setaffinity()
Exemple :Si on estl’utilisateuruser1etqu’onexécute le programme mon_programme avecle bitSUID root activé,
mon_programme s’exécuterasousl’identité effective de rootetdoncavec lesprivilègesde celui-ci.L’activationdu
bitSUID se faitsur le programme généré aprèslacompilationaveclacommande ci-dessous:
chmod u+s mon_programme
#include <stdio.h>
#include <stdlib.h>
#include <sched.h>
int main(){
struct sched_param parametres;
parametres.sched_priority = 12;
if(sched_setscheduler(getpid(),SCHED_RR,parametres)!=0){
fprintf(stdout,”Impossible de changer la politique d’ordonnancement n”);
exit(EXIT_FAILURE) ;
}
while(1){
fprintf(stdout,”Je suis en plein execution n”);
MASTER-SIR R a p p o r t | 3
AYOUB ROUZI
}
return EXIT_SUCCESS;
}
On compile avec la commande suivante :
gcc –o mon_programme mon_programme.c
Et on exécute avec: ./mon_programme
A. Lescinqétats d'unprocessus
Un processuspasse pendantsadurée de vie par cinqétats:
Ready : Cet étatcorrespondà un processusqui estprêtà s’exécutermaisne peutpasencore prendre
possessionduprocesseurcarcelui-ci estdéjàprisparun autre processus.
Running : En état d’exécution,doncenpleine possessionduprocesseur.
Stopped: Le processusa reçu unsignal qui l’astoppé.
Sleeping:Endormi,enattente d’unévènement,comme lafind’une entréesortie (écriture surunterminal,
…).
Zombie : Un processuspère crée des processusfilsàtraversun fork.Le processusfilstermine sonexécution,
maisle père n’enai pas encore conscient.Le processusfilsse retrouve dansunétatzombie,inerte,mais
occupe toujoursune place dansla table de processusdusystème.
B. Les politiquesd'ordonnancement
Le noyauLinux,spécialementle Scheduleradopte troispolitiquesd’ordonnancementpourgérerl’exécutiondes
processusparle système :
SCHED_FIFO : FIFOpour First In First Out, premierarrivé premierservit. Danscette politique,plusieursfilesd’attente
de processussontcrééschacune avec une priorité différente.Le processeurestaffectéenpriorité aupremier
processusqui le demande etne le relâcheraque lorsque :
1-Il aura fini de s’exécuter.
2-Stopper.
3-Endormi enattente d’unévènement.
MASTER-SIR R a p p o r t | 4
AYOUB ROUZI
Ce processusdoitévidemmentfairepartie de lafile d’attente de plushaute priorité.Lorsquele processusrelâche le
processeur,celui-ci seraaffecté auprocessussuivantqui estàl’étatPrêtetdans la même file d’attentes’il y’enaun,
sinonle Schedulerenchoisitunautre danslafile d’attente de priorité inférieur.
SCHED_RR : Symétrique àSCHED_FIFOentoutpointsauf qu’ici chaque processusse voitattribuerune tranche de
tempsd’exécutionqu’il ne pourrapasdépasser.A lafinde cette tranche de temps,il estrelégué àlafinde ça file
d’attente etle processeurseraréquisitionnépourunautre processusqui està l’étatPrêtetde même priorité.Si un
tel processusn’existe pas,unautre de priorité inférieurestsélectionné.
SCHED_OTHER : Correspondàla politique pardéfautdunoyauLinux,lesprocessusse voitattribuerdèsleurs
créationune priorité dite « statique » qui peutêtre modifié viadesappelssystèmes.Aveccette priorité statique et
enprenantencompte plusieurs facteurs,une priorité « dynamique » estcalculée etenfonctionde cette dernière le
schedulerchoisi unprocessusetlui attribue le processeurpouruntempsd’exécutionmaximal.
SLA :
Le service-level agreement(SLA) ou« accord de niveaude service » estundocumentqui définitla qualité de
service,prestationprescrite entreunfournisseurde service etunclient.Autrementdit,il s'agitde clausesbaséessur
un contrat définissantlesobjectifsprécisattendusetle niveaude service que souhaite obtenirunclientde lapartdu
prestataire etfixe lesresponsabilités.
Le SLA tendà devenirunoutil essentielaux clientssouhaitantbénéficierd'une sécurité infaillible surcertainsde
leursniveaux de sécuritéde stockage ainsi que surla gestionde leursdonnéesàcaractère personnel.De nombreux
indicateursdoiventêtre définis,analysésetcontrôlésafinque laperformance proposéeparle prestataire soit
maximisée.
Contenu du SLA
Les composantsd’unbonaccord de niveaude service doit comprendre lesélémentssuivants :
Le type de service à fournir : il doitspécifierlestypesde servicesainsique touslesdétailsde cesderniers.
Dans le cas d’une connectivitéréseauIP,lestypesde servicesdoiventdécrirelesfonctionscomme
l’utilisationetlamaintenance deséquipementsréseau,lalargeurde bande de connexionàfournir,etc.
Le niveaude performance souhaité desservices,enparticulier sa fiabilité etsa réactivité : un service fiable
estcelui qui souffre de perturbationsminimesdurantunespace de tempsspécifique,maiségalementcelui
qui estdisponiblepresquetoutle temps.Unservice avecune bonne réactivitéréaliseralesactions
rapidementauprèsdesclients.
Les étapesà suivre pour signalerlesproblèmesduservice : cette étape a pour butde spécifierles
coordonnéesàsignaleretl’ordre danslequel lesdétailssurle problème doiventêtre communiqués.Le
contrat doitégalementinformersurl’intervalle de tempsaucoursduquel le problème seraexaminé.
Le tempsde réponse etles solutionsaux problèmesexaminés :le tempsde réponse estlapériode de
tempsau cours duquel le fournisseurde service valancersonenquête surle problème.Le tempsde
résolutionduproblème estlapériode durantlaquelle le problème actuel duserviceserarésoluetcorrigé.
MASTER-SIR R a p p o r t | 5
AYOUB ROUZI
Le suivi desprocessus etles rapports de niveaude service : ce composantdécritcommentlesniveaux de
performance sontsupervisésetsurveillés.Ce processusimpliquelacollecte de différentstypesde
statistiques, lafréquence àlaquelle cesstatistiquesserontcollectéesetlafaçondontces statistiquesseront
accessiblesparlesclients.
Les répercussionspourle fournisseurde servicesqui ne respecte pas son engagement : si le fournisseur
n'estpas enmesure de satisfaire aux exigencesénoncéesdansle SLA,ce dernierdevrafaire face aux
conséquencespourcetéchec.Cesconséquencespeuventinclurele droitduclientde résilierle contratoude
demanderunremboursementpourlespertessubiesparle clienten raisonde ladéfaillance duservice.