Processore multicore: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Collegamenti esterni: Aggiunto il "Portale Elettronica" nel template "Portale"
Recupero di 1 fonte/i e segnalazione di 1 link interrotto/i.) #IABot (v2.0.9.5
Riga 33:
Nei sistemi Apple [[macOS]] con la versione 10.6 c'è l'introduzione del [[Grand Central Dispatch]] per implementare il [[parallelismo a livello di thread]], migliorando il supporto ai multicore.
 
Nei sistemi basati su kernel Linux, si ha il primo supporto all'hardware SMP con la versione 2 del kernel, che comprendeva un big kernel lock (BKL) per la gestione degli interrupt, successivamente con la versione 2.2 i gestori d'interrupt avevano [[spinlock]] differenziati, alcune distribuzioni e ottimizzazioni inclusero il codice di supporto per sistemi NUMA. Nella versione 2.4 sempre più sottosistemi vennero gestiti al di fuori del BKL, grazie all'introduzione di nuovi database lock, ma presenta ancora spinlocks che coprono interi sottosistemi, questo permise di migliorare la scalabilità, che migliorò ulteriormente con la versione 2.5 del kernel, che ottimizzò la cache della pagina dei lock di conversione da un singolo blocco di codice a più blocchi di dati.<br />Con la versione 2.6 il BKL venne relegato ad una piccola parte del codice del kernel, in quanto la maggior parte del BKL venne convertito in database lock con elevata sintonizzazione e scalabilità per eliminare il ripetersi della linea di cache condivisa, mentre nei sottosistemi critici c'è un certo uso di approcci di lock meno avanzati, quali [[Read-Copy-Update|Read-Copy-Update (RCU)]], venne introdotto un nuovo programmatore multi CPU di coda, risolvendo le contese sulle code di esecuzione globali condivise da più CPU, riducendo il sovraccarico dei processi di pianificazione in parallelo. Questo scheduler venne introdotto anche su alcuni kernel 2.4 delle ultime distribuzioni.<ref>[http://halobates.de/lk09-scalability.pdf Linux multi-core scalability]</ref><ref>[{{Cita web |url=http://www.tuxradar.com/answers/501 |titolo=How well does Linux support multi-core CPUs?] |accesso=13 settembre 2014 |dataarchivio=13 settembre 2014 |urlarchivio=https://web.archive.org/web/20140913124747/http://www.tuxradar.com/answers/501 |urlmorto=sì }}</ref>
Questa strategia ha permesso al kernel linux in elevata scalabilità ed effettivi miglioramenti con sistemi multicore<ref>[http://www.oneopensource.it/08/03/2011/linux-2-6-38-benchmark-del-kernel-multi-core-scaling/ Linux 2.6.38: benchmark del kernel multi-core scaling] {{webarchive|url=https://web.archive.org/web/20140929193541/http://www.oneopensource.it/08/03/2011/linux-2-6-38-benchmark-del-kernel-multi-core-scaling/ |data=29 settembre 2014 }}</ref>