Terza Tecnologie

I CODICI E LA CODIFICA DELLE INFORMAZIONI
  • I sistemi di numerazione posizionali
  • I sistemi di numerazione binario, ottale ed esadecimale
  • Conversioni tra basi: binario-decimale e viceversa, ottale-decimale e viceversa, esadecimale-decimale e viceversa, binario-esadecimale e viceversa
  • Aritmetica binaria ed esadecimale: somme, sottrazioni, moltiplicazioni e divisioni
  • Concetto di informazione e sua rappresentazione all'interno di un calcolatore
  • Rappresentazione dei numeri interi con e senza segno su N posizioni binarie: modulo e segno, complemento a 1 e complemento a 2
  • Il codice BCD
  • La rappresentazione in virgola mobile dei numeri reali con segno secondo lo standard IEEE 754 a 32 bit
  • La codifica dei caratteri alfanumerici: codifica ASCII e UNICODE

I SISTEMI OPERATIVI
  • Obiettivi e funzioni di un S.O
  • Caricamento del S.O. (bootstrap)
  • Tipologie dei S.O. ed evoluzione: dedicati, batch, multi programmati, real-time, di rete e sistemi operativi per dispositivi mobili
  • La classificazione dei S.O. in base alla modalità di gestione dei programmi (mono-programmazione, multiprogrammazione) e in base al tipo di accesso fornito agli utenti (monoutente, multiutente)
  • La struttura gerarchica e organizzazione di un S.O.: gestore dei processi, gestore della memoria, gestore delle periferiche, gestore delle informazioni e interprete dei comandi
  • Modello monolitico e modello a microkernel
  • Stato utente e stato supervisore
  • I concetti di processo e risorsa
  • Assegnazione delle risorse: statica, dinamica, in mutua esclusione, con o senza prerilascio
  • Le politiche di assegnazione delle risorse

I PROCESSI E I THREAD
  • Programmi e processi in Windows
  • Stati di un processo e transizioni di stato
  • Generazione e terminazione dei processi
  • Lo schedulatore dei lavori, lo schedulatore dei processi e i descrittori
  • Le politiche di schedulazione
  • Le interruzioni hardware e software e i passaggi di stato (il concetto di context switch)
  • Parametri per la valutazione delle prestazioni di un S.O.: percentuale di attività della CPU, throughput e overhead
  • Le problematiche nei sistemi operativi multi-tasking: concetto di concorrenza tra processi e competizione per l'uso le risorse
  • La situazione di stallo (deadlock): gestione dello stallo con tecniche di prevenzione e tecniche di riconoscimento e risoluzione del problema
  • La situazione di starvation
  • Algoritmo del barbiere
  • I filosofi a cena
  • Le politiche di schedulazione del processore (senza prerilascio): FCFS, SJF, a priorità e (con prerilascio): SJF, Round Robin e sue varianti (a percentuale di tempo, con priorità dinamica e a code multiple con feedback)
  • Schedulazione nei sistemi multi-core (coda unica e code separate)
  • Concetti di multielaborazione simmetrica e asimmetrica
  • Cenni al tipo di schedulazione in Windows XP e in Linux

LA GESTIONE DELLA MEMORIA
  • Le memorie di un computer
  • Compiti del gestore della memoria
  • Caricamento di un programma: dal programma eseguibile al processo in esecuzione
  • Spazio logico e spazio fisico: traduzione degli indirizzi
  • Concetto di programma rilocabile: rilocazione statica e dinamica
  • Allocazione della memoria
  • Partizioni fisse e frammentazione interna
  • Partizioni variabili e frammentazione esterna
  • Paginazione. Tabelle delle pagine e dei frame
  • Memoria virtuale e memoria virtuale con paginazione
  • Concetti di page fault e paginazione a richiesta. Algoritmi di scelta della pagina vittima: FIFO, LRU, LFU
  • Organizzazione della memoria in Windows e Linux

LA GESTIONE DEL FYLE-SYSTEM
  • Gestione del file-system
  • La visione dell'utente: file e directory
  • Organizzazione del file-system nell'unità di memorizzazione
  • Ottimizzazione delle prestazioni del file-system
  • Il file-system in Windows e Linux