Skocz do zawartości

Synchronizacja dostępu do zmiennych


Fragment

Recommended Posts

Właśnie czytam sobie książkę Jeffrey-a Richtera Programming Applications for Windows (bardzo polecam) i natrafiłem na mały problem. Chodzi mianowicie o to, że wg. autora jak i także wg. dokumentacji SDK, zapis i odczyt zmiennych 32-bitowych można traktować jako jednorodną operację nieprzerywalną przez inne wątki aplikacji. W SDK dosłownie jest napisane tak: "Simple reads and writes to properly-aligned 32-bit variables are atomic." Jednak jest tam także takie zdanie: "Reads and writes to variables of other sizes are not guaranteed to be atomic(...)". Czy to oznacza, że odczyt i zapis zmiennych typów mniejszych niż 32 bity (char i short) nie są operacjami nieprzerywalnymi (ang. atomic) ? Drugie pytanie to co oznacza określenie w pierwszym z tych zdań "properly-aligned" ? Przetłumaczyłem to sobie na właściwie uszeregowana, ale co to oznacza, że zmienna jest właściwie uszeregowana ? Podejrzewam, że odpowiedzi na te pytanie będzie mógł mi udzielić ktoś znający asemblera.

Link do komentarza
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...