La Codifica di Huffman è un algoritmo di codifica dell’entropia usato per la compressione di dati, basato sul principio di trovare il sistema ottimale per codificare stringhe basato sulla frequenza relativa di ciascun carattere. Albero di Huffman per la codifica della stringa “this is an example of a huffman tree“. Il Teorema di Shannon ci…
Seguendo l’esempio su come realizzare una lista doppiamente linkata in C, vediamo come implementare una lista dello stesso tipo utilizzando il linguaggio C++ e la programmazione object-oriented. Ricordiamo che una lista doppiamente linkata (detta anche lista doppiamente concatenata o lista bidirezionale) è una struttura dati dinamica composta da un insieme di elementi detti “nodi” collegati…
Un altro modo per scambiare dati tra processi UNIX è la memoria condivisa. Ogni memoria condivisa ha una chiave che la identifica in modo univoco. Quando un processo vuole utilizzare una memoria condivisa deve attaccarla al proprio spazio di indirizzamento, quando non desidera più utilizzarla può successivamente staccarla anche se essa continuerà ad esistere indipendentemente…
Dopo aver visto un esempio su come generare nuovi processi tramite l’utilizzo della chiamata fork(), ecco un altro esempio che mostra come far comunicare tra loro i processi tramite l’utilizzo delle code. Codice sorgente:
Questo è un esempio banale che mostra come implementare una semplice shell UNIX, non supporta i comandi che prendono uno o più parametri altrimenti bisognerebbe giocare un po’ di più con le stringhe. Sotto UNIX, tutti i processi nascono tramite una chiamata alla funzione fork() dal proprio processo padre, tramite la quale è possibile “sdoppiare”…