Glossario OS - Sistemi Operativi
Glossario verificato
Termini chiave dei sistemi operativi: processi, thread, scheduling, memoria virtuale, file system, kernel e meccanismi di gestione dell'hardware.
-
A
-
Accesso diretto alla memoria (DMA)
Tecnica di I/O in cui un controller dedicato trasferisce dati tra un dispositivo e la memoria centrale senza impegnare la CPU per ogni byte: il processore avvia il trasferimento e viene notificato con un interrupt al termine, liberando cicli di calcolo. -
Affinità del processore
Tendenza o vincolo dello scheduler a rieseguire un processo sempre sulla stessa CPU in un sistema multiprocessore, per sfruttare i dati già presenti nella cache. Può essere debole, come semplice preferenza, o forte, come obbligo imposto dall'utente. -
Albero dei processi
Struttura gerarchica che rappresenta le relazioni padre-figlio tra i processi di un sistema: ogni processo, creato ad esempio con fork(), discende da un genitore, con radice nel primo processo avviato dal kernel (init o systemd). -
Algoritmi di sostituzione delle pagine
Politiche che, in caso di page fault senza frame liberi, scelgono quale pagina rimuovere dalla memoria per far posto a quella richiesta. Esempi sono FIFO, LRU (meno usata di recente) e l'algoritmo ottimale, che minimizza i fault ma non è realizzabile. -
Allocazione dei frame
Criterio con cui il SO ripartisce i frame di memoria fisica tra i processi: può essere fissa o proporzionale alla dimensione, con rimpiazzo locale, solo tra i propri frame, o globale, sottraendone anche ad altri processi. -
Anello di protezione (protection ring)
Livello gerarchico di privilegio imposto dalla CPU per isolare il codice: l'anello 0 (kernel) ha il massimo controllo sull'hardware, gli anelli esterni (fino a 3, spazio utente) hanno privilegi via via minori, prevenendo accessi non autorizzati. -
B
-
Biometric Authentication
Autenticazione basata su caratteristiche fisiche o comportamentali dell'utente, come impronte digitali, riconoscimento facciale o dinamica di digitazione. -
BIOS
Firmware che all'accensione inizializza e verifica l'hardware del computer e avvia il caricamento del sistema operativo. È il primo software eseguito su molte macchine, oggi spesso sostituito da UEFI. -
Bootloader
Programma che, dopo il firmware, carica in memoria il kernel del sistema operativo e ne avvia l'esecuzione. Su Linux un esempio diffuso è GRUB. -
Buffer
Area di memoria temporanea dove i dati sostano tra due componenti che lavorano a velocità diverse. Smussa le differenze ed evita perdite. -
C
-
Coda multilivello con retroazione
Variante dello scheduling a code multilivello in cui i processi si spostano tra le code in base al comportamento: chi consuma interi quanti scende di priorità, chi cede prima la CPU sale. Favorisce i processi interattivi e previene la starvation con l'aging. -
Condizioni di Coffman
Le quattro condizioni necessarie che devono valere contemporaneamente perché si verifichi un deadlock: mutua esclusione, possesso e attesa (hold and wait), assenza di prelazione e attesa circolare; negarne anche una sola previene lo stallo. -
Container
Unità di virtualizzazione a livello di sistema operativo che isola un'applicazione e le sue dipendenze condividendo il kernel dell'host: più leggero di una macchina virtuale, non emula hardware ma sfrutta funzioni del kernel per separare processi e risorse. -
Context Switch
Operazione con cui il sistema operativo salva lo stato di un processo e carica quello di un altro. Permette di alternare più attività sulla stessa CPU. -
D
-
Daemon
Processo che gira in background senza interazione diretta con l'utente, in attesa di svolgere un compito. Tipico dei servizi di sistema. -
Descrittore di file (file descriptor)
Intero non negativo che il kernel assegna a un file o flusso di I/O aperto da un processo, usato come riferimento nelle chiamate di sistema di lettura e scrittura; per convenzione 0, 1 e 2 sono standard input, output ed error. -
Descrittore di processo (PCB)
Struttura dati mantenuta dal kernel per ogni processo, detta Process Control Block; conserva stato del processo, program counter, registri della CPU, informazioni di scheduling, di gestione della memoria e di I/O necessarie a sospenderlo e riprenderlo. -
Dispatcher
Componente dello scheduler a breve termine che assegna concretamente la CPU al processo scelto: esegue il cambio di contesto, passa alla modalità utente e salta all'istruzione da riprendere. Il tempo che impiega è detto latenza di dispatch. -
Dispositivo a blocchi e dispositivo a caratteri
Classificazione dei dispositivi di I/O nei sistemi Unix: quelli a blocchi (dischi) trasferiscono dati in unità di dimensione fissa con accesso casuale, quelli a caratteri (terminali, porte seriali) trasferiscono flussi di byte in modo sequenziale. -
Driver
Software che permette al sistema operativo di comunicare con un dispositivo hardware, traducendo le richieste generiche nei comandi specifici della periferica. -
E
-
Earliest Deadline First (EDF)
Algoritmo di scheduling real-time a priorità dinamica che assegna la CPU al processo con la scadenza (deadline) più imminente. È ottimale su monoprocessore: se un insieme di task è schedulabile, EDF ne rispetta tutte le scadenze. -
ext4
File system molto diffuso su Linux, evoluzione della famiglia ext. Affidabile e con journaling per ridurre il rischio di corruzione dei dati. -
F
-
File System
Componente del sistema operativo che organizza i dati in file e cartelle su un dispositivo di memorizzazione, gestendone nome, struttura, accesso e metadati. -
First-Come First-Served (FCFS)
Algoritmo di scheduling senza prelazione che serve i processi nell'ordine di arrivo, gestendoli con una coda FIFO. Semplice ma soggetto all'effetto convoglio: processi brevi restano penalizzati da uno lungo che occupa a lungo la CPU. -
Frammentazione interna ed esterna
Spreco di memoria nell'allocazione: la frammentazione interna è lo spazio inutilizzato dentro un blocco assegnato, tipica della paginazione; quella esterna è memoria libera ma suddivisa in porzioni non contigue troppo piccole, tipica della segmentazione. -
G
-
Gestore di interrupt (ISR)
Routine del sistema operativo eseguita in risposta a un interrupt, il cui indirizzo è reperito nella tabella dei vettori di interrupt: salva il contesto corrente, serve la richiesta della periferica e ripristina l'esecuzione interrotta. -
Gruppi di controllo (cgroups)
Funzione del kernel Linux che limita, contabilizza e isola l'uso delle risorse (CPU, memoria, I/O di rete e disco) di un insieme di processi: insieme ai namespace costituisce la base tecnica dei container. -
H
-
Hypervisor
Software che crea e gestisce macchine virtuali, ripartendo le risorse fisiche tra più sistemi operativi ospiti sullo stesso hardware. -
Hypervisor di tipo 1 e di tipo 2
Classificazione degli hypervisor: quello di tipo 1 (bare-metal) gira direttamente sull'hardware fisico gestendo i guest senza SO sottostante, quello di tipo 2 (hosted) gira come applicazione su un sistema operativo ospite già installato. -
I
-
I/O mappato in memoria (memory-mapped I/O)
Tecnica in cui i registri di controllo e i buffer di un dispositivo sono associati a indirizzi dello spazio di memoria: la CPU comunica con la periferica leggendo e scrivendo quegli indirizzi con normali istruzioni di accesso alla memoria, senza istruzioni di I/O dedicate. -
Identity Federation
Meccanismo che consente a più sistemi o organizzazioni di condividere le identità, permettendo agli utenti di autenticarsi una volta e accedere a più servizi correlati. -
Identity Governance
Insieme di processi e strumenti che gestiscono il ciclo di vita delle identità digitali, assicurando che ogni utente abbia solo i permessi necessari e aggiornati nel tempo. -
Identity Proofing
Processo di verifica dell'identità reale di un utente prima di emettere credenziali digitali, spesso tramite documenti, biometria o controlli di affidabilità. -
Indirizzo logico e indirizzo fisico
L'indirizzo logico (o virtuale) è generato dalla CPU nello spazio di indirizzamento del processo; l'indirizzo fisico individua la cella reale nella RAM. La MMU converte il primo nel secondo a tempo di esecuzione. -
Init System
Primo processo avviato dal kernel, da cui discendono tutti gli altri. Gestisce l'avvio e l'arresto dei servizi del sistema. -
Inode
Struttura che, nei file system Unix, conserva i metadati di un file (permessi, dimensione, posizione) ma non il nome. Identifica il file in modo univoco. -
Interrupt
Segnale che sospende il normale flusso di esecuzione della CPU per gestire un evento, come l'arrivo di dati da una periferica. Terminata la gestione, l'esecuzione riprende. -
IPC (Inter-Process Communication)
Insieme di meccanismi che permettono a processi diversi di scambiarsi dati e coordinarsi, come pipe, code di messaggi e memoria condivisa. -
J
-
Journaling
Tecnica con cui il file system registra le operazioni in un giornale prima di applicarle. In caso di crash permette un ripristino rapido e coerente. -
Just-In-Time Access (JIT)
Metodo che concede permessi elevati solo per il tempo strettamente necessario, riducendo la finestra di esposizione in caso di compromissione. -
K
-
Kernel
Nucleo del sistema operativo che gestisce le risorse (CPU, memoria, periferiche) e fa da tramite tra hardware e software applicativo. -
Kernel ibrido
Architettura di kernel che combina l'approccio monolitico e quello a microkernel, eseguendo in modalità kernel alcuni servizi che un microkernel puro terrebbe in spazio utente, per bilanciare prestazioni e modularità. -
Kernel monolitico
Architettura di kernel in cui l'intero insieme dei servizi del SO (gestione processi, memoria, file system, driver) gira in un unico spazio di indirizzamento in modalità kernel, garantendo alte prestazioni ma minore isolamento tra i componenti. -
M
-
Memory Management
Insieme delle attività con cui il sistema operativo assegna, controlla e libera la memoria tra i processi, evitando conflitti e sprechi. -
Microkernel
Architettura di kernel che mantiene nel nucleo solo le funzioni essenziali (scheduling di base, IPC, gestione minima della memoria) e sposta driver, file system e altri servizi in processi in spazio utente, aumentando modularità e robustezza a scapito di overhead di comunicazione. -
Modalità utente e modalità kernel
Doppia modalità operativa della CPU con cui il SO protegge il sistema: in modalità kernel il codice accede a tutte le istruzioni e all'hardware, in modalità utente le operazioni privilegiate sono vietate e vanno richieste tramite una chiamata di sistema. -
Modelli di multithreading
Schemi di corrispondenza tra thread utente e thread kernel: molti-a-uno (più thread utente su uno kernel), uno-a-uno (ogni thread utente su un thread kernel) e molti-a-molti (multiplazione di N thread utente su M thread kernel). -
Modulo del kernel (LKM)
Frammento di codice caricabile e scaricabile a runtime che estende le funzionalità del kernel (tipicamente un driver o un file system) senza dover ricompilare o riavviare il sistema operativo. -
Mount
Operazione che rende accessibile un file system collegandolo a un punto della struttura delle cartelle. Senza mount un disco non è utilizzabile. -
Multitasking
Capacità del sistema operativo di gestire più attività nello stesso periodo alternandole rapidamente sulla CPU, così che appaiano procedere insieme anche su un solo processore. -
N
-
Namespace del kernel Linux
Funzione del kernel Linux che fornisce a un gruppo di processi una vista isolata di una risorsa di sistema (PID, rete, mount, hostname, utenti): i processi in namespace diversi non vedono le risorse altrui, abilitando l'isolamento dei container. -
NTFS
File system sviluppato da Microsoft e usato da Windows. Supporta permessi, journaling e file di grandi dimensioni. -
P
-
Page Fault
Evento che si verifica quando un programma accede a una pagina di memoria non presente in RAM. Il sistema la recupera dal disco prima di proseguire. -
Paginazione su richiesta
Tecnica di memoria virtuale che carica in RAM una pagina solo quando viene effettivamente riferita: l'accesso a una pagina assente provoca un page fault, il SO la recupera dal disco in un frame libero e riprende l'istruzione interrotta. -
Paging
Gestione della memoria che la divide in blocchi di dimensione fissa chiamati pagine. Semplifica l'allocazione e supporta la memoria virtuale. -
Panico del kernel (kernel panic)
Errore fatale rilevato dal kernel da cui non può ripristinarsi in sicurezza: il sistema operativo interrompe l'esecuzione, mostra informazioni diagnostiche e in genere si arresta o riavvia per evitare corruzione dei dati. -
Paravirtualizzazione
Tecnica di virtualizzazione in cui il sistema operativo guest viene modificato per dialogare direttamente con l'hypervisor tramite chiamate dedicate (hypercall), evitando la costosa emulazione dell'hardware e migliorando le prestazioni rispetto alla virtualizzazione completa. -
Partition
Suddivisione logica di un disco in aree indipendenti, ognuna usabile come unità a sé. Permette di separare sistema, dati o più sistemi operativi. -
Passwordless Authentication
Sistema di autenticazione che elimina l'uso delle password a favore di metodi più sicuri come biometria, token crittografici o chiavi hardware. -
PID (Process ID)
Numero univoco che il sistema operativo assegna a ogni processo in esecuzione. Serve a identificarlo, gestirlo e terminarlo. -
Pipe con nome (FIFO)
Canale IPC unidirezionale rappresentato come file speciale nel file system, che consente a processi non imparentati di comunicare: i dati scritti a un estremo vengono letti dall'altro in ordine FIFO, a differenza della pipe anonima limitata ai processi parenti. -
POST (Power-On Self-Test)
Sequenza di controlli che il firmware esegue all'accensione per verificare che l'hardware essenziale funzioni prima di avviare il sistema. -
Preemption
Capacità del sistema operativo di sospendere un processo in esecuzione per assegnare la CPU a un altro. È alla base del multitasking reattivo. -
Privileged Access Management (PAM)
Metodo di controllo che protegge e monitora gli account con privilegi elevati, riducendo il rischio di abusi o compromissioni da parte di attaccanti. -
Processo
Programma in esecuzione, dotato di risorse proprie e di uno spazio di memoria separato. È l'unità di base gestita dal sistema operativo. -
Processo orfano
Processo ancora in esecuzione il cui processo genitore è terminato. Nei sistemi Unix viene adottato dal processo init (PID 1), che ne raccoglie lo stato di uscita evitando che resti indefinitamente uno zombie. -
Q
-
Quanto di tempo
Intervallo massimo di CPU assegnato a un processo negli algoritmi con prelazione come il round robin; alla sua scadenza un interrupt del timer restituisce il controllo allo scheduler. Detto anche time slice o quanto temporale. -
R
-
RAID
Tecnica che combina più dischi in un unico insieme per aumentare prestazioni, affidabilità o entrambe. I diversi livelli offrono ridondanza, velocità o un compromesso. -
Registry di sistema
Database gerarchico in cui Windows conserva le impostazioni del sistema e delle applicazioni. La sua corruzione può compromettere il funzionamento del computer. -
Richiesta di interrupt (IRQ)
Segnale hardware con cui un dispositivo comunica alla CPU la necessità di attenzione (es. dato pronto, operazione completata): a ogni linea IRQ è associato un gestore che il sistema operativo esegue per servire la periferica. -
Risk-Based Authentication (RBA)
Tecnica che valuta il rischio di ogni tentativo di accesso analizzando comportamento, dispositivo e contesto, adattando i controlli di identità in modo dinamico. -
Round Robin
Algoritmo di scheduling che assegna a ogni processo un breve turno (quanto di tempo) a rotazione. Garantisce equità evitando che un processo monopolizzi la CPU. -
Runlevel
Stato operativo predefinito di un sistema Unix che determina quali servizi sono attivi, ad esempio modalità testuale o grafica. -
S
-
Scheduler
Componente del sistema operativo che decide quale processo eseguire e per quanto tempo, ripartendo la CPU tra le attività pronte. -
Scheduler a lungo termine e a breve termine
Livelli di schedulazione del SO: lo scheduler a lungo termine decide quali processi ammettere in memoria, quello a breve termine sceglie con alta frequenza quale processo pronto assegnare alla CPU. Un eventuale scheduler a medio termine gestisce lo swapping. -
Scheduling a code multilivello
Politica che ripartisce i processi in code distinte per classe (es. interattivi, batch), ciascuna con un proprio algoritmo; tra le code si applica una schedulazione a priorità fissa o a divisione di tempo. I processi non migrano tra le code. -
Scheduling a priorità
Algoritmo che assegna la CPU al processo con priorità più alta, con o senza prelazione. Rischia la starvation dei processi a bassa priorità, mitigata dall'aging, che innalza gradualmente la priorità di chi attende da tempo. -
Secure Boot
Funzione dello standard UEFI che verifica la firma digitale del bootloader e dei componenti caricati all'avvio, consentendo l'esecuzione solo di codice attendibile e impedendo il caricamento di rootkit o software non firmato durante il boot. -
Segmentation
Gestione della memoria che la suddivide in segmenti di dimensione variabile, legati alla logica del programma come codice e dati. -
Segnale (sistemi operativi)
Meccanismo asincrono con cui il kernel o un processo notifica un evento a un altro processo, che può gestirlo, ignorarlo o subirne l'azione predefinita. Esempi tipici nei sistemi Unix sono SIGKILL, SIGTERM e SIGSEGV. -
Session Hijacking Protection
Insieme di controlli progettati per impedire il furto o la manipolazione delle sessioni di autenticazione attraverso cookie, token o canali compromessi. -
Shell
Interprete dei comandi che consente all'utente di interagire con il sistema operativo; nella forma testuale si digitano comandi, ma esistono anche shell grafiche. -
Shortest Job First (SJF)
Algoritmo che assegna la CPU al processo con il più breve tempo di elaborazione stimato; minimizza il tempo medio di attesa ma richiede di prevedere la durata dei burst e può provocare la starvation dei processi lunghi. -
Single Sign-On (SSO)
Tecnologia che permette a un utente di autenticarsi una sola volta e accedere a diversi servizi senza dover reinserire le credenziali. -
Sistema operativo distribuito
Sistema operativo che gestisce un insieme di calcolatori indipendenti collegati in rete presentandoli all'utente come un'unica macchina coerente, coordinando in modo trasparente risorse, processi e comunicazione tra i nodi. -
Sistema operativo real-time (RTOS)
Sistema operativo progettato per garantire tempi di risposta deterministici entro scadenze definite: in un RTOS hard il mancato rispetto di una scadenza è un fallimento, in uno soft comporta solo un degrado della qualità del servizio. -
Socket di dominio Unix
Endpoint di comunicazione IPC tra processi sullo stesso host, identificato da un percorso nel file system: offre un'interfaccia analoga ai socket di rete ma con maggiore efficienza, potendo scambiare anche descrittori di file e credenziali. -
Spazio utente (user space)
Regione di memoria e contesto di esecuzione riservati ai programmi applicativi, separati dallo spazio kernel: il codice in spazio utente non accede direttamente all'hardware ne alla memoria del kernel e interagisce con esso tramite chiamate di sistema. -
Spooling
Tecnica che accoda su disco i lavori destinati a un dispositivo lento e condiviso (tipicamente la stampante) in un buffer intermedio, così che i processi non attendano il dispositivo e questo elabori le richieste in sequenza in modo asincrono. -
Stati del processo
Insieme delle condizioni in cui un processo può trovarsi nel suo ciclo di vita: tipicamente nuovo, pronto, in esecuzione, in attesa e terminato. Il sistema operativo governa le transizioni tra questi stati tramite scheduler e dispatcher. -
Swap
Spazio su disco usato dal sistema operativo come estensione della RAM: le pagine di memoria meno usate vi vengono spostate per liberare memoria fisica. -
Symbolic Link
Riferimento a un altro file o cartella, simile a un collegamento. Punta al percorso di destinazione senza duplicarne il contenuto. -
System Call
Richiesta con cui un programma chiede un servizio al kernel, ad esempio leggere un file. È il ponte tra applicazioni e sistema operativo. -
T
-
Tabella delle pagine
Struttura dati per processo che mappa i numeri di pagina dello spazio logico ai frame della memoria fisica; ogni voce contiene il frame e bit di controllo (validità, protezione, modifica). È consultata dalla MMU a ogni accesso in memoria. -
Thrashing
Condizione di degrado in cui un sistema in sovraccarico di memoria passa più tempo a gestire page fault e swapping che a eseguire i processi, con crollo dell'utilizzo utile della CPU. Si verifica quando i working set superano i frame disponibili. -
Thread
Flusso di esecuzione leggero interno a un processo, che ne condivide risorse e memoria e può essere eseguito in modo indipendente dagli altri thread. -
Thread a livello utente e a livello kernel
Distinzione tra thread gestiti da una libreria nello spazio utente, veloci ma invisibili al kernel, e thread gestiti direttamente dal kernel, schedulabili singolarmente: se uno si blocca su I/O gli altri thread del processo possono proseguire. -
TLB (Translation Lookaside Buffer)
Piccola cache associativa nella MMU che memorizza le traduzioni recenti da numero di pagina logico a frame fisico, evitando di consultare ogni volta la tabella delle pagine in memoria. Un TLB miss impone l'accesso alla tabella delle pagine. -
Trap
Interruzione sincrona generata dall'esecuzione stessa di un'istruzione, per un errore (es. divisione per zero) o una richiesta volontaria di servizio al SO: a differenza dell'interrupt hardware, la trap è prodotta dal processore in risposta al codice in corso. -
U
-
UEFI
Firmware moderno che sostituisce il BIOS, con interfaccia più ricca, avvio più rapido e supporto a dischi grandi e ad avvio sicuro (Secure Boot). -
Unikernel
Immagine di macchina eseguibile specializzata e monolitica ottenuta collegando l'applicazione con i soli servizi del sistema operativo strettamente necessari, in un unico spazio di indirizzamento: risulta minimale, con avvio rapido e superficie di attacco ridotta. -
Unità di gestione della memoria (MMU)
Componente hardware che traduce in tempo reale gli indirizzi logici generati dalla CPU in indirizzi fisici, usando tabella delle pagine e TLB, e applica la protezione della memoria generando un'eccezione (page fault) sugli accessi non validi. -
V
-
Virtual Memory
Tecnica che fa apparire disponibile più memoria di quella fisica usando il disco come estensione. Permette di eseguire programmi più grandi della RAM. -
W
-
Working set
Insieme delle pagine riferite da un processo in una finestra temporale recente; approssima la memoria di cui ha effettivamente bisogno. Il SO usa il modello del working set per allocare i frame ed evitare il thrashing sospendendo processi se necessario. -
Z
-
Zombie Process
Processo terminato il cui stato resta nella tabella dei processi finché il genitore non lo legge. Occupa una voce ma non risorse di calcolo.