Skip to content

alessandro-antonelli/memBox-plus-plus

Repository files navigation

memBox++

screenshot

Un'applicazione client-server che realizza un repository di oggetti costituiti da sequenze continue di bytes, gestendo la concorrenza tra più client attivi contemporaneamente.

Supporta nove tipi di operazioni sugli oggetti, il salvataggio/caricamento del repository in/da un file di dump e la generazione di statistiche sull'attività del server (con inoltre uno script bash per la loro visualizzazione).

Per dettagli sui requisiti richiesti, vedere Struttura complessiva del progetto e Istruzioni e specifiche; per dettagli sulle scelte implementative vedere la Relazione.

Realizzato come progetto finale del Laboratorio di Programmazione di Sistema dell'A.A. 2015/16, tenuto dal professor Massimo Torquati (facente parte dell'esame di Sistemi operativi e laboratorio, codice 277AA), nel corso di laurea triennale in Informatica dell'Università di Pisa. Valutato con il voto di 30/30. Homepage del corso: http://didawiki.cli.di.unipi.it/doku.php/informatica/sol/laboratorio16

Istruzioni per l'esecuzione

#download sorgenti
git clone https://github.com/alessandro-antonelli/memBox-plus-plus
cd memBox-plus-plus/src/
chmod +x testput.sh testdump.sh testlock.sh testsize.sh testleaks.sh teststats.sh memboxstat.sh teststress.sh testlockobj.sh gruppo-check.pl

#compilazione
make all

#avvio server
./membox -f ./DATA/membox.conf1 &

Spegnimento server: killall membox -SIGUSR2

Invio di richieste dal client

Per eseguire il client (e richiedere al server l'esecuzione di un'operazione) la sintassi è:

./client -l /tmp/mbox_socket -c K:O:B

dove K è la chiave dell'oggetto su cui si vuole operare, O è il numero dell'operazione da eseguire sull'oggetto (per i codici vedere ops.h) e B è la quantità di byte relativa all'operazione.

Esempio (richiesta di operazione PUT [op. 0] di un oggetto di 8192 byte con chiave 0):

screenshot

Esecuzione di una batteria di 9 test prestabiliti: make -s anytest

Visualizzazione delle statistiche

Il programma è corredato di uno script bash che consente di visualizzare le statistiche del server.

Per visualizzare il valore corrente delle statistiche, usare il comando ./memboxstat.sh /tmp/mbox_stats.txt (oppure, per visualizzare dati costantemente aggiornati in tempo reale, usare watch -n1 ./memboxstat.sh /tmp/mbox_stats.txt):

screenshot

È anche possibile visualizzare lo storico dei valori precedenti (per la sintassi, vedere ./memboxstat.sh --help):

screenshot