Multi-Threading Et Cocoa

2 119 vues

Publié le

Gérard Iglesias

Publié dans : Technologie, Business
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
2 119
Sur SlideShare
0
Issues des intégrations
0
Intégrations
732
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Multi-Threading Et Cocoa

  1. 1. Multi-Threading Et Cocoa 1ère Partie Avant l’architecture
  2. 2. PlanMotivation, le pourquoiPlan d’ensemble, le commentMise en oeuvre, l’enfer est dans le détailEt Cocoa dans tout ça...Avec une démo SVP
  3. 3. Motivation, le pourquoiSystème hôte et applicationArchitecture d’une applicationévènementielleLes limites, les problèmesPropositions
  4. 4. Système hôte et applicationUn système qui est lordonnanceurDes applications avec leur propresespace mémoireUn système de communication inter-application
  5. 5. Architecture d’une application évènementielle Une boucle infinie Un ensemble d’entrées sorties Des Apis Graphiques ou autres
  6. 6. Architecture d’une application évènementielle Une boucle infinie Un ensemble d’entrées sorties Des mécanisme périodiques
  7. 7. Les limites, les problèmesUne seule séquence d’instructionUne tâche à la foisLa roue colorée...
  8. 8. PropositionsFaire accomplir les tâches lourdes pardes applications autres et communiqueravecDécouper les tâches en petites partiespeu coûteusesPasser à autre chose... plus adapté auniveau de l’architecture applicative
  9. 9. Plan d’ensemble, le commentUne application, plusieurs ThreadsUne illustration SVP
  10. 10. Une application, plusieurs threads Une thread principale... le main() Plusieurs séquences de code simultanées Sauvegarde de contexte... instruction courante registres et d’autres... trucs (google est votre ami)
  11. 11. IllustrationMémoire Code Pile Registres Code Pile Registres Code Pile Registres
  12. 12. Mise en oeuvre, l’enfer est dans le détail Un seul espace mémoire à partager Granularité Protéger les données Communication entre les threads
  13. 13. Un seul espace mémoire à partager Deux threads veulent accéder à la même valeur en mémoire Variables locales TLS : Thread Local Storage Resources globales (fichiers, sous process, pipes, e/s ... )
  14. 14. GranularitéA quel moment une instruction est elleexécuté et interrompue ?a_ = b+c
  15. 15. Protéger les donnéesSection de code que l’on appellecritiqueInstruction atomique Garantir qu’une opération de lecture ou d’écriture ne puisse être interrompue pour passer à un autre threadLocks divers et variésConditions
  16. 16. Communication entre threads Transmettre des résultats Transmettre des ordres
  17. 17. Et Cocoa dans tout ça...RunLoop & InputSourceNSLock & @synchronizedNSRecusiveLockNSConditionLock
  18. 18. RunLoop & InputSourceUne boucle infinie pour attendre que quelquechose se passe sans consommer de ressourcesCPUDes points d’entrées pour indiquer qu’il y aquelque chose à faire... E/S Messages ObjC Spécifiques Timers
  19. 19. RunLoop & InputSource
  20. 20. Avec une démo SVPLa démo...

×