[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [kernel] Preemptive o no?



Il giorno gio, 29/03/2007 alle 23.20 +0200, Franco Rossi ha scritto:

> > La prelazione è l'atto di interrompere un programma a prescindere dalla 

> Multitasking senza prelazione (cooperative)

> Quello che ho messo in grassetto, mi lascia alquanto sconcertato e non
> mi sembra accettabile su un sistema desktop, figuriamoci in un sistema
> server.

Mi pare ci sia un po' di confusione in merito.
Linux e` un sistema operativo multitasking preemptive.

Qualsiasi processo puo` essere interrotto dal kernel in qualsiasi
momento.

L'opzione nel kernel rende preemptive ALCUNE PARTI del kernel stesso,
che fino alla 2.4 erano non interrompibili (e non multitasking
cooperativo, di cui non c'e` traccia in Linux).

E` utile su un desktop perche` permette di far continuare dei processi
nonostante il kernel stia facendo un'operazione pesante (come trasferire
un grosso buffer da un driver a un processo o roba simile).
Su un server puo` essere utile, ma e` meno importante, perche` quelle
stesse operazioni magari sono proprio cio` che il processo principale
del server sta aspettando per continuare a lavorare.

Alcune ottimizzazioni, poi, come lo zero copy, hanno reso ancora meno
importante quell'opzione (nel caso dei server).

Sui client puo` essere utile anche abbassare il timeslice del context
switch a 250 o a 100 us (sui server si puo` tenere a 1000 per avere meno
overhead) per aumentare la responsivita` dell'interfaccia.

Bye.


-- 
Alessandro Pellizzari




Reply to: