.dsy:it. Pages (37): « First ... « 9 10 11 12 [13] 14 15 16 17 » ... Last »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- [SIS. OP. - BRUSCHI] Info 2004/05 (http://www.dsy.it/forum/showthread.php?threadid=17700)


Posted by elpampero on 14-04-2005 08:46:

Riprendendo il discorso della monoprogrammazione:
Concorrenti= due processi sono concorrenti se la loro esecuzione si sovrappone nel tempo.

Nel momento in cui un sistema monoprogrammato può essee time-sharing (questo è appurato dalle dispense!) può verificarsi una situazione in cui si alternino 2 processi p0 e p1:
In questo senso i due processi sono concorrenti perchè in un intervallo di tempo i due processi si sovrappongono


Posted by linked on 14-04-2005 08:50:

esatto, allora la domanda é: come fanno ad esistere 2 processi in esecuzione (e quindi in memoria) se non c'é multiprogrammazione?

secondo me il timesharing in monoprogrammazione é da intendersi nel caso venga lanciato un processo e questo non termini entro un intervallo di tempo predefinito


Posted by lorybu on 14-04-2005 09:29:

Ciao ragazzi e questa com'è??

- Avrebbe senso realizzare una architettura a processi su un sistema sprovvisto di meccanismo di
interruzione?

A. no, perche' l'interruzione e' essenziale per implementare i meccanismi del nucleo
B. si, perche' impedisce che un singolo programma monopolizzi la CPU
C. no, perche' non sarebbe possibile realizzare il time-sharing
D. si, nel caso in cui tutti i processi siano fortemente interattivi

__________________
Le frasi mitiche...
::mm...ma nel compito mette anche le domande??::
::.. compilare compila... è tutto corretto, il fatto è che non fa quello che dico io.. cosa potrebbe essere?::
::Il fatto è che io le cose le so...poi dopo quando sono all'interrogazione non mi vengono...::


Posted by lorybu on 14-04-2005 09:39:

la risposta a questa domanda è la B
e non la C!!!

Un sistema concorrente è necessariamente:
A. multiprogrammato
B. multithreaded
C. time-sharing
D. multithreaded e time-sharing
infatti il libro specifica questa cosa perchè in un ambiente multithreaded i Thread condividono proprio i Dati!

__________________
Le frasi mitiche...
::mm...ma nel compito mette anche le domande??::
::.. compilare compila... è tutto corretto, il fatto è che non fa quello che dico io.. cosa potrebbe essere?::
::Il fatto è che io le cose le so...poi dopo quando sono all'interrogazione non mi vengono...::


Posted by elpampero on 14-04-2005 09:55:

lorybu, perchè? non capisco cosa c'entrino i dati con la concorrenza...


Posted by elpampero on 14-04-2005 10:02:

Avrebbe senso realizzare una architettura a processi su un sistema sprovvisto di meccanismo di
interruzione?

A. no, perche' l'interruzione e' essenziale per implementare i meccanismi del nucleo
B. si, perche' impedisce che un singolo programma monopolizzi la CPU
C. no, perche' non sarebbe possibile realizzare il time-sharing
D. si, nel caso in cui tutti i processi siano fortemente interattivi


La risposta è la D. La vori fortemente interattivi sono I/O bound e il busy waiting è molto limitato (infatti essendo I/O bound il CPU burst è molto basso)


Posted by elpampero on 14-04-2005 10:12:

Questo è quello che ho trovato "Il time sharing si può realizzare anche in monoprogrammazione; infatti non è detto che, istante per istante, debbano essere presenti in memoria tutti i programmi che vengono eseguiti, cioè si può avere time sharing anche con un solo programma, volta per volta, presente in memoria insieme al sistema operativo, anche se è ormai un caso limite. Anche in questo caso, anche se non rigorosamente, si può parlare di multiprogrammazione, perché l'effetto pratico apparente è quello di più utenti o più programmi che utilizzano la macchina nello stesso tempo: la differenza è solamente relativa alla allocazione del programma, o dei programmi, in memoria"


Posted by elpampero on 14-04-2005 10:24:

Un sistema concorrente è necessariamente:
A. multiprogrammato
B. multithreaded
C. time-sharing
D. multithreaded e time-sharing

Secondo me è la C

Ricapitolando penso sia così:
- Il time-sharing ha senso in monoprogrammazione (se in un momento ho un solo programma in memoria)

- Un sistema uniprogrammato può essere concorrente

- Un sistema concorrente deve essere per forza Time-Sharing


Posted by lorybu on 14-04-2005 11:30:

-I thread condividono lo stesso spazio di indirizzi per questo si chiama concorrenza.
-Un thread padre nel momento in cui crea un thread figlio può eventualmente iniziare a concorrere con lui proprio perchè condividono una parte degli indirizzi, per questo si dice che concorre.
Il libro dice esattamente all'inizio del Cap. 5:
"..Un processo multithread è in grado di lavorare a più compiti in modo concorrente.."

__________________
Le frasi mitiche...
::mm...ma nel compito mette anche le domande??::
::.. compilare compila... è tutto corretto, il fatto è che non fa quello che dico io.. cosa potrebbe essere?::
::Il fatto è che io le cose le so...poi dopo quando sono all'interrogazione non mi vengono...::


Posted by lorybu on 14-04-2005 11:44:

Originally posted by elpampero

Secondo me è la C

Ricapitolando penso sia così:
- Il time-sharing ha senso in monoprogrammazione (se in un momento ho un solo programma in memoria)

- Un sistema uniprogrammato può essere concorrente

- Un sistema concorrente deve essere per forza Time-Sharing


Io direi che il Time-Sharing ci inganna...
si perchè tu potresti avere un unico processo che sotto ha 10 Thread concorrenti... ma in realtà non fai nessuno Swap fra processi, giusto!!
Quindi sono arrivato alla conclusione giusta dopo aver trovato questo esercizio sulla rete:


Consideriamo due processi P1 e P2 eseguiti su un sistema multiprogrammato (quindi in interleaving). I due processi condividono una risorsa, o una variabile (nell'esempio è A).
non tutti i possibili interleaving sono leciti (race condition, in italiano "corsa critica");
l'accesso alla variabile o risorsa deve avvenire in modo mutuamente esclusivo.
P1: ...... P2: ......
A=A+1; /*istruzione A1*/ A=A+2; /*istruzione A2*/
...... ......
Sappiamo che il valore iniziale di A è 0. Ci aspettiamo che al termine dell'esecuzione di P1 e P2 il valore di A sia 3.
In realtà una assegnazione a variabile viene eseguita dalla macchina con una sequenza di istruzioni macchina elementari, ad esempio potrebbe essere la seguente:
--carico il valore di A in un registro;
--sommo una costante (1 oppure 2) al registro;
--trasferisco il valore del registro all'indirizzo di memoria di A.

L'interleaving si verifica a livello di istruzioni macchina, quindi è possibile che al termine di una esecuzione "arbitraria" delle due assegnazioni il valore di A sia 1 oppure 2, invece del valore desiderato 3!

Diremo quindi che:
P1 e P2 sono due processi concorrenti
,
le istruzioni A1 e A2 devono essere eseguite in mutua esclusione;
le istruzioni A1 e A2 rappresentano due sezioni critiche



La soluzione è che: I due processi condividono una risorsa, o una variabile (nell'esempio è A).
è per questo che in questo esempio di multiprogrammazione si ha la concorrenza!!!
Invece in un ambito MultiThreading questa situazione è di Default perchè si condivide lo stesso spazio di indirizzi!!
dimmi che ti ho convinto!!????

__________________
Le frasi mitiche...
::mm...ma nel compito mette anche le domande??::
::.. compilare compila... è tutto corretto, il fatto è che non fa quello che dico io.. cosa potrebbe essere?::
::Il fatto è che io le cose le so...poi dopo quando sono all'interrogazione non mi vengono...::


Posted by lorybu on 14-04-2005 11:48:

A questo punto però la domanda è posta male :?

__________________
Le frasi mitiche...
::mm...ma nel compito mette anche le domande??::
::.. compilare compila... è tutto corretto, il fatto è che non fa quello che dico io.. cosa potrebbe essere?::
::Il fatto è che io le cose le so...poi dopo quando sono all'interrogazione non mi vengono...::


Posted by elpampero on 14-04-2005 12:51:

Guarda..non riesco più a seguirti perchè stiamo arrivando a ragionamenti per me troppo contorti...


Posted by T_M_P on 14-04-2005 13:43:

No, io ancora sono in alto mare ma non mi hai convinto.. :D

Secondo me il fatto di avere accesso ad una risorsa condivisa non porta alla concorrenza: la concorrenza è in tesa in senso temporale (es. nel tempo da t a t+2 si eseguono 2 processi che non devono per forza essere 2 thread di un processo quindi essendo 2 processi distinti non hanno indirizzi condivisi)..

O sbaglio?


Posted by elpampero on 14-04-2005 13:44:

Sì..la concorrenza è la sovrapposizione dei processi in senso un determinato intervallo di tempo


Posted by linked on 14-04-2005 15:22:

elpampero HAI RAGIONE la risposta é C
dopo infinite pippe mentali ho raggiunto il karma,
nel documento di corbato é la risposta:

...using different parts of the hardware at the same time for different tasks, or one can mean several persons making use of the computer at the same time. The first meaning, often called
multiprogramming, is oriented towards hardware efficiency in the sense of attempting to attain complete utilization of all components.The second meaning of time-sharing is primarily concerned with the efficiency of persons trying to use a computer. Computer efficiency should still be considered but only in the perspective of the total system utility.


All times are GMT. The time now is 20:34. Pages (37): « First ... « 9 10 11 12 [13] 14 15 16 17 » ... Last »
Show all 553 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.