Newsgroup: it.comp.os.linux.sys
Titolo: Che tipo di multitasking è Linux?

Buongiorno,
in WindowsNT ,2000  il multitasking č di tipo preemptive ,cioč č il s.o che
stabilisce quando la CPU elabori un certo programma.
Su Linux com'č?
Grazie
Roberto

 writes:
R> Su Linux com'č?
* Preemptive fino alla 2.4,  come Windows NT/2000/XP (lasciamo perdere Win
  3.x/9x/ME...)  
* Kernel preemptive  per 2.5 e 2.6 (o con  una patch per la 2.4) 
* Real time per RTlinux
"Kernel preemptive"  significa che anche  i processi del  kernel possono
venire interrotti dai processi utente,  in modo da garantire una maggior
velocita` di risposta.
Come vedi c'e` da scegliere... :-)
Saluti,
Luca Polo.
-- 
Luca...@gest.unipd.it
 --- 
http://www.gest.unipd.it/~jake
----------------------------------------------------------
One Ping to rule them all. One Ping to find them.
One Ping to bring down them all.
And in the darkness crash them.         [The Lord of the Pings]

RRoberto ha scritto:

Preemptive ovviamente.
Anche perche' mi risulta che il concetto stesso di multitasking 
preemptive sia nato su unix; sarebbe stato quantomeno curioso se linux 
non lo avesse avuto...
...gli ultimi SO con multitasking cooperativo (correggetemi se sbaglio) 
sono stati: DOS+Win3.11 e MacOS 9.qualcosa
In compenso il multitasking dei sistemi della famiglia Win9x fa schifo ^__^
Quelli della famiglia NT (NT, 2000 e XP) gia' fungono un po' meglio.
-- 
Renato Ramonda
_______________________________
Togli TOGLIMI se vuoi scrivermi

 ha scritto nel messaggio
news:bn5ha0$upm$1...@newsreader.mailgate.org...

Dunque, visto che da anni leggo in bagno... qualcuno sa dirmi che tipo di
miltitasking utilizzo? ^__^
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com
).
Version: 6.0.529 / Virus Database: 324 - Release Date: 16/10/2003

 miltitasking utilizzo? ^__^
Dipende _esclusivamente_ da cosa leggi... :-)
bye,
-- 
   Piergiorgio Sartor

 miltitasking utilizzo? ^__^
Piů che multitasking direi che stai usando una pipe..
-- 
Lorenzo

 Più che multitasking direi che stai usando una pipe..
che però AFAIK senza multitasking non funziona...
Per me, cmq, è collaborativo...
A volte accade che una delle due attività non rilasci il tempo di
elaborazione e l'altra si interrompa per un tempo variabile...
almeno...
per me è così...
-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The Skull says:
Stop VeriSign. Go to 
http://www.whois.sc/verisign-dns/
* The most stupid thing since Microsoft Network... <g> *

 per me è così...
Forse perché usi cat /dev/random >/dev/null che è bloccante.. 
-- 
Lorenzo

 per me è così...
ROTFL!
Comunque sono d'accordo con te, è anche vero però che a volte leggo cose che
vanno direttamente in pipe con.... l'output ;-)


sono stati: DOS+Win3.11 e MacOS 9.qualcosa
Non vorrei sbagliare, ma 95/98/ME sono ancora ccoperative. Di 95 ne sono
abbastanza sicuro.
-- 
Bosk


Dovrebbero essere cooperative per quanto riguarda i programmi windows 
nativi, preempitive per i programmi dos
-- 
Roberto Tagliaferri-Linux user #30785 <-> r.tagliaferri@(forse)
tosnet.it
	(Seen on TV!!!)
	"Risparmiamo 5 centesimi a transazione!"

 RRoberto ha scritto:
No , perchè ho sostenuto un colloquio di lavoro dove tra le altre cose
l'esaminatore mi ha chiesto che cos'è e che differenza c'è tra il
multitasking cooperative e preemptive, e mi ha detto che Win95 è cooperative
, Win NT e 2000 preemptive,ma Unix è tutta un'altra cosa.Alchè ho cercato di
approfondire , ma lui non ha voluto rispondere.
Io so che Unix funziona su processi che forkano  con padri e figli ,Win
invece è ad eventi .
Correggetemi dove sbaglio (Se vi va ;-) ).
Grazie
Roberto

 invece è ad eventi .
Non sono ortogonali le due cose?
-- 
 Francesco Romani - Ikitt  | Describe your vision, the meaning is missing |
*** mailserver: 
freemail.it
| Won't anybody listen?                        |
   >>> La questione brevetti software: 
http://www.softwarelibero.org
 <<<



sebbene un po' di gente abbia bovinamente detto che il multitasking č
preemptive sotto linux, questo non č proprio esatto. Fino ai kernel 2.4.*
il multitasking č sempre stato non preemptive, poi per i 2.4 sono state
rilasciate patch per averlo preemptive e queste ultime sono state inserite
nei kernel 2.5, per cui nei futuri kernel 2.6 potrai segliere in fase di
compilazione se abilitare il multitasking preemptive o meno.

 Preemptive ovviamente.
perché ovviamente?

 preemptive o meno.
halt!
tu parli dello schedulatore in kernel space.
Lo schedulatore dello userspace č preemptive dacchč ricordo uno
schedulatore...
-- 
Emanuele Balla  aka Skull -  Public Key #661E5CBF on 
www.keyserver.com
+----------------------------------------------------------------------+
"And 1.1.81 is officially BugFree(tm), so if you receive any bug-reports
on it, you know they are just evil lies." (By Linus Torvalds)


Il multitasking di Linux č stato preemptive dalla versione 0.01, se
la cpu si trovava in user space nel momento in cui lo scheduler
deve decidere il prossimo processo da far girare.
Questa č la cosa piů importante, e basta da sola a definirlo
comunemente "preemptive".
Anche tutti i *BSD si comportano in questa maniera e in nessun
libro c'č scritto che hanno un multitasking cooperative.
Il fatto che i kernel 2.6 possano essere preemptive anche in
kernel space č una cosa in piů ma non necessaria.
Inoltre in ogni kernel sono sempre state presenti delle chiamate
a schedule() (nel kernel) nelle funzioni piů complesse,
minimizzando la latenza di scheduling.
-- 
Lorenzo

 invece è ad eventi .
Come dire che un auto Diesel va a gasolio ed
una a benzina ha la batteria...
bye,
-- 
   Piergiorgio Sartor

 writes:
OC> sebbene un po' di gente abbia bovinamente detto che il multitasking č
OC> preemptive sotto linux, questo non č proprio esatto.
Non confondere  "preemptive" tout-court con  "kernel preemptive": oltre-
tutto nel mio articolo li distinguevo e mettevo anche i puntini sulle...
versioni :-).


 wrote in
message

Mi potresti spiegare meglio ??
Grazie
Roberto

 Mi potresti spiegare meglio ??
Tradizionalmente il forking e` un modo per generare
processi, mentre gli eventi sono un metodo di
comunicazione fra processi.
Quindi le due cose non sono confrontabili.
Ovviamente a meno che qualcuno non fornisca una
definizione alternativa, meno ortodossa... :-)
bye,
-- 
   Piergiorgio Sartor

 definizione alternativa, meno ortodossa... :-)
Ok
Potresti suggerirmi una rivista, un sito in particolare che spieghi in
dettaaglio come funzionano questi S.O. ?
Grazie
Roberto

 dettaaglio come funzionano questi S.O. ?
Uh, questa e` una domanda piu` difficile.
Per prima cosa, se cerchi con google, con un po' di
pazienza (si trova tanta immondizzia), sicuramente
trovi tutto quello che interessa.
Secondariamente, vi sono diversi libri su Unix,
per esempio "Unix" di Kernigham & Pike, che pero`
non tratta nel dettaglio il livello piu` basso
(task, scheduler, FS), ma bensi` il livello shell.
Comunque vi sono  chiaramente spiegati i principi
fondamentali e la filosofia del sistema.
bye,
-- 
piergiorgio

 preemptive sotto linux, questo non č proprio esatto. Fino ai kernel 2.4.*
Il multitasking di Linux e' preemptiVE.
E' il kernel che dal 2.5 diventa preemptiBLE.
Bye.

 invece è ad eventi .
Non c'entra.
Preemptive significa che ogni tot tempo (variabile, deciso dal kernel) il
processo in esecuzione viene interrotto e il kernel sceglie cosa altro far
ripartire).
Collaborative significa che il processo, quando ha finito di fare le sue
cose, restituisce il controllo al kernel che decide cosa lanciare dopo.
Nel multitasking cooperativo se un processo entra in un loop infinito puoi
tranquillamente riavviare la macchina perche' non potrai piu' fare niente,
mentre nel mt preemptive e' praticamente impossibile, a meno che ad andare
in loop non sia lo scheduler del kernel... :)
Poi cosa fare di quel processo impazzito dipende da molte altre cose. Nel
caso peggiore te lo tieni sul groppone che si ciuccia il 99% di CPU e l'1%
rimane per gli altri processi, ma praticamente mai il 100%.
Bye.

 rimane per gli altri processi, ma praticamente mai il 100%.
]zac[
Non è vero sempre, i loop infiniti possono sottrarre tante risorse al
sistema da renderlo in ogni caso praticamente inutilizzabile (si ci sono
vari metodi di otimizzazione dello scheduler, ma nessuna risolutivo).
Sul lato 'user' il sistema cooperativo non si usa perchè le probabilità di
lungo e non prevedibile uso delle risorse è praticamente .. certo.
Avere un kernel preemptive è di solito più fonte di rallentamenti e di
qualche instabilità che di miglioramenti prestazionali (anche se sembra che
dovrebbe 'costringere' gli sviluppatori ad eliminare i 'main kernel lock'
(diciamo una operazione modale del kernel, tutto il resto si ferma).
In sintesi un kernel preemptive è utile, nel 99% dei casi, solo per avere un
basso tempo di risposta ai comandi utente, il che è utile praticamente alla
sola parte di input/output dei sistemi grafici per dare l'IMPRESSIONE di
velocità.