• Non ci sono risultati.

SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 17-18) – 11 APRILE 2018 TESTO TURNI 1 e 2

N/A
N/A
Protected

Academic year: 2021

Condividi "SISTEMI OPERATIVI e LABORATORIO DI SISTEMI OPERATIVI (A.A. 17-18) – 11 APRILE 2018 TESTO TURNI 1 e 2"

Copied!
2
0
0

Testo completo

(1)

SISTEMI OPERATIVI e

LABORATORIO DI SISTEMI OPERATIVI (A.A. 17-18) – 11 APRILE 2018

TESTO TURNI 1 e 2

IMPORTANTE:

LEGGERE LE INFORMAZIONI SUL RETRO DEL FOGLIO!!!

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 delle lezioni).

La parte in Shell deve prevedere un numero variabile di parametri N+1 (con N maggiore o uguale a 2):

il primo parametro deve essere considerato un numero intero Y strettamente positivo, mentre gli altri N devono essere nomi assoluti di directory che identificano N gerarchie (G1, G2, …) all’interno del file system. 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 deve contare globalmente tutti i file che saranno creati secondo quanto di seguito specificato. Il file comandi ricorsivo FCR.sh deve cercare in tutte le directory ogni file leggibile f1 con lunghezza in linee maggiore o uguale Y; si dovrà quindi selezionare la singola linea numero 5 a partire dall’inizio del file che dovrà essere scritta in un file appositamente creato avente nome f.quinta;

in caso, il file sia più corto e non sia possibile selezionare la linea sopra specificata bisogna creare un file vuoto di nome f.NOquinta. Al termine di tutte le N fasi, si deve riportare sullo standard output il numero totale di file creati globalmente. In seguito, per ogni file creato, si deve riportare sullo standard output il suo nome assoluto, e quindi il suo contenuto con opportune frasi che facciano capire all’utente che cosa si sta visualizzando.

1 NOTA BENE: avendo usato l’indicazione generica f per ogni file che soddisfa le specifiche indicate, quando nel seguito si usa la notazione f.quinta e f.NOquinta si intende che al posto della f si deve mettere il nome del file!

(2)

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_1_4_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_1_4_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) Per facilitare le operazioni di stampa dei compiti sono imposte le seguenti regole per nominare i file da salvare nella directory studente_1_4_XXX:

 FCP.sh per il file che contiene lo script principale (quello di partenza) della parte SHELL;

 FCR.sh per il file che contiene lo script ricorsivo della parte SHELL;

Devono essere rispettati esattamente i nomi indicati altrimenti NON si procederà alla correzione del compito!

4) NON devono essere presenti altri file con nome che termina con .sh nella directory studente_1_4_XXX.

5) Il tempo a disposizione per la prova è di 60 MINUTI.

6) 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.

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

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

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

Riferimenti

Documenti correlati

Il programma, per ognuna delle N fasi, deve esplorare la gerarchia Gi corrispondente - tramite un file comandi ricorsivo, FCR.sh - e deve contare globalmente tutti i file con

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 (come

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 Fk e deve prevedere l’invio

Il processo padre ha il compito di ricevere, rispettando l’ordine dei file, prima il valore intero L e quindi, usando in modo opportuno questa informazione, la linea: per ogni

Per ogni insieme ricevuto, il padre deve determinare il valore massimo e, SOLO AL PROCESSO FIGLIO CHE HA INVIATO TALE VALORE, deve indicare (*) di stampare su

La parte in C accetta un numero variabile N+1 di parametri (con N maggiore o uguale a 2, da controllare) che rappresentano N nomi di file (F1, F2. FN-1), mentre l’ultimo rappresenta

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

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