Od zarania dziejów ludzie zastanawiali się jak ominąć problem wzajemnych zależności w C++. No może nie do końca od zarania dziejów i raczej nie wszyscy ludzie - ale to był problem "od zawsze"
Najpopularniejszym rozwiązaniem jest zadeklarowanie jednej klasy przed drugą:
Jakiś czas temu zastanawiałem się czy lepiej jest najpierw kupić długopis/wziąć pieniądze z automatu etc. a potem pójść na stacje metra czy na odwrót. Postanowiłem to jednak policzyć.
Stary 'serwer' z lekka przestawał działać - uruchamiał się raz na trzy próby w pozostałych 2 zawieszał się na sprawdzaniu pamięci - a i tak tylko dlatego że kazałem mu wyłączyć sprawdzanie błędów (inaczej to trup). Zresztą na dzień przed migracją - na nowy system i sprzęt - przestał wykrywać dysk z back-upem (dysk jest w miare nowy i sprawny). Dlaczego by więc nie sprować jakiegoś BSD?
Jakiś czas temu widziałem pokazy jak przyspieszyć kopiowanie za pomocą MMX i SSE. Postanowiłem sprawdzić jak to jest. Wyniki często były zaskakujące ale wydaje mi się, że udało mi się powtórzyć je 'za każdym razem'.
Środowisko testowe: Linux notebook 2.6.29-rc3-zen1 #2 Mon Feb 9 02:27:19 CET 2009 i686 Intel(R) Celeron(R) M processor 1.50GHz GenuineIntel GNU/Linux
Ponieważ w komentarzach wykazano błędy w implementacji to poprawiłem kod.
Dotychczas miałem wiedzę raczej od strony oprogramowania. Tzn. zdarzyło się raz czy dwa zajrzeć 'pod obudowę'. Oczywiście wiedziałem trochę o sprzęcie w znaczeniu co to jest cache etc.
Jednakże po raz pierwszy budowałem komputer 'od podstaw'. Co prawda nie dla siebie - ale nadal.
Ostatnio bawię się w rozwijanie własnego systemu operacyjnego. Wspaniała sprawa jeśli ktoś myśli, że wszystko wie ;)
W trakcie wyszło na jaw, że muszę zaimplementować synchronizowany zbiór (dokładniej rzecz biorąc - nieużywanych stron). Ale czekanie na mutexie nie wydaje się optymalną strategią. Poszukałem więc algorytmów lock-free. Na początek przyszedł stos.