[Linuxtrent] Re: Boot Mandrake 10 Official

  • From: Matteo Ianeselli <m.ianeselli@xxxxxxxxxxx>
  • To: Mailing list linuxtrent <linuxtrent@xxxxxxxxxxxxx>
  • Date: Sat, 29 May 2004 12:38:58 +0200

Il gio, 2004-05-27 alle 13:24, airwood65 ha scritto:

> Qual'e' la differenza tra "Linux" e "Linux Smp"?

In breve: "Linux" è un kernel per le macchine con una CPU sola, mentre
"Linux Smp" è un kernel per le macchine con più di una CPU.

SMP = (s)ymmetric (m)ulti(p)rocessing, e indica architetture con più CPU
che concorrono tra loro alla pari all'esecuzione del codice e alla
supervisione delle operazioni di I/O.

Meno in breve:

Il multitasking su una CPU sola fornisce solo l'impressione che più cose
avvengano contemporaneamente: in realtà il kernel tira avanti tutti i
processi un poco per volta, ma passando molto rapidamente da un processo
all'altro così da dare l'impressione che tutti vadano avanti
contemporaneamente. E se la CPU è una sola, un pezzo di codice qualsiasi
può assumere in perfetta sicurezza che mentre è in funzione lui non ci
sono altri a modificare le cose in giro senza che lui lo sappia.

Con due o più CPU il discorso cambia: un pezzo di codice non può più
fare l'assunzione di cui sopra, perché ci potrebbe essere dell'altro
codice su un'altra CPU che va a toccare risorse che sta usando lui in
quel momento. Per cui occorre implementare tutta una serie di lock per
impedire che tutti parlino assieme e che non ci si capisca più nulla.

Ora: tutto il codice relativo ai lock (e a problemi sul come assegnare i
vari processi alle varie CPU) è perfettamente inutile se si ha una CPU
sola; anzi, probabilmente consuma tempo macchina per niente (non tanto,
ma più di zero). In Linux (il kernel) il supporto per più CPU è
opzionale, e se non viene incluso come opzione di compilazione, tutto il
codice di cui sopra vien lasciato fuori, ottenendone un kernel più
piccolino e un poco più efficente. Notare che moduli del kernel
compilati col supporto SMP non sono compatibili con kernel senza il
supporto, e viceversa.

Per analogia: in un monologo si può fare a meno del moderatore, mentre
nei dibattiti no.

Peraltro, un kernel col supporto SMP funziona comunque anche con una CPU
sola (anche se in maniera meno efficiente), e kernel senza supporto SMP
dovrebbero funzionare anche su macchine con più di una CPU, solo che ne
viene usata una sola (era vero una volta, ora non so).


-- 
  |   \    \  | ___|_  |_  |  ianezz a casa sua... :-)
  |  _ \  | \ | _|    /   /   Verba volant, scripta
 _|_/  _\_|  _|____|___|___|  manent, data corrupted


--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: