.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- progettino (http://www.dsy.it/forum/showthread.php?threadid=34948)


Posted by pirlo21 on 07-05-2008 17:31:

progettino

aiutooo...qualcuno che nella confusione del laboratorio abbia capito almeno cosa si deve fare?


Posted by JoY§TiCk on 08-05-2008 08:38:

We,

il compito verra` comunicato da Monga durante la lezione di venerdi` e verra` pubblicato online. In caso contrario verra` comunicato con altre modalita` ;-)

Luca && Aristide

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by DarkSchneider on 08-05-2008 08:44:

progettino?

di cosa state parlando?

:?


Posted by marbliss on 08-05-2008 09:25:

State parlando di venerdì 9 maggio? C'è per caso lezione domani?


Posted by DarkSchneider on 08-05-2008 09:30:

ma il progettino sostituisce la prova di laboratorio?


Posted by darkshadow on 08-05-2008 09:42:

cos'è sta cosa del progetto??

qualcuno puo spiegare di cosa si tratta??

purtroppo ho saltato le ultime lezioni.


Grazie in anticipo.

__________________
by Ð@rk§h@ÐØw


Posted by JoY§TiCk on 08-05-2008 11:26:

Domani ci sara` lezione nonostante lo sciopero e verra` spiegato l'homework.

ciaps.

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by pamarcan on 08-05-2008 16:47:

l'homework serve ad evitare, a chi lo passerà, la prova di laboratorio relativa al kernel. rimane comunque la parte su shell e partizionamento del disco.
l'homework consisterà nell'implementazione di un nuovo server, come quello visto in laboratorio sui semafori.


Posted by Gehur on 08-05-2008 18:06:

ma in pratica domani mattica il monga che fa?? lezione normale??


Posted by JoY§TiCk on 08-05-2008 19:23:

si.

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by JoY§TiCk on 11-05-2008 09:08:

We,

le specifiche del progettino sono disponibili sul wiki .

Have fun ;-)

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by Larios on 11-05-2008 15:08:

nell'esempio di codice del progetto il down indicato dalla freccia(------>> ) non è sbagliato in quella posizione? nel senso ch è di troppo...

se S all'inizio è a 1 e poi faccio una down portando a 0 mi si ferma li per forza... ha senso invece farlo dopo la fork, o sbaglio?

PHP:

#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
 
#define S 0
 
int main(void){
 int f;
 
 sema_init(S, 1);
------>> down(S); 
 f = fork();
 if (f == 0){
  down(S);
  printf("Sono il figlio...\n");
  printf("Fine del figlio.\n");
  up(S);
 } else {
  sleep(1);
  printf("Sono il padre...\n");
  sleep(3);
  printf("Fine del padre.\n");
  up(S);
  waitpid(f, NULL, 0);
 } 
 
 
 return 0;
}


Posted by JoY§TiCk on 11-05-2008 15:58:

Non so se ho capito bene il tuo dubbio ma credo che il codice sia giusto. Invocando la down appena dopo aver inizializzato il semaforo, questo viene portato giustamente a 0 come dici tu e la funzione do_down, per esempio quella presentata a lezione e disponibile sul wiki ritorna OK:

PHP:

if (s > 0){
    s = s - 1;
    return OK;
}



l'esecuzione quindi prosegue, esegue la fork. E` voluto per fare in modo che se viene eseguito il codice del figlio prima di quello del padre, la down nel figlio lo blocca finche il padre non ha eseguito la up.

ciaps, joy

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by Larios on 11-05-2008 21:35:

si è vero è propio cosi'.

ora mi funziona tutto ma ho questi messaggi all'avvio e allo shutdown, dovrei guardarci meglio per capire a cosa sono dovuti..., per caso ne sai qualcosa? :?

EDIT: Per il problema allo shutdown è che sulla verione del prof è stato cancellato il:
case SYS_SIG:

http://www.raspberryginger.com/jbai..._8c-source.html

andando a controllare infatti il chiamante è -2...



Posted by Fonzie on 12-05-2008 11:08:

Originally posted by pamarcan
l'homework serve ad evitare, a chi lo passerà, la prova di laboratorio relativa al kernel. rimane comunque la parte su shell e partizionamento del disco.
l'homework consisterà nell'implementazione di un nuovo server, come quello visto in laboratorio sui semafori.


Perchè a noi del serale non è stato detto niente di tutto ciò?

__________________
Ci vuole scienza, ci vuol costanza ad invecchiare senza maturità

Guccini

Visti My Fotolog


Posted by fabi0 on 12-05-2008 11:14:

progettino

Ciao, qualcuno sta tentando di fare il progettino?


Posted by JoY§TiCk on 12-05-2008 11:24:

Originally posted by Fonzie
Perchè a noi del serale non è stato detto niente di tutto ciò?


Perche' principalmente era diretto agli studenti del corso diurno dato che e` stato assegnato da Monga. Cmq se vuoi farlo penso che sia possibile, contatterei in ogni caso Monga per conferma.

ciaps, joy.

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by Larios on 12-05-2008 11:37:

Originally posted by Fonzie
Perchè a noi del serale non è stato detto niente di tutto ciò?


credo sia per il fatto che mancherà solo monga questa settimana, provate a chiedere al vostro prof se lo potete fare anche voi...


Posted by Gehur on 12-05-2008 12:24:

cavoli per me un occasione persa, visto che quel giorno di laboratorio sono scappato...non capivo niente, il monga andava per i fatti suoi...o cercato di seguire il partizionamento(malamente) ma poi non ho + resistito

peccato..


Posted by J@ck on 12-05-2008 12:59:

il fatto che tu sia andato via prima nn significa che tu non possa cmq eseguire l'homework.

P.S. prima di postare sarebbe buona norma controllare l'italiano :-D ;-)

__________________
Software is like Sex, it's best if it's free - Linus Thorwald
www.artificialstudios.it


Posted by darkshadow on 12-05-2008 13:03:

----------------

__________________
by Ð@rk§h@ÐØw


Posted by darkshadow on 12-05-2008 13:03:

scusate ma ho saltato le ultime lezioni.

Ho visto sul wiki di S.O che c'e' un esemepio sui semafori come quello che si deve fare. La differenza tra quello sul wiki e quello che si deve fare è che invece di gestrire la coda con un array deve essere gestito con delle liste??

qualcuno che lo stia già facendo può darmi qualche dritta per cominciare??

Grazie in anticipo.

__________________
by Ð@rk§h@ÐØw


Posted by Larios on 12-05-2008 19:59:

io l'ho fatto utilizzando solo array...
comunque comincia con la parte che c'è sul wiki, da quello non ci vuole molto per fare quello che ti richiede

non sono sicuro di come va fatta sta parte:

L'immagine della soluzione dovra` essere partizionata e formattata in modo che esista un filesystem (quello che conterra` la soluzione) accessibile dal blocco N, con N == somma delle cifre del numero di matricola (suggerimento: usare part /dev/c0d1)

il numero ottenuto da N*512 va inserito nella colonna Base in fase di partizione?


Posted by fabi0 on 12-05-2008 22:02:

Originally posted by Larios
[B]io l'ho fatto utilizzando solo array...
comunque comincia con la parte che c'è sul wiki, da quello non ci vuole molto per fare quello che ti richiede



Se non ho capito male noi dobbiamo passare alla funzione 2 parametri: un parametro per identificare il semaforo e uno per inizializzarlo. GIUSTO?

Come si fanno i prototipi delle funzioni passandogli due parametri?

cioè, questi:
_PROTOTYPE( int main, (void)

FORWARD _PROTOTYPE( int do_up, (message *m_ptr)
FORWARD _PROTOTYPE( int do_down, (message *m_ptr)

come dovrebbero diventare per passare alla funzione due parametri?

GRAZIE


Posted by emanuele_t on 13-05-2008 13:38:

help!!!!
ho fatto tutti i passaggi fino alla fine di com.h
i comandi che seguono cosa vogliono dire e come vanno fatti???


Posted by J@ck on 13-05-2008 14:40:

Scusa di che comandi stai parlando???

__________________
Software is like Sex, it's best if it's free - Linus Thorwald
www.artificialstudios.it


Posted by fabi0 on 13-05-2008 15:16:

Qualcuno mi saprebbe dire gentilmente come si compilano tutti i files modificati?

GRAZIE


Posted by darkshadow on 13-05-2008 15:19:

penso si riferisca a questa parte:

# Makefile for Semaphore Server (SS)
SERVER = ss

# directories
u = /usr
i = $u/include
s = $i/sys
m = $i/minix
b = $i/ibm
k = $u/src/kernel
p = $u/src/servers/pm
f = $u/src/servers/fs

# programs, flags, etc.
CC = exec cc
CFLAGS = -I$i
LDFLAGS = -i
LIBS = -lsys -lsysutil

OBJ = ss.o

# build local binary
all build: $(SERVER)
$(SERVER): $(OBJ)
$(CC) -o $@ $(LDFLAGS) $(OBJ) $(LIBS)
# install -S 256w $@

# install with other servers
install: /sbin/$(SERVER)
/sbin/$(SERVER): $(SERVER)
install -o root -c $? $@
# install -o root -cs $? $@

# clean up local files
clean:
rm -f $(SERVER) *.o *.bak

depend:
/usr/bin/mkdep "$(CC) -E $(CPPFLAGS)" *.c > .depend

# Include generated dependencies.
include .depend

PS: nel progetto dice che si devono gestire un numero variabile di semafori, allora come faccio ad usare degli array se non so a priori quanti semafori sono?? non si dovrebbero usare delle liste??.

__________________
by Ð@rk§h@ÐØw


Posted by Larios on 13-05-2008 16:12:

Originally posted by fabi0
Qualcuno mi saprebbe dire gentilmente come si compilano tutti i files modificati?

GRAZIE


per passare i parametri devi usare la struttura message http://www.raspberryginger.com/jbai...uctmessage.html

compilare le librerie:

cd /usr/src/lib/posix
make Makefile
cd /usr/src/tools
make libraries

per compilare kernel e testare

cd /usr/src/tools
make image
make hdboot
reboot

trovi tutto qui: http://sl-lab.it/dokuwiki/doku.php?id=sistop:lab08


Posted by emanuele_t on 13-05-2008 18:04:

si scusate i comandi sono quelli scritti da "darkshadow"


Posted by Alex86mi on 14-05-2008 00:27:

Per il passaggio di parametri alle funzioni ho usato la struttura
dei messaggi numero 1 e nella funzione 'do_up' (/src/lib/other/semaforo.c) ho utilizzato:

int do_up() {
message m;
m.m1_i1 = 88; /* inserisco un numero a caso come esempio */
/* se stampo qui m.m1_i1 stampa corretto */
_syscall(SS_PROC_NR, SS_UP, &m); /* spedisco al server il msg */
return 0;
}

a questo punto vado nel server (/src/servers/ss/ss.c) a leggere
e cerco di vedere se è arrivato il msg giusto:

......
message m_in; /* riceve i msg in input */
/* stampo m.m_source e m.m_type...la stampa è corretta
* quindi il messaggio che spedisco arriva!
*/
/* ora stampo m.m1_i1 e stampa un numero diverso da 88! */
......

Non riesco a ricevere il numero corretto (in questo caso l'88 che
ho settato come esempio) e non capisco xchè..qualcuno
sa dov'è l'errore?


Posted by QeSaRNeRON on 14-05-2008 10:05:

ciao... io ho iniziato facendo quello de 7 maggio ...
penso di aver seguito tutto per filo e per segno solo che quando provo a compilare questo...

#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>

#define S 0

int main(void){
int f;

/*sema_init(S, 1);*/
down();
f = fork();
if (f == 0){
down();
printf("Sono il figlio...\n");
printf("Fine del figlio.\n");
up();
} else {
sleep(1);
printf("Sono il padre...\n");
sleep(3);
printf("Fine del padre.\n");
up();
waitpid(f, NULL, 0);
}


return 0;
}

#cc sema_test.c -o sema_test
Undefined:
_down
_up

qualcuno sa spiegarmi questo errore da cosa puo essere dato??? grazie!!!
:D


Posted by Alex86mi on 14-05-2008 12:37:

Ho risolto.
Il problema era che non ricompilavo il file test.c che
utilizzavo per richiamare le syscall dopo aver fatto modifiche
alle librerie.


Posted by darkshadow on 14-05-2008 12:55:

Scusate raga ma non riesco a capire una cosa. come faccio a gestire semafori di cui non so il numero a proiri (cosi dice nel progetto, il numero di semafori è variabile) con degli array come mi è stato detto qui??

Non si dovrebbero usare delle liste??

perchè un conto è sapere che devo gestire che ne so 10 semafori ed un'altro gestire un numero arbitrario di semafori.

Non so se mi sono spiegato.

__________________
by Ð@rk§h@ÐØw


Posted by Larios on 14-05-2008 13:07:

bisognerebbe chiedere al prof visto che non ha specificato nulla, quello che credo io comunque è che il progetto abbia lo scopo di capire dove mettere le mani nel codice, comunque meglio sentirlo. Fra le altre cose i sorgenti non ci stanno in un disco da 20M (nemmeno quelli originali del disco di istallazione...) come ha indicato ma ci vuole minimo 21M...


Posted by darkshadow on 14-05-2008 13:29:

ma il prof ha detto per caso se rispondeva alle mail o che non avrebbe avuto tempo rispondere??

__________________
by Ð@rk§h@ÐØw


Posted by pamarcan on 14-05-2008 13:55:

di sicuro non vanno usati gli array, perchè i nuovi semafori devono essere dinamicamente aggiunti. partendo da quello fatto a laboratorio bisogna aggiungere quindi una struttura nel server (ad esempio una lista) che mantenga i semafori aperti, una procedura che inizializzi un semaforo (nel caso caso non sia presente nella struttura va creato e messo in coda). vanno quindi aggiunti tutti i prototipi e il nuovo wrapper nelle librerie, modificate le vecchie funzioni ad ogni livello (kernel, system,utente). in modo che (es do_up e do_down che son chiamate da up e down nelle librerie) prendano i parametri dal messaggio che ovviamente andrà in qualche modo creato con gli opportuni campi.
(dal dirlo al farlo però, è una parola!!)


Posted by darkshadow on 14-05-2008 13:57:

sto cercanco di fare quello sul wiki ma quando eseguo il comando make mi da il seguente errore:

make: Can't open .depend: No such file or directory

ho inserito il file Makefile nella directory del server (/usr/src/servers/ss/) e provo ad eseguire il comando ma non va.

Qualcuno che ci è riuscito me lo pò spiegare come ha fatto.

Grazie.


PS: il codice del Makefile è quello che ho messo in qualke post + sopra.

__________________
by Ð@rk§h@ÐØw


Posted by Larios on 14-05-2008 14:02:

Originally posted by darkshadow
ma il prof ha detto per caso se rispondeva alle mail o che non avrebbe avuto tempo rispondere??


ho mandato una mail ieri ma non ha ancora risposto...


Posted by fabi0 on 14-05-2008 14:03:

Ciao, qualcuno mi sa dire se la funzione main del server è giusta come l'ho fatta? qualcuno l'ha fatta in altro modo?

int main (int s, int init)
{
....
init_server(s, init){...}
}

GRAZIE


Posted by darkshadow on 14-05-2008 14:08:

Originally posted by pamarcan
di sicuro non vanno usati gli array, perchè i nuovi semafori devono essere dinamicamente aggiunti. partendo da quello fatto a laboratorio bisogna aggiungere quindi una struttura nel server (ad esempio una lista) che mantenga i semafori aperti, una procedura che inizializzi un semaforo (nel caso caso non sia presente nella struttura va creato e messo in coda). vanno quindi aggiunti tutti i prototipi e il nuovo wrapper nelle librerie, modificate le vecchie funzioni ad ogni livello (kernel, system,utente). in modo che (es do_up e do_down che son chiamate da up e down nelle librerie) prendano i parametri dal messaggio che ovviamente andrà in qualche modo creato con gli opportuni campi.
(dal dirlo al farlo però, è una parola!!)



Quello che ho pensato anch'io.

Quind si avrà per ciascun semaforo una struttura del tipo.

struct semaforo{

int value;
struct semaforo *next;
puntatore_alla_coda_dei_processi_bloccati;
}

quindi quando viene chiamata sem_init(sem, val)

dovrò prima controllare se il semaforo è già presente nella lista. Se si faccio:
punt_semaforo->value = val;

Altrimenti dovrò aggiungere il semaforo nella lsita e poi fare l'assegnamento.

__________________
by Ð@rk§h@ÐØw


Posted by fabi0 on 14-05-2008 14:10:

Originally posted by darkshadow
Quello che ho pensato anch'io.

quindi quando viene chiamata sem_init(sem, val)

.



e sem e val?
Dove li prendi? Li passi al main che a sua volta chiama la funzione sem_init passandogli i due parametri?


Posted by darkshadow on 14-05-2008 15:08:

Originally posted by fabi0
e sem e val?
Dove li prendi? Li passi al main che a sua volta chiama la funzione sem_init passandogli i due parametri?


sem e val sono appunto i valori che tu gli passi a sem_init dal main.

nel main avrai un insieme di semafori il cui numero non è noto ma varia ad ogni esecuzione.

quindi dal main chiami sem_init con parametri: il semaforo e il valore di inizializzazione; e come detto prima visto che li gestiamo con delle liste si deve prima controllare se il semaforo è gia presente nella lista se basta fare un assegnamento altrimenti devi allocare lo spazio per il semaforo, inserirlo nella lista ed assegnare il valore di inizializzazione.

__________________
by Ð@rk§h@ÐØw


Posted by fabi0 on 14-05-2008 15:10:

fino a qui tutto chiaro, ma noi dobiamo passare al main i parametri da passare alla init_server, no?

int main (int s, int init)

O sbaglio?
GRAZIE


Posted by darkshadow on 14-05-2008 15:18:

dici a quella del server??

__________________
by Ð@rk§h@ÐØw


Posted by fabi0 on 14-05-2008 15:19:

Originally posted by darkshadow
dici a quella del server??


sì, nel file che monga chiama ss.c


Posted by JoY§TiCk on 14-05-2008 15:23:

Originally posted by Larios
ho mandato una mail ieri ma non ha ancora risposto...


Monga e` ancora alla conferenza. Probabilmente rispondera` appena avra` tempo di controllare la mail.

Fra le altre cose i sorgenti non ci stanno in un disco da 20M (nemmeno quelli originali del disco di istallazione...) come ha indicato ma ci vuole minimo 21M.


Sull'immagine messa a disposizione da Monga qui i sorgenti sono < 20M.
code:
du -s /usr/src 15204


Se qualcuno ha ancora problemi anche usando l'immagine apposita, contatti Monga per chiarimenti.
Ciaps, joy.

__________________
There are two types of people:
- those that learn how to write code themselves. They will be called "developers".
- those that demand code written for them, and patch it together. Those will be called "script kiddies" and are laughed at.
www.artificialstudios.it


Posted by darkshadow on 14-05-2008 15:27:

Originally posted by fabi0
sì, nel file che monga chiama ss.c


si. proprio cosi.

scusa avevo fatto un po di confusione.

__________________
by Ð@rk§h@ÐØw


Posted by fabi0 on 14-05-2008 15:52:

Originally posted by darkshadow
si. proprio cosi.

scusa avevo fatto un po di confusione.


GRAZIE, ora posso continuare.


Posted by pamarcan on 14-05-2008 15:57:

scusate ma vi state sbagliando.
sema_init con i relativi parametri va messa come nuovo wrapper in /usr/src/lib/other/sema.c
questa costruirà un messaggio con i parametri poi, come up() e down() (che anch'esse van modificate), farà una _syscall(SS_PROC_NR,SS_SEMA_INIT,&m)
ossia una chiamata al server ss perchè facccia la do_sema_init in quanto SS_SEMA_INIT sarà un nuovo case del main.
ovviamente queste funzioni vanno prototipate modificate (se già ci sono) e aggiunte ai vari livelli.
(il che come ho detto non è banale)


Posted by marcodili on 14-05-2008 17:06:

Scusate, qualcuno mi può aiutare?
Sto provando a fare il server semaforo pubblicato dal prof sulla wiki per avere una buona base di partenza ma non riesco a ricompilare le librerie.
Quando faccio make libraries mi viene fuori:

make: No targets provided in Makefile near line 229
make in /usr/src/lib : Exit code 1
make in /usr/src/tools : Exit code 1

Non capisco come mai xkè ho fatto tutto come scritto dal prof.. ho ricontrollato il Makefile in /usr/src/lib/other cinquanta volte eppure non trovo il problema...

Aiuto!!


Posted by pamarcan on 14-05-2008 17:49:

e cosa c'è a quella riga?


Posted by marcodili on 14-05-2008 17:51:

c'è questo:

$(LIBRARY)(sema.o): sema.c
----> $(CC1) sema.c


Posted by pamarcan on 14-05-2008 18:04:

se hai fatto tutto come il prof(anche se sinceramente c'erano delle imprecisioni) quindi esiste sema.c ecc..
potrebbe essere, come è capitato a me un errore nell'uso di make, in quanto non processa codice C ma interpreta il Makefile.
quindi se ci sono errori di indentazione o altro devi guardare il man di make.
magari è altro, prova con dei make include che non fan mai male.
non so come aiutarti però, senza davanti il codice è un casino.
mi spiace


Posted by Microke on 14-05-2008 21:28:

Anche a me da quell'errore..
make: No targets provided in Makefile near line 229
Qualcuno ha dei suggerimenti? :sad:

grazie


Posted by darkshadow on 15-05-2008 13:04:

raga come faccio per scrivere il carattere tilde (~) in minix??

__________________
by Ð@rk§h@ÐØw


Posted by pamarcan on 15-05-2008 13:10:

"Alt Gr" + "\"


Posted by pamarcan on 15-05-2008 13:11:

se stai usando la tastiera italiana


Posted by darkshadow on 15-05-2008 13:12:

grazie!!

cavolo ero rimasto bloccato solo per questo carattere.

__________________
by Ð@rk§h@ÐØw


Posted by darkshadow on 15-05-2008 13:14:

scusa ma quello lo vedo come dire un po sopra invece di essere in mezzo. è lo steso??

__________________
by Ð@rk§h@ÐØw


Posted by pamarcan on 15-05-2008 13:16:

domanda: qualcuno ha risolto il problema della consegna?
la copia di tutto l'albero /usr/src/ in un disco da 20MB come dice nelle specifiche del progetto non è fattibile.


Posted by pamarcan on 15-05-2008 13:18:

darkshadow parli dell'errore di make?


Posted by darkshadow on 15-05-2008 13:22:

no. dico del carattere tilde. quello che mi hai detto lo vedo un po sopra, per esempio in winzocs ~ si vede in mezzo mentre in minix il carattere che mi hai detto lo vedo un po sopra.

scusa per il disturbo.

__________________
by Ð@rk§h@ÐØw


Posted by pamarcan on 15-05-2008 13:26:

figurati


Posted by lp656330 on 15-05-2008 14:00:

Originally posted by pamarcan
domanda: qualcuno ha risolto il problema della consegna?
la copia di tutto l'albero /usr/src/ in un disco da 20MB come dice nelle specifiche del progetto non è fattibile.


mi unisco alla domanda di pamarcan

qualcuno è riuscito a finire il progetto e preparare il file per l'invio a monga???

buon progetto a tutti

Lara


Posted by Microke on 15-05-2008 14:36:

Io no.
Tu lara a che punto sei ?


Posted by Larios on 15-05-2008 15:46:

Originally posted by pamarcan
domanda: qualcuno ha risolto il problema della consegna?
la copia di tutto l'albero /usr/src/ in un disco da 20MB come dice nelle specifiche del progetto non è fattibile.


devi usare l'immagine del prof...guarda sui post dietro :)

per quel che riguarda la partizione, l'N che si ottiene dal numero di matricola va inserito sotto la colonna Base una volta nella schermata di part, corretto?

Stavo provando a testare con il comando del prof:

mount -t minix -o loop,offset=$((N*512)) soluzione.img /mnt

ma sotto ubuntu non lo riconosce...


Posted by pamarcan on 15-05-2008 17:03:

hai dato:

modprobe minix

altrimenti devi usare un altro kernel


Posted by fabi0 on 15-05-2008 20:10:

il metodo init_semap va implementato come do_up e do_down o è come init_serv di quello che ha fatto il prof (che viene chiamato dal main del server ss)?

GRAZIE, spero di essere stato chiaro


Posted by fabi0 on 15-05-2008 20:19:

il metodo init_semap va implementato come do_up e do_down o è come init_serv di quello che ha fatto il prof (che viene chiamato dal main del server ss)?

GRAZIE, spero di essere stato chiaro


Posted by Larios on 16-05-2008 09:29:

Originally posted by fabi0
il metodo init_semap va implementato come do_up e do_down o è come init_serv di quello che ha fatto il prof (che viene chiamato dal main del server ss)?

GRAZIE, spero di essere stato chiaro


si, se intendi la parte in cui viene chiamata la syscall relativa.

comunque in generale segui quello che cè gia fatto dal prof, non c'è niente di nuovo o che non sia stato detto qui.


Posted by fabi0 on 16-05-2008 09:31:

Originally posted by Larios
si, se intendi la parte in cui viene chiamata la syscall relativa.


Scusa, con il "sì" intendi che è come ha fatto il prof? E' come la sua init_server?

GRAZIE


Posted by Larios on 16-05-2008 09:37:

Originally posted by fabi0
Scusa, con il "sì" intendi che è come ha fatto il prof? E' come la sua init_server?

GRAZIE

no scusa devi seguire do_up e do_down


è cosi:

FORWARD _PROTOTYPE(int init_semaforo, (message* m_ptr) );


Posted by fabi0 on 16-05-2008 09:51:

Originally posted by Larios
no scusa devi seguire do_up e do_down


è cosi:

FORWARD _PROTOTYPE(int init_semaforo, (message* m_ptr) );


quindi la init_server del prof possiamo toglierla e mettere tutto in init_semaforo...

Sbaglio?


Posted by Larios on 16-05-2008 11:22:

si, io ho fatto cosi'


qualcuno è riuscito a montare il filesystem con il comando

mount -t minix -o loop,offset=$((N*512)) soluzione.img /mnt

per vedere se è tutto ok..?


Posted by fabi0 on 16-05-2008 12:49:

Originally posted by Larios
si, io ho fatto cosi'


qualcuno è riuscito a montare il filesystem con il comando

mount -t minix -o loop,offset=$((N*512)) soluzione.img /mnt

per vedere se è tutto ok..?


Sì, l'ho montato, e si vedono tutti i files.


Posted by Larios on 16-05-2008 13:18:

che distribuzione di linux usi? e che versione?


Posted by fabi0 on 16-05-2008 13:20:

Originally posted by Larios
che distribuzione di linux usi? e che versione?


ubuntu 7.10



? come avete fatto questo prototipo:

_PROTOTYPE( int down, (void)); //al posto di void bisogna mettere l'identificativo del semaforo?


Posted by Larios on 16-05-2008 13:32:

si, poi devi passare quel parametro con message...


Posted by fabi0 on 16-05-2008 13:35:

Originally posted by Larios
si, poi devi passare quel parametro con message...


quindi, non ho capito, bisogna lasciare void?
_PROTOTYPE( int down, (void));

non si può passargli direttamente:
_PROTOTYPE( int down, (int s));


Posted by pamarcan on 16-05-2008 13:52:

sì, la seconda che hai detto, poi nel corpo della procedura metti nel messaggio l'intero così:

..
messaggio m;
m.m1_i1="il parametro intero"

poi la _syscall.... come quella fatta al laboratorio

e fai lo stesso con la up e la sema_init


Posted by fabi0 on 16-05-2008 13:58:

In che file va messo questo:
..
messaggio m;
m.m1_i1="il parametro intero"


GRAZIE


Posted by QeSaRNeRON on 16-05-2008 15:16:

raga... ma la soluzione
con part
che e' la storia della matricola???
l'inizio deve essere 0 0 22?? *(somma numeri matricola)??


Posted by QeSaRNeRON on 16-05-2008 15:18:

Originally posted by fabi0
Sì, l'ho montato, e si vedono tutti i files.

devi fare il modprobe di minix
se ti dice che non trova il modulo devi ricompilarti il kernel dando un occhio di inserire minix nella sezione filesistem

quello che devo fare io adesso.
che palle
vaffanculo! >.<


Posted by QeSaRNeRON on 16-05-2008 15:20:

Originally posted by Larios
che distribuzione di linux usi? e che versione?

ho sbagliato a quotare... guarda sopra xD


Posted by lp656330 on 16-05-2008 15:24:

Originally posted by fabi0
quindi, non ho capito, bisogna lasciare void?
_PROTOTYPE( int down, (void));

non si può passargli direttamente:
_PROTOTYPE( int down, (int s));

io ho fatto "_PROTOTYPE( int down, (int s)); "


Posted by pamarcan on 16-05-2008 15:26:

per fabi0:

devi modificare /usr/src/lib/other/sema.c

ossia dove ci sono i wrapper


Posted by lp656330 on 16-05-2008 15:27:

Originally posted by fabi0
In che file va messo questo:
..
messaggio m;
m.m1_i1="il parametro intero"


GRAZIE

questo lo devi mettere nel file dove crei il wrapper
che il professor Monga a lezione aveva creato in
/usr/src/lib/other
dove aveva creato il file c


Posted by lp656330 on 16-05-2008 15:30:

Originally posted by QeSaRNeRON
raga... ma la soluzione
con part
che e' la storia della matricola???
l'inizio deve essere 0 0 22?? *(somma numeri matricola)??

ipotizza che la tua matricola sia 666666, fai la somma delle cifre 6+6+6+6+6+6=36 e quando vai in
part /dev/c0d1
devi definire come sector base il valore "36" che è la somma della tua matricola 666666


Posted by fabi0 on 16-05-2008 15:39:

Originally posted by lp656330
questo lo devi mettere nel file dove crei il wrapper
che il professor Monga a lezione aveva creato in
/usr/src/lib/other
dove aveva creato il file c


In questo?

#include <lib.h>
#include <unistd.h>

PUBLIC int up()
{
message m;

if (_syscall(SS_PROC_NR, SS_UP, &m) < 0) return(-1);
return 0;
}

PUBLIC int down()
{
message m;

if (_syscall(SS_PROC_NR, SS_DOWN, &m) < 0) return(-1);
return 0;
}


Posted by QeSaRNeRON on 16-05-2008 15:40:

quindi dove ce
---first---
cyl head sec
0 0 36

perche proprio 666 666 la matricola?
yeah ... abbiamo satana a scuola!!! :D


Posted by lp656330 on 16-05-2008 15:53:

si esatto proprio questo, solo che a mio modesto parere (per lo meno io ho fatto così) dovrebbe mancare qualcosa in quello che hai scritto....

prova a pensarci, devi effettuare la up su un semaforo, il prof, ovviamente avendo un solo semaforo a disposizione effettua direttamente la funzione
tu non hai un solo semaforo, ma come richiesto dal progetto hai una serie (lista, array... non so cosa tu abbia scelto) di semafori, quindi, secondo me, dovresti fare:

#include <lib.h>
#include <unistd.h>

PUBLIC int up(int s) //passagli il numero di semaforo su cui fare la up
{
message m;

if (_syscall(SS_PROC_NR, SS_UP, &m) < 0) return(-1);
return 0;
}

PUBLIC int down(int s) //passagli il numero di semaforo su cui fare la down
{
message m;

if (_syscall(SS_PROC_NR, SS_DOWN, &m) < 0) return(-1);
return 0;
}


Originally posted by fabi0
In questo?

#include <lib.h>
#include <unistd.h>

PUBLIC int up()
{
message m;

if (_syscall(SS_PROC_NR, SS_UP, &m) < 0) return(-1);
return 0;
}

PUBLIC int down()
{
message m;

if (_syscall(SS_PROC_NR, SS_DOWN, &m) < 0) return(-1);
return 0;
}


Posted by lp656330 on 16-05-2008 15:56:

Originally posted by QeSaRNeRON
quindi dove ce
---first---
cyl head sec
0 0 36

perche proprio 666 666 la matricola?
yeah ... abbiamo satana a scuola!!! :D


esatto proprio come hai detto tu

dai ho scelto un numero a caso.... non ci ho proprio pensato :oops:


Posted by fabi0 on 16-05-2008 15:56:

Sì, certo ho fatto copia-incolla del file del prof per capire se era quello di cui stavamo parlando. GRAZIE


Posted by lp656330 on 16-05-2008 15:58:

Originally posted by fabi0
Sì, certo ho fatto copia-incolla del file del prof per capire se era quello di cui stavamo parlando. GRAZIE


parlavamo dello stesso file ovviamente

buon proseguimento


Posted by QeSaRNeRON on 16-05-2008 16:26:

Originally posted by lp656330
esatto proprio come hai detto tu

dai ho scelto un numero a caso.... non ci ho proprio pensato :oops:


loool
pero aspe.. .iniziando dallo 0 dovrebbe essere 36-1 giusto?


Posted by Larios on 16-05-2008 17:26:

Originally posted by QeSaRNeRON
devi fare il modprobe di minix
se ti dice che non trova il modulo devi ricompilarti il kernel dando un occhio di inserire minix nella sezione filesistem

quello che devo fare io adesso.
che palle
vaffanculo! >.<


io continuo ad avere:


mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

il modprobe lo prende...


Posted by lp656330 on 16-05-2008 17:38:

Originally posted by QeSaRNeRON
loool
pero aspe.. .iniziando dallo 0 dovrebbe essere 36-1 giusto?

oddio effettivamente si, dovrebbe essere uno in meno, solo che io l'1 in meno non l'ho messo... lui ha detto che deve inserire il numero che è la somma delle cifre, non che deve corrispondere al numero di blocco pari alla somma

cmq ho provato la procedura che lui dice di fare

mount -t minix -o loop,offset=$((N*512)) soluzione.img /mnt

N == somma delle cifre del numero di matricola

e quindi come N ho messo il numero esatto che viene sommando, quindi il 36 e non il 35... cmq chiederò via mail al professore stesso, anche perchè ho già inviato la soluzione quindi non posso più modificare


Posted by Larios on 16-05-2008 18:11:

ma te lo monta anche se metti 35???


Posted by lp656330 on 16-05-2008 18:15:

Originally posted by Larios
ma te lo monta anche se metti 35???


no, con 35 non lo monta


Posted by marcodili on 16-05-2008 18:17:

cscusate,
non è che potete mettere l'output dei vostri programmi prova1 e prova2. In modo da avere un confronto e capire se il server che abbiamo fatto è giusto visto che ho qualche dubbio! Anche uno stamp dello schermo va bene!!
Grazie


Posted by QeSaRNeRON on 16-05-2008 19:30:

Originally posted by marcodili
cscusate,
non è che potete mettere l'output dei vostri programmi prova1 e prova2. In modo da avere un confronto e capire se il server che abbiamo fatto è giusto visto che ho qualche dubbio! Anche uno stamp dello schermo va bene!!
Grazie

prova 1 fa prima il padre poi il figlio
prova 2 fa una volta padre. poi figlio , padre, figlio , padre, figlio
stoppe


Posted by fabi0 on 17-05-2008 12:57:

Originally posted by Larios
per compilare le librerie:

cd /usr/src/lib/posix
make Makefile


quando lancio questo comando mi da il seguente errore:

Makefile is up to date

???Cosa vuol dire???

GRAZIE


Posted by pamarcan on 17-05-2008 13:55:

vuol dire che il Makefile è aggiornato

comunque per compilare le librerie devi andare in /usr/src/tools

e dare:

make libraries


Posted by darkshadow on 19-05-2008 12:30:

qualcuno è riuscito a finire il progetto??

__________________
by Ð@rk§h@ÐØw


Posted by darkshadow on 23-05-2008 14:14:

Nessuno è riuscito a finire il progetto??

__________________
by Ð@rk§h@ÐØw


Posted by pamarcan on 23-05-2008 16:44:

sì siamo almeno 15 dice Monga, hai bisogno?


Posted by kyuss on 09-06-2008 10:05:

E' possibile che qualcuno sia così generoso da postare i propri sorgenti di questo compitino?

Grazie.


Posted by pamarcan on 09-06-2008 11:01:

Credo lo metterò nell'area file quando l'avrà valutato


All times are GMT. The time now is 22:17.
Show all 109 posts from this thread on one page

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