-
Data: 2013-06-21 18:33:03
Temat: Re: pytanie z mutexów
Od: Edek <e...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie 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
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- 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)
Najnowsze wątki
- 2025-05-08 Lublin => Delphi Programmer <=
- 2025-05-08 Lublin => Programista Delphi <=
- 2025-05-08 Łódź => Mainframe (z/OS, Assembler) Developer <=
- 2025-05-08 Warszawa => Senior Node.js Developer (doświadczenie z framework Nest.
- 2025-05-07 Wielki smog w Watykanie
- 2025-05-07 Polscy czołgiści najlepsi w międzynarodowych zawodach na Łotwie!!!
- 2025-05-07 Znaki wewnętrzne
- 2025-05-07 Czujnik nacisku
- 2025-05-07 Wielki smog w Watykanie Nadal palą węglem w piecach
- 2025-05-07 Kraków => Business Development Manager - Network and Network Security
- 2025-05-07 Białystok => Team Lead Data Engineer (obszar Snowflake) <=
- 2025-05-07 Białystok => Team Lead Data Engineer (Snowflake) <=
- 2025-05-07 Warszawa => IT Recruiter <=
- 2025-05-07 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-05-07 Szczecin => Key Account Manager IT <=