3.2 – Gestione hardware mediante il Sistema Operativo e gestione dei file

Obiettivi della lezione

  • Comprendere la gestione hardware tramite il sistema operativo: Analizzare come il sistema operativo interagisce con l’hardware tramite driver e gestione della memoria.
  • Esplorare la gestione delle periferiche: Studiare il rilevamento automatico, l’installazione dei driver e la gestione delle operazioni di input/output.
  • Conoscere il file system e la gestione dei file: Esaminare come il sistema operativo organizza, controlla e protegge i file sul disco.

Introduzione

In questa lezione, approfondiremo come il sistema operativo gestisce le componenti hardware e le periferiche, nonché la gestione dei file. Questi aspetti sono cruciali per comprendere come il sistema operativo coordina e facilita l’interazione tra l’utente, il software e l’hardware del computer.

Gestione delle componenti hardware

Driver di dispositivo

I driver di dispositivo sono programmi che permettono al sistema operativo di comunicare con l’hardware del computer. Ogni dispositivo hardware ha bisogno di un driver specifico per funzionare correttamente. I driver fungono da traduttori, convertendo i comandi del sistema operativo in istruzioni che l’hardware può comprendere.

  • Installazione dei driver: Quando un nuovo dispositivo hardware viene collegato al computer, il sistema operativo cerca automaticamente il driver appropriato. Se disponibile, il driver viene installato e configurato. In alcuni casi, può essere necessario scaricare e installare manualmente il driver dal sito del produttore.
  • Aggiornamento dei driver: I driver devono essere aggiornati regolarmente per garantire la compatibilità con il sistema operativo e migliorare le prestazioni del dispositivo. Gli aggiornamenti possono correggere bug, aggiungere nuove funzionalità o migliorare la sicurezza.

Gestione della memoria

Il sistema operativo gestisce la memoria del computer, allocando spazio di memoria per i processi in esecuzione e liberando la memoria quando i processi terminano.

  • Memoria RAM: Viene utilizzata per archiviare dati temporanei necessari ai processi in esecuzione. La gestione della RAM include l’allocazione di blocchi di memoria ai processi e il recupero della memoria quando non è più necessaria.
  • Memoria Virtuale: Se la memoria RAM è insufficiente, il sistema operativo utilizza una parte dello spazio su disco come estensione della RAM, nota come memoria virtuale. Questo processo è chiamato “swapping” e consente di eseguire più applicazioni contemporaneamente senza esaurire la memoria fisica.

Gestione delle periferiche

Le periferiche sono dispositivi esterni collegati al computer, come stampanti, scanner, mouse, tastiere e dispositivi di archiviazione esterni. Il sistema operativo gestisce le periferiche attraverso i driver e fornisce un’interfaccia per l’utente per interagire con questi dispositivi.

  • Plug and Play (PnP): Una tecnologia che consente al sistema operativo di rilevare automaticamente le periferiche e installare i driver necessari. Questa funzionalità semplifica il processo di aggiunta e rimozione di dispositivi.
  • Gestione dell’I/O: Il sistema operativo coordina le operazioni di input/output tra le periferiche e il computer. Questo include la gestione dei buffer di I/O, la sincronizzazione delle operazioni di I/O e la gestione degli interrupt generati dalle periferiche.

Gestione dei file

File System

Il file system è una componente del sistema operativo che gestisce la creazione, eliminazione, lettura e scrittura dei file. Organizza i dati in un modo strutturato per un accesso efficiente e sicuro. I principali compiti del file system includono:

  • Struttura delle Directory: Il file system organizza i file in una gerarchia di cartelle e sottocartelle. Questa struttura permette agli utenti di trovare e gestire facilmente i file.
  • Permessi di Accesso: Il file system controlla chi può leggere, scrivere o eseguire un file. I permessi possono essere assegnati a singoli utenti o gruppi di utenti, garantendo che solo le persone autorizzate possano accedere ai file sensibili.
  • Gestione dello Spazio su Disco: Il file system tiene traccia dello spazio disponibile su disco e della posizione dei file sul disco. Questo include la gestione dei frammenti di file e l’ottimizzazione dell’allocazione dello spazio su disco per migliorare le prestazioni.

Tipi di file system

Esistono diversi tipi di file system, ciascuno con le proprie caratteristiche e vantaggi:

  • FAT32 (File Allocation Table): Un file system vecchio ma ancora utilizzato, compatibile con molti dispositivi e sistemi operativi. È limitato a file di dimensioni massime di 4 GB.
  • NTFS (New Technology File System): Utilizzato da Windows, offre miglioramenti in termini di sicurezza, compressione dei file e gestione dello spazio su disco. Supporta file di grandi dimensioni e permessi di accesso avanzati.
  • HFS+ (Hierarchical File System Plus): Utilizzato da macOS, offre funzionalità avanzate come la gestione delle risorse e la compatibilità con Time Machine per il backup.
  • EXT4 (Fourth Extended File System): Utilizzato da molte distribuzioni Linux, offre miglioramenti in termini di performance e affidabilità. Supporta file di grandi dimensioni e journaling, che aiuta a prevenire la corruzione dei dati.

Operazioni sui File

Il sistema operativo permette agli utenti di eseguire una serie di operazioni sui file, tra cui:

  • Creazione e Eliminazione: Gli utenti possono creare nuovi file e cartelle e eliminarli quando non sono più necessari.
  • Lettura e Scrittura: Gli utenti possono aprire i file per visualizzarli o modificarli. Questo include la lettura dei dati da un file e la scrittura di nuovi dati nel file.
  • Copia e Spostamento: Gli utenti possono copiare o spostare file e cartelle da una posizione all’altra. Questo permette di organizzare i file in modo efficiente e di creare backup.

Esempi pratici di gestione dei file

Creazione di un file

Quando un utente crea un nuovo file, il sistema operativo:

  1. Alloca Spazio: Riserva lo spazio necessario su disco.
  2. Aggiorna il File System: Aggiunge un’entrata per il nuovo file nella struttura delle directory.
  3. Imposta i Permessi: Assegna i permessi di accesso in base alle impostazioni di default o alle specifiche richieste dell’utente.

Lettura di un file

Quando un utente apre un file per leggerlo, il sistema operativo:

  1. Localizza il File: Trova il file nella struttura delle directory.
  2. Controlla i Permessi: Verifica che l’utente abbia i permessi necessari per leggere il file.
  3. Carica il File in Memoria: Legge i dati dal disco e li carica nella RAM, rendendoli disponibili per l’applicazione che ha richiesto l’accesso.

Scrittura su un file

Quando un utente scrive su un file, il sistema operativo:

  1. Controlla i Permessi: Verifica che l’utente abbia i permessi necessari per scrivere sul file.
  2. Aggiorna i Dati: Scrive i nuovi dati nel file, aggiornando il contenuto esistente.
  3. Aggiorna il File System: Modifica l’entrata del file nel file system per riflettere le nuove dimensioni e la data di modifica.

Esercitazioni pratiche

  1. Installazione e Aggiornamento dei Driver:
    • Installare e aggiornare i driver per diverse periferiche hardware (stampanti, schede grafiche, tastiere).
    • Esempio: Installare il driver di una stampante e verificarne il funzionamento.
  2. Gestione della Memoria:
    • Simulare la gestione della memoria RAM e virtuale.
    • Esempio: Eseguire più applicazioni contemporaneamente e monitorare l’uso della memoria tramite il Task Manager.
  3. Gestione delle Periferiche:
    • Esercitarsi con Plug and Play (PnP) collegando vari dispositivi al computer.
    • Esempio: Collegare un mouse e una tastiera USB e verificare il riconoscimento automatico da parte del sistema operativo.
  4. Operazioni sui File:
    • Creare, eliminare, leggere, scrivere, copiare e spostare file e cartelle utilizzando il file manager del sistema operativo.
    • Esempio: Creare una cartella, aggiungere file, spostarli in una sottocartella e poi eliminarli.
  5. Esplorazione dei File System:
    • Confrontare diversi tipi di file system (NTFS, FAT32, ext4) utilizzando strumenti di partizionamento del disco.
    • Esempio: Formattare un’unità flash con vari file system e analizzare le differenze di funzionalità e prestazioni.