• Non ci sono risultati.

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 15-16) – 15 APRILE 2016

N/A
N/A
Protected

Academic year: 2021

Condividi "SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 15-16) – 15 APRILE 2016"

Copied!
1
0
0

Testo completo

(1)

SISTEMI OPERATIVI e

LABORATORIO DI SISTEMI OPERATIVI (A.A. 15-16) – 15 APRILE 2016

Esercizio

Si realizzi un programma concorrente per UNIX che deve avere una parte in Bourne Shell e una parte in C (parte che potrà essere risolta solo alla fine del corso).

La parte in Shell deve prevedere un numero variabile di parametri N+1 (N maggiore o uguale a 2): i primi N parametri devono essere nomi assoluti di direttori che identificano N gerarchie (G1, G2, …) all’interno del file system, mentre l’ultimo parametro deve essere considerato un numero intero X strettamente positivo. Il comportamento atteso dal programma, dopo il controllo dei parametri, è organizzato in N fasi, una per ogni gerarchia.

Il programma, per ognuna delle N fasi, deve esplorare la gerarchia Gi corrispondente - tramite un file comandi ricorsivo, FCR.sh - e devono contare globalmente tutti i direttori che soddisfano le seguenti due specifiche: 1) devono contenere solo file (e non sotto-directory) e 2) devono contenere solo file la cui lunghezza in linee sia strettamente maggiore di X. Al termine di tutte le N fasi, si deve riportare sullo standard output il numero totale di direttori trovati globalmente che soddisfano la specifica precedente (direttori trovati). Inoltre, per ogni direttorio trovato, si deve riportare sullo standard output il suo nome assoluto, e quindi per ognuno dei file (file corrente) in esso contenuto deve essere riportato sullo standard output il suo nome assoluto e contestualmente la linea X-esima del file corrente a partire dalla fine del file.

IMPORTANTE:

1) Fare il login sui sistemi in modalità Linux usando il proprio username e password, aprire un browser sulla pagina ftp://lica02.lab.unimo.it/README, copiare il comando presente in un terminale ed eseguirlo rispondendo alle domande proposte: sul Desktop, viene creata automaticamente una directory studente_XXX al cui interno viene creato un file denominato student_data.csv che non va eliminato; infine , dopo avere copiato i propri file da chiavetta, passare in modalità testuale-

2) I file prodotti devono essere collocati nella directory studente_XXX dato che tale directory viene zippata e salvata automaticament sul server ad intervalli di tempo regolari. ALLA SCADENZA DEL TEMPO A DISPOSIZIONE VERRÀ ATTIVATA UNA PROCEDURA AUTOMATICA DI ESTRAZIONE, PER OGNI STUDENTE DEL TURNO, DEI FILE CONTENUTI NELLA DIRETTORY SPECIFICATA.

3) Il tempo a disposizione per la prova è di 60 MINUTI per lo svolgimento della sola parte shell.

4) Non è ammesso nessun tipo di scambio di informazioni né verbale né elettronico, pena la invalidazione della verifica:

all’ingresso deve essere lasciato il/i cellulare/i sulla cattedra e potranno essere ripresi solo all’uscita.

5) L’assenza di commenti significativi verrà penalizzata!

6) AL TERMINE DELLA PROVA È INDISPENSABILE CONSEGNARE IL TESTO DEL COMPITO (ANCHE IN CASO CHE UNO STUDENTE SI RITIRI): IN CASO CONTRARIO, NON POTRÀ ESSERE EFFETTUATA LA CORREZIONE DEL COMPITO MANCANDO IL TESTO DI RIFERIMENTO.

7) SI RICORDA CHE IN CASO DI ESITO INSUFFICIENTE è necessario visionare il compito prima di potersi iscrivere a qualunque appello successivo!

Riferimenti

Documenti correlati

1) Fare il login sui sistemi in modalità Linux usando il proprio username e password, attivare syncexam.sh e passare in modalità testuale. 2) I file prodotti devono essere

fino al figlio PN-1, ricevuta l’indicazione dal padre che può procedere, legge il primo carattere e lo comunica al padre che lo confronta con il primo carattere del file AF;

fino al figlio PN-1 che comunica con il padre; questo schema a pipeline deve essere ripetuto H volte e cioè per ogni linea letta dai file associati Fi e deve prevedere l’invio

Al termine dell’intera esplorazione ricorsiva di G, se sono stati trovati almeno 2 file, si deve invocare la parte in C passando come parametri i nomi dei file trovati (F1,

fino al figlio PN-1, ricevuta l’indicazione dal padre che può procedere, legge il primo carattere e lo comunica al padre che lo scrive sul file “Merge”; questo schema deve

1) Fare il login sui sistemi in modalità Linux usando il proprio username e password, attivare syncexam.sh e passare in modalità testuale. 2) I file prodotti devono essere

Ogni processo nipote PPi, una volta ricevuto il carattere AM dal processo figlio Pi, deve calcolare a sua volta il numero di occorrenze Nocc (in termini di long int) di AM nel

I processi figli Pi e il processo padre devono attenersi a questo schema di comunicazione: per ogni linea letta, il figlio Pi deve comunicare al padre la lunghezza della