PROGRAMMA DI SISTEMI

Transcript

PROGRAMMA DI SISTEMI
Istituto Tecnico Industriale Statale “Michele Giua”
PROGRAMMA SVOLTO TSTPI
Classi: IV B – Informatica
Anno scolastico: 2015/16
Docente teorico: Umberto Urpis
Docente pratico: Andreas Vincis
1. Modulo di passaggio dal linguaggio C# al linguaggio C standard
 selezioni, cicli, istruzioni di input output, strutture dati (array, stringhe e matrici)
 Strutture e array di strutture
 Puntatori, puntatori e array, puntatori e strutture
 strutture dati statiche e dinamiche
 Funzioni in C, parametri per valore e per riferimento e valori di ritorno delle funzioni
 Allocazione dinamica della memoria con la funzione malloc
 Funzione free
 Operatori bit a bit in linguaggio C
2. Cenni al sistema operativo Linux
 uso in laboratorio per la programmazione in C tramite compilatore gcc
 comandi della shell
 comando pstree
 Processi e memoria in Linux Ubuntu
3. Programmazione concorrente
 Processi, stati di un processo, transizione di stati
 schedulazione
 Processi e thread
 Competizione e cooperazione tra processi (cenni)
 Comunicazione tra processi
 Processi padre e figlio
 Funzioni fork(), getpid() e pipe()
 Programmazione concorrente in linguaggio C in Linux
4. Semafori
 Sincronizzazione di processi e thread con l’uso dei semafori
 Semafori binari e di Dijastra
 Semafori e mutua esclusione
 Vincoli di precedenza
 Problema del rendez-vous
 Problema del produttore e consumatore
 Esempio di Deadlock
 Uso di semafori della libreria pthread.h linguaggio C
Esercitazioni di laboratorio
L'interfaccia a riga di comando:
la Shell Bash: comandi
Il prompt dei comandi in ambiente Windows: comandi
Differenze nella programmazione tra i linguaggi C# e C
La compilazione a riga di comando: il compilatore gcc
I puntatori in Linguaggio C:
Definizione e dichiarazione di un puntatore di primo livello
Richiami sui passaggi di parametri ai sottoprogrammi
L'aritmetica dei puntatori
Accesso ai campi di una struttura attraverso i puntatori
Allocazione dinamica: funzioni malloc() e free()
Gestione dei processi in Linguaggio C:
Primitive per la creazione e la gestione di nuovi processi
Sincronizzazione dei processi: i Mutex
Cagliari, 10/06/2016