-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.supermedia.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!no
t-for-mail
From: Edek <e...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: pytanie z mutexów
Date: Fri, 21 Jun 2013 16:33:03 +0000 (UTC)
Organization: Netia S.A.
Lines: 62
Message-ID: <kq1v7v$as6$2@mx1.internetia.pl>
References: <5...@g...com>
NNTP-Posting-Host: 87-205-33-79.adsl.inetia.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: mx1.internetia.pl 1371832383 11142 87.205.33.79 (21 Jun 2013 16:33:03 GMT)
X-Complaints-To: a...@i...pl
NNTP-Posting-Date: Fri, 21 Jun 2013 16:33:03 +0000 (UTC)
X-Tech-Contact: u...@i...pl
User-Agent: Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
X-Server-Info: http://www.internetia.pl/
Xref: news-archive.icm.edu.pl pl.comp.programming:203786
[ ukryj nagłówki ]Dnia Thu, 20 Jun 2013 03:35:33 -0700 po głębokim namyśle firr kenobi
rzekł:
> nie zmam sie za bardzo na rozmaitych prymitywach sluzacych do lockowania
> kawałków ramu (a jest tego kilkanascie z tego co kojarze) stad pytanie :
> czy najbardziej podstawowy z tych elementali (jak mniemam mutex) pozwala
> zapisac jakies informacje przy lokowamiiu jakiegos kawalka ramu (tak by
> inny watek ktory sie na to natkanł mogl to przeczytac) czy tez nie jest
> to praktykowane?
Mutex jest rozwiązaniem abstrakcyjnym, nie sprzętowym. W tym sensie,
że programista w każdej chwili może zapomnieć o mutexie i sprzęt
na to pozwoli.
Metainformacje w RAM istniały w starych Sunach, tagged data,
ale dotyczyły typu danych a nie wielodostępu. Technicznie
wykonalne, ale nie praktykowane. Nowe procesory mają mieć
wsparcie TM - specyfikacje i użycie już istnieją, tylko
samego sprzęta niet.
> drugie pytanie czy jest jakias (chocby zwyczajowa)
> hierarchia tych prymitywow i czy ich nazewnictwo juz sie jakos ulozylo
> czy tez panuja rozne nazewnictwa i jaki to jest ten standardowy set?
Mutex i lock to dwie nazwy tego samego pomijając może niuanse. Condition
variable jest praktycznie uniwersalną nazwą. W Win nazwy są takie same
jak nazwy ich metod - nie wiem. Są też praktyczne implementacje
tychże, takie jak Futex (na linuksie praktycznie w userspace
wszystkie mutexy są zaimplementowane przez futex, w kernelu
częściej jako spinlock)
Z podstawowych są też inne bestie: CAS, semafor, monitor (obudowany
cukrem mutex, odrobinę co innego), atomic sth, bariera, spinlock
i parę innych, w tym odmiany mutexów: rekursywne, RWLock.
Istnieje też abstrakcyjny Model Pamięci, bez którego wszystkie
powyższe nie mają najmniejszego sensu, oraz sprzętowy Model
Pamięci, bez którego nie dałoby się ich poprawnie zaimplementować.
Potem jest wiele elementów używających powyższych, jakby wyższego
poziomu: future, promise, continuation, asynchroniczność,
kontynuacje, egzekutory, Thread Pools, kolejki, struktury
danych lock-free, emulowane atomics (dla obiektów zbyt dużych
aby istniało sprzętowe wsparcie emuluje się na różne sposoby
semantycznie to samo używając innych operacji sprzętowych),
dzielone smart pointery, thread cancelation (aka ThreadDeath,
dziwna i himeryczna bestia), przekazywanie wyjątków pomiędzy
wątkami, once, jednorazowa statyczna inicjalizacja (wraz z
obleśnym double-checked locking), thread local storage,
same wątki i ich wszystkie odmiany - kompletna lista
byłaby znacznie dłuższa.
Wielowątkowość nie jest nowa, tylko relatywnie nowa w codziennym
masowym życiu programistów. Weszła masowo, gdy procesory
zaczęły mieć masowo najpierw HT a potem wiele rdzeni na
desktopie - co się stało niedawno, tylko kilka lat temu.
Powyższe są standardowym zestawem, natomiast większej hierarchii
w nich nie widzę.
--
Edek
Następne wpisy z tego wątku
- 21.06.13 18:52 A.L.
- 21.06.13 20:53 Edek
- 21.06.13 21:02 firr kenobi
- 21.06.13 21:32 firr kenobi
- 21.06.13 21:50 Bronek Kozicki
- 21.06.13 22:26 Edek
- 21.06.13 22:32 Edek
- 21.06.13 22:47 Bronek Kozicki
- 21.06.13 22:48 Bronek Kozicki
- 21.06.13 23:03 Edek
- 22.06.13 00:10 firr
- 22.06.13 01:52 A.L.
- 22.06.13 01:52 A.L.
- 22.06.13 02:56 Edek
- 22.06.13 02:59 A.L.
Najnowsze wątki z tej grupy
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
Najnowsze wątki
- 2024-12-25 Wrocław => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2024-12-25 Warszawa => Sales Assistant <=
- 2024-12-25 Kraków => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-25 Lublin => System Architect (Java background) <=
- 2024-12-25 Szczecin => Specjalista ds. public relations <=
- 2024-12-25 Wrocław => Key Account Manager <=
- 2024-12-25 Kraków => Full Stack .Net Engineer <=
- 2024-12-25 Kraków => Programista Full Stack .Net <=
- 2024-12-25 Bieruń => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-25 Białystok => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-25 Białystok => Delphi Programmer <=
- 2024-12-25 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-12-25 Kraków => Ekspert IT (obszar systemów sieciowych) <=
- 2024-12-25 Mińsk Mazowiecki => Spedytor Międzynarodowy <=
- 2024-12-24 Dzisiaj Bentlejem czyli przybieżeli sześciu Króli do Rysia na kasie