-
X-Received: by 10.140.30.118 with SMTP id c109mr440344qgc.15.1428590143209; Thu, 09
Apr 2015 07:35:43 -0700 (PDT)
X-Received: by 10.140.30.118 with SMTP id c109mr440344qgc.15.1428590143209; Thu, 09
Apr 2015 07:35:43 -0700 (PDT)
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed2a.news.xs4all.n
l!xs4all!newspeer1.nac.net!border2.nntp.dca1.giganews.com!border1.nntp.dca1.gig
anews.com!nntp.giganews.com!m20no2124693iga.0!news-out.google.com!k20ni74qgd.0!
nntp.google.com!j5no537103qga.1!postnews.google.com!glegroupsg2000goo.googlegro
ups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 9 Apr 2015 07:35:43 -0700 (PDT)
In-Reply-To: <f...@g...com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=31.61.136.206;
posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn
NNTP-Posting-Host: 31.61.136.206
References: <1...@n...fucking.idea>
<5...@g...com>
<a...@g...com>
<0...@g...com>
<f...@g...com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5...@g...com>
Subject: Re: Atomowość operacji vs wieloprocesorowość
From: Wojciech Muła <w...@g...com>
Injection-Date: Thu, 09 Apr 2015 14:35:43 +0000
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Lines: 53
Xref: news-archive.icm.edu.pl pl.comp.programming:207800
[ ukryj nagłówki ]On Thursday, April 9, 2015 at 1:20:44 PM UTC+2, M.M. wrote:
> Jakie korzyści płyną z tego w praktyce?
No takie, że jeden procesor zawsze odczyta/zapisze całe 64 bity
w całości, nie musi dbać o zapis i odczyt. Chodzi o to, że jak
zapisujesz 64-bitową liczbę to masz *gwarancję*, że zapisane zostały
wszystkie dane, a nie, że np. 1 procesor zapisał pierwsze 3 bajty,
a 2 procesor dopisał 5 pozostałych.
> Jak mam przypisanie:
> zmienna_lokalna = zmienna_globalna;
> Zmienna globalna mogła zostać zmodyfikowana przez inny wątek/proces.
> Jeśli dostępu do zmienna_globalna nie obejmę sekcją krytyczną, to
> wiem że dane w zmiennej globalnej i tak będą spójne. Ale co w sytuacji, gdy
> wątek modyfikujący robi:
> zmienna_globalna += cos;
> albo
> zmienna_globalna *= cos;
> zmienna_globalna %= cos;
>
> Czy dane nadal będą spójne?
Ale to jest już inny przypadek. Dodawanie, odejmowanie i operacje
bitowe też mogą być atomowe na x86, ale dla pozostałych rzeczywiście
trzeba mieć jakąś formę sekcji krytycznej.
> Na pewno z powodu pamięci cache i tak zostaną te same problemy.
Cache akurat nie ma tutaj znaczenia.
> Wątek odczytujący może otrzymać zmienna_globalna z opóźnieniem. Czyli
> wątek zapisujący i tak musi zrobić powolną operację zrzutu
> zmodyfikowanych danych. Nie lepiej od razu użyć sekcji krytycznej
> i mieć prostszy kod w analizie, nie wspominając o możliwości
> kompilacji na inne procesory, albo o uruchamianiu na klastrze.
Sekcje krytyczne, w sensie mutexy, czy semafory, jako obiekty systemowe
są wolne, a nawet bardzo wolne. Dlatego tam gdzie liczy się wydajność
pojawiają się algorytmy lockfree, czyli nie ma jako takiej blokady na
sekwencję instrukcji, ale np. próbuje się do skutku wykonać jakąś
operację, powiedzmy dopisania do kolejki. I tu już można to robić
wydajnie właśnie operacjami atomowymi (głównie compare & exchange)
no i trzeba pamiętać o barierach pamięci (memory fence).
w.
Następne wpisy z tego wątku
- 09.04.15 18:12 szemrany
- 09.04.15 18:26 M.M.
- 09.04.15 18:45 M.M.
- 09.04.15 22:44 Bronek Kozicki
- 10.04.15 16:16 Maciej Sobczak
- 10.04.15 18:31 M.M.
- 11.04.15 10:47 Maciej Sobczak
- 11.04.15 11:20 M.M.
- 13.04.15 20:27 Wojciech Muła
- 14.04.15 09:21 M.M.
- 15.04.15 18:38 Wojciech Muła
- 16.04.15 06:43 M.M.
Najnowsze wątki z tej grupy
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- 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
Najnowsze wątki
- 2025-07-23 Gdańsk => Programista Delphi <=
- 2025-07-23 Gdańsk => Programista Mainframe (z/OS, Assembler) <=
- 2025-07-23 Warszawa => Starszy inżynier DevOps (AWS) <=
- 2025-07-23 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-23 Kraków => Senior Fullstack Engineer (Low-Code Platform) <=
- 2025-07-23 Wrocław => Senior Key Account Manager IT <=
- 2025-07-23 Trójmiasto => Head of Social Media <=
- 2025-07-23 Rzeszów => Spedytor Międzynarodowy <=
- 2025-07-23 Lublin => ERP Implementation Consultant (AP Module) <=
- 2025-07-23 Środa Wielkopolska => SAP FI/CO Internal Consultant <=
- 2025-07-23 Warszawa => Inżynier oprogramowania .Net <=
- 2025-07-23 Kraków => Kotlin Developer <=
- 2025-07-23 Żerniki => Dyspozytor Międzynarodowy <=
- 2025-07-23 Warszawa => Java Developer <=
- 2025-07-23 Wrocław => Konsultant wdrożeniowy (systemy controlingowe) <=