Czy ktoś mógłby mi wyjaśnić działanie i różnice powyższych operacji w wielowątkowości?porównaj i zamień vs test i ustaw
Odpowiedz
test-and-set
modyfikuje zawartość lokalizacji pamięci i zwraca jej dawną wartość jako pojedynczej operacji atomowej.
compare-and-swap
atomowo porównuje zawartość komórki pamięci do danej wartości, a tylko wtedy, gdy są one takie same, modyfikuje zawartość tej lokalizacji pamięci do danej nowej wartości.
Różnica zaznaczona pogrubioną czcionką.
Test i zestaw działa na bitach, porównywaniu i zamianie działa na polu 32-bitowym.
System z/TPF faworyzuje korzystanie z instrukcji testu i zestawu (TS), ponieważ często wskaźniki blokady są bitami, które są ustawione, aby kontrolować dostęp do krytycznych regionów kodu systemu. Instrukcja testu i zestawu (TS) wymaga mniej rejestrów niż instrukcja porównania i wymiany (ZS) i wymaga mniej czasu wykonania, ponieważ trzeba ustawić tylko jeden bajt.
i znalazłem te materiały od: http://www.ibm.com/support/knowledgecenter/SSB23S_1.1.0.13/gtpc3/tasinst.html
można dowiedzieć się więcej o TSL z książki o nazwie "nowoczesny system operacyjny, rozdział 2" ...
- 1. Porównaj i zamień w C++
- 2. Porównaj i zamień na x86 - dlaczego jest to pełna bariera?
- 3. Porównaj JSON i BSON
- 4. Test jednostki VS2010 "Oczekujący" i test nie może zostać zakończony
- 5. Znajdź i zamień łańcuchy w dokumentach Sprawnie
- 6. ajax.actionlink Zastąp vs zamień z
- 7. Porównaj dzień miesiąca i rok
- 8. Javascript Porównaj datę i godzinę
- 9. Porównaj Java RPC vs WebServices
- 10. Zamień wzorzec i gałąź funkcji
- 11. /in vi Wyszukaj i zamień?
- 12. SQL Zaktualizuj i zamień podłańcuch
- 13. Zamień monady wewnętrzne i zewnętrzne
- 14. unix tr znajdź i zamień
- 15. „Znajdź i zamień” trzyma kursora
- 16. JavaScript: test vs exec
- 17. znajdź i zamień ciąg znaków w pliku
- 18. SingleResult i test jednostkowy
- 19. test pokrycia vs ExpectedException
- 20. Porównaj nginx + Apache + mod_wsgi vs nginx + uWSGI?
- 21. Porównaj testy porównawcze dla CodeIgniter vs Yii
- 22. DataReader [i] vs DataReader.GetValue (I) vs DataReader.GetString (I)
- 23. Porównaj numer i jego reprezentację ciągów znaków
- 24. Porównaj TinyMCE i CKeditor dla Wiki
- 25. Porównaj 2 tablice i wymień różnice - Swift
- 26. Porównaj `float` i` float64` w pytonie
- 27. Porównaj dwie tablice i utworzyć trzeci
- 28. Zmienne SQLCMD i schemat SSDT porównaj numer
- 29. Porównaj dwie twarze (i ich podobieństwo)
- 30. Porównaj data i datetime w Django
Ponieważ 'porównania-i-swap' czy więcej pracy niż "testowanie i ustawianie" zajmuje więcej czasu niż "testuj i ustaw"? – arunmoezhi
@arunmoezhi, to zależy od implementacji. –
Czy możesz proszę o szczegóły. Powodem, dla którego mnie to interesuje, jest to, że testowanie i ustawianie jest szybsze, niż mogę zmienić mój algorytm, aby go użyć zamiast porównywać i zamieniać – arunmoezhi