Sab 24 Agosto, 15:27:07 - 2019

Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - Dymios

Pagine: [1] 2 3 ... 28
1
Sistemi Operativi / Re:Aiuto tesina!!
« il: Dom 13 Maggio, 11:25:17 - 2012 »
Si lo so infatti ho utilizzato quella funzione (o la fopen non ricordo). Solo il prof la usa nelle dispense e non riesco a farla funzionare..

Tra l'altro che voi sappiate crea problemi i prof se uno usa la fopen invece della open da lui descritta?

Nello specifico, tra fopen e open, usa rigorosamente la open, che è una system call. La fopen è una funzione standard del C. L'obbiettivo principale del corso è farti usare le system call!

Ciao!

2
Sistemi Operativi / Re:Esercizio Semafori 18/12/2002
« il: Ven 13 Aprile, 14:10:31 - 2012 »
Incrementa di m token il semaforo ;-)

Devi stare attento a rimettere esattamente tutti i token che hai tolto, altrimenti non funziona più niente :-)

3
Sistemi Operativi / Re:Esercizio Semafori 18/12/2002
« il: Ven 13 Aprile, 12:36:32 - 2012 »
wait(S1, m), non l'ho trovato da nessuna parte spiegato, e il suo funzionamento, ameno da quello che ho potuto capire (cercando di spiegarmi come potesse funzionare) è più o meno questo: "Metti il processo in attesa finchè S1 non vale m, dopodichè sblocca il processo e poni S1 = 0".

wait(S1, m) prova a scalare m token dal semaforo S1. Se il semaforo ha almeno m token, allora vai avanti, altrimenti vieni messo in attesa.
C'è differenza tra le wait singole e quelle multiple. Una wait fatta su m token ha meno priorità di una wait fatta su un singolo token. Ecco perchè in alcuni esercizi (i classici 1writer/Nreader) c'è un ciclo for di wait singole piuttosto che una singola wait multipla.


4
Ricerca Operativa / Re:modello!!
« il: Mer 11 Aprile, 14:12:08 - 2012 »
1) Una casa editrice deve effettuare il trasporto di libri da 3 depositi (D1, D2, D3) a 4 librerie (L1, L2, L3, L4). Nella seguente tabella sono riportati i costi unitari (espressi in euro) di trasporto da ciascun deposito a ciascuna libreria, le quantit`a di libri disponibili nei depositi e quelle richieste dalle singole librerie:

              L1    L2    L3     L4                 Disponibilità`
D1         0,5   0,8    1     1,5                      50
D2         0,7     2    0,8   0,5                     100
D3           1    0,5   1,5   0,6                      40
Rich.       30   70     45    45

Ad esempio, il deposito D1 ha una disponibilit`a di 50 libri e la libreria L3 ne richiede almeno 45; inoltre trasportare un libro da D1 a L4 costa 1,5 euro.
Poich`e i costi di trasporto sono a carico delle librerie, l’obiettivo `e quello di minimizzare il massimo fra i costi di trasporto sostenuti da ciascuna libreria e nel contempo soddisfare i vincoli di domanda e di offerta. Formulare il problema come problema di ottimizzazione.

Come ragioniamo? L'unità di costo è il trasporto del singolo libro da un magazzino verso una libreria. Nei vincoli dovremo andare ad imporre delle quantità minime o massime. Alla fine cosa interessa sapere alla casa editrice? Semplicemente quanti libri deve portare dal magazzino x alla libreria y per tutte le combinazioni di magazzino/libreria.

Possiamo utilizzare questo tipo di variabili:
x_{ij}: Numero di libri trasportati da D_i  a  L_j

La funzione obbiettivo è la minimizzazione del costo complessivo del trasporto (dal punto di vista della casa editrice) ed è pari a:
\tiny \min{(0,5x_{11} + 0,7x_{21} + 1x_{31}) + (0,8x_{12} + 2x_{22} + 0,5x_{32}) + (1x_{13} + 0,8x_{23} + 1,5x_{33}) + (1,5x_{14} + 0,5x_{24}+ 0,5x_{34})}.

Per soddisfare i vincoli di domanda devo imporre che ogni libreria alla fine otterrà la quantità di libri richiesta, perciò vanno inseriti questi vincoli:

x_{11}+x_{21}+x_{31} \geq 30  (L1)
x_{12}+x_{22}+x_{32} \geq 70  (L2)
x_{13}+x_{23}+x_{33} \geq 45  (L3)
x_{14}+x_{24}+x_{34} \geq 45  (L4)

Mentre per soddisfare i vincoli di offerta devo imporre che ogni magazzino non trasporti più libri di quanti ne abbia, perciò i vincoli sono:

x_{11}+x_{12}+x_{13}+x_{14} \leq 50   (D1)
x_{21}+x_{22}+x_{23}+x_{24} \leq 100   (D2)
x_{31}+x_{32}+x_{33}+x_{34} \leq 40   (D3)

Ultima cosa, i vincoli di dominio. Non ha senso trasportare mezzo libro oppure -1 libri, quindi imponiamo che le variabili siano intere e non negative:
x_{ij} \in Z \forall i,j
x_{ij} \geq 0 \forall i,j

Spero di esserti stato utile!
Ciao

5
Elettrotecnica / Re:Compito 18/02/2011
« il: Mar 10 Aprile, 12:09:47 - 2012 »
Su due piedi:
Quando t>=0, scompare Vg ma sia l'induttore che il condensatore erano a regime.
Questo vuol dire che l'induttore adesso si comporterà come un generatore di corrente, mentre il condensatore come un generatore di tensione. I valori iniziali di corrente e tensione sono quelli che c'erano ai loro capi poco prima di t=0.


6
Ricerca Operativa / Re:modello!!
« il: Mar 10 Aprile, 12:00:41 - 2012 »
Ciao,
guarda, in generale non esiste "una regola" per scrivere un modello.
Devi individuare il punto di vista corretto, ma è difficile da spiegare a parole.
Se posti un esempio di esercizio, lo facciamo.

7
News / Re:AGGIORNAMENTO PORTALE
« il: Dom 08 Aprile, 22:28:32 - 2012 »
Ma ancora non è possibile creare nuovi topic?

Adesso dovrebbe funzionare ;-)
Ciao

8
Consigli / Re:Informazione sul forum
« il: Dom 08 Aprile, 22:23:11 - 2012 »
scusate come posso aprirte un nuovo post?
con la nuova interfaccia non trovo il pulsante


Adesso dovrebbe essere ok  :-)

Ciao

9
Progettazione del Software / Re: thread
« il: Mar 08 Novembre, 08:50:04 - 2011 »
Con un single core questa differenza non si nota tanto, visto che comunque verrà eseguito un thread per volta, ma già con un dual core puoi eseguire due thread della stessa applicazione contemporaneamente (ovviamente su core diversi).

Questo non credo sia molto chiaro. Potrebbe sembrare infatti che, con un singolo core, viene eseguito un thread per volta, nel senso che prima inizia il threadA, poi termina e solo dopo inizia il threadB; cosa assolutamente non vera.
Lo scheduler del sistema operativo (o, in questo caso, quello della JVM) si occupa di mettere in condivisione la cpu tra tutti i thread. Le esecuzioni dei vari thread sono "interleaved", quindi virtualmente hai più thread che eseguono contemporaneamente (un po' il threadA, poi un po' il threadB e così via) ma in realtà in ogni istante di tempo la cpu può essere usata da un solo thread.
Nel caso di multipli core, se il codice del tuo thread usa parecchio la cpu allora la cosa migliora molto. Se hai thread che fanno tante operazioni di I/O allora l'uso di tanti core è quasi ininfluente. Quando fanno uso di dati in comune allora la cosa diventa ancora più complessa.

@gio_88:
I thread si usano tantissimo nelle interfacce grafiche. Ad esempio in Java, se alla pressione di un pulsante devi fare un'operazione non banale (del tipo mi collego a internet e invio un dato) cioè un'operazione che occupa un po' di tempo, ti conviene eseguirla dentro un thread separato. In questo modo, durante l'esecuzione di questa operazione non vedrai l'interfaccia grafica bloccata ma continuerà ad essere interattiva.


Ciao!

10
News / Master Executive in Cyber Security - Disponibili Borse di Studio
« il: Lun 24 Ottobre, 15:45:40 - 2011 »
Partirà il primo Master Executive in Cyber Security organizzato da GCSEC in collaborazione con la Royal Holloway University of London.
Il Master si terrà a Roma presso la sede di Poste Italiane, sono disponibili 12 borse di studio a copertura totale dei costi. L’iscrizione va effettuata entro il 1 Dicembre 2011, le informazioni relative al master, l'application form e la brochure sono consultabili all’indirizzo internet www.gcsec.org/msc

11
Elettronica / Re: Trigger di Schmitt
« il: Ven 02 Settembre, 10:15:21 - 2011 »
Può essere su quale vuoi. Il comportamento chiaramente sarà diverso.
L'importante è che ci sia la controreazione positiva che ti crea l'isteresi.

Ciao

12
Sistemi Operativi / Re: domanda thread per tesina
« il: Mer 31 Agosto, 14:40:42 - 2011 »
questo perchè evidentemente il server non accetta connessioni parallele.

13
Sistemi Operativi / Re: recuperare indirizzo di una struct
« il: Mer 31 Agosto, 14:39:08 - 2011 »
si

14
Sistemi Operativi / Re: progetto elenco telefonico
« il: Mer 31 Agosto, 13:21:54 - 2011 »
Ti conviene gestire i login autenticando ogni richiesta. Ti spiego: quando fai partire il client chiedi user e pass. Il client fà la verifica dell'account con il server e ti dà l'ok a proseguire. Da questo momento in poi ogni richiesta sarà preceduta dalla stessa procedura di autenticazione, ma in maniera "silenziosa".
Gestire le sessioni non è facile e rischi di non prevedere tante cose o di introdurre bug di sicurezza notevoli.

Per i semafori la situazione è abbastanza comune. Tanti thread che possono accedere contemporaneamente alla stessa cosa. Tutti possono leggere contemporaneamente ma uno solo può scrivere e mentre questo scrive nessuno può leggere o scrivere (mutua esclusione). Si risolve con 2 semafori: uno generico con N token e uno binario. N sarebbe il numero massimo di thread lettori ammessi.

Quando uno deve leggere prende un token dal generico e alla fine lo rilascia. Se uno deve scrivere invece prende prima tutti i token del generico (ci assicuriamo che nessuno stia o possa leggere) e poi prende il token del binario (mutua esclusione per gli scrittori). Alla fine rilascia tutto.

15
Sistemi Operativi / Re: recuperare indirizzo di una struct
« il: Mer 31 Agosto, 13:12:11 - 2011 »
Ti basta semplicemente aprire (tramite una open) un file, poi fai una write a partire dal puntatore alla tua struct per un totale di sizeof(tua_struct) bytes.

Ciao!

Pagine: [1] 2 3 ... 28