-
1. Data: 2013-06-20 12:35:33
Temat: pytanie z mutexów
Od: firr kenobi <p...@g...com>
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?
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?
-
2. Data: 2013-06-21 18:33:03
Temat: Re: pytanie z mutexów
Od: Edek <e...@g...com>
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
-
3. Data: 2013-06-21 18:52:45
Temat: Re: pytanie z mutexów
Od: A.L. <a...@a...com>
On Fri, 21 Jun 2013 16:33:03 +0000 (UTC), Edek
<e...@g...com> wrote:
>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?.
Moze ksaizki sa nudne, ale twoje rewelacje rozrywkowe (w szczegolnosci
ze monitor to mutex). Podobnie ze "bariera to mutex"
No i najbardziej rozrywkowe to stwierdzenei ze "tego sie uzywa od
kilku lat"
A.L.
-
4. Data: 2013-06-21 20:53:02
Temat: Re: pytanie z mutexów
Od: Edek <e...@g...com>
Kto ma kłopot z czytnikiem i kodowaniem znaków? Możliwe że moja wina,
używam UTF-8 bo po ustawieniu ISO nie mogę odczytać większości
postów.
Dnia Fri, 21 Jun 2013 11:52:45 -0500 po głębokim namyśle A.L. rzekł:
> On Fri, 21 Jun 2013 16:33:03 +0000 (UTC), Edek
> <e...@g...com> wrote:
>>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.
>
> Moze ksaizki sa nudne, ale twoje rewelacje rozrywkowe (w szczegolnosci
> ze monitor to mutex). Podobnie ze "bariera to mutex"
Firr mógł mieć rację mówiąc, że niektóre nazwy mogą mieć wiele znaczeń
w tej dziedzinie. Co ma Pan na myśli mówiąc Monitor, poza tym 22'?
Że bariera to mutex nigdy nie twierdziłem. Wiem natomiast, że da się
zaimplementować barierę mając mutex i condition, w dość trywialny
sposób, i często tak się robi w wielowątkowości, że emuluje się
jedne elementy za pomocą innych, byle graf zależności nie miał
pętli a mutex jest podstawowym elementem.
> No i najbardziej rozrywkowe to stwierdzenei ze "tego sie uzywa od kilku
> lat"
Dość zabawna złośliwość - zostawiłem cytat mojego posta, który
zaczyna się od "wielowątkowość nie jest nowa". W moim odczuciu
wielu programistów, którzy są co najmniej w porządku ma poważne
problemy ze zrozumieniem, że te same linijki kodu mogą się
wykonywać jednocześnie w kilku wątkach i co się z tym wiąże.
Winię za to długotrwały brak wielowątkowości na desktopach /i/
podejście różnorakich marketingoidalnych guru wspieranytch
przez Microsoft: "wątki są po to, żeby GUI się nie zawieszało" -
co jest o tyle bzdurą, że add_idle i podobne wykonuje
wątek GUI. Rzadko tworzę GUI, ale dodatkowy wątek jest często
zbędny. Dlatego w świadomości wielu programistów Java jest
bardziej rozpracowanym tematem niż wątki. Wiek Javy > wiek HT
na Intelach. Wiek Javy << wiek mutexa.
Wracając do książek: pewnie poszukam sam, ale Pana doświadczenie
piechotą nie chodzi i może też przyda się innym, nie tylko
wrednemu Edkowi ;)
--
Edek
-
5. Data: 2013-06-21 21:02:17
Temat: Re: pytanie z mutexów
Od: firr kenobi <p...@g...com>
>
> Moze ksaizki sa nudne, ale twoje rewelacje rozrywkowe (w szczegolnosci
> ze monitor to mutex). Podobnie ze "bariera to mutex"
>
> No i najbardziej rozrywkowe to stwierdzenei ze "tego sie uzywa od
> kilku lat"
>
nieststy obawiam sie ze uzytkownik edek
przepisał to jak leci w wikipedii
Dla mnie najgorsza jest ta tzw edkowa psychologia
wtłaczana w grupe w megailościach, wogole mnie to nie intersuje (nie na temat), wrecz
przeciwnie
-
6. Data: 2013-06-21 21:32:56
Temat: Re: pytanie z mutexów
Od: firr kenobi <p...@g...com>
> wtłaczana w grupe w megailościach, wogole mnie to nie intersuje (nie na temat),
wrecz przeciwnie
jak dla mnie jest to po prostu straszne,
bezsensowne odpowiedzi są straszne a psychologia jeszcze straszniejsza
-
7. Data: 2013-06-21 21:50:14
Temat: Re: pytanie z mutexów
Od: Bronek Kozicki <b...@s...net>
On 21/06/2013 17:33, Edek wrote:
> Metainformacje w RAM istnialy w starych Sunach, tagged data,
> ale dotyczyly typu danych a nie wielodostepu. Technicznie
> wykonalne, ale nie praktykowane. Nowe procesory maja miec
> wsparcie TM - specyfikacje i uzycie juz istnieja , tylko
> samego sprzeta niet.
jest, np tu
http://www.ebuyer.com/467674-cpu-core-i7-4770-3-40gh
z-lga1150-box-bx80646i74770
sprzętowe TM jest u intela zaimplementowane jako "Intel TSX-NI",
wymienione na tej liście
http://ark.intel.com/products/75122/Intel-Core-i7-47
70-Processor-8M-Cache-up-to-3_90-GHz
tak przy okazji "wyższy" model 4770K tego nie obsługuje:
http://ark.intel.com/products/75123/Intel-Core-i7-47
70K-Processor-8M-Cache-up-to-3_90-GHz
, ciekawe dlaczego.
B.
-
8. Data: 2013-06-21 22:26:30
Temat: Re: pytanie z mutexów
Od: Edek <e...@g...com>
Dnia Fri, 21 Jun 2013 20:50:14 +0100 po głębokim namyśle Bronek Kozicki
rzekł:
> On 21/06/2013 17:33, Edek wrote:
>> Nowe procesory maja miec wsparcie TM -
>> specyfikacje i uzycie juz istnieja , tylko samego sprzeta niet.
> sprzętowe TM jest u intela zaimplementowane jako "Intel TSX-NI",
> wymienione na tej liście
> http://ark.intel.com/products/75122/Intel-Core-i7-47
70-Processor-8M-
Cache-up-to-3_90-GHz
Po raz pierwszy widzę nazwę Crystall Well, ale jeżeli pójdzie z moją
płytą to chcę go na gwiazdkę. Nie widzę nowych chipsetów, więc
pewnie pójdzie. (RAM 76 GB/s?)
> tak przy okazji "wyższy" model 4770K tego nie obsługuje:
> http://ark.intel.com/products/75123/Intel-Core-i7-47
70K-Processor-8M-
Cache-up-to-3_90-GHz
> , ciekawe dlaczego.
O ile to nie była ironia: gamerzy potrzebują unlocked ("K"), Vt-d i TXT
jest im zbędne. A do przyszłych gier niech sobie kupią nowszy i lepszy,
polityka cenowa ;)
--
Edek
-
9. Data: 2013-06-21 22:32:29
Temat: [OT: Intel ARK] Re: pytanie z mutexów
Od: Edek <e...@g...com>
Dnia Fri, 21 Jun 2013 20:26:30 +0000 po głębokim namyśle Edek rzekł:
> Po raz pierwszy widzę nazwę Crystall Well, ale jeżeli pójdzie z moją
> płytą to chcę go na gwiazdkę. Nie widzę nowych chipsetów, więc pewnie
> pójdzie. (RAM 76 GB/s?)
Taa, pewnie...
--
Edek
-
10. Data: 2013-06-21 22:47:27
Temat: Re: pytanie z mutexów
Od: Bronek Kozicki <b...@s...net>
On 21/06/2013 21:26, Edek wrote:
> Dnia Fri, 21 Jun 2013 20:50:14 +0100 po głębokim namyśle Bronek Kozicki
> rzekł:
>
>> On 21/06/2013 17:33, Edek wrote:
>>> Nowe procesory maja miec wsparcie TM -
>>> specyfikacje i uzycie juz istnieja , tylko samego sprzeta niet.
>
>> sprzętowe TM jest u intela zaimplementowane jako "Intel TSX-NI",
>> wymienione na tej liście
>> http://ark.intel.com/products/75122/Intel-Core-i7-47
70-Processor-8M-
> Cache-up-to-3_90-GHz
>
> Po raz pierwszy widzę nazwę Crystall Well, ale jeżeli pójdzie z moją
> płytą to chcę go na gwiazdkę. Nie widzę nowych chipsetów, więc
> pewnie pójdzie. (RAM 76 GB/s?)
źle patrzysz ... jest nowy chipset Z87 i nowe gniazdo (ale ze "starą"
liczbą pinów 1150, żeby wszystkich zdezorientować). Zobacz
http://www.anandtech.com/show/6970/haswell-z87-mothe
rboard-preview-50-motherboards-from-asus-gigabyte-as
rock-msi-ecs-biostar-and-evga
B.