Pentru parcurgerea demo-urilor, folosim arhiva aferentă. Demo-urile rulează pe Linux. Descărcăm arhiva folosind comanda
wget http://elf.cs.pub.ro/iocla/res/cursuri/capitol-09/capitol-09-demo.zip
și apoi decomprimăm arhiva
unzip capitol-09-demo.zip
și accesăm directorul rezultat în urma decomprimării
cd capitol-09-demo/
Acum putem parcurge secțiunile cu demo-uri de mai jos.
cd capitol-09-demo/
cat /proc/cpuinfo | grep Hz
make
./test_freq
estimează frecvența procesorului folosind registrul TSC pentru sleep(1)
./test_rdtsc
în bucla rep trebuie încercate diverse combinații de instrucțiuni.
Programul afișează numărul de instrucțiuni din buclă și numărul de cicli folositi.
./test_sse
se compară viteza de execuție cu operații SSE cu prelucrarea clasică octet cu octet
./lock
Cum arată inline assembly? Cu C++
Cum arată un “race condition”?
Instrucțiunile nu sunt atomice!
Prefixul lock.