[Kernel] preempt: conviene o no?

Compilazione del kernel, gestione moduli, servizi attivi, e tutti gli interventi per l'ottimizzazione del sistema operativo.
Buntolo
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 811
Iscrizione: martedì 3 febbraio 2009, 19:18

[Kernel] preempt: conviene o no?

Messaggio da Buntolo »

Spulciando nel gestore pacchetti ho visto che ci sono i kernel preempt, che avrebbero il vantaggio di sospendere alcuni processi in esecuzione a favore di altri con priorità più alta, questo nel caso non ci sia più "posto" per tutti.

Tradotto in soldoni non avrei nessun vantaggio ad usarlo?
In che campi è utile?

Oltre alla caratteristica sopracitata, ci sono altre differenze/peculiarità?
Avatar utente
alecive
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1886
Iscrizione: venerdì 12 dicembre 2008, 14:09
Desktop: gnome-shell o unity
Distribuzione: Ubuntu 12.04
Località: Sestri Levante
Contatti:

Re: [Kernel] preempt: conviene o no?

Messaggio da alecive »

Citando da wikipedia:
Prelazione (Preemption)
La prelazione è l'atto di interrompere un programma a prescindere dalla
volontà del programma stesso, ciò avviene grazie a delle particolari
strutture hardware integrate nel microprocessore che automatizzano il cambio
di contesto (context switch)

Multitasking senza prelazione (cooperative)
Detto anche multitasking cooperative, in questo caso i programmi cedono volontariamente il controllo al sistema operativo una volta finita l'operazione in corso: è il caso di Mac OS fino alla versione 9, o di Windows 3.0 e 3.1. Il vantaggio maggiore di questo metodo è che non ha bisogno di supporto hardware e si può implementare su ogni tipo di architettura. Il grave svantaggio è che un singolo programma che si rifiuta di cedere il controllo, o che si ferma per qualche errore, può bloccare l'intero computer in quanto il sistema operativo non ha modo di riprendere il controllo da solo. Più precisamente lo scheduler senza prelazione attua un cambio di contesto solo in circostanze quali:
 
* il passaggio di un programma dallo stato di esecuzione allo stato di pronto per essere eseguito;
* il passaggio di un programma dallo stato di attesa allo stato di pronto per essere eseguito;
Secondo me comunque il kernel attuale (quello classico preinstallato) usa il pre-rilascio, quindi non so che differenza ci sia tra quello e questo..
La follia è come la gravità. Basta una piccola spinta.                              AwOken Iconset - Rilasciata la  2.4!! (c'è anche il ppa [lucid-maverick-natty-oneiric-precise]!)
Avatar utente
[lost]-Divilinux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3774
Iscrizione: giovedì 12 giugno 2008, 13:06
Località: Ipioca - Maceio - Alagoas - Brasil
Contatti:

Re: [Kernel] preempt: conviene o no?

Messaggio da [lost]-Divilinux »

Tradotto in soldoni significa che diventeresti ricco ... se volessi un sistema con bassa latenza per incrementare le prestazioni nei giochi 3D o nell'audio per fare musica e molte altre cose.
Detto terra terra normalmente i processi lavorano in multitasking cooperativo (timeslice). Fino a quando l'operazione non dice "ho finito!" non ne viene iniziata una nuova.
Con l'opzione preemptible il kernel mantiene la priorità massima su alcune applicazioni indipendentemente da quello che stanno facendo. Questo funziona comunque solamente su di un sistema con supporto SMP. Queste due opzioni (se non sbaglio ce ne sono di più ma non mi vengono in mente) fanno si che il kernel sia preemptible. Probabilmente, non lo so con certezza, il kernel contenuto in quel pacchetto è ottimizzato per la bassa latenza.
Ultima modifica di [lost]-Divilinux il sabato 5 giugno 2010, 13:08, modificato 1 volta in totale.
questione di seedings...
Avatar utente
fortran77
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1385
Iscrizione: sabato 29 dicembre 2007, 9:44
Desktop: Xfce, iconoclasta
Distribuzione: Gentoo o Xubuntu, dipende
Località: Firenze (collina)

Re: [Kernel] preempt: conviene o no?

Messaggio da fortran77 »

Chiaramente sebbene il preempt aumenti la reattività del sistema (a vantaggio di un comune uso desktop) impatta sulle performance delle singole applicazioni. In ambito server solitamente il preempt è disabilitato.
any man's death diminishes me, because I am involved in mankind, and therefore never send to know for whom the bell tolls; it tolls for thee.    --- John Donne
Avatar utente
[lost]-Divilinux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3774
Iscrizione: giovedì 12 giugno 2008, 13:06
Località: Ipioca - Maceio - Alagoas - Brasil
Contatti:

Re: [Kernel] preempt: conviene o no?

Messaggio da [lost]-Divilinux »

Chiaramente sebbene il preempt aumenti la reattività del sistema (a vantaggio di un comune uso desktop) impatta sulle performance delle singole applicazioni. In ambito server solitamente il preempt è disabilitato.
Esatto, come riportato nelle informazioni del modulo:

Codice: Seleziona tutto

No Forced Preemption (Server) (PREEMPT_NONE)

CONFIG_PREEMPT_NONE:

This is the traditional Linux preemption model, geared towards
throughput. It will still provide good latencies most of the
time, but there are no guarantees and occasional longer delays
are possible.

Select this option if you are building a kernel for a server or
scientific/computation system, or if you want to maximize the
raw processing power of the kernel, irrespective of scheduling
latencies.
questione di seedings...
Scrivi risposta

Ritorna a “Kernel e servizi di sistema”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti