eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingAtomowość operacji vs wieloprocesorowośćRe: Atomowość operacji vs wieloprocesorowość
  • X-Received: by 10.140.89.116 with SMTP id u107mr423916qgd.18.1428578443983; Thu, 09
    Apr 2015 04:20:43 -0700 (PDT)
    X-Received: by 10.140.89.116 with SMTP id u107mr423916qgd.18.1428578443983; Thu, 09
    Apr 2015 04:20:43 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.cyf-kr.edu.pl!news.nask
    .pl!news.nask.org.pl!newsfeed.pionier.net.pl!news.glorb.com!m20no2086513iga.0!n
    ews-out.google.com!k20ni70qgd.0!nntp.google.com!j5no509469qga.1!postnews.google
    .com!glegroupsg2000goo.googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Thu, 9 Apr 2015 04:20:43 -0700 (PDT)
    In-Reply-To: <0...@g...com>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=178.36.83.76;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    NNTP-Posting-Host: 178.36.83.76
    References: <1...@n...fucking.idea>
    <5...@g...com>
    <a...@g...com>
    <0...@g...com>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <f...@g...com>
    Subject: Re: Atomowość operacji vs wieloprocesorowość
    From: "M.M." <m...@g...com>
    Injection-Date: Thu, 09 Apr 2015 11:20:43 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:207797
    [ ukryj nagłówki ]

    On Wednesday, April 8, 2015 at 11:21:16 PM UTC+2, Wojciech Muła wrote:
    > On Tuesday, April 7, 2015 at 5:28:46 PM UTC+2, Maciej Sobczak wrote:
    > > W dniu wtorek, 7 kwietnia 2015 10:18:29 UTC+2 użytkownik Wojciech Muła napisał:
    > >
    > > > > Czy operacje typu zapis/odczyt na pojedynczej komórce pamięci
    > > > > (32-bitowej na platformie 32-bitowej, 64-bitowej wna platformie
    > > > > 64-bitowej) są atomowe?
    > > >
    > > > Są atomowe.
    > >
    > > Dorzućmy może wymaganie na wyrównanie adresu do rozmiaru tej komórki,
    > > żeby nie było problemu z dostępem do danych przekraczających granicę
    > > słowa. Intuicja (na tzw. popularnych platformach) podpowiada, że wtedy
    > > będzie OK, ale techniczna prawda będzie tylko w dokumentacji procka.
    >
    > Tom 3A "8.1.1 Guaranteed Atomic Operations":
    >
    > The Intel486 processor (and newer processors since) guarantees
    > that the following basic memory operations will
    > always be carried out atomically:
    > * Reading or writing a byte
    > * Reading or writing a word aligned on a 16-bit boundary
    > * Reading or writing a doubleword aligned on a 32-bit boundary
    >
    > The Pentium processor (and newer processors since) guaran
    > tees that the following additional memory operations
    > will always be carried out atomically:
    > * Reading or writing a quadword aligned on a 64-bit boundary
    > * 16-bit accesses to uncached memory locations that fit within
    > a 32-bit data bus
    >
    > The P6 family processors (and newer processors since)
    > guarantee that the following additional memory operation
    > will always be carried out atomically:
    > * Unaligned 16-, 32-, and 64-bit accesses to cached memory
    > that fit within a cache line
    >
    >
    > Teraz chyba nie ma wątpliwości.
    >

    Jakie korzyści płyną z tego w praktyce?

    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?

    Na pewno z powodu pamięci cache i tak zostaną te same problemy. 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.

    Pozdrawiam

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: