 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Sistemi Operativi] Esercizi Clicca QUI per vedere il messaggio nel forum |
| Cr34t|v3 |
Ecco dove trovare gli esercizi x l'esame
http://homes.dico.unimi.it/sisop/La.../nuovi-Lab.html
Ad una prima lettura, sembrano abbastanza complicati...
Visto, che i docenti, non daranno indicazioni, mi chiedevo se fosse possibile postare nel forum gli esercizi sviluppati, in modo da riuscire a preparare il maggior numero di esercizi x il compito...
Ammesso di riuscire a passar il test...
Si accettano di buon grado collaboratori, sopratutto riguardo Wizozz (Speriamo che non capiti propio lui) ...
(Appena avro fatto qualcosa, lo postero' sul forumz)
Che ne pensate? |
| rafnet |
Originally posted by Cr34t|v3
Ad una prima lettura, sembrano abbastanza complicati...
Visto, che i docenti, non daranno indicazioni, mi chiedevo se fosse possibile postare nel forum gli esercizi sviluppati, in modo da riuscire a preparare il maggior numero di esercizi x il compito...
Ammesso di riuscire a passar il test...
Si accettano di buon grado collaboratori, sopratutto riguardo Wizozz (Speriamo che non capiti propio lui) ...
(Appena avro fatto qualcosa, lo postero' sul forumz)
Che ne pensate?
Mi sembra un' ottima idea appena finisco di fare un esercizio lo posto:D |
| rafnet |
| nessuno è riuscito a fare ancora niente il primo problema di unix vorrei vedere come si fa....... help me :? |
| rox |
| Sapete se la prova di laboratorio è lo stesso giorno della prova teorica? |
| rafnet |
Originally posted by rox
Sapete se la prova di laboratorio è lo stesso giorno della prova teorica?
io ho letto di sì |
| Nonsaprei |
| Sì, è lo stesso giorno e se non la disputi devi rifare tutto l'esame!! |
| Morgan |
| Se l'appello scritto di sistei operativi e' al pomeriggio quando ci fanno fare la prova di labo? Ci daranno il tempo necessario spero... |
| CanePazzo |
La prova di laboratorio mi sa che non è nello stesso giorno del test!! Ma sara dopo aver superato con esito positivo il test !! Infatti se andate nel sito del prof dice....<"L'esame prevede una prova teorica con domande a risposta multipla o a risposta aperta e una prova di laboratorio. Potranno accedere alla prova di Laboratorio gli studenti che superano la prova scritta.">
Provare per credere http://homes.dico.unimi.it/sisop// !!
ciao! |
| Cr34t|v3 |
Bisogna fare attenzione a non dare info errate !!!!
Tnk CanePazzo |
| brando |
io ho chiesto alla prof quando c'e' la prova di laboratorio e mi ha detto dopo circa una settimana,10 giorni!
ciao |
| Sockit2me |
Ciao,volevo sapere se a quacuno a voglia di trovarsi in laboratorio settimana prox per fare qualche esercizio di sistemi operativi;e poi se qualcuno sa dove poter trovare gli esercizi degli esami fatti nel 2003 (ho visto che ce ne sono alcuni,ma sono degli appelli del 2002) !
Ciaaaao !!!! |
| rafnet |
| Ciao io se vuoi sono disponibile a venire in lab per ripassare, è sempre utile |
| Sockit2me |
| Ti lascio il mio cell [edit]te lo rimuovo, non si sa mai, queste cose ditele via pm/mail per favore[/edit].....se vuoi chiamami cosi' ci mettiamo d'accordo! |
| Sockit2me |
| C'è qualcuno che deve fare l'eame di sitemi operativi Vernerdi 20??????:evil: |
| matrix |
| si'...ma il problema sara' la parte di laboratorio...per ora c'ho passato 2 giorni interi...e non ci ho capito ancora niente di niente... |
| Cancer |
| Che problemi hai? Io per ora ho fatto solo gli es. di Windowz... |
| matrix |
| ho provato a fare i primi 2 es di linux ma c'ho passato delle ore e non mi vengono....(se riuscissi magari a fare soprattutto il secondo, e poi me lo mandi mi faresti un piacere, cosi' prendendo esempio da quello magari riesco a fare gli altri) |
| Cancer |
La versione UNIX pensavo di implementarla dopo lo scritto (alla fine il problema penso sia nel capire l'algoritmo per risolvere il problema... Poi farlo in Win o Unix non cambia molto... solo che in Windows devi scrivere quelle 2-3000 righe in piu...)
Se vuoi ti posso mandare subito la versione per Windows... In Unix in ogni caso e' tutto molto piu' semplice,visto che non devi fare i salti mortali per ereditare gli handle delle pipes!
A proposito, approfitto per chiedere una cosa che spero qualcuno sappia:
In Windows:
supponiamo di avere un processo principale (MAIN) e due processi A e B.
MAIN crea A e B e deve far in modo che entrambi possano dialogare fra di loro e con MAIN stesso... Dovremmo passare 4 handle di pipe a ciascun figlio.
Visto che non abbiamo 4 canali di I/O standard da redirezionare, l'unico modo che mi e' venuto in mente e' stato aprire una pipe MAIN-A e quindi passare tramite ad A tramite questa pipe gli handle per la comunicazione via pipe tra A e B...
Qualcuno sa un modo piu semplice?
Grazie |
| matrix |
finalmente sono riuscito a fare l'esercizio del distributore...capendo quindi molte cose :)
domanda: il programma principale (main) crea tre processi che chiameremo Arlecchino, Pantalone e Balanzone, collegati tra di loro e con il processo main medesimo mediante opportune pipe, da crearsi coerentemente con le specifiche delle attivita' di comunicazione di cui ai successivi punti. I tre processi eseguono file sorgente distinti
cosa vuol dire che i tre processi eseguono file sorgente distinti? che il docice dei processi lo devo mettere su file diversi? e se si' come li metto i codici dei processi?
grazie |
| Cancer |
Si,e' come hai detto tu:
devi avere 3 files ".c", uno per ogni processo.
Se sei sotto UNIX per eseguirli dovrai fare una fork() e quindi una exec() di qualche tipo...
Ciao! |
| Alessandra |
Ciao a tutti,
qualcuno di voi bravissimi super-tecniconi del Forum, potrebbe postare la soluzione di qualche esercizio di Sistemi operativi? Così quelli che hanno pochissimo tempo e studiano alla notte, poichè lavorano fino a sera e hanno famiglia (come me ad esempio) possono studiarseli e confrontarli con i propri cercando di capire e magari di avere qualche possibilità all'esame.
Grazie1000 in anticipo, a tutti i bravissimi tecniconi del dsy e dintorni.
Alessandra |
| Hobbit82 |
qualcuno mi aiuta a risolvere questi due esercizi?
1)
Processo Burst Time
P1 10
P2 29
P3 3
P4 7
P5 12
QUALI SONO I TEMPI DI ATTESA NEL FCFS, SJF NON PREEMTIVE E NEL RR (CON Tslice = 10)?
2)
SI CONSIDERINO I SEGUENTI PROCESSI, DOVE sem1 e sem2 SONO SEMAFORI GENERALIZZATI
down(sem1) down(sem2)
write(a) write(b)
up(sem2) up(sem1)
(I SEMAFORI SONO INIZIALIZZATI A sem1=5 sem2=1)
che stringa esce? quale è il procedimento?
grazie a tutti |
| matrix |
ho un problema con windows e visual studio(prima volta che lo uso)....
quindi ho visto che prima di iniziare, apro un progetto win32 console application, giusto? una volta creato il progetto apro il file in cui ho scritto il codice e lo compilo....
il problema che ho e' col file d'esempio che c'e' nel sito di sistemi sui thread c'e' nell'intestazione #include "stdafx.h"
e quando provo a compilarlo mi da errore dicendomi che non lo trova.... pero' togliendo quell'include il file compila, e funziona correttamente.... a sto punto mi chiedo...a cosa serve quell'include? e se serve come risolvo il problema che non me lo compila?
ancora grazie :)
ciao |
| Cancer |
Allora, per quanto riguarda il 1°
non sappiamo con che ordine arrivano... Quindi e' un po' dura applicare il FCFS... potresti supporre che il sistema li scheduli nell'ordine in cui sono, ma cmq e' solo 1 supposizione!
Per quanto riguarda lo SJF, avremmo un Tmedio = 25,2 (che risulta minimizzato). Infine, per RR avremmo un Tmedio = 42,4(suppondendo che la coda iniziale sia P1-P2-P3-P4-P5) ... spero di non aver segato i conti...
Per l'esercizio due: potremmo avere infinite sequenze di esecuzione... ad occhio posso dirti che una sequenza tipo bb* non e' possibile...
Se ho sbagliato correggetemi! Thanx! |
| Cancer |
Infatti... Ho segato un conto:
il RR ha Tmedio = 35,2...
Scusate! |
| Cancer |
Non serve... se non sbaglio e' legato a versioni precedenti di Visual Studio... Lo avevo chiesto alla prof. di laboratorio e ha detto che lo aveva incluso per sbaglio...
Ciao! |
| unidavide |
Ciao, forse era meglio se scrivevi anche le risposte delle due domande cmq:
la prima era la num 16 del ESAME DI GENNAIO 2003
16) Dati i seguenti processi con i relativi burst time:
Processo Burst time
P1 10
P2 29
P3 3
P4 7
P5 12
quali sono i tempi di attesa nel FCFS, SJF non preemtive e nel RR (con Tslice=10), considerando che arrivino nell'istante 0 e con tempo di context switch uguale a 0?
A. nessuno
B. 140, 65, 115
*C. 28, 13, 23
D. 23, 13, 28
sul dsy la risposta è la c io ho provato a fare i calcoli ma non capisco come venga fuori il 23
FCFS (0+10+39+42+49) /5 = 28
SJF (0+3+10+20+32) /5 = 13
RR (0+10+20+23+30) /5 = 16.6
Se qualcuno mi puo spiegare perchè viene 23...
la seconda era:
6) Si considerino i seguenti processi, dove sem1 e sem2 sono semafori generalizzati:
down(sem1) down(sem2)
write(a) write(b)
up(sem2) up(sem1)
Quale tra le seguenti sotto-stringhe non può mai essere generata durante l'esecuzione dei suddetti programmi assumendo che i semafori siano così inizializzati sem1=5 e sem2=1?
A. aaabbbbab
B. aaaabbbaa
C. abbbaa
*D. bababa
secondo me la D del dsy è segata la risposta giusta dovrebbe essere la C infatti facendo una down decrementi il semaforo e facendo un up lo incrementi quindi dopo aver fatto una down su sem1 (quando scrivi a) sem1=4 e sem2=2 a questo punto puoi fare solo due down di sem2 consecutive quindi non dovresti poter scrivere abbb |
| rafnet |
mi potete spiegare in che modo vengono trovati questi valori?
come si crea il calcolo?
FCFS (0+10+39+42+49) /5 = 28
SJF (0+3+10+20+32) /5 = 13
RR (0+10+20+23+30) /5 = 16.6
|
| Cancer |
Originally posted by unidavide
sul dsy la risposta è la c io ho provato a fare i calcoli ma non capisco come venga fuori il 23
FCFS (0+10+39+42+49) /5 = 28
SJF (0+3+10+20+32) /5 = 13
RR (0+10+20+23+30) /5 = 16.6
Se qualcuno mi puo spiegare perchè viene 23...
(a parte che io avevo calcolato il tempo di turnaround e non quello di attesa...:D )
In ogni caso non capisco come si possa applicare un FCFS a processi che arrivano contemporaneamente...
Tu hai supposto la sequenza P1-P2-P3-P4-P5, ma potrebbero benissimo essere eseguiti come
P5-P4-P3-P2-P1 e in tal caso
FCS (0+12+19+22+51) = 21
Bho,forse cambiando l'ordine si arriva anche ad un 23, ma mi sa che tutto dipende dal sistema... |
| Nonsaprei |
Originally posted by Cancer
Non serve... se non sbaglio e' legato a versioni precedenti di Visual Studio... Lo avevo chiesto alla prof. di laboratorio e ha detto che lo aveva incluso per sbaglio...
Ciao!
Che versione si userà? |
| unidavide |
Originally posted by rafnet
mi potete spiegare in che modo vengono trovati questi valori?
come si crea il calcolo?
FCFS (0+10+39+42+49) /5 = 28
SJF (0+3+10+20+32) /5 = 13
RR (0+10+20+23+30) /5 = 16.6
non c'è molto da spiegare leggi come funzionano gli algoritmi e capisci supito perchè ci son quei tempi di attesa |
| unidavide |
Originally posted by Cancer
In ogni caso non capisco come si possa applicare un FCFS a
processi che arrivano contemporaneamente...
i processi arrivano quasi contemporaneamente, penso che in questo caso la cpu sia una sola e puo accodare una richiesta alla volta, ma cmq anche se i processi all'interno del sistema avessero priorita diverse e quindi non si sa chi sia il primo che va in coda che senso avrebbe fare un esercizio di questo tipo???
E' chiaro che se non sai l'ordine non puoi calcolare il FCFS ma se le risposte sono 4 e c'è una giusta l'ordine è per forza quello no? |
| Cancer |
Originally posted by unidavide
i processi arrivano quasi contemporaneamente, penso che in questo caso la cpu sia una sola e puo accodare una richiesta alla volta, ma cmq anche se i processi all'interno del sistema avessero priorita diverse e quindi non si sa chi sia il primo che va in coda che senso avrebbe fare un esercizio di questo tipo???
E' chiaro che se non sai l'ordine non puoi calcolare il FCFS ma se le risposte sono 4 e c'è una giusta l'ordine è per forza quello no?
Bhe, se il testo dice "i processi arrivano tutti all'istante 0" non significa che arrivano "quasi contemporaneamente", ma arrivano proprio contemporaneamente! In un sistema reale questa "contemporaneità" non ci sarà...
Pero' non posso nemmeno supporre un ordine, se nessuno mi dice che P1 arriva prima di P5.
In ogni caso tra le risposte possibili c'era anche "nessuna"...
Cmq penso che se ci sara' un problema di questo tipo all'esame, ci pensera il prof. a chiarire (o almeno spero :-) )
Ciao! |
| matrix |
| ma nel test ci saranno anche domande di laboratorio come gli altri anni, o solo teoria? |
| Cr34t|v3 |
| Pronti x l'esame |
| Sockit2me |
Ciao......
...a tutti quelli che domani devono sostenere l'appello di Sistemi Operativi...se volete stasera ci si becca in chat per discutere le domande a risposta multipla degli appelli di Giugno 2002,Luglio 2002,Gennaio 2003,Febbraio 2003.
- Alle 22.30
- Contraddistiguete il nick con xxxS.O
Ciao |
| matrix |
altra domanda :)
nel testo del primo esercizio di windows c'e' scritto:
devono esserci tre programmi eseguibili corrispondenti ai tre processi, tutti mandati in esecuzione dal main()
come li creo? 3 differenti sorgenti ognuno con un proprio main?
ho provato ma mi da un errore di questo tipo: WpipeFiglio.obj : error LNK2005: _main already defined in WpipePadre.obj
ho provato a compilare pure WpipeFiglio e WpipePadre, presi dal sito di laboratorio...ma creando un progetto, e mettendoci dentro questi 2 file, compilando tutto mi da sempre quel problema....
come devo settare il tutto per farli funzionare?
grazie ancora |
| Mirthis |
Ciao,
ho iniziato oggi a dare un'occhiata agli esercizi di laboratorio e devo dire che la situazione e' abbastanza tragica. Mi sono fermato sul primo es per win, perche' ho le idee poco chiare su come creare e gestire le pipe dhe servono per la comuicazione tra i tre processi.
Qualcuno sa darmi una mano o puo inviarmi del codice via mail??
thx |
| matrix |
risolto il problema precedente....ma non l'esercizio :)
se qualcuno trova un sito, o cmq qualcosa fatto molto bene(un bel tutorial) su come si gestiscono le pipe su windows...lo dice?
una volta che forse avevo capito come redirezionare le cose all'altro processo...ecco che misteriosamente il printf non funziona piu' :( come si fa a prendere dati da una pipe, scriverci sopra, e riuscire anche a fare un printf?
un problema forse piu' semplice invece:
quando si fa la execv in linux, avendo 3 processi diversi che comunicano tra di loro con pipe...come faccio? cioe' creo le pipe nel main, ma poi negli altri sorgenti come vengono ereditate? bisogna ricrearle?
grazie |
| holylaw |
Qualcuno mi sa dire com'e' stato lo scritto del 20 (se non erro)?? quante domande?? erano più esercizi o domande teoriche?? precise o vaghe?? possibili i impossibili?? etc...
TNX :) |
| Mirthis |
Originally posted by holylaw
Qualcuno mi sa dire com'e' stato lo scritto del 20 (se non erro)?? quante domande?? erano più esercizi o domande teoriche?? precise o vaghe?? possibili i impossibili?? etc...
Ciao,
il 20 lo scritto era di 25 quesiti a scelta multipla(4 possibilita' per ognuno). Ci hanno lasciato circa un'ora di tempo.
Le domande erano praticamente tutte di teoria, e secondo me in alcuni casi erano anche poco chiare,. |
| Sockit2me |
Cerco DISPERATAMENTE :shock: qualcuno per fare gli esercizi di laboratori per la seconda parte di Sistemi Operativi
Contattatemi a AndreaQuartieri@hotmail.com:shock: |
| Hobbit82 |
So che puo sembrare da scansafatiche o non molto onesto ma qualcuno potrebbe mandarmi un esercizio esempio tra quelli dati dal prof.
Ne ho bisogno per capire come funziona
grazie |
| rafnet |
Possibile che non c'è nessuno che ha fatto un esercizio?
Anche io sono in alto mare mi sto cagando un po' |
| Sockit2me |
| Anch'io sono a pecora!!!...voi quando lo dovete fare:il 3 o l'8 ? |
| Mirthis |
Ciao,
io ho fatto 9 dei 10 esercizi di Unix, anche se ho molti dubbi sulla loro corettezza(fanno quello che devono ma il problema e' come lo fanno :PP).
Purtroppo nn li ho su questo pc e quindi nn posso mandarveli ora, pero' sicuramente posso farlo domani(forse sarebbe meglio via mail).
Ad ogni modo farebbe anche a me comodo avere gli esercizi svolti da qualcun altro, per vedere se ho capito come andavano fatti o meno. Ora poi mi aspettano quelli di win e sara' una tragedia.
Per l'esercizio che mi manca da fare su Unix qualcuno sa dirmi come devo gestire le pipe nel terzo esercizio(il problema sono i sorgenti in file diversi)?
grazie
bye |
| eskimo |
Ciao... sono abbastanza bastardi sti esercizi... soprattutto perchè in ognuno c'è un mix di processi, corse critiche ecc!!
cmq io sto quasi finendo il primo, sono un po indietro, ma credo che man mano che si facciano diventi forse più immediato.
Mirthis :se non sbaglio per mettere il codice di un figlio (ad esempio) su un altro sorgente devi usare una exec che ti permette di specificare dove si trova il "programma" che il processo deve usare. Si può usare sia execvp o exelp dove puoi specificare il filename dell'altro sorgente.
Comunque dovresti guardare gli esempi della exec sulla pagina del laboratorio. Il codice del figlio si trova in un altro file...
se trovi il tempo non è che manderesti anche a me qualcuno di quelli che hai fatto?? altrimenti fa niente...
eskimo82@virgilio.it |
| Gwath |
Se ti va di mandarlo anche a me... sono in un mare di shit......... (vabbè cambierò pusher!!!!) tonyboch@yahoo.it
Gw@th |
| Lestat de lioncourt |
Originally posted by Mirthis
Ciao,
io ho fatto 9 dei 10 esercizi di Unix, anche se ho molti dubbi sulla loro corettezza(fanno quello che devono ma il problema e' come lo fanno :PP).
Purtroppo nn li ho su questo pc e quindi nn posso mandarveli ora, pero' sicuramente posso farlo domani(forse sarebbe meglio via mail).
Ad ogni modo farebbe anche a me comodo avere gli esercizi svolti da qualcun altro, per vedere se ho capito come andavano fatti o meno. Ora poi mi aspettano quelli di win e sara' una tragedia.
Per l'esercizio che mi manca da fare su Unix qualcuno sa dirmi come devo gestire le pipe nel terzo esercizio(il problema sono i sorgenti in file diversi)?
grazie
bye
io ho pensato di passare gli handle delle pipe come parametri argv dei processi figli (passandoli come parametri alle execl) |
| Mirthis |
[Mirthis :se non sbaglio per mettere il codice di un figlio (ad esempio) su un altro sorgente devi usare una exec che ti permette di specificare dove si trova il "programma" che il processo deve usare. Si può usare sia execvp o exelp dove puoi specificare il filename dell'altro sorgente.
Comunque dovresti guardare gli esempi della exec sulla pagina del laboratorio. Il codice del figlio si trova in un altro file...
Il problema nn era quello, ma il fatto che dopo la exec nn so come recuperare i descrittori per accedere alla pipe. |
| Mirthis |
Ho mandato gli esercizi a tre persone(quelle che mi hanno mandato una mail o un mess tramite il forum). Se una di queste si occupa di inoltrarli(magari dopo averli sistemati, visto che nn so se sono giusti)al posto mio sarebbe meglio :P
Io intanto aspetto qualcuno che mi illumini su win.
bye :) |
| Mirthis |
Originally posted by Lestat de lioncourt
io ho pensato di passare gli handle delle pipe come parametri argv dei processi figli (passandoli come parametri alle execl)
Si anch'io ci ho pensato. ma nn ho ancora provato a farlo. Cmq bisogna stare a convertire i descrittori in caratteri e poi e poi riconvertirli in interi nel processo figlio, mi sembra strano che nn ci sia un modo migliore per fare questa cosa. Si dovrebbe riuscire con le pipe con nome, ma nn riesco a crearle. |
| eskimo |
Ciao m'è capitata na cosa strana (forse per altri non lo è):
come errore di compilazione mi da errore nel file header semaphore.h che è però nella libreria standard....
che devo fare? forse non ho incluso qualche header che ha bisogno semaphore???
thx |
| la spagnola |
CIAO A TUTTI!
Se uno di voi ha seguito il corso di informatica teorica,puo darmi un po di informazioni rigurda al esame e alle dispense che sono da studiare?Grazie in anticipo |
| la spagnola |
PLS UNO DI VOI PUO INOLTRARE I ESERCIZZI ANCHE A ME IN QUESTO INDIRIZZO:Esmeralda.Hasanaj@tele2.com
thks |
| Novalis |
mi premeva chiedervi una cosa...
che parametri date a gcc per compilare i sorgenti per linux? |
| Mirthis |
Originally posted by eskimo
Ciao m'è capitata na cosa strana (forse per altri non lo è):
come errore di compilazione mi da errore nel file header semaphore.h che è però nella libreria standard....
che devo fare? forse non ho incluso qualche header che ha bisogno semaphore???
thx
Anch'io avevo dei problemi. Io so solo che quando ci sono di mezzo thread e robe simili bisogna compilare con gcc -D_REENTRANT -lpthread ecc.... So che un errore simile al tuo si ha se cerchi di compilare i file normalmente, poi magari nn e' per quello :P |
| Novalis |
| quindi com'è l'esatta riga di comando per compilare il file "prova.c"? |
| Mirthis |
Originally posted by Novalis
quindi com'è l'esatta riga di comando per compilare il file "prova.c"?
beh dovrebbe essere:
gcc -D_REENTRANT -lpthread prova.c -o nomeeseguibile |
| Novalis |
| adesso provo... thanks!:-D |
| eskimo |
| Grazie mirthis... si io metto quella riga ma me lo fa lo stesso, la Pagani mi ha detto che devo guardare nella man delle librerie dei semafori o nel man delle syscall dei semafori e vedere se devo mettere altri header o cose simili... non ho ancora avuto tempo perchè sono andato avanti... |
| eskimo |
help! nel secondo esercizio quando se sono nel distributore e ho bisogno di bottiglie, mando un segnale al produttore e aspetto con pause. Ma visto che lo sono già dentro un handler, non mi riesce di impostarne un altro per rispondere poi al segnale che mi invia il produttore quando ho finito. In pratica devo mandare un segnale al produttore, aspettare, e quando arriva un segnale semplicemente andare avanti senza passare da nessun handler...
come faccio???
help please |
| Mirthis |
Originally posted by eskimo
help! nel secondo esercizio quando se sono nel distributore e ho bisogno di bottiglie, mando un segnale al produttore e aspetto con pause. Ma visto che lo sono già dentro un handler, non mi riesce di impostarne un altro per rispondere poi al segnale che mi invia il produttore quando ho finito. In pratica devo mandare un segnale al produttore, aspettare, e quando arriva un segnale semplicemente andare avanti senza passare da nessun handler...
come faccio???
help please
Ciao,
nn so se io ho fatto in modo giusto o meno, ma cmq i segnali li ho usati esclusivamente quando era specificato nel testo dell'esercizio. Per il resto ho usato le pipe.
Il produttore deve solo attendere eventuali richieste dal distributore e soddisfarle, quindi io ho messo l'istruzione di read dalla pipe(distributore->produttore il primo scrive, il secondo legge) all'inizio del ciclo del produttore, in modo tale che rimanga bloccato fino a che nn ci sono richieste. Quando il distributore ha bisogno di altre bottiglie, scrive sulla pipe(distributore->produttore) e attende la risposta su una seconda pipe(produttore->distributore) nella quale il produttore scrive.
bye :) |
| eskimo |
OK grazie provo a riscrivere così... mi organizzerò meglio con le pipe così levo tutti quegli handler...
thx! |
| Sockit2me |
| Qualcuno ha notizie utili sulla prova di laboratprio che è stata fatta martedi ???? |
| eskimo |
Ciao c'è qualche anima pia che perfavore mi può inviare gli esercizi di lab?? please help me!
se volete vi invio quelli che ho fatto io almeno vi fate 4 risate!! oppure vi possono consolare per martedi vedendo che c'è gente messa peggio!!! ;)
spero che qualcuno mi dia una mano....
ciao e grazie!!!!
eskimo82@virgilio.it |
| matrix |
io per l'esercizio di balanzone e gli altri 2, ho usato le pipe con nome sia in windows(abbastanza incasinate pero' da capire) e in linux(facilissime, fate man mkfifo e spiega quasi tutto)
la cosa che mi da piu' "problemi" e' in windows che nei processi figli, una volta che hanno input e output direzionati non riesco a usare il printf ma uso fprintf(stderr, ecc...) che spero gli vada bene...se no qualcuno mi spiega come usare il printf in un processo figlio? |
| Mirthis |
Originally posted by matrix
io per l'esercizio di balanzone e gli altri 2, ho usato le pipe con nome sia in windows(abbastanza incasinate pero' da capire) e in linux(facilissime, fate man mkfifo e spiega quasi tutto)
Anch'io volevo usare le pipe anonime il problema e' che nn riesco a crearle(per motivi di permessi credo)e quindi nn so come fare.
Per quanto riguarda win devo acnora provarci, anche se ho visto che la cosa e' piuttosto complicata.
la cosa che mi da piu' "problemi" e' in windows che nei processi figli, una volta che hanno input e output direzionati non riesco a usare il printf ma uso fprintf(stderr, ecc...) che spero gli vada bene...se no qualcuno mi spiega come usare il printf in un processo figlio?
Devo ancora provarle, cmq se nn ti costa troppo fatica, nn e' che potresti mandarmi gli esercizi di win che hai gia' svolto?
Grazie
bye |
| Mirthis |
| Scusate la domanda, che forse puo' sembrare scema(:P),ma negli esercizi di win in cui si dice che i processi si passano informazioni tramite delle variabili condivise(ad esempio l'esercizio reader/converter, il 4 se nn ricordo male)si intendono delle seplici variabili globali?? |
| matrix |
si' variabili globali....
se mi dai la mail, ti mando i file |
| Mirthis |
Originally posted by matrix
si' variabili globali....
se mi dai la mail, ti mando i file
Ok grazie.
Due di quelli con le variabili globali li ho fatti senza troppi problemi, e finalmene inizio a capire qualcosa anche di win. Devo risolvere quelle questioni sulle pipe e poi credo di essere quasi a posto. |
| Novalis |
| sarà che ormai mi sono innamorato di KWrite... ma su VisualStudio non è possibile visualizzare i numeri di riga??:( |
| BeppeGoal |
| Domanda: voi cosa usate per programmare in C? |
| Novalis |
| l'editor di Visual Studio su Win, Kwrite + gcc su Linux:) |
| Sockit2me |
| Cmq ho sentito che all'esame...se ti capita linux.....l'editor da usare è Vi.......non penso ti facciano installare l'interfaccia grafica!!.....cmq sono voci,se qualcuno sa qualcosa di certo dica qualcosaaaa!!!!!.....poi un'ultima cosa:chi è messo veramente di merda (non quelli che dicono di non sapere un cazzo e poi sanno tutto) ???? |
| Novalis |
a lezione hanno detto di imparare a utilizzare vi nel caso non funzionasse l'interfaccia grafica... altrimenti anche su win dovrebbero farci utilizzare l'edit di ms-dos! :D
ma non c'è nessuno che abbia fatto il primo turno di laboratorio?:please: :please: :please: |
| rox |
Ragazzi aiutatemi!!!
Ho dei problemi elementarissimi, dato che ho iniziato a guardare la parte di lab sabato.
In Linux quando genero il file a.out come faccio ad eseguirlo?
In Win ho installato visual studio 6.0 e uso visual c++.
Quando uso il comando "build - compile" il compilatore mi dice di non riconoscere stdafx.h. Com'è possibile???
Lo stesso errore me lo da anche se compilo i file della prof!!! |
| matrix |
in linux devi settare il path(non ricordo come si fa pero' :) ), mi sembra che scrivi env, ti appare una lista fai un copia incolla della riga di path e ci aggiungi il cammino della directory in cui lavori...
in windows invece mi han detto che stdafx.h e' un include vecchio che serviva nelle vecchie versioni di visual studio e che ora non e' supportato, cancellalo e va a posto |
| Lestat de lioncourt |
Originally posted by rox
Ragazzi aiutatemi!!!
Ho dei problemi elementarissimi, dato che ho iniziato a guardare la parte di lab sabato.
In Linux quando genero il file a.out come faccio ad eseguirlo?
In Win ho installato visual studio 6.0 e uso visual c++.
Quando uso il comando "build - compile" il compilatore mi dice di non riconoscere stdafx.h. Com'è possibile???
Lo stesso errore me lo da anche se compilo i file della prof!!!
se non vuoi toccare le var d'ambiente basta che scrivi nella dir del file: ./a.out |
| Novalis |
Originally posted by matrix
in linux devi settare il path(non ricordo come si fa pero' :) ), mi sembra che scrivi env, ti appare una lista fai un copia incolla della riga di path e ci aggiungi il cammino della directory in cui lavori...
stai diventando un progettista dei sistemi operativi, ormai:D :D
questa è la scelta migliore, ma alla vigilia di una prova di laboratorio forse è meglio non toccare le variabili d'ambiente del sistema per non rischiare di non incasinarle, con il rischio di dover reinstallare tutto e di perdere tempo (catastrofico vero?:( )...
come ti ha suggerito Lestat, indica la directory corrente con ./ e poi scrivi il nome del tuo file :) |
| unidavide |
Qualcuno ha fatto per caso l'esercizio 4 di windows? se si come avete fatto a farlo con solo i mutex? Volgio dire per scambiarsi i messagi 'N' 'S' e 'B' c'è scritto di utilizzare i mutex ma se nel thread principale (Banco) creo il mutex cosi
hMutex = CreateMutex( NULL, FALSE, NULL);
e poi faccio
dwWaitResult = WaitForSingleObject( hMutex, INFINITE);
il Thread NON si blocca, se invece dichiaro un semaforo con valore iniziale 0 chiramente il thread si blocca e viene sbloccato dal Cliente.
Voi come avete risolto? |
| Novalis |
devi usare due mutex, uno per il cliente e uno per il banco.
in quello per il banco devi mettere TRUE al posto del FALSE.
così mi hanno detto, e così sembra funzionare :) |
| unidavide |
| non ho capito come hai fatto, mi potresti spedire il codice a: unidavide@email.it che lo confronto con il mio? grazie |
| unidavide |
| altra domanda :D quando bisogna fare piu processi in windows per ogni processo devo crearmi un nuovo progetto? :shock: e l'eseguibile del figlio dove deve stare? dalle poche prove che ho fatto se lo mettevo nella cartella del progetto non lo vedeva, mentre se lo mettevo nella cartella windows si |
| Novalis |
puoi fare tutto dentro un unico workspace, l'importante è che per ogni processo crei un nuovo progetto.
se hai fatto tutto correttamente, ad esempio nel programma del distributore di bibite, troverai a sinistra
Workspace +
|_ Consumatore
|_ Distributore
|_ Produttore
e ognuno dei tre avrà i suoi "Source, Header eccetera".
Ricordati che puoi modificare i sorgenti cliccando su ogni progetto, ma VisualStudio compilerà sempre il progetto attivo, anche se stai visualizzando un altro sorgente.
Prima di compilare, fai quindi tasto dx sul progetto e scegli "Set as active project" |
| Novalis |
non avevo visto la tua richiesta...
ok, però è doveroso sottolineare che la paternità intellettuale non è la mia... ringrazia la matrice :D |
| unidavide |
Ok, adesso ho visto come usare lo stesso workspace, grazie.
L'esercizio del setteemezzo che mi hai spedito è praticamente uguale al mio infatti c'è anche li il problema che dicevo prima basta togliere gli Sleep() che costringono a fare un cambio di thread e il thread banco NON si ferma sul mutex hMutexCliente, la soluzione con gli Sleep() non è giusta al 100% perchè se per qualche motivo il cliente non andesse in esecuzione durante la sleep il banco anderebbe avanti nell'eseczione e scriverebbe segnale ricevuto ecc.
inoltre secondo me ci sono corse critiche sulle varibili perchè i mutex sono stati usati solo per alternare i thread e non per proteggere le variabili |
| Novalis |
più tardi cercherò di dargli un'occhiata...
non uscirà proprio quello, domani...:D |
| rox |
Ma anche a voi quando avete provato gli esempi di cilci che sono nelle slide dalla lezione 3 vi ha dato errore?:evil:
A me funziona solo l'esmpio del "CASE"!!!:? |
| unidavide |
Originally posted by rox
Ma anche a voi quando avete provato gli esempi di cilci che sono nelle slide dalla lezione 3 vi ha dato errore?:evil:
A me funziona solo l'esmpio del "CASE"!!!:?
Ma la lezione 3 non è quella sulla shell?
:help:
Altra domanda :D :D su esercizi di windows, nel primo il distibutore dovrebbe essere il processo principale che crea le pipe e poi comunica con il consumatore e il produttore? Se pero faccio la redirezione dello stdin del consumatore per usarla nella pipe dopo come faccio per prendere i caratteri dall'utente dallo stdin :pensa: :pensa: |
| Novalis |
| il processo padre è il consumatore... appena richiedi le bottiglie, crei il distributore, che appena richiederà i rifornimenti, creerà il produttore ;) |
| unidavide |
Originally posted by Novalis
il processo padre è il consumatore... appena richiedi le bottiglie, crei il distributore, che appena richiederà i rifornimenti, creerà il produttore ;)
Gia cosi sembra funzionare, adesso provo, grazie!!! |
| Novalis |
ragazzi, stavo pensando una cosa... perchè non organizziamo al volo un bignami virtuale nel quale elenchiamo i passi standard da implementare nei vari programmi?
ad esempio cosa si deve fare per creare un processo, un thread, una pipe... |
| unidavide |
Originally posted by Novalis
ragazzi, stavo pensando una cosa... perchè non organizziamo al volo un bignami virtuale nel quale elenchiamo i passi standard da implementare nei vari programmi?
ad esempio cosa si deve fare per creare un processo, un thread, una pipe...
Se si ha tempo sarebbe una bella cosa, piu che spiegare
cosa si deve fare per creare un processo, un thread, una pipe...
sarebbe meglio spiegare cosa bisogna fare per ogni esercizio tipo la risposta che mi hai dato prima, se non provavo a farlo il 1 e domani usciva era nella m... |
|
|
|
|