Za sada se koristi OpenMP (za hyperthreading):
http://www.openmp.org
http://csdl.computer.org/comp/...isss/2002/2246/00/22460109.pdf
Mislim da sam našao i knjigu koju spominješ:
OPERATIVNI SISTEMI (problemi i struktura)
Miroslav Hajduković
http://pipin.tmd.ns.ac.yu/nastava/os/OS2.pdf
Vidim u literaturi spominje knjigu "On Concurrent Programming" (ISBN: 0387949429) od Fred B. Schneider. Ja sam skoro nabavio tu knjigu i ne bih je baš preporučio...
Inače ovaj način programiranja važi za PS2, ali trenutno je interesantno da sve platforme uključujući i PC idu u tom smeru. PS2 ima 5 procesora i DMA što ih povezuje, IOP (stari PS1 na jednom čipu), EE (CPU), VU0 (vektorski koprocessor uz CPU), VU1 (vektorski procesor uz GS), GS (grafički procesor). U principu i PC ima ovoliko ili više procesora, ali se programer na PC nije maltretirao sinhronizacijom, komunikacijom, itd. nego je to radio OS. Takođe svi ovi procesori su bili za specifičnu primenu, pa je bilo prilično jasno koji procesor šta radi i kako se algoritmi razdvajaju... Ali sa višeprocesorskim sistemom gde su svi procesori opšte namene, ili mogu biti korišćeni u bilo kojoj kombinaciji, ovo postaje malo komplikovanije. Interesantan podatak za PS2 je da samo 10% igara (podatak je sa PS2 Dev konferencije 2003, moguće da se sada to malo promenilo mada ne značajnije) je koristilo VU0 u micro modu, tj. procesor je radio paralelno sa EE i nije bio korišćen kao koprocesor (macro mod, dok se izvšava instrukcija na koprocesoru, procesor čeka na rezultat). Sada ovo dosta govori o načinu pisanja igara na postojećim platformama. Gde su npr. fizika, kolizija, animacija, AI, i ostali delovi izmešani i međusobno zavisni, pa nije moguće jednostavno ih razdvojiti i obrađivati paralelno na VU0 dok se nešto drugo radi na EE (npr. fizika na VU0 dok je pathfinding radi na EE). Znači za sledeću generaciju igara biće potrebno svaki sistem izolovati sam za sebe (kao što se sada radi sa renderingom ili zvukom) i omogućiti mu da se izvršava paralelno sa ostalim sistemima.
Da se nadovežem na drugu temu, pa da kažem da je možda C# upravo pravljen za takve sisteme (ovo je nagađanje!), da bi programeri mogli da nastave sa starim načinom programiranja i da se o rasporedu taskova za procesore brine C# JIT kompajler...
Branimir