informatica:sol:laboratorio19:esercitazionib:esercitazione8
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Prossima revisione | Revisione precedente | ||
informatica:sol:laboratorio19:esercitazionib:esercitazione8 [10/04/2019 alle 13:11 (6 anni fa)] – creata Massimo Torquati | informatica:sol:laboratorio19:esercitazionib:esercitazione8 [16/04/2019 alle 05:34 (6 anni fa)] (versione attuale) – Massimo Torquati | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
====== Esercitazione 8 ====== | ====== Esercitazione 8 ====== | ||
- | |||
===== Esercizio 1 ===== | ===== Esercizio 1 ===== | ||
- | Scrivere un programma C che appena attivato va immediatamente in background, attende per X secondi (eseguendo il programma | + | Implementare utilizzando le chiamate di sistema |
+ | < | ||
+ | mycat file1 [fileN]. | ||
+ | </ | ||
===== Esercizio 2 ===== | ===== Esercizio 2 ===== | ||
+ | |||
+ | Scrivere un programma C che appena attivato va immediatamente in background, attende per X secondi (eseguendo il programma ''/ | ||
+ | |||
+ | ===== Esercizio 3 ===== | ||
Un processo //zombie// è un processo terminato ma che ancora possiede delle risorse (' | Un processo //zombie// è un processo terminato ma che ancora possiede delle risorse (' | ||
Scrivere un programma che prende un intero N come argomento e crea N processi zombies. Lanciare il programma in background e visualizzare gli zombies con il comando bash '' | Scrivere un programma che prende un intero N come argomento e crea N processi zombies. Lanciare il programma in background e visualizzare gli zombies con il comando bash '' | ||
+ | |||
+ | ===== Esercizio 4 ===== | ||
+ | |||
+ | Scrivere un programma C che prende come argomento un intero N>1. L' | ||
+ | < | ||
+ | ./family 4 | ||
+ | ---- 20894: creo un processo figlio | ||
+ | --- 20895: creo un processo figlio | ||
+ | -- 20896: creo un processo figlio | ||
+ | - 20897: creo un processo figlio | ||
+ | 20898: sono l' | ||
+ | 20898: terminato con successo | ||
+ | - 20897: terminato con successo | ||
+ | -- 20896: terminato con successo | ||
+ | --- 20895: terminato con successo | ||
+ | ---- 20894: terminato con successo | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Esercizio 5 ===== | ||
+ | |||
+ | Completare il codice seguente in modo che il programma calcoli i primi 13 numeri di Fibonacci utilizzando per ogni chiamata '' | ||
+ | |||
+ | < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | /* | ||
+ | * Calcola ricorsivamente il numero di Fibonacci dell' | ||
+ | * La soluzione deve forkare un nuovo processo che esegue una sola | ||
+ | * chiamata di ' | ||
+ | * Se doPrint e' 1 allora la funzione lo stampa, altrimenti il | ||
+ | * numero calcolato va passato al processo padre. | ||
+ | */ | ||
+ | static void doFib(int n, int doPrint); | ||
+ | |||
+ | int main(int argc, char *argv[]) { | ||
+ | // questo programma puo' calcolare i numeri di Fibonacci solo fino a 13. | ||
+ | const int NMAX=13; | ||
+ | int arg; | ||
+ | | ||
+ | if(argc != 2){ | ||
+ | fprintf(stderr, | ||
+ | return EXIT_FAILURE; | ||
+ | } | ||
+ | arg = atoi(argv[1]); | ||
+ | if(arg < 0 || arg > NMAX){ | ||
+ | fprintf(stderr, | ||
+ | return EXIT_FAILURE; | ||
+ | } | ||
+ | doFib(arg, 1); | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ |
informatica/sol/laboratorio19/esercitazionib/esercitazione8.1554901903.txt.gz · Ultima modifica: 10/04/2019 alle 13:11 (6 anni fa) da Massimo Torquati