SISTEMI OPERATIVI
Di cosa parla
- Introduzione e Architettura Hardware:
- Definizione del Sistema Operativo (SO) e modalità Kernel/Utente.
- Componenti Hardware: CPU (pipeline, registri, cache), memoria (gerarchia), dispositivi I/O (controller, driver), bus, spazio di indirizzamento, System Call.
- Sistemi Monolitici, Microkernel e Distribuiti.
- Gestione Processi e Thread:
- Processo: programma con stato esecutivo, creazione e terminazione. Ciclo di vita (Ready, Running, Blocked, New, Zombie).
- Multiprogrammazione: grado di affollamento del SO, CPU utilization, implementazione tramite interrupt.
- Thread: flussi esecutivi leggeri, condividono spazio di indirizzamento. Concetti e implementazioni (Java, user/kernel space).
- Regione Critica e Mutua Esclusione: soluzioni (synchronized in Java, disabilitazione interrupt, TSL, Algoritmo di Paterson, Sleep/Wait, Produttore/Consumatore con semafori/monitor).
- Problema dei 5 Filosofi: esempio classico di deadlock e risoluzione.
- Scheduling:
- Obiettivo: gestione efficiente della CPU.
- Categorie: Batch (FCFS, SJF, SRTF), Interattivi (Round Robin, Priorità, Guaranteed, Lottery, Fair Sharing, Real-Time), Thread Scheduling.
- Gestione della Memoria:
- Memoria senza Astrazione: rilocazione statica, protezione. Registro Base e Registro Limite.
- Allocazione dello Spazio: segmenti di testo/dati (Stack, Data Segment), problematiche di crescita.
- Tracciamento Memoria Disponibile: Bitmap, liste collegate, frammentazione esterna. Algoritmi (First Fit, Next Fit, Best Fit, Worst Fit, Quick Fit).
- Memoria Virtuale: Paginazione (pagine, frame, MMU, tabella pagine, TLB), Page Faults.
- Algoritmi di Rimpiazzamento Pagine: Ottimo, FIFO, Seconda Chance, Orologio, LRU, NRU, WSClock.
- Allocazione Locale/Globale, Paging Daemon, Dimensioni Ottimali Pagine.
- Separazione Spazi: I-space e D-space, pagine condivise (Copy On Write), librerie condivise, file mappati.
- Memoria Segmentata: segmenti di dimensioni variabili, frammentazione esterna. Confronto Paginazione vs. Segmentazione.
- File System:
- Livello Software: nomi, estensioni, tipi (normali, directory, speciali), accesso (sequenziale, casuale), attributi e operazioni.
- Directory: singolo livello, gerarchiche (Path Name).
- Layout: MBR, partizioni, boot block, superblock, i-node, root dir, file/directories.
- Logical Volume Manager (LVM) e RAID.
- Implementazione dei File: allocazione continua, liste collegate (FAT). I-Node: struttura dati per file.
- File Condivisi: Link (Hard Link, Symbolic Link).
- Varianti: Log Strutturati (LFS), Journaled File System, Virtual File System (VFS).
- Dimensione Blocchi Dati e Gestione Blocchi Liberi. Analisi Consistenza. Disk Caching.
- Sistema di Input/Output:
- Dispositivi I/O: blocchi, caratteri, altri. I/O Mappato in Memoria. Direct Memory Access (DMA).
- Interrupt: gestione asincrona, Interrupt Preciso, differenza con Trap.
- Software per I/O: indipendenza, nomenclatura uniforme, gestione errori, sincrono/asincrono, buffering.
- Stratificazione dell'I/O: livelli software. Gestione degli Interrupt. Device Driver.
- Deadlock:
- Definizione e Risorse: condizione di stallo, risorse prelazionabili/non prelazionabili.
- Condizioni di Coffman: Mutua esclusione, Hold and Wait, Impossibilità di Prelazione, Attesa Circolare.
- Modello per Deadlock: grafi delle risorse, identificazione cicli. Algoritmo del Banchiere.
- Risoluzione (prelazione, rollback, terminazione processi) e Prevenzione (negazione condizioni).
- Altre Questioni: Two-phase locking, Communication deadlock, Livelock, Starvation.
- Cloud Computing:
- Obiettivo: ottimizzazione risorse tramite virtualizzazione.
- Caratteristiche Virtualizzazione, Soluzioni (Housing, Hosting, Cloud).
- Livelli Cloud (As a Service): SaaS, PaaS, IaaS. Utility Computing.
- Tipi di Cloud: Pubblico, Community, Privato, Ibrido. Lato Oscuro del Cloud.
- Sistemi Multimediali:
- Caratteristiche: dati dinamici, tollerabili alle perdite, compressione, real-time.
- Codifica: lossy/lossless, ridondanza spaziale/temporale, MPEG, GOP.
- Streaming e Buffering: regolarizzazione flusso dati, buffer underrun/overrun.
- Funzionalità VCR. Processi Multimediali: periodici, real-time.
- Scheduling Real-Time: RMS, EDS. File System con Supporto Multimediale.