Communications inter-processus - Cours SR (Systèmes et Réseaux) I5TC1  Licence L3 Informatique
56 Pages
English

Communications inter-processus - Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatique

-

Downloading requires you to have access to the YouScribe library
Learn all about the services we offer

Description

Communications inter-processusCommunications inter-processusCours SR (Systemes et Reseaux) I5TC1Licence L3 InformatiqueOlivier Togni David Gross-AmblardLe2i / IEM / uB12 octobre 20091 de 55Communications inter-processusCommunications inter-processus inter-processusSignauxLes tubesExclusion mutuelleRessources critiquesSection critiqueTechniques d’exclusion mutuelleApplication : lecteur-redacteur, producteur-consommateurInterblocageAspects techniques2 de 55Communications inter-processus inter-processusSignauxSignauxSignal = outil de base de la noti cation d’evenement.Fonctionnent sur un schema essentiellement asynchrone.Noyauprocess ou shellPSex: killAclavierC−cDe fa con simpli e, quand le signal arrive, le noyau interrompt leprocessus qui declenche alors son gestionnaire de signaux (handler)pour reagir de fa con appropriee.3 de 55Communications inter-processus inter-processusSignauxSignauxLes signaux utilises initialement plut^ ot pour la gestion d’erreurs ontvu leur r^ole s’etendre dans les versions plus recentes d’Unix. Ils ontneanmoins de serieuses limitations :I Ils coutent^ cher : ils sont lances par un appel systeme, lerecepteur est interrompu, sa pile d’execution est modi ee, lehandler prend la main, la pile d’execution est restauree.I En nombre limite : de l’ordre de 20 a 60, dont seulement deuxsignaux pour la programmation utilisateur (les autres signauxsont utilises par le systeme lui m^eme) ...

Subjects

Informations

Published by
Reads 161
Language English
1Communicationsinter-processusde55Communicationsinter-processusCoursSR(Syste`mesetRe´seaux)I5TC1LicenceL3InformatiqueOlivierTogniDavidGross-AmblardLe2i/IEM/uB12octobre2009
2Communicationsinter-processusCommunicationsinter-processusde55Communicationsinter-processusSignauxLestubesExclusionmutuelleRessourcescritiquesSectioncritiqueTechniquesd’exclusionmutuelleApplication:lecteur-redacteur,producteur-consommateurInterblocageAspectstechniques
3Communicationsinter-processusCommunicationsinter-processusSignauxSignauxde55Signal=outildebasedelanotificationd’e´ve`nement.Fonctionnentsurunsche´maessentiellementasynchrone.Defac¸onsimplifie´,quandlesignalarrive,lenoyauinterromptleprocessusquide´clenchealorssongestionnairedesignaux(handler)pourre´agirdefac¸onapproprie´e.
4Communicationsinter-processusCommunicationsinter-processusSignauxSignauxde55Lessignauxutilise´sinitialementplutoˆtpourlagestiond’erreursontvuleurroˆles’e´tendredanslesversionsplusre´centesd’Unix.Ilsontne´anmoinsdese´rieuseslimitations:IIlscouˆtentcher:ilssontlance´sparunappelsyste`me,lere´cepteurestinterrompu,sapiled’exe´cutionestmodifie´e,lehandlerprendlamain,lapiled’exe´cutionestrestaure´e.IEnnombrelimite´:del’ordrede20a`60,dontseulementdeuxsignauxpourlaprogrammationutilisateur(lesautressignauxsontutilise´sparlesyste`meluimeˆme).IIlssontstrictementlimite´sauroˆledenotificationd’e´ve`nement:nepeuventpasapporterd’informationcomple´mentaire(aumoinspourlessignauxutilisateurs),nimeˆmel’identite´del’e´metteur.
5Communicationsinter-processusCommunicationsinter-processusSignauxLessignauxsousUnixde55Lessignauxpre´de´finissontidentifie´sparunnometunnume´ro.Lenomestcommuna`touteslesversionsd’UNIX,lenume´ropeutvarierd’unsyste`mea`l’autre.Chaquesignalestassocie´a`uncomportementparde´faut(cequedoitfaireleprocessusciblea`re´ceptiondecesignal):abortge´ne´rationd’unfichiercoreetarreˆtduprocessusexitterminaisonduprocessussansge´ne´rationd’unfichiercoreignorelesignalestignore´stopsuspensionduprocessuscontinuereprendrel’exe´cutionsileprocessusestsuspendu(sinonlesignalestignore´)
6Communicationsinter-processusCommunicationsinter-processusSignauxPrincipauxsignauxde55numnomcomportementparde´fautmodiable?1SIGUPenvoye´lorsdelade´connexionnon2SIGINTutilisationdelatoucheINTR(DEL)oui3SIGQUITutilisationdelatoucheQUIT(CTR\)oui4SIGILLope´rationille´galenon5SIGTRAPapre`schaqueinstructionenmodetracenon8SIGFPEerreurope´rationenvirguleottantenon9SIGKILLdestructioninconditionnelleduprocessusnon11SIGSEGVviolationdesegmentme´moirenon12SIGSYSerreurdeparame`tredansunappelsyste`menon13SIGPIPEerreurdansunpipe(´ecrituresanslecteur)non14SIGALARMsignaldhorlogenon15SIGTERMindicateurdennormaledunprocessusnon16SIGUSR1rien:a`dispositiondelutilisateuroui17SIGUSR2rien:a`dispositiondelutilisateurouiPourlesprogrammesutilisateurs,ondisposedessignauxSIGUSR1etSIGUSR2.
7Communicationsinter-processusCommunicationsinter-processusSignauxLessignauxenshellde55Pourlamanipulationdessignaux,ondisposedesope´rationssuivantes:Envoidesignauxparkill-ssignalpidDestinatairePourmodifierlecomportementparde´fautd’unsignalonutiliselaprimitive:trap’instructions’signauxLesinstructionsdelalistesontse´pare´espardespointsvirgules.Silalistedesinstructionsestvide,lesignalestignore´.S’iln’yapasdeliste,onrevientaucomportementparde´faut.
8Communicationsinter-processusCommunicationsinter-processusSignauxExemplede551P#!/bin/shtrap’echofini;exitP2$PID&while:odecho"caboucle"enod2P#!/bin/shkill-sSIGUSR1$11SIGUSR1
9Communicationsinter-processusCommunicationsinter-processusSignauxRemarquede55Lacommandetrap-ldonnelelistedessignauxauxquelspeuxre´pondretrap.Pourbloquerunprocessusp`erejusqu’a`lafindel’undesesfils:waitpidDuFilsSansparame`tre,lewaitfaitattendrelafindetouslesfils.
01Communicationsinter-processusCommunicationsinter-processusSignauxseLed55signauxenCIIsignal:ancien,sigaction:plussimple,peuportablecomplexemaisstandard
11Communicationsinter-processusCommunicationsinter-processusSignauxL’interfacedessignauxsignaled55LetraitementenCdessignauxnonfiablesreposesurdeuxfonctionssignaletkill(prototypedanssignal.h).Miseenplace(etre´initialisation)dugestionnaire:signal(signal,*fonctionautiliser)Envoidusignal:kill(signal,pidDest)Pointeurspre´de´finissurdesfonctionsdetraitementdesignaux:SIGIGNpourignorerlesignaletSIGDFLpourreveniraucomportementparde´faut.