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