Tooltip

Gadget Dialog

Confirm Dialog

 
Event Time
Dieser Kurs wurde schon durchgeführt. Die nächsten geplanten Termine sehen sie unten.
  Code 1. Tag 2. Tag Dauer Preis Kursleiter Bemerkungen
NCPG-0312 Mi 27. Jun Do 28. Jun 2 Tage 1700 CHF Luc Bläser
NCPG-0412 Mo 3. Sep Di 4. Sep 2 Tage 1700 CHF Bruno Podetti
NCPG-0512 Mi 28. Nov Do 29. Nov 2 Tage 1700 CHF Bruno Podetti
 
Efficient Concurrent Programming in .NET
Untertitel Multicore- und Multiprozessor-Computer richtig ausnutzen
Kurszeiten 08:30 - 17:00 
Bildungsweg
Kursinhalt
 
Kursort
Der Kurs findet in der Schweiz in der Regel in Zürich statt (Technopark, ideal mit Auto und ÖV erreichbar). Bei mehreren Anmeldungen aus Bern oder Basel kann der Kurs auch in unseren Schulungsräumen Bern oder Basel durchgeführt werden. Firmenkurse können in Ihren Räumlichkeiten oder in einem unserer Schulungszentren stattfinden.

Ich wünsche anderen OrtIch habe Frage zum Ort

 
Einleitung Mit der Verbreitung der Multicore- und Multiprozessor-Computer hat die Bedeutung von Parallelität und Nebenläufigkeit in heutigen Softwaresystemen stark zugenommen - nicht zuletzt, weil die sequentielle Rechenleistung in den letzten Jahren nicht mehr wesentlich erhöht werden konnte. Aus diesem Grund bieten moderne Systeme wie das .NET Framework ein umfangreiches Spektrum von Features für die nebenläufige Programmierung.

Jedoch stellt die Nebenläufigkeit den Softwareentwickler vor neue und anspruchsvolle technische Probleme und Herausforderungen: Wann und wie lässt sich überhaupt mit dem Einsatz von Threads und Prozessen die Software beschleunigen? Wie lassen sich die Gefahren von Race Conditions und Deadlocks systematisch verhindern? Auf welche Starvation-Probleme sind bei Prioritäten und Synchronisationen zu achten? Was für Modelle und Design Patterns eignen sich für die nebenläufige Programmierung? Welche spezifischen Probleme gibt es in .NET? Wie lässt sich die .NET Task Parallel Library optimal einsetzen?

In diesem zweitägigen Kurs wird der effiziente und sichere Einsatz von Nebenläufigkeit in der Praxis für das aktuelle .NET Framework 4.0 behandelt. Die Sprache C# wird dabei für Programmbeispiele eingesetzt. Die Teilnehmer haben ferner die Gelegenheit, ihr gewonnenes Wissen in praktischen Übungen anzuwenden und zu vertiefen.

Ihr Nutzen
Der Kurs vermittelt einen detaillierten Überblick über die Konzepte der Nebenläufigkeit in .NET sowie deren sicheren und effizienten Anwendung in der Praxis. Der Kurs ist so gestaltet, dass er nicht nur .NET-Standardwissen vermittelt, sondern auch über den Horizont der aktuellen Literatur hinausgeht. So werden auch weitergehende Konzepte und besondere Risiken in .NET diskutiert.
Voraussetzungen Erfahrung als Software-Entwickler von professioneller Software oder als System/Software-Architekt
Teilnehmerkreis Der Kurs richtet sich vor allem an Software-Ingenieure und Architekten, die sich mit der Nebenläufigkeit in .NET vertieft auseinandersetzen möchten. Er kann auch für Software-Projektleiter und IT-Verantwortliche dienen, sich einen genaueren Überblick über die Möglichkeiten und Herausforderungen der Nebenläufigkeit in .NET zu verschaffen.
Unterlagen Praxisorientiertes Studienmaterial
Folgekurse
 
Inhalt
  • Introduction, system support for parallelism
    • Motivation: Why concurrent programming?
    • The free lunch is over
    • Levels of parallelism
    • Parallel computer architectures
    • Parallelism and concurrency
    • Processes versus threads
    • Resources per process and thread
    • Processes and thread scheduling
    • Processor multiplexing
    • Context switches
  • Threads and Critical Sections in .NET
    • Thread implementation, creation and start
    • Thread parameter passing
    • Thread join
    • Thread termination
    • Thread passivation
    • Thread lifecycle
  • Critical Sections and Mutual Exclusion in .NET
    • Access to shared resources
    • Critical sections
    • Naive approaches: typical mistakes
    • Synchronization with Mutex
    • Thread-safe data structures
  • Monitors in .NET
    • Monitor concept
    • Monitor support in .NET
    • Monitor lock
    • Monitor wait and pulse
    • .NET monitor: typical pitfalls
    • Correct .NET monitor usage
    • Sleeping barber optimization
    • .NET monitor limitations
  • Specific synchronization primitives in .NET
    • Barrier
    • Rendez-vous
    • Semaphores
    • Reader-Writer Lock
  • Dangers of Concurrency: Races, Deadlocks, Starvation
    • Race condition errors
    • Race condition detection
    • Race condition prevention
    • Deadlock errors
    • Deadlock detection
    • Deadlock prevention
    • Architectural deadlock prevention
    • Deadlocks with reader-writer locks
    • Starvation error
    • Starvation prevention
    • Priority inversion problem
    • Concurrency correctness criteria
  • Thread pools and task parallelism with TPL in .NET
    • Thread pool concept
    • Thread pool benefits
    • Thread pool limitations and deadlock risks
    • .NET Task Parallel Library (TPL)
    • Task implementation and start
    • Task parameter passing
    • Task start and wait
    • Task with result values
    • Multi task start and wait
    • Nested tasks
    • Tasks: miscellaneous
    • Children tasks
    • Thread pool implementation in TPL
    • Task parallelism: typical pitfalls
  • Data parallelism with TPL in .NET
    • Data parallelism with TPL: Overview
    • Parallel statement execution
    • Parallel loop execution
    • Synchronization for data parallelism
    • Aggregate parallel loop results
    • Stop and break parallel loops
    • Performance tuning for data parallelism
    • Parallel loop partitioning
    • Performance considerations with data parallelism
    • Parallel language-integrated querying (PLINQ)
  • Asynchronous programming in .NET
    • Asynchronous method calls
    • Event-based asynchronous programming
    • Asynchronous execution with TPL
    • Continuation-style programming with TPL
    • Task status monitoring
  • Implementing efficient monitors in .NET
    • Standard .NET monitor: shortcomings
    • Enhanced monitor concept
    • Eggshell model
    • Monitor signal models
    • Enhanced monitor implementation
    • Monitor versions: comparison
  • Specific .NET concurrency aspects
    • Race conditions with finalizers
    • Threading with GUI
    • Multi-processor memory model
    • Atomic instructions (.NET Interlocked classes)
    • Memory fences
    • Spin locks
    • Visual Studio Parallel Diagnostic Tools
  • Summary and outlook
    • «Lessons learned» summary
    • Outlook to future concurrency
    • Conclusion
Teilnehmerbeitrag Der Teilnehmerbeitrag versteht sich rein netto. Das ZFI ist (gemäss MwSt-Gesetz) nicht Mehrwertsteuerpflichtig und erhebt somit keine MwSt. Bei länger als einen Monat dauernden Lehrgängen ist die Zahlung des Teilnehmerbeitrages in mehreren Raten möglich (pro rata temporis).
  Zentrum für Informatik,  Schweiz, Basel, Bern, Zürich
Zentrum für Informatik,  Deutschland, Berlin, Frankfurt, Hamburg, Köln, München, Nürnberg, Stuttgart
Zentrum für Informatik,  Österreich, Wien
Dieser Kurs wurde schon durchgeführt. Die nächsten geplanten Termine sehen sie unten.
  Code 1. Tag 2. Tag Dauer Preis Kursleiter Bemerkungen
NCPG-0312 Mi 27. Jun Do 28. Jun 2 Tage 1700 CHF Luc Bläser
NCPG-0412 Mo 3. Sep Di 4. Sep 2 Tage 1700 CHF Bruno Podetti
NCPG-0512 Mi 28. Nov Do 29. Nov 2 Tage 1700 CHF Bruno Podetti
 
Efficient Concurrent Programming in .NET
Untertitel Multicore- und Multiprozessor-Computer richtig ausnutzen
Inhalt
  • Introduction, system support for parallelism
    • Motivation: Why concurrent programming?
    • The free lunch is over
    • Levels of parallelism
    • Parallel computer architectures
    • Parallelism and concurrency
    • Processes versus threads
    • Resources per process and thread
    • Processes and thread scheduling
    • Processor multiplexing
    • Context switches
  • Threads and Critical Sections in .NET
    • Thread implementation, creation and start
    • Thread parameter passing
    • Thread join
    • Thread termination
    • Thread passivation
    • Thread lifecycle
  • Critical Sections and Mutual Exclusion in .NET
    • Access to shared resources
    • Critical sections
    • Naive approaches: typical mistakes
    • Synchronization with Mutex
    • Thread-safe data structures
  • Monitors in .NET
    • Monitor concept
    • Monitor support in .NET
    • Monitor lock
    • Monitor wait and pulse
    • .NET monitor: typical pitfalls
    • Correct .NET monitor usage
    • Sleeping barber optimization
    • .NET monitor limitations
  • Specific synchronization primitives in .NET
    • Barrier
    • Rendez-vous
    • Semaphores
    • Reader-Writer Lock
  • Dangers of Concurrency: Races, Deadlocks, Starvation
    • Race condition errors
    • Race condition detection
    • Race condition prevention
    • Deadlock errors
    • Deadlock detection
    • Deadlock prevention
    • Architectural deadlock prevention
    • Deadlocks with reader-writer locks
    • Starvation error
    • Starvation prevention
    • Priority inversion problem
    • Concurrency correctness criteria
  • Thread pools and task parallelism with TPL in .NET
    • Thread pool concept
    • Thread pool benefits
    • Thread pool limitations and deadlock risks
    • .NET Task Parallel Library (TPL)
    • Task implementation and start
    • Task parameter passing
    • Task start and wait
    • Task with result values
    • Multi task start and wait
    • Nested tasks
    • Tasks: miscellaneous
    • Children tasks
    • Thread pool implementation in TPL
    • Task parallelism: typical pitfalls
  • Data parallelism with TPL in .NET
    • Data parallelism with TPL: Overview
    • Parallel statement execution
    • Parallel loop execution
    • Synchronization for data parallelism
    • Aggregate parallel loop results
    • Stop and break parallel loops
    • Performance tuning for data parallelism
    • Parallel loop partitioning
    • Performance considerations with data parallelism
    • Parallel language-integrated querying (PLINQ)
  • Asynchronous programming in .NET
    • Asynchronous method calls
    • Event-based asynchronous programming
    • Asynchronous execution with TPL
    • Continuation-style programming with TPL
    • Task status monitoring
  • Implementing efficient monitors in .NET
    • Standard .NET monitor: shortcomings
    • Enhanced monitor concept
    • Eggshell model
    • Monitor signal models
    • Enhanced monitor implementation
    • Monitor versions: comparison
  • Specific .NET concurrency aspects
    • Race conditions with finalizers
    • Threading with GUI
    • Multi-processor memory model
    • Atomic instructions (.NET Interlocked classes)
    • Memory fences
    • Spin locks
    • Visual Studio Parallel Diagnostic Tools
  • Summary and outlook
    • «Lessons learned» summary
    • Outlook to future concurrency
    • Conclusion
Teilnehmerbeitrag Der Teilnehmerbeitrag versteht sich rein netto. Das ZFI ist (gemäss MwSt-Gesetz) nicht Mehrwertsteuerpflichtig und erhebt somit keine MwSt. Bei länger als einen Monat dauernden Lehrgängen ist die Zahlung des Teilnehmerbeitrages in mehreren Raten möglich (pro rata temporis).
  Zentrum für Informatik,  Schweiz, Basel, Bern, Zürich
Zentrum für Informatik,  Deutschland, Berlin, Frankfurt, Hamburg, Köln, München, Nürnberg, Stuttgart
Zentrum für Informatik,  Österreich, Wien
C# Grundlagen Programmiergrundkurs .NET Einführung mit VB.NET .NET Einführung mit C#.NET .NET Für Fortgeschrittene Microsoft Certified Professional Developer Microsoft Certified Technology Specialist Microsoft Certified Professional Developer Test 70-515 Test 70-513 Test 70-511 Test 70-547 Test 70-583 Test 70-549 Überblick über die .NET-Technologie Test 70-519 Test 70-516 Test 98-363 Test 70-518 Test 70-536 Microsoft Certified Technology Specialist Microsoft Certified Professional Developer Microsoft Certified Technology Specialist Microsoft Certified Technology Specialist