[Linux-Biella] che distro per P200?
PaulTT
linux@ml.bilug.linux.it
Wed, 16 Jun 2004 16:54:51 +0200
Marco Ermini wrote:
>PaulTT disse:
>[...]
>
>
>>>Magari tu intendi una cosa diversa?
>>>
>>>
>>>
>>io intendo per pe ke sia pe anke per i kernel task e non solo user level.
>>cioe' che anche se qualcosa gira come chiamata al kernel, puo' essere
>>interrotto da qualcosa piu' importante e non attende la fine
>>dell'esecuzione della chiamata stessa....
>>
>>
>
>Non l'ho capita - o meglio, non capisco dove, come e perché un task del
>kernel debba e possa essere "pre-empitato" (sicuramente questo non avviene
>in Linux), ma non fa nulla :-)
>
>
nel 2.6 avviene.
fai un make menuconfig e quarda l'help dell'opzione "preemptible kernel".....
se hai un sound interrupt e stai compilando qualcosa e hai una malloc()
grande, senza pe fino a quando non finisce, non suona, lo scheduler del pe se
ne fotte e interrompe cmq a un certo punto e riprende poi....
>
>>ma ora che scrivo forse c'e' un effettiva confusione di termini.
>>quest'ultima roba la chiamo preemptible, e si parlava di 'preemptive',
>>che probably non sono la stessa cosa, direi. indi stiamo facendo un
>>discorso sterile. kiedo venia
>>
>>
>
>L'unico "preempitive" che io conosca, comunque lo si scriva, secondo me (e
>secondo il Pippolini-Soda o quegli altri testi del cavolo che non ricordo
>sui sistemi operativi...) significa che la CPU può sospendere il task e
>trasferirlo ad un altro task, secondo un certo definito algoritmo di
>time-slicing codificato nel kernel dell'OS.
>
>
corretto, ma in talune condizioni il 2.4 aveva dei time-slices superiori
ai 100ms, indi poco preempt..... :-)
>while (GetMessage(&msg, ...)) {
> TranslateMessage(&msg);
> DispatchMessage(&msg);
>}
>
>
yes, pare, chissiricorda, chi puo' dirlo... non sapevo ancora il c, ai
tempi, sotto il 3.1 scrivevo solo .bat's...... :-)
>se non facevi una roba del genere, il "kernel" di Windows 3.x non riceveva
>mai il "controllo" della CPU, in quanto se lo teneva il task stesso nel
>momento in cui lo riceveva, quindi un programma scritto male (o molto più
>semplicemente una condizione di errore non controllata... roba molto
>frequente nei PC in quegli anni, bastava togliere il floppy ;-) poteva
>effettivamente bloccare tutto il sistema. Era quindi un multitasking ma
>"zoppo" perché non preempitive.
>
>Un OS preempitive invece è un multitasking time-sharing, in cui il kernel
>distribuisce il tempo di esecuzione ai vari processi, senza che essi
>debbano fare nulla. Quindi si parla di un qualsiasi OS come Unix, Minix,
>Linux, OS/2, Windows NT e successivi.
>
>
il concetto di time-sharing esiste dall'ITS e dai PDP-1*, se e'
per quello....
un os non e' un kernel, cmq.... il preemptible del 2.6 lo e' a priori, nel
senso che a un certo time-slice, preempta in ogni caso, senza aspettare la
chiusura delle f()
--
Gli uomini non sospettano
quale terribile carico stiano
trasportando a valle.
public gpg key: gpg --keyserver pgp.mit.edu --recv-key 2E61343C