ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX
|
|
- Aniello Esposito
- 8 anni fa
- Visualizzazioni
Transcript
1 ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX Introduzione In questa dispensa sono stati raccolti alcuni esercizi di programmazione C in ambiente Unix, tratti dagli esami di Sistemi Operativi svoltisi al Politecnico di Torino negli anni scorsi. Si è cercato di scegliere esercizi che privilegiassero l utilizzo delle system calls Unix, a discapito di quelli che, invece, fossero più basati sul corretto utilizzo della programmazione in C, utilizzando notevoli porzioni di testo tramite funzioni e istruzioni già viste nel corso di Fondamenti di Informatica.
2 Funzioni di Libreria C di Unix!"Duplicazione di un processo chiamante Int figlio Figlio=fork() La funzione fork() genera un processo figlio avente le stesse caratteristiche del padre, è cioè una funzione che stabilisce relazioni di tipo gerarchico. Il figlio eredita tutte le caratteristiche del padre, pur restandone distinto e potendo evolversi indipendentemente. Il risultato delle funzione fork() è il descrittore del figlio, pertanto, se tale valore è pari a 0, vuol dire che il processo figlio è stato creato correttamente (in valore minore di 0 vuole dire che la fork ha fallito l esecuzione) e, utilizzando la seguente sequenza di istruzioni If(figlio==0).... posso specificare una sequenza di istruzioni che deve eseguire solo il figlio Nello stesso modo, posso indicare il processo padre come segue: If(figlio==0) Codice relativo al figlio Codice relativo al padre Ho ovviamente supposto che la fork abbia fornito risultato positivo, altrimenti la non funziona correttamente, comprendendo fra le parentesi graffe anche l erronea esecuzione della fork (figlio <0) Dopo la fork() persistono due processi: il padre ed il figlio. Si ricorda che, qualora debba eseguire due fork, perché, ad esempio, il padre genera 2 figli, non posso eseguire le due fork una dopo l altra, altrimenti perdo il descrittore del processo padre che ha generato al fork.!"apertura di files già presenti su memoria di massa Int fd, flags Char *nome Fd=open(nome,flags) nome rappresenta il nome del file, flags rappresenta la modalità di apertura dello stesso, cioè R(read), W(write) e R/W(read write) e fd rappresenta il descrittore del file. Si ricorda che, come è prassi nel linguaggio C, il valore restituito dalla funzione open in fd vale 0 se il file viene aperto correttamente.
3 !"Creazione di un file int fd, perm char *nome fd=creat(nome,perm) perm rappresenta le modalità di protezione con cui viene creato un file. Normalmente il parametro formale perm viene passato tramite un numero intero, definito nella sezione #define PERM.. Affinché il programma associ correttamente a tale intero bisogna includere la libreria standard <fcntl.h> Si ricorda che, come è prassi nel linguaggio C, il valore restituito dalla funzione in fd vale 0 se il file viene creato correttamente.!"lettura di un file letto=read(fd,buf,n) int fd, n, letto char *buf fd rappresenta il descrittore del file (ovviamente già aperto o, eventualmente, creato), n è il numero di byte da leggere, mentre buf rappresenta l area di memoria su cui depositare il file. Se indichiamo al posto di fd il numero intero 0, vuol dire che la funzione legge dallo standard I/O, cioè dalla tastiera. Si ricorda che, come è prassi nel linguaggio C, il valore restituito dalla funzione rappresenta il numero di caratteri letti (quindi deve essere pari ad n).!"chiusura di un file int fd, fine fine=close(fd) Tale funzione restituisce valore 0 se il file, identificato da fd, viene chiuso correttamente. Qualora restituisca un valore <0 vuol dire che il file era già stato chiuso.!"scrittura di un file scritto=write(fd,buf,n) int fd, n, scritto char *buf tale funzione è ovviamente la duale di quella di lettura, preleva n dati da buf e li scrive sul file descritto da fd. Lo standard I/O, cioè il video o la stampante, viene indicato con il numero intero 1. Si ricorda che, come è prassi nel linguaggio C, il valore restituito dalla funzione rappresenta il numero di caratteri scritti (quindi deve essere pari ad n).!"comunicazione fra processi: la pipe ret=pipe(canale) int ret, canale[2]
4 L uso delle pipe consente di sincronizzare due processi in relazione gerarchica fra loro, creando un meccanismo di comunicazione accessibile in lettura da una parte e in scrittura dall altra. La sincronizzazione è garantita dal fatto che la pipe si blocca in lettura se è vuota, mentre si blocca in scrittura se è piena. Canale[0] identifica che la pipe è aperta in lettura, quindi un processo può leggere dalla pipe. Canale[1] identifica che la pipe è aperta in scrittura, quindi un processo può scrivere sulla pipe. In altre parole canale[0] e canale[1] rappresentano 2 file, sincronizzati dalla pipe, di cui uno accessibile solo in lettura, l altro solo in scrittura.!"segnali di sincronizzazione signal (tiposegnale,func) pause() La funzione signal predispone il sistema alla ricezione di un segnale di tipo tiposegnale, fornendone la risposta tramite la funzione func. Qualora arrivi un segnale, il processo risponde tramite la func. I segnali di Unix sono contenuti nella libreria standard <signal.h>. La funzione pause() sospende il processo in attesa dell arrivo di un segnale. kill (identificatore,tiposegnale) La funzione kill consente ad un processo di inviare al processo identificato da identificatore un segnale di tipo tiposegnale. Si ricorda l uso delle funzioni di libreria identificatore=getpid(), con cui un processo può conoscere il suo descrittore e la funzione identificatore=getppid(), con cui un processo può conoscere il descrittore del processo padre.!"uscita da un processo Int status void=exit(status) Il processo termina e comunica attraverso il parametro status la sua terminazione (0 tutto OK, -1 terminazione erronea) La terminazione di un processo può servire per comunicare il parametro ad un altro processo che è in attesa della stessa.!"attesa della terminazione di un processo Int status, fd fd=wait(&status) Nel parametro fd viene restituito il descrittore del file che è terminato, poiché ha comunicato al processo chiamante il suo stato di terminazione (status) La funzione wait è sospensiva e predispone il processo chiamante all attesa della terminazione di un altro processo. Quest ultimo, tramite la funzione exit(status), può comunicare la sua terminazione e sbloccare il processo chiamante.
5 Esercizio 1: Si scriva un programma C per ambiente Unix tale che venga emulata una struttura di processi organizzati master-slave; si supponga di dover gestire 3 slave. Ogni slave deve mandare un segnale di tipo SIGUSR1 al master; tale messaggio può essere mandato solo previa autorizzazione del master mediante un segnale di tipo SIGUSR2. Quando il master ha ricevuto tutti e tre i messaggi, uccide gli slave con un messaggio di tipo SIGKILL. La logica del programma è la seguente: a) Ogni slave deve inviare la master un segnale di tipo sigusr1(sincronizzazione) b) Tale messaggio può essere inviato solo dopo che il master ha autorizzato lo slave tramite un segnale di tipo sigusr2 (sincronizzazione) c) Quando il master ha ricevuto tutti e tre i messaggi, uccide (cioè fa terminare ) i tre processi slave (da lui generati!!!), tramite un segnale di di tipo sigkill #include <stdio.h> #include <signal.h> void func1(void); void func2(void); void func1() \*predisposizione di risposta al segnale inviato dallo slave*\ printf( ho ricevuto un messaggio dallo slave \n ); void func2() \*predisposizione di risposta al segnale inviato dal master*\ printf( ho ricevuto un messaggio dal master \n ); main() Int pid1, pid2, pid3 pid1=fork(); \* il processo chiamante genera il primo slave *\ If(pid1==0) \* se primo slave *\ signal (sigusr2,func2); \*se arriva un segnale di tipo sigusr2, rispondo con *\ \* func2 *\ pause (); \*attendo un segnale*\ kill (getppid(),sigusr1); \*invio un segnale sigusr2 al padre *\ pause() \*attendo un segnale*\ pid2=fork(); \* il processo chiamante genera il secondo slave *\ If(pid2==0) \* se secondo slave *\ signal (sigusr2,func2); pause (); kill (getppid(),sigusr1); pause()
6 pid3=fork() \* genero il terzo slave *\ If(pid3==0) \* se terzo slave*\ signal (sigusr2,func2); pause (); kill (getppid(),sigusr1); pause() \*processo padre (master)*\ signal (sigusr1,func1) \*predispongo la risposta al sigusr1*\ kill (pid1,sigusr2) \*invio sigusr2 al primo slave*\ pause() \*resto in attesa di una risposta*\ signal (sigusr1,func1) \*predispongo la risposta al sigusr1*\ kill (pid2,sigusr2) \*invio sigusr2 al secondo slave*\ pause() \*resto in attesa di una risposta*\ signal (sigusr1,func1) \*predispongo la risposta al sigusr1*\ kill (pid3,sigusr2) \*invio sigusr2 al terzo slave*\ pause() \*resto in attesa di una risposta*\ kill (pid1, sigkill); \*uccido il primo slave*\ kill (pid2, sigkill); \*uccido il secondo slave*\ kill (pid3, sigkill); \*uccido il terzo slave*\ Exit(0); \*termino regolarmente*\
7 Esercizio 2 La logica del programma è la seguente: a) Il processo 1 deve leggere 5 caratteri da tastiera b) Deve mettere (scrivere) tali caratteri nella mailbox (mail2.txt) c) Deve avvisare il processo 2 tramite un segnale di tipo sigusr1 Il processo 2 deve a) Leggere la posta b) Invertire l ordine dei caratteri c) Inserire la stringa invertita nella mailbox mail1.txt #include <signal.h> #include <stdio.h> #include <fcntl.h> #define PERM 0766 void func (void) void func() printf( ho inserito un messaggio nella mailbox\n ); main() int fd1,fd2,pid,buf1[5],buf2[5],i,j,status; fd1=creat( mail1.txt,perm); \* creo i file su cui depositare i dati*\ fd2=creat( mail2.txt,perm); Pid=fork(); \*genero il figlio*\ If(pid==0) \*il processo figlio*\ read(0,buf1,5); \*legge 5 caratteri da tastiera (0) e li deposita sul *\ \* buf1*\ write (fd2,buf1,5); \*scrive tali caratteri sul file mail2.txt *\ kill(getppid(),sigusr1); \*invio un segnale di sincronizzazione la padre *\ close(fd2) \* chiudo il file mail2.txt *\ wait(&status)); \*il processo resta in attesa della terminazione *\ \* del secondo*\
8 Else \* padre*\ signal (sigusr1,func); \*predispongo la risposta al segnale*\ pause(); \*resto in attesa di un segnale*\ fd2=open ( mail2.txt,o_rdonly); \*apro il file mail2.txt in sola lettura*\ read (fd2,buf1,5); \* leggo il contenuto e lo deposito su buf1*\ j=4; for(i=0,i<5,i++) buf2[j]=buf1[i]; \* inverto i caratteri inserendoli in buf2*\ j=j-1; close(fd2); \* chiudo il flie*\ write (fd1,buf2,5); \* scrivo sulla mail1.txt*\ close (fd1); \* chiudo il file mail1.txt *\ exit(0); \*esco e comunico la terminazione regolare (0) *\
9 Esercizio 3: Si scriva un programma C per ambiente Unix tale che venga realizzata una struttura padre-figlio. Il processo padre, ogni 5 secondi, manda un segnale di tipo sigusr1 al figlio e poi si sospende in attesa di una risposta dal figlio stesso. Il figlio, ricevuto il segnale, legge un carattere da tastiera. Se il carattere è q o Q il figlio invierà al recesso padre un messaggio di tipo sigkill e poi terminerà, altrimenti, manda al padre un messaggio di tipo sigusr2 che lo sblocca. La logica del programma è la seguente: il padre: ogni 5 secondi invia un segnale di tipo sigusr2 e attende una risposta dal figlio il figlio: a) Resta in attesa del segnale; b) legge da tastiera un carattere; c) se il carattere è q o Q uccide il padre e poi termina, altrimenti gli invia un segnale che lo sblocca #include <signal.h> #include <stdio.h> #define timeout 5 void func1 (void) void func1() printf( ho ricevuto un messaggio\n ); main() int pid, status,buf[1] status =1; pid=fork(); if(pid!=0) do while (status=1) \* genero il figlio*\ \* processo padre*\ kill (pid=0, sigusr1); sleep (timeout); wait (&status); signal(sigusr1,func1); pause(); read (0,buf,1); if((buf== q )//(buf== Q )) kill(getppid,sigkill); exit(-1);
10 exit(0);
11 Esercizio 4 #define PERM 0600 #include<fcntl.h> main() int I, j, pid, canale[2], tab[10], status, fd pipe (canale); \* genero la pipe *\ pid=fork(); \* genero il processo figlio *\ if(pid!=0) \* processo padre*\ close (canale[0]); \* chiudo la pipe in lettura*\ i=3; for (j=0,j<10,j++) \* genero la tabellina del 3*\ tab[j]=i; i=i+3; write(canale[1],tab,10]; \* scrivo sulla pipe *\ wait(&status); \* attendo la terminazione del figlio*\ \* processo figlio *\ close(canale[1]); \* chiudo la pipe in scrittura*\ fd=creat( tab_3.txt,perm); \*creo il file *\ read (canale[0],tab,10); \* leggo la pipe *\ write (fd,tab,10); \*scrivo sul file *\ close(fd); \* chiudo il file *\ exit(0); \* comunico la terminazione *\
12 Esercizio 5 main() int I, j, pid, canale1[2], canale2[2], tab[10], somma [1], status, valore, pipe (canale1); \* genero la prima pipe *\ pipe (canale2); \* genero la seconda pipe *\ pid=fork(); \* genero il processo figlio *\ if(pid>0) for (i=0;i<10,i++) \* processo padre*\ valore =rand(); \*genero il valore casuale*\ tab[i]=valore; \*scrivo il valore su tab[i] *\ \* chiudo la pipe1 in lettura*\ \* chiudo la pipe2 in scrittura*\ close (canale1[0]); close (canale2[1]); write(canale1[1],tab,10); \* scrivo sulla pipe 1 *\ wait(&status); \* attendo la terminazione del figlio*\ read(canale2[0],somma,1); \* leggo dalla pipe 2 la somma*\ exit(0); \*processo figlio *\ close (canale1[1]); close (canale2[0]); somma[0]=0; read(canale1[0],tab,10); for (j=0;j<10,j++) write (canale2[1],somma,1]); exit(0); somma[0]=somma[0]+tab[j]; \* chiudo la pipe1 in scrittura*\ \* chiudo la pipe2 in lettura*\ \*inizializzo la somma*\ \* leggo dalla pipe 1 la tabella*\ \*genero la somma*\ \*scrivo la somma sulla pipe2*\ \* comunico la terminazione*\
13 Esercizio 6 Si scriva un programma C per ambiente Unix in cui il padre crea due processi figli. Il primo figlio legge 5 caratteri da tastiera e li passa al secondo, che, al termine, invia la fratello un messaggio di avvenuta ricezione. Il padre aspetta la terminazione dei figli e segnala l ordine con cui terminano. #include <signal.h> #include <stdio.h> void func1 (void) void func1() printf( ho ricevuto un messaggio\n ); main() int figlio1, figlio2, figlio, canale[2], tab[5], status pipe (canale1); \* genero la pipe *\ figlio1=fork(); \* genero il primo processo figlio *\ if(figlio1<0) printf( fork fallita\n ); \*segnalo l errore sulla fork*\ exit(-1); if(figlio1==0) \*primo figlio*\ close(canale[0]); \* chiudo la pipe1 in lettura*\ read(0,tab,5); \*leggo 5 caratteri da tastiera (0) e li *\ \*deposito su tab*\ write (canale[0];),buf1,5); \*scrivo sulla pipe*\ signal(sigusr1,func1); \*predispongo la ricezione del *\ \*segnale*\ pause(); \*resto in attesa*\ exit(0); \*esco regolarmente*\ \*codice del padre*\ figlio2=fork(); \* genero il secondo processo figlio *\ if(figlio2<0) printf( fork fallita\n ); \*segnalo l errore sulla fork*\ exit(-1); if (figlio2==0) \*secondo figlio*\ close(canale[1]); \* chiudo la pipe1 in scrittura*\ read(canale[0],tab,5); \*leggo 5 caratteri dalla pipe e li *\ \*deposito su tab*\ kill(figlio1,sigusr1); \*invio il segnale al primo figlio*\
14 exit(0); \* padre*\ figlio=wait(&status); \*aspetto la terminazione*\ if(figlio==figlio1) \ha terminato il primo figlio*\ printf( ha terminato il primo figlio\n ); if (figlio==figlio2) printf( ha terminato il secondo figlio\n ); wait(&status); printf(ha terminato anche l altro figlio\n );
15 Esercizio 7 La logica del programma è la seguente: a) il padre legge 2 numeri da tastiera b) passa il primo numero al figlio che calcola il fattoriale. c) Il figlio restituisce il risultato al padre, che gli passa il secondo numero d) Mentre il figlio calcola il fattoriale il padre scrive il primo risultato sul file fattorial.txt, creato con permessi e) Il figlio passa il secondo risultato al padre che lo scrive sul file fattorial.txt. #define PERM 0666 #include <stdio.h> main() int figlio, canale1[2], canale2[2], num1[1], num2[1], fat1[1], fat2[1], fd, i pipe (canale1); \* genero la prima pipe *\ pipe (canale2); \* genero la seconda pipe *\ figlio=fork(); \* genero il primo processo figlio *\ if(figlio<0) printf( fork fallita\n ); \*segnalo l errore sulla fork*\ exit(-1); if(figlio>0) \processo padre*\ close (canale1[0]); \* chiudo la pipe1 in lettura*\ close (canale2[1]); \* chiudo la pipe2 in scrittura*\ read (0,num1,1) \leggo da tastiera il primo numero*\ read (0,num2,1) \leggo da tastiera il secondo numero*\ write(canale1[1],num1,1); \* scrivo sulla pipe 1 il primo numero*\ read(canale2[0],fat1,1); \* leggo dalla pipe 2 il primo risultato*\ write(canale1[1],num2,1); \* scrivo sulla pipe 1 il secondo numero*\ fd=creat ( fattorial.txt,perm); \creo il file su cui depositare i dati*\ write(fd,fat1,1); \*scrivo il primo risultato *\ read(canale2[0],fat2,1); \* leggo dalla pipe 2 il secondo risultato*\ write(fd,fat2,1); \*scrivo il secondo risultato *\ close(fd) \*chiudo il file aperto*\ exit(0) \*termino regolarmente*\ \*figlio*\ close (canale2[0]); \* chiudo la pipe2 in lettura*\ close (canale1[1]); \* chiudo la pipe1 in scrittura*\
16 read (canale1[0],num1,1) \leggo da pipe1 il primo numero*\ fat1[0]=num1[0] \*calcolo il primo fattoriale *\ for(i=1,i<num1[0], i++) fat1[0]=fat1[0]*(num1[0]-i); write(canale2[1],fat1,1); \* scrivo sulla pipe 2 il primo fattoriale*\ read (canale1[0],num2,1) \leggo da pipe1 il secondo numero*\ fat2[0]=num2[0] \*calcolo il secondo fattoriale *\ for(i=1,i<num2[0], i++) fat2[0]=fat2[0]*(num2[0]-i); write(canale2[1],fat2,1); \* scrivo sulla pipe 2 il secondo fattoriale*\ exit(0) \*termino regolarmente*\
17 Esercizio 8 #include <stdio.h> const K 6 const X 0.5 int fatt(int ) int potenza (int,int) main() int figlio1, figlio2, canale1[2], canale2[2], somma1[3], somma2[3], i, j, somma[1] pipe (canale1); \* genero la prima pipe *\ pipe (canale2); \* genero la seconda pipe *\ figlio1=fork(); \* genero il primo processo figlio *\ if(figlio1<0) printf( fork fallita\n ); \*segnalo l errore sulla fork*\ exit(-1); if(figlio1==0) \primo figlio*\ close(canale1[0]); \*chiudo pipe1 in lettura*\ j=1 for(i=0, i<(k/2), i++) \*calcolo i primi tre termini della somma*\ somma1[i]=(potenza(x,(2*j-1)))/fatt((2*j-1)); write(canale1[1],somma1,1); j=j+2 exit(0); figlio2=fork(); if(figlio2<0) printf( fork fallita\n ); \*scrivo sulla pipe1*\ \*processo padre\* \*genero il secondo figlio*\ \*segnalo l errore sulla fork*\
18 exit(-1); if(figlio 2==0) \*secondo figlio *\ close(canale2[0]); \*chiudo pipe2 in lettura*\ j=2 for(i=0, i<(k/2), i++) \*calcolo i secondi tre termini della somma*\ somma2[i]=-(potenza(x,(2*j-1)))/fatt((2*j-1)); write(canale2[1],somma2,1); \*scrivo sulla pipe2*\ j=j+2 exit(0); \*padre*\ close(canale1[1]); \*chiudo pipe1 in scrittura*\ close(canale2[1]); \*chiudo pipe2 in scrittura*\ read (canale1[1],somma1,3); read (canale2[1],somma2,3); somma =0; for(i=0,i<3,i++) somma[0] =somma[0] +somma1[i]; for(i=0,i<3,i++) somma[0] =somma[0] +somma2[i]; write(1,somma,1); exit(0); int fatt(int n) if(n==0) fatt=1; fatt=n*fatt(n-1); return fatt int potenza(int base, int esponente) if(esponente==0) potenza=1; potenza=base*potenza(base, esponente-1); return potenza
Sincronizzazione e comunicazione tra processi in Unix. usati per trasferire ad un processo l indicazione che un determinato evento si è verificato.
Processi parte III Sincronizzazione e comunicazione tra processi in Unix Segnali: usati per trasferire ad un processo l indicazione che un determinato evento si è verificato. Pipe: struttura dinamica,
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che
DettagliLab. di Sistemi Operativi - Esercitazione n 9- -Thread-
Lab. di Sistemi Operativi - Esercitazione n 9- -Thread- 1 Sommario Esercizi su: Comunicazione tra processi: la funzione pipe() Condivisione dati e codice tra due o più processi: concetto di Thread 2 -
DettagliLab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix-
Lab. di Sistemi Operativi - Esercitazione n 7- -Gestione dei processi Unix- 1 Sommario Esercizi sulla gestione dei processi Creazione di un nuovo processo: fork Sincronizzazione tra processi: wait 2 -
DettagliEsercizio sulla gestione di file in Unix
Esercizio sulla gestione di file in Unix 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra due processi (padre e figlio) mediante
DettagliI/O su Socket TCP: read()
I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una
DettagliLaboratorio di Sistemi Operativi
Le FIFO pipe vs fifo la pipe può essere usata solo tra processi "imparentati" (che hanno un antenato comune che ha creato la pipe) la fifo consente di scambiare dati tra processi qualsiasi 2 1 FIFO (named
DettagliCorso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI. Fabio Buttussi
Corso di Sistemi Operativi A.A. 2008-2009 - CHIAMATE DI SISTEMA PER IL CONTROLLO DEI PROCESSI Fabio Buttussi La programmazione di sistema Il kernel è la parte di Unix che corrisponde al sistema operativo
DettagliCorso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria
DettagliIPC System V. Code di messaggi
IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliAXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema
AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliGian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliInter Process Communication. Laboratorio Software 2008-2009 C. Brandolese
Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliThread: sincronizzazione Esercitazioni del 09 Ottobre 2009
Thread: sincronizzazione Esercitazioni del 09 Ottobre 2009 Luca Fossati, Fabrizio Castro, Vittorio Zaccaria October 10, 2009 Sincronizzazione - 1 1 Esercizio 1: Sincronizzazione - 1 Qual è il problema
DettagliLe system call: fork(), wait(), exit()
Le system call: fork(), wait(), exit() Di seguito viene mostrato un programma che fa uso di puntatori a funzione, nel quale si mette in evidenza il loro utilizzo. Programma A1 #include int add(a,b,c)
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliCREAZIONE PROCESSI IN UNIX 20
CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo puo' essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente.
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliSistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo
Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al
DettagliComputazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2
Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
DettagliI puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
DettagliIntroduzione al linguaggio C Gli array
Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome
DettagliSistemi Operativi L-A. Esercizi 14 Giugno 2007. Esercizio monitor
Sistemi Operativi L-A Esercizi 14 Giugno 2007 Esercizio monitor Si consideri la toilette di un ristorante. La toilette è unica per uomini e donne. Utilizzando la libreria pthread, si realizzi un'applicazione
DettagliProcessi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX
Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice
DettagliInter-Process Communication
Inter-Process Communication (IPC) IPCS 1 1. Code di messaggi 2. Semafori 3. Memoria condivisa send receive 2? 3 p1 p3 p2 CODE DI MESSAGGI Modello di Comunicazione Code di Messaggi Il processo ricevente
DettagliRICERCA DI UN ELEMENTO
RICERCA DI UN ELEMENTO Si legga da tastiera un array di N elementi (N stabilito dall utente) Si richieda un elemento x il programma deve cercare l elemento x nell array Se l elemento è presente, deve visualizzare
DettagliEsercizi di programmazione in C
Esercizi di programmazione in C Esercizio 1 Scrivere un programma in linguaggio C che legga da tastiera una sequenza di lunghezza ignota a priori di numeri interi positivi. Il programma, a partire dal
DettagliIl Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
DettagliSistemi Operativi: Programmazione di Sistema
Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2011/2012 Prof. Luca Ferrari e-mail: ferrari@dsi.unifi.it telefono: 055 4237454
Dettaglivoid funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
DettagliAlgebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliLe variabili. Olga Scotti
Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.
DettagliFunzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
DettagliProgrammazione multiprocesso
DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di
DettagliGestione dei processi
Gestione dei processi Dormire unsigned int sleep(unsigned int); Attende un numero specificato di secondi a meno che non si verifichi un segnale Restituisce 0 se l'attesa è terminata senza interruzioni,
DettagliRealizzazione di Politiche di Gestione delle Risorse: i Semafori Privati
Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad
DettagliFondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main
Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli
DettagliFunzioni matlab per la gestione dei file. Informatica B Prof. Morzenti
Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla
DettagliTerza Esercitazione. Unix - Esercizio 1. Unix System Call Exec Java Introduzione Thread
Terza Esercitazione Unix System Call Exec Java Introduzione Thread Stefano Monti smonti@deis.unibo.it Unix - Esercizio 1 Scrivere un programma C con la seguente interfaccia:./compilaedesegui
DettagliRICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di
RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL
DettagliEsercizio 2. Client e server comunicano attraverso socket TCP
Esercizio 1 Scrivere una applicazione client/server in cui: Il client, in un ciclo infinito: Legge una stringa da standard input Invia al processo server la stringa. Il server visualizza: L'IP da cui si
DettagliSISTEMI OPERATIVI. Sincronizzazione dei processi. Domande di verifica. Luca Orrù Centro Multimediale Montiferru 30/05/2007
2007 SISTEMI OPERATIVI Sincronizzazione dei processi Domande di verifica Luca Orrù Centro Multimediale Montiferru 30/05/2007 Sincronizzazione dei processi 1. Si descrivano i tipi di interazione tra processi?
DettagliEsercitazione 3. Corso di Fondamenti di Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 3 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi
DettagliMatematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE
Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...
DettagliStrutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
DettagliElementi di Architettura e Sistemi Operativi
Elementi di Architettura e Sistemi Operativi Bioinformatica - Tiziano Villa 15 Giugno 2015 Nome e Cognome: Matricola: Posta elettronica: problema punti massimi i tuoi punti problema 1 4 problema 2 6 problema
DettagliFile I/O. M. R. Guarracino: File I/O 1
File I/O M. R. Guarracino: File I/O 1 File I/O Gran parte delle operazioni su file in ambiente UNIX possono essere eseguite utilizzando solo cinque funzioni: open read write lseek close M. R. Guarracino:
DettagliARTeS iscrizione Albi e Registri Terzo Settore della Regione Lazio Guida alle procedure di iscrizione. Rev. 0 del 2 maggio 2012
ARTeS iscrizione Albi e Registri Terzo Settore della Regione Lazio Guida alle procedure di iscrizione Rev. 0 del 2 maggio 2012 1 Il sistema informativo A.R.Te.S. È operativa dal 2 maggio la nuova procedura
DettagliFondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
DettagliASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX
Parte 2 Struttura interna del sistema LINUX 76 4. ASPETTI GENERALI DEL SISTEMA OPERATIVO LINUX La funzione generale svolta da un Sistema Operativo può essere definita come la gestione dell Hardware orientata
DettagliEsercizio 1. Esercizio 1
Esercizio 1 Un registratore di cassa registra su di un file binario alcuni dati relativi agli scontrini emessi. In particolare, tramite una struttura dati di nome scontrino, il registratore di cassa tiene
DettagliEsempio produttori consumatori. Primitive asincrone
Primitive asincrone Send non bloccante: il processo mittente, non appena inviato il messaggio, prosegue la sua esecuzione. Il supporto a tempo di esecuzione deve fornire un meccanismo di accodamento dei
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliGli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
DettagliCorso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
DettagliProgrammazione I / Informatica generale Prova scritta 11 Giugno 2008
Programmazione I / Informatica generale Prova scritta 11 Giugno 2008 NOTA: Si trascuri ogni problema legato al tipo ed al valore di ritorno della funzione main. Inoltre, nei programmi è da sottintendere
DettagliDrivers. Introduzione Tipologie Struttura Interazione con il kernel
Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità
DettagliAllocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
DettagliLinguaggio C - Stringhe
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - Stringhe La presente dispensa e da utilizzarsi ai
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
DettagliSoftware di base. Corso di Fondamenti di Informatica
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Software di base Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti
DettagliMatlab: Gestione avanzata dei file
Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma
DettagliSystem call fcntl e record locking
System call fcntl e record locking Esempio: prenotazione di voli aerei La compagnia ACME Airlines usa un sistema di prenotazione dei voli basato su unix. Possiede due uffici per la prenotazione, A e B,
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliLe funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.
Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni
DettagliSistemi Operativi Teledidattico
Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione
DettagliAlcune regole di base per scrivere un programma in linguaggio C
Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliLab 11 Gestione file di testo"
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 11 Gestione file di testo" Lab15 1 Esercizio 1 n Realizzare un programma che, aperto un file di testo di nome
DettagliLa sincronizzazione è legata alla implementazione delle pipe: int pipe(int fd[2]);
int pipe(int fd[2]); Le pipe sono canali di comunicazione unidirezionali che costituiscono un primo strumento di comunicazione (con diverse limitazioni), basato sullo scambio di messaggi, tra processi
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliPronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
DettagliUso di base delle funzioni in Microsoft Excel
Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce
DettagliAppunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio
Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto
DettagliPSNET UC RUPAR PIEMONTE MANUALE OPERATIVO
Pag. 1 di 17 VERIFICHE E APPROVAZIONI VERSIONE V01 REDAZIONE CONTROLLO APPROVAZIONE AUTORIZZAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA PRATESI STATO DELLE VARIAZIONI VERSIONE PARAGRAFO O DESCRIZIONE
DettagliCon il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
DettagliProgrammazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliEsercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005)
Esercitazione finale per il corso di Sistemi Operativi (A.A. 2004/2005) Descrizione dell esercitazione L esercitazione consiste nell implementare un semplice gestore di aste attraverso il quale gli utenti
DettagliIl descrittore di processo (PCB)
Il descrittore di processo (PC) Il S.O. gestisce i processi associando a ciascuno di essi un struttura dati di tipo record detta descrittore di processo o Process Control lock (PC) Il PC contiene tutte
DettagliCorso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011
Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2010-11 13 settembre 2011 Testo Il database di un videonoleggio è costituito da due vettori paralleli.
DettagliCAP. 6: Nucleo del sistema operativo (La gestione dei processi)
Struttura interna del sistema operativo Linux CAP. 6: Nucleo del sistema operativo (La gestione dei processi) Architettura del sistema operativo shell Programmi utente Modo utente Interfaccia delle chiamate
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni
DettagliGuida all utilizzo del forum di direzionebandacs.altervista.org
Guida all utilizzo del forum di direzionebandacs.altervista.org Il forum è la parte del sito su cui si basa l interattività e quindi lo scambio di messaggi e materiale tra gli utenti. E composto da 2 sezioni
DettagliCorso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
DettagliDispensa di Informatica I.1
IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.
DettagliEsercizio sulla gestione di file in Unix. Sistemi Operativi T AA
Esercizio sulla gestione di file in Unix Sistemi Operativi T AA 2011-2012 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra
Dettagli2.7 La cartella Preparazioni e CD Quiz Casa
2.7 La cartella Preparazioni e CD Quiz Casa SIDA CD Quiz Casa è il cd che permette al candidato di esercitarsi a casa sui quiz ministeriali e personalizzati. L autoscuola può consegnare il cd al candidato
DettagliMANUALE UTENTE. In questo manuale verranno descritte tutte le sue funzioni. Il sistema OTRS è raggiungibile al seguente link:
MANUALE UTENTE OTRS è il sistema di ticketing per la gestione delle richieste tecniche e di supporto ai clienti e partner di Delta Progetti 2000. La nuova versione 3.2.10 introduce una grafica più intuitiva
Dettagli