EuraStudy
Appunti/Informatica/Sistemi operativi (SO)
Appunti · InformaticaIT · Maturità

Sistemi operativi (SO)

Il sistema operativo è il software di base che governa il calcolatore: media tra l'hardware, le applicazioni e l'utente, e amministra in modo ordinato risorse condivise e scarse come il processore, la memoria, i file e i dispositivi di ingresso/uscita. Questo appunto ne ricostruisce funzioni e architettura a strati, le strategie di gestione di processi, memoria, file system e I/O, e i meccanismi di protezione e sicurezza. L'obiettivo è capire «come» il SO trasforma una macchina nuda in un ambiente di lavoro affidabile e condiviso, in coerenza con le Indicazioni Nazionali per il Liceo Scientifico — opzione Scienze Applicate.

5 sezioni·~24 min di lettura·3 competenze·Livello Base 1 · Standard 3 · Approfondimento 1·Verificato · 07/2026

T·0666 / 14
Profilo d’esame
Comprendere il ruolo del sistema operativo come intermediario tra hardware, applicazioni e utenteRiconoscere le strategie con cui il SO gestisce e condivide le risorse del calcolatoreUtilizzare consapevolmente i servizi offerti dal sistema operativo
Operatori:descrivispiegaclassificaconfrontaanalizzaillustragiustificacalcola

livello base

È richiesto saper descrivere le funzioni del SO, il modello a strati, il ciclo di vita di un processo, la gerarchia del file system e il senso di permessi e protezione.

livello avanzato

L'approfondimento dell'indirizzo Scienze Applicate richiede di confrontare le politiche (scheduling, allocazione, memoria virtuale), giustificarne le scelte e collegarle alle prestazioni e alla sicurezza del sistema.

Profondità

Profondità di lettura: Approfondimento

Testo

Dimensione del testo: Standard

Contenuti · 5 sezioni▾
  1. Sistemi operativi (SO)
    • 01Funzioni e architettura del sistema operativo○
    • 02Gestione dei processi e scheduling◐
    • 03Gestione della memoria◐
    • 04File system e gestione dei file◐
    • 05Gestione dell'I/O, protezione e sicurezza●
§ 01

Funzioni e architettura del sistema operativo#

●○○BaseLPOSA-informatica-SO-sistemi-operativiLPModello a strati del sistema operativo

Modello a strati del sistema operativo

Modello a strati del sistema operativocolonna stratificata, 5 strati, Dati: Utente, Applicazioni, Servizi di sistema, Kernel, HardwareUtenteApplicazioniServizi di sistemaKernelHardware
Fig. 1Le applicazioni girano in modo utente, il kernel (gestione di processi, memoria, file, I/O) in modo supervisore; una system call fa passare dall’uno all’altro.

Punti chiave

Il sistema operativo (SO) è l'insieme di programmi che, posti tra l'hardware e i programmi applicativi, rende il calcolatore effettivamente utilizzabile: ne nasconde la complessità fisica offrendo una «macchina virtuale» più semplice, e ne governa l'uso facendo da gestore delle risorse. Senza SO, ogni applicazione dovrebbe pilotare direttamente i dispositivi; con il SO, le applicazioni chiedono servizi a un'unica autorità che arbitra e coordina.
Si riconoscono due ruoli complementari. Come «interfaccia utente-macchina» il SO mette a disposizione un modo per dare comandi (interfaccia a riga di comando o grafica) e un insieme di servizi pronti all'uso; come «gestore di risorse» amministra processore, memoria, dispositivi di I/O e file, decidendo chi usa cosa, quando e per quanto, in modo da garantire condivisione efficiente, equa e protetta.
L'architettura si descrive con il «modello a strati»: dal basso verso l'alto si trovano l'hardware, il nucleo del SO (il kernel, che include i gestori di processi, memoria, file e dispositivi), il guscio dei servizi e dei programmi di sistema, le applicazioni e infine l'utente. Ogni strato usa i servizi di quello inferiore e ne offre di più astratti a quello superiore; questa stratificazione separa le responsabilità e rende il sistema più ordinato e manutenibile.
Il confine cruciale è quello tra «modo utente» e «modo supervisore (kernel)». I programmi applicativi girano in modo utente, con privilegi limitati, e per ottenere un servizio del SO (leggere un file, allocare memoria, scrivere su schermo) effettuano una «chiamata di sistema» (system call) che fa transitare il controllo al kernel in modo protetto. Questo meccanismo impedisce a un'applicazione di danneggiare le altre o il sistema, ed è il fondamento della protezione.
Esempio svolto

Classificare i servizi del SO

Per ciascuna delle seguenti operazioni, indica quale gestore del sistema operativo è coinvolto e perché: (a) avviare contemporaneamente due programmi; (b) aprire un documento salvato su disco; (c) stampare una pagina; (d) eseguire un programma più grande della RAM disponibile.

  1. 01(a) Due programmi insieme

    Servono più processi che condividono l'unico (o i pochi) processore/i: interviene il gestore dei processi con il multitasking e lo scheduling, che alterna i processi in esecuzione.

  2. 02(b) Aprire un documento

    Il file è organizzato dal file system; il gestore dei file individua il file nella gerarchia di directory, ne verifica i permessi e ne legge i blocchi dal disco.

  3. 03(c) Stampare

    La stampante è un dispositivo di I/O: il gestore dell'I/O usa il driver della stampante e tipicamente una coda di stampa (spooling) per inviare i dati al dispositivo.

  4. 04(d) Programma più grande della RAM

    Interviene il gestore della memoria con la memoria virtuale: porta in RAM solo le parti necessarie, tenendo il resto su disco.

Risultato: (a) gestore dei processi; (b) gestore dei file/file system; (c) gestore dell'I/O; (d) gestore della memoria (memoria virtuale).

Obiettivo Maturità

  • Focus Esame di Stato: saper elencare e spiegare con esempi le quattro funzioni di gestione delle risorse (processi, memoria, file, I/O) più l'interfaccia utente è una richiesta tipica del colloquio.
  • Focus Esame di Stato: nel colloquio è frequente chiedere di disegnare e commentare il modello a strati e di motivare perché la separazione modo utente/kernel garantisce protezione.

Errori frequenti

  • Confondere il sistema operativo con le applicazioni che vi girano sopra (per esempio considerare un browser o un foglio di calcolo «parte del SO»): sono software applicativo, non software di base.
  • Identificare il SO con la sola interfaccia grafica: l'interfaccia è solo uno strato; il cuore del SO è il kernel che gestisce le risorse.

Approfondimento

L'organizzazione interna del kernel non è unica. Nei sistemi a kernel monolitico (Linux, gli Unix classici) tutti i servizi — gestione dei processi, memoria, file, driver — girano nello stesso spazio privilegiato: efficiente, perché le chiamate fra i moduli sono dirette, ma vulnerabile, perché un difetto in un driver può compromettere l'intero sistema. Nell'approccio a microkernel si tiene nel nucleo solo il minimo indispensabile (comunicazione fra processi e schedulazione di base) spostando i servizi in processi separati in modo utente: più robusto e modulare, al prezzo dell'overhead dei continui scambi di messaggi; i sistemi reali adottano spesso soluzioni ibride. La separazione fra modo utente e modo supervisore non è una convenzione software ma è imposta dall'hardware: un bit di modo nel processore abilita o vieta le istruzioni privilegiate (quelle che toccano direttamente l'hardware o le tabelle del SO), e una chiamata di sistema è realizzata da un'istruzione di trap che commuta in modo kernel saltando a un punto d'ingresso controllato — così un'applicazione non può «promuoversi» da sola ad accessi privilegiati. Esistono infine famiglie diverse di sistemi operativi secondo lo scopo: a lotti (batch), interattivi a partizione di tempo (time-sharing), in tempo reale (real-time, con scadenze temporali garantite), embedded e distribuiti; tutti condividono il modello a strati, ma bilanciano diversamente prestazioni, interattività e garanzie di tempo.

Ripasso attivo

Spiega, con un esempio concreto, che cosa accade quando un'applicazione richiede di salvare un file: descrivi il percorso dalla chiamata di sistema fino all'hardware, indicando il passaggio tra modo utente e modo kernel e gli strati attraversati.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 02

Gestione dei processi e scheduling#

●●○StandardLPOSA-informatica-SO-sistemi-operativiLPMultiprogrammazione e multitasking

Diagramma degli stati di un processo

Stati di un processoGrafo, Pronto → In esecuzione, In esecuzione → Pronto, In esecuzione → In attesa, In attesa → ProntoProntoIn esecuzioneIn attesaschedulingfine quantorichiesta I/Ofine I/O
Fig. 2Ciclo di vita di un processo: lo scheduler manda in esecuzione un processo pronto; alla fine del quanto torna pronto; una richiesta di I/O lo mette in attesa; a I/O concluso torna pronto.

Punti chiave

Un «processo» è un programma in esecuzione: non il file sul disco, ma l'istanza attiva con il proprio stato, ossia il codice in esecuzione, i dati, il contenuto dei registri e il contatore di programma. A ogni processo il SO associa un descrittore (process control block) in cui registra le informazioni necessarie per sospenderlo e riprenderlo correttamente.
Per usare bene il processore, i SO moderni adottano la «multiprogrammazione» e il «multitasking»: più processi sono caricati in memoria e il processore passa rapidamente dall'uno all'altro. Su una sola CPU l'esecuzione non è realmente simultanea ma alternata, così rapida da apparire parallela (concorrenza); con più core si ha vero parallelismo. Il vantaggio è sfruttare i tempi morti: mentre un processo attende l'I/O, un altro può usare il processore.
Ogni processo attraversa stati ben definiti. È «pronto» (ready) quando potrebbe eseguire ma attende il suo turno; è «in esecuzione» (running) quando occupa il processore; è «in attesa/bloccato» (waiting) quando aspetta un evento esterno, tipicamente la fine di un'operazione di I/O. Le transizioni sono governate dal SO: dal processore al «pronto» per fine quanto di tempo, dall'esecuzione all'«attesa» per una richiesta di I/O, e dall'«attesa» al «pronto» quando l'evento si verifica (vedi Fig. 1).
Lo «scheduler» è la componente che sceglie quale processo pronto mandare in esecuzione, secondo una politica di scheduling. In modo elementare si distinguono politiche «senza prelazione» (un processo tiene il processore finché non termina o si blocca, es. FIFO/First-Come-First-Served) e «con prelazione» (il SO può togliere il processore allo scadere di un intervallo, il quanto di tempo, come nel Round Robin). Gli obiettivi tipici — buon uso del processore, tempi di risposta brevi, equità — spesso confliggono, e la politica è un compromesso. Al cambio di processo avviene un «cambio di contesto» (context switch): si salva lo stato del processo uscente e si ripristina quello entrante.
Tattesa=Tcompletamento−Tarrivo−TCPUT_{\text{attesa}} = T_{\text{completamento}} - T_{\text{arrivo}} - T_{\text{CPU}}Tattesa​=Tcompletamento​−Tarrivo​−TCPU​

Tempo di attesa

Il tempo di attesa di un processo è il tempo trascorso nel sistema (dall'arrivo al completamento) meno il tempo effettivamente speso a calcolare; misura quanto il processo ha aspettato il proprio turno.

T‾attesa=1n∑i=1nTattesa, i\overline{T}_{\text{attesa}} = \frac{1}{n}\sum_{i=1}^{n} T_{\text{attesa},\, i}Tattesa​=n1​i=1∑n​Tattesa,i​

Attesa media

Il tempo medio di attesa è la media aritmetica dei tempi di attesa degli n processi: è l'indicatore con cui si confrontano le politiche di scheduling.

Esempio svolto

Scheduling FIFO: tempi di attesa

Tre processi P1, P2, P3 arrivano tutti all'istante 0 nell'ordine P1, P2, P3 e richiedono rispettivamente 6, 3 e 4 unità di tempo di CPU. Con politica FIFO (First-Come-First-Served) senza prelazione, calcola il tempo di completamento, il tempo di attesa di ciascun processo e il tempo medio di attesa.

  1. 01Ordine di esecuzione

    FIFO esegue nell'ordine di arrivo: prima P1 (0->6), poi P2 (6->9), poi P3 (9->13).

  2. 02Tempi di completamento

    P1 termina a 6, P2 a 9, P3 a 13.

  3. 03Tempi di attesa

    Con arrivo a 0: attesa = completamento - tempo di CPU. P1: 6-6=0; P2: 9-3=6; P3: 13-4=9.

  4. 04Media

    Media = (0 + 6 + 9) / 3 = 15 / 3 = 5.

Risultato: Completamenti: P1=6, P2=9, P3=13. Attese: P1=0, P2=6, P3=9. Tempo medio di attesa = 5 unità.

Obiettivo Maturità

  • Focus Esame di Stato: disegnare il diagramma degli stati di un processo (pronto, in esecuzione, in attesa) e descrivere ogni transizione con la sua causa è una domanda classica.
  • Focus Esame di Stato: distinguere multiprogrammazione, multitasking e parallelismo reale, e spiegare perché su una sola CPU la concorrenza è solo apparente, è spesso richiesto.

Errori frequenti

  • Confondere «programma» e «processo»: il programma è statico (un file), il processo è la sua esecuzione, con uno stato che cambia nel tempo.
  • Pensare che su una CPU singola i processi vengano eseguiti davvero «allo stesso tempo»: in realtà si alternano rapidamente (concorrenza), il parallelismo vero richiede più core o processori.

Approfondimento

Le politiche di scheduling si valutano su tempo di attesa, di risposta e di completamento, e ciascuna ha un carattere. Il FCFS (First-Come-First-Served) è equo ma soffre l'effetto convoglio: un processo lungo davanti fa attendere tutti gli altri. Lo SJF (Shortest Job First) minimizza il tempo medio di attesa — è ottimo in teoria — ma richiede di conoscere in anticipo la durata, che va stimata. Il Round Robin assegna a turno un quanto di tempo: un quanto troppo grande lo fa degenerare in un FCFS, uno troppo piccolo spreca tempo in continui cambi di contesto. Lo scheduling a priorità serve prima i processi più urgenti, ma rischia la starvation (attesa indefinita) di quelli meno prioritari, curata con l'aging (la priorità cresce con l'attesa). All'interno di un processo possono convivere più thread (flussi di esecuzione che condividono codice e dati ma hanno una pila propria), assai più leggeri da creare e commutare di interi processi. La condivisione di memoria fra thread introduce però i problemi della concorrenza: se due flussi aggiornano la stessa variabile senza coordinarsi si ha una corsa critica (race condition), dall'esito imprevedibile, che si evita garantendo la mutua esclusione sulle sezioni critiche (con semafori o lock). Un pericolo opposto è il deadlock (stallo), in cui più processi si bloccano a vicenda attendendo risorse che l'altro trattiene — situazione possibile solo se ricorrono insieme quattro condizioni: mutua esclusione, possesso-e-attesa, assenza di prelazione e attesa circolare.

Ripasso attivo

Tre processi pronti P1, P2, P3 arrivano nell'ordine indicato e richiedono rispettivamente 6, 3 e 4 unità di tempo di CPU. Con una politica FIFO senza prelazione, calcola il tempo di completamento e il tempo di attesa di ciascun processo e il tempo medio di attesa.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 03

Gestione della memoria#

●●○StandardLPOSA-informatica-SO-sistemi-operativiLPAllocazione e memoria virtuale

Memoria virtuale: pagine tra RAM e disco

Memoria virtuale: pagine tra RAM e discoTabella con 2 colonne e 4 righe, Dati: Pagina · Posizione; P0 · RAM (frame); P1 · Disco (swap); P2 · RAM (frame); P3 · Disco (swap)PAGINAPOSIZIONEP0RAM (frame)P1Disco (swap)P2RAM (frame)P3Disco (swap)
Fig. 3Lo spazio logico è diviso in pagine: alcune risiedono in RAM, altre nell’area di swap su disco. Accedere a una pagina non presente in RAM causa un page fault.

Punti chiave

La memoria centrale (RAM) è una risorsa scarsa e condivisa: il gestore della memoria deve assegnarla ai processi, tenere traccia di quali zone sono libere e quali occupate, e proteggere lo spazio di ciascun processo da accessi indebiti degli altri. In un sistema multiprogrammato più processi coesistono in RAM, e il SO deve impedire che l'uno legga o scriva nella memoria dell'altro.
Un meccanismo chiave è la «rilocazione» con indirizzi logici e fisici: il programma usa indirizzi logici (relativi, come se partisse da zero) che l'hardware traduce in indirizzi fisici reali sommando un opportuno valore di base. Così lo stesso programma può essere caricato in zone diverse della memoria in momenti diversi, e un registro limite impedisce di superare i confini assegnati, realizzando la protezione.
La RAM si può ripartire in vari modi. Nell'allocazione contigua ogni processo riceve un blocco unico e adiacente; questo è semplice ma genera «frammentazione» (esterna: tanti piccoli spazi liberi sparsi, inutilizzabili perché non contigui). Le tecniche moderne dividono invece lo spazio in unità di taglia fissa — la «paginazione» suddivide la memoria in pagine/frame — eliminando la frammentazione esterna e rendendo flessibile l'allocazione.
Quando la memoria richiesta supera la RAM fisica entra in gioco la «memoria virtuale»: il SO fa credere a ogni processo di avere a disposizione uno spazio di indirizzi ampio, tenendo in RAM solo le parti realmente in uso e parcheggiando il resto su disco (area di swap). Quando un processo accede a una parte non presente in RAM si verifica un «page fault» e il SO la carica dal disco, eventualmente liberando spazio con una politica di sostituzione. Il vantaggio è eseguire programmi più grandi della RAM e usarla meglio; il rischio, se si esagera, è il «thrashing», in cui la macchina passa più tempo a spostare pagine che a calcolare.
Npagine=⌈DP⌉N_{\text{pagine}} = \left\lceil \frac{D}{P} \right\rceilNpagine​=⌈PD​⌉

Numero di pagine

Il numero di pagine necessarie per un processo di dimensione D, con pagine di taglia P, si ottiene dividendo D per P e arrotondando per eccesso: l'ultima pagina, anche se parziale, occupa un frame intero (frammentazione interna).

Esempio svolto

Calcolo di pagine e frammentazione interna

Un processo occupa 10 000 byte e il sistema usa pagine di 4 096 byte (4 KiB). Calcola quante pagine servono e quanto spazio resta inutilizzato nell'ultima pagina (frammentazione interna).

  1. 01Pagine intere

    10 000 / 4 096 = 2.44..., quindi servono 2 pagine piene (8 192 byte) più una porzione.

  2. 02Arrotondamento per eccesso

    Poiché resta una parte, occorre una terza pagina: numero di pagine = 3.

  3. 03Spazio assegnato

    3 pagine x 4 096 byte = 12 288 byte effettivamente riservati.

  4. 04Frammentazione interna

    Inutilizzato = 12 288 - 10 000 = 2 288 byte nell'ultima pagina.

Risultato: Servono 3 pagine; la frammentazione interna è di 2 288 byte.

Obiettivo Maturità

  • Focus Esame di Stato: spiegare il concetto di memoria virtuale (perché esiste, come funziona lo swapping, cosa è un page fault) e i suoi vantaggi e rischi è un nodo molto richiesto.
  • Focus Esame di Stato: distinguere indirizzo logico e indirizzo fisico e descrivere come la rilocazione realizza la protezione tra processi.

Errori frequenti

  • Credere che la memoria virtuale «aggiunga RAM»: in realtà usa il disco come estensione, molto più lento; serve a superare i limiti della RAM, non a sostituirla senza costi.
  • Confondere la frammentazione esterna (spazi liberi sparsi tra i blocchi) con quella interna (spazio sprecato dentro un blocco assegnato), o pensare che la paginazione non abbia alcuno spreco.

Approfondimento

La paginazione ha una meccanica precisa che vale la pena vedere. Un indirizzo logico si spezza in due parti: il numero di pagina e lo scostamento (offset) all'interno della pagina; il numero di pagina indicizza la tabella delle pagine del processo, che fornisce il numero del frame fisico in cui la pagina risiede, e l'indirizzo fisico si compone unendo il frame all'offset. Poiché consultare la tabella a ogni accesso raddoppierebbe i tempi, si usa una cache di traduzioni (TLB). Complementare alla paginazione è la segmentazione, che divide lo spazio in segmenti di taglia variabile con significato logico (codice, dati, pila), più naturale per il programmatore ma soggetta a frammentazione esterna. Quando serve caricare una pagina e la RAM è piena, un algoritmo di sostituzione sceglie la vittima: FIFO (la pagina più vecchia) è semplice ma soffre l'anomalia di Belady (aumentare i frame può, paradossalmente, aumentare i page fault); LRU (la usata meno di recente) approssima bene l'algoritmo ottimo teorico, che scarterebbe la pagina destinata a essere riusata più tardi ma è irrealizzabile, perché richiederebbe di conoscere il futuro. Per evitare il thrashing il SO cerca di tenere in RAM il working set di ogni processo, cioè l'insieme delle pagine che esso sta effettivamente usando in un dato intervallo: se la somma dei working set supera la RAM disponibile, conviene ridurre il grado di multiprogrammazione anziché continuare a paginare.

Ripasso attivo

Un sistema ha 4 GiB di RAM e deve eseguire più applicazioni che insieme richiedono 6 GiB di spazio di indirizzi. Spiega come la memoria virtuale rende possibile l'esecuzione, descrivendo il ruolo dell'area di swap, dei page fault e del rischio di thrashing.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 04

File system e gestione dei file#

●●○StandardLPOSA-informatica-SO-sistemi-operativiLPOrganizzazione gerarchica del file system

Albero gerarchico del file system

Albero del file systemDiagramma ad albero, 2 percorsi, Dati: scuola/ → informatica/ → appunti.txt; utente/informatica/scuola//appunti.txtutente/
Fig. 4Percorso assoluto del file evidenziato: /scuola/informatica/appunti.txt.

Punti chiave

Il «file» è l'unità logica con cui il SO presenta all'utente i dati conservati nelle memorie di massa: un insieme di byte con un nome, un tipo e un insieme di attributi (dimensione, date, permessi). Il file system è la parte del SO che organizza, denomina, ritrova e protegge i file, nascondendo i dettagli fisici di come i dati sono effettivamente disposti sul disco (in blocchi).
L'organizzazione tipica è «gerarchica ad albero»: c'è una directory radice (root), che contiene file e altre directory (cartelle), a loro volta annidate. Ogni file si individua tramite un «percorso» (path), che può essere assoluto — partendo dalla radice — oppure relativo alla directory di lavoro corrente. La struttura ad albero rende i nomi univoci e l'organizzazione comprensibile (vedi Fig. 1).
Per dare ordine, il file system gestisce le directory come elenchi che associano nomi a file e ne registrano la posizione; quando si apre un file, il SO segue il percorso, individua il file, controlla i permessi e prepara l'accesso ai suoi blocchi. La frammentazione dei file sul disco (blocchi non contigui) è gestita dal file system tramite tabelle o liste che tengono traccia dei blocchi appartenenti a ciascun file.
Ai file e alle directory si associano «permessi» che stabiliscono chi può fare cosa: tipicamente lettura, scrittura ed esecuzione, distinti per il proprietario, il gruppo e gli altri utenti. I permessi sono uno strumento fondamentale di protezione e condivisione controllata: consentono a più utenti di usare lo stesso sistema senza interferire né accedere indebitamente ai dati altrui.
Esempio svolto

Percorso assoluto e relativo

Nell'albero della Fig. 1, la radice / contiene la cartella scuola, che contiene informatica, che contiene appunti.txt. Scrivi il percorso assoluto del file e il percorso relativo a partire dalla directory corrente /scuola.

  1. 01Percorso assoluto

    Si parte sempre dalla radice / e si concatenano i nomi delle directory attraversate fino al file, separati da /.

  2. 02Costruzione

    Radice / -> scuola -> informatica -> appunti.txt dà /scuola/informatica/appunti.txt.

  3. 03Percorso relativo

    Se la directory di lavoro è /scuola, il percorso parte da lì senza la / iniziale: si scende in informatica e si raggiunge il file.

Risultato: Assoluto: /scuola/informatica/appunti.txt; relativo da /scuola: informatica/appunti.txt.

Obiettivo Maturità

  • Focus Esame di Stato: saper rappresentare un file system come albero di directory e file, distinguendo percorso assoluto e relativo, è una richiesta ricorrente.
  • Focus Esame di Stato: spiegare il significato dei permessi (lettura/scrittura/esecuzione per proprietario/gruppo/altri) e il loro ruolo nella protezione e nella condivisione.

Errori frequenti

  • Confondere il percorso assoluto (sempre dalla radice) con quello relativo (dalla directory corrente): cambiano significato a seconda della posizione di partenza.
  • Pensare che il file system descriva la disposizione fisica dei dati: esso fornisce una visione LOGICA (file e cartelle); la mappatura sui blocchi del disco è nascosta all'utente.

Approfondimento

Sotto la visione logica ad albero, il file system deve decidere come disporre i blocchi di ciascun file sul disco, e le strategie hanno costi diversi. L'allocazione contigua (blocchi adiacenti) offre accesso diretto rapidissimo, ma soffre la frammentazione e la difficoltà di far crescere un file. L'allocazione concatenata collega ogni blocco al successivo con un puntatore: elimina la frammentazione esterna, ma l'accesso diretto al k-esimo blocco costa scorrere la catena; è l'idea alla base della tabella FAT, che raccoglie tutti i puntatori in un'unica tabella tenuta in memoria. L'allocazione indicizzata raccoglie invece gli indirizzi dei blocchi di un file in un blocco-indice: è la strategia degli inode di Unix/Linux, un descrittore per file che contiene attributi e puntatori (diretti e indiretti) ai blocchi dati, così da conciliare accesso diretto e file molto grandi. Poiché un'interruzione improvvisa — un blackout durante un aggiornamento — può lasciare le strutture del disco incoerenti, i file system moderni usano il journaling: prima di modificare i dati registrano l'intenzione in un giornale (log), sicché al riavvio le operazioni interrotte si completano o si annullano, ripristinando la coerenza — la stessa idea di transazione atomica che ritroveremo nelle basi di dati. È qui che si vede come la comodità dei nomi e delle cartelle poggi su un'accurata gestione fisica dei blocchi, nascosta all'utente ma decisiva per affidabilità e prestazioni.

Ripasso attivo

Dato un albero di directory con radice /, una cartella scuola contenente informatica con dentro il file appunti.txt, scrivi il percorso assoluto del file e indica quale percorso relativo useresti se la directory di lavoro corrente fosse /scuola.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM))

§ 05

Gestione dell'I/O, protezione e sicurezza#

●●●ApprofondimentoLPOSA-informatica-SO-sistemi-operativiLPModello a strati del sistema operativo

Il SO media tra applicazioni e dispositivi di I/O

Il SO media l’accesso all’I/OGrafo, Applicazioni (modo utente) → Gestore I/O · kernel, Gestore I/O · kernel → disco, Gestore I/O · kernel → stampante, Gestore I/O · kernel → reteApplicazioni(modo utente)Gestore I/O ·kerneldiscostampanteretesystem calldriverdriverdriver
Fig. 5Il gestore I/O del kernel usa un driver per ogni dispositivo; la system call attraversa la barriera modo utente / kernel e l’interrupt segnala al kernel la fine dell’operazione.

Punti chiave

I dispositivi di ingresso/uscita (tastiera, schermo, dischi, stampanti, schede di rete) sono eterogenei, spesso lenti e ognuno con un proprio modo di funzionare. Il gestore dell'I/O del SO offre un'interfaccia uniforme verso le applicazioni e dialoga con ciascun dispositivo attraverso un «driver», un modulo specifico che traduce le richieste generiche nei comandi particolari di quel dispositivo. Così le applicazioni «leggono» e «scrivono» allo stesso modo, qualunque sia l'hardware sottostante.
Poiché i dispositivi sono molto più lenti del processore, il SO usa tecniche per non sprecare tempo. Con il «buffering» i dati transitano per aree di memoria temporanee che disaccoppiano la velocità del dispositivo da quella del processo; con lo «spooling» le richieste (ad esempio le stampe) vengono accodate e servite in ordine; e con gli «interrupt» il dispositivo segnala al processore quando ha terminato, evitando di tenerlo bloccato in attesa attiva. Mentre un'operazione di I/O è in corso, lo scheduler può mandare in esecuzione un altro processo.
La «protezione» è l'insieme dei meccanismi interni con cui il SO impedisce che processi e utenti interferiscano tra loro o danneggino il sistema. Si fonda sulla distinzione tra modo utente e modo kernel, sui limiti di memoria che confinano ogni processo nel proprio spazio, sui permessi dei file e sul controllo degli accessi. Le operazioni privilegiate (accesso diretto all'hardware, modifica delle strutture del SO) sono riservate al kernel: un'applicazione può ottenerle solo tramite chiamate di sistema controllate.
La «sicurezza» guarda invece alle minacce, anche esterne, e mira a garantire riservatezza, integrità e disponibilità dei dati. Strumenti tipici sono l'autenticazione degli utenti (per esempio tramite credenziali) e l'autorizzazione tramite permessi, ai quali si affiancano misure più ampie come la cifratura dei dati e la difesa dai programmi malevoli. Protezione e sicurezza sono distinte ma complementari: la prima è il meccanismo interno, la seconda è la politica complessiva che difende il sistema dagli abusi.
Esempio svolto

Protezione contro sicurezza: classificare i meccanismi

Per ciascuno dei seguenti elementi, indica se appartiene alla PROTEZIONE (meccanismo interno tra processi/utenti) o alla SICUREZZA (difesa del sistema dalle minacce) e giustifica: (a) i limiti di memoria che confinano un processo; (b) la richiesta di password all'accesso; (c) la distinzione modo utente/kernel; (d) la cifratura di un file riservato.

  1. 01(a) Limiti di memoria

    Impediscono a un processo di invadere lo spazio di un altro: meccanismo interno -> PROTEZIONE.

  2. 02(b) Password

    Autentica l'utente per difendere il sistema da accessi non autorizzati -> SICUREZZA.

  3. 03(c) Modo utente/kernel

    Riserva le operazioni privilegiate al kernel: barriera interna -> PROTEZIONE.

  4. 04(d) Cifratura

    Garantisce la riservatezza dei dati anche se intercettati -> SICUREZZA.

Risultato: Protezione: (a) e (c); Sicurezza: (b) e (d).

Obiettivo Maturità

  • Focus Esame di Stato: spiegare il ruolo dei driver e delle tecniche di buffering/spooling/interrupt nel gestire dispositivi lenti senza bloccare il processore.
  • Focus Esame di Stato: distinguere con chiarezza protezione (meccanismi interni) e sicurezza (difesa dalle minacce, riservatezza/integrità/disponibilità) è una domanda di sintesi frequente.

Errori frequenti

  • Usare «protezione» e «sicurezza» come sinonimi: la protezione riguarda i meccanismi interni tra processi/utenti, la sicurezza la difesa complessiva del sistema da accessi e attacchi indebiti.
  • Pensare che il processore resti bloccato durante un'operazione di I/O: con interrupt e multitasking il SO mette in attesa il processo richiedente e usa il processore per altri processi pronti.

Approfondimento

Il dialogo con i dispositivi ammette due stili. Nell'I/O a interrogazione (polling) il processore controlla ripetutamente se il dispositivo è pronto, sprecando cicli in attesa attiva; nell'I/O guidato dagli interrupt il dispositivo avvisa quando ha finito, liberando la CPU per altro lavoro. Per i trasferimenti massicci — un file dal disco alla RAM — interviene il DMA (Direct Memory Access): un controllore dedicato sposta i dati direttamente fra dispositivo e memoria senza passare dal processore, che riceve un solo interrupt a trasferimento concluso, così da non fare il «facchino» byte per byte. Sul versante della sicurezza, i tre obiettivi classici sono riservatezza, integrità e disponibilità (la triade CIA): rispettivamente, che i dati siano visti solo da chi ne ha diritto, non siano alterati indebitamente e restino accessibili quando servono. Il principio guida della protezione è quello del privilegio minimo: ogni processo e ogni utente deve possedere solo i permessi strettamente necessari, per contenere i danni di un errore o di un attacco. Su di esso si fondano tecniche moderne come il sandboxing (confinare un programma in un ambiente ristretto) e la virtualizzazione (macchine virtuali isolate sullo stesso hardware). L'autenticazione, l'autorizzazione e la cifratura — di cui ci occuperemo con le reti — sono gli strumenti con cui la politica di sicurezza traduce in pratica questi principi, mentre la protezione ne fornisce i meccanismi interni imposti dal kernel.

Ripasso attivo

Spiega perché, durante la stampa di un documento lungo, l'utente può continuare a lavorare al computer: descrivi il ruolo dello spooling, del buffering e degli interrupt e il legame con lo stato «in attesa» del processo che ha richiesto la stampa.

Richiamo attivo

Ricorda i punti chiave — poi rivela.

Fonti: Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento (Ministero dell'Istruzione e del Merito (MIM)) · Esame di Stato del secondo ciclo — quadri di riferimento e griglie di valutazione (Ministero dell'Istruzione e del Merito (MIM))

Contenuti

Sezione -- / 05

    • 01Funzioni e architettura del sistema operativo○
    • 02Gestione dei processi e scheduling◐
    • 03Gestione della memoria◐
    • 04File system e gestione dei file◐
    • 05Gestione dell'I/O, protezione e sicurezza●

0/5 Letti

Dagli appunti all'allenamento

Sistemi operativi (SO)

Consolida questo argomento con domande dalla banca dati.

~24
min
3
Competenze
Esercitati

Riferimenti e fonti

Fonti

Ministero dell'Istruzione e del Merito (MIM)

  • Indicazioni Nazionali per i Licei (DPR 89/2010, DM 211/2010) — Obiettivi Specifici di Apprendimento
  • Esame di Stato del secondo ciclo — quadri di riferimento e griglie di valutazione

Argomento precedente

Architettura dei computer (AC)

Argomento successivo

Elaborazione digitale dei documenti e linguaggi di markup

EuraStudy·Appunti T·06·MMXXVI

Continua con l'argomento successivo: il percorso viene conservato.