Prezentacja nt. współbieżności w C++

0

Witajcie,

Mam taką o to sprawę. Jako, że w dziedzinie współbieżności nie jestem masterem, a mam na ten temat przygotować prezentację na studia (krótkie wystąpienie),
chciałem zapytać Was jakie aspekty współbieżności, wielowątkowości w odniesieniu do języka C++ mogę/powinienem zawrzeć?
Chciałbym mieć taki plan, pogląd na którym mógłbym się oprzeć, żeby skupić się już na wybranych aspektach.

Dzięki z góry za pomoc!

6

opisz takie rzeczy jak

  1. czym jest watek
  2. czym rozni sie watek od procesu
  3. co to jest race condition
  4. jak uniknac punktu 3) (mozesz opisac najpopularniejsze sposoby)
  5. w jakich systemach jak wywolywac watki
  6. jakie sa zalety a jakie wady pisania aplikacji wielowatkowej
  7. porownanie biblotek w c++
  8. Jakies przyklady, np Singleton ktory nie jest thread-safe i ten ktory jest
  9. Podsumowanie
4

Wielowątkowość: http://bit.ly/1FGb9sc
Wieloprocesowość: http://bit.ly/1dshIXz

Można by dodać jeszcze korutyny (pierwszy polski znaleziony odpowiednik - ktoś zna lepszy?):

Multi-tasking - nie wiem czy to można tu zawrzeć (jeden wątek):

3

Ja bym zaczął od definicji porządku totalnego i częściowego, relacji happened-before ( http://en.wikipedia.org/wiki/Happened-before ), znaczników czasu Lamporta ( http://en.wikipedia.org/wiki/Lamport_timestamps ) i zegarów wektorowych ( http://en.wikipedia.org/wiki/Vector_clock ) ;)

0
Shalom napisał(a):

Ja bym zaczął od definicji porządku totalnego i częściowego, relacji happened-before ( http://en.wikipedia.org/wiki/Happened-before ), znaczników czasu Lamporta ( http://en.wikipedia.org/wiki/Lamport_timestamps ) i zegarów wektorowych ( http://en.wikipedia.org/wiki/Vector_clock ) ;)

To tematy z przetwarzania rozproszonego, raczej nie jest to coś od czego się zaczyna opisywać współbieżność.
Ale oczywiście wchodzi w ramy współbieżności.

Gdyby ktoś chciał zgłębić akurat tę dziedzinę, to od siebie polecę tę książkę: "Distributed Computing: Principles, Algorithms, and Systems", Ajay D. Kshemkalyani, Mukesh Singhal.

0

@vpiotr ale dzisiaj mamy procesory wielordzeniowe i efektywnie współbieżność jest mocno związana z przetwarzaniem równoległym i rozproszonym :) Opóźnienia oczywiście nie są aż takie duże ale mimo wszystko występują i ustalanie kolejności operacji jest dość istotne tak samo jak rozumienie problemów typu dirty cache i generalnie problemów z widocznością operacji przez inne wątki ;)

0

Dla mnie to osobna klasa problemów, ale to tylko moja opinia.

0

Pytanie jest zbyt ogólne. Ile masz czasu na tę prezentację? O czym dokładnie to ma być? Do kogo będziesz mówił? Bo można by zacząć od gadania nt tego jak należy używać atomiców/lock-free przez coroutines/futures, skończywszy na porcie Thrust w C++1z, czy transactional memory. A może chodzi o coś jeszcze więcej w stylu czy malloc jest thread safe albo dlaczego w std nie ma chociaż 1/99999999999999999999999999 tego co oferuje ITBB? Dopóki nie sprecyzujesz pytania można tylko strzelać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1