Fondamenti di Sistemi Operativi: Concorrenza, Gestione Memoria e Archiviazione Dati

Classificato in Informatica

Scritto il in italiano con una dimensione di 16,38 KB

Nozioni Fondamentali sui Sistemi Operativi

Concetti di Base per la Concorrenza

  • Parallelismo: Coesistenza di processi.
  • Frequenza: Corrispondenze tra processi correlati (che richiedono sincronizzazione).
  • Tempi: Corrispondenza tra l'ordine temporale derivata di processi di comunicazione tra loro, necessaria a garantire la mutua esclusione.
  • Fili (Thread): Rapporto di dominio e dipendenza tra il sistema operativo e i processi.
  • Variabili Condivise: Variabile che può essere aggiornata da due o più processi.
  • Sezione Critica: Posizione di programma in cui una variabile condivisa è accessibile.

Primitivi di Controllo della Concorrenza

COBEGIN/COEND: Primitivo strutture di controllo per la concorrenza o il parallelismo, composto da coppie di affermazioni che indicano, rispettivamente, la divisione e la fusione della linea di controllo (operazioni Parbegin-Parend / COBEGIN-COEND).

Mutua Esclusione

Tecnica di programmazione utilizzata per eseguire la sezione critica di un programma in modo che solo un processo alla volta possa accedervi.

Tipi di Algoritmi di Mutua Esclusione

Attesa Attiva (Busy Waiting)

Algoritmi che basano il loro lavoro sull'istituzione di un ingresso previsto per la sezione critica con un ciclo che si interrompe quando una determinata condizione è soddisfatta. L'attesa è attiva perché il processo è bloccato durante l'esecuzione, ma continua a competere per il processore costantemente. Questo sovraccarica inutilmente il sistema (Sindaco et al., p. 82).

  • Algoritmo di Dekker: Prestazioni basate su una tabella dimensionale di due elementi logici (switch).
  • Mutex (Semaphori Mutex): Utilizzo di uno switch denominato mutex attraverso il quale avviene la sincronizzazione.
  • Alternanza: Utilizzo di una variabile chiamata Time per la sincronizzazione.
Attesa Non Attiva (Blocking Wait)

Algoritmi in cui i processi in attesa di entrare nella sezione critica vengono bloccati, evitando di competere per il processore fino a quando la condizione di rilascio non è soddisfatta (Sindaco et al., p. 82).

  • Semafori: Operazione basata su una variabile intera usata come contatore per l'accesso a una sezione critica, condivisa da tutti i processi di sistema. Progettati da Dijkstra (1965), sono chiamati 'luci' per la loro capacità di gestire il traffico dei processi che intendono accedere ai dati condivisi.
  • Regioni Critiche: Consentono che solo i dati condivisi siano accessibili da alcune aree, rendendo trasparente il resto. Presentano piccoli problemi con la temporizzazione e non permettono operazioni di lettura multiple contemporanee.
  • Regioni Critiche Condizionali: Miglioramento del metodo precedente per correggere i problemi di temporizzazione.
  • Monitor: Nei meccanismi precedenti, il programmatore doveva prevedere esplicitamente il metodo di sincronizzazione. I Monitor gestiscono la condivisione dei dati tra processi garantendo la mutua esclusione senza che il programmatore debba prevederla esplicitamente. Soddisfano tutte le funzioni che operano su un insieme di dati condivisi in un unico modulo. Dovrebbero essere supportati dal linguaggio appropriato (es. Modula e Ada).
  • Contatori di Evento: Basati su una variabile intera che permette operazioni di accesso, consentendo la sincronizzazione delle attività senza imporre la mutua esclusione.
  • Messaggi: Più che un meccanismo di sincronizzazione, è un meccanismo di cooperazione basato su un'area di memoria condivisa gestita dal sistema operativo e nascosta ai processi. Un processo invia un messaggio a un altro tramite l'area di memoria condivisa e il destinatario può leggerlo.
Comunicazione tramite Messaggi

Esistono due tipi di comunicazione tra processi:

  1. Diretta: I processi inviano e ricevono messaggi direttamente tra loro.
  2. Indiretta: I messaggi vengono inviati e ricevuti attraverso delle cassette postali (mailbox).
Meccanismi Avanzati di Comunicazione
  • Chiamata Remota (Remote Procedure Call - RPC): Simile al passaggio di parametri in una chiamata a procedura; comporta il passaggio di messaggi da un processo all'altro, garantendo che se un processo non termina, l'altro rimane in attesa.
  • Rendez-vous: Culmine dei meccanismi precedenti, è una leggera modifica del metodo RPC dove la chiamata non è per un'intera procedura, ma solo per un gruppo di istruzioni interne. Questo metodo è implementato in Ada.

Meccanismi di Hardware per la Mutua Esclusione

Istruzioni hardware che garantiscono la mutua esclusione:

  • Disabilita Interruzioni: I computer moderni permettono di disattivare gli interrupt. Se un dispositivo genera un interrupt mentre è disabilitato, il riconoscimento e il trattamento vengono ritardati fino alla riattivazione, forzando la mutua esclusione. Solitamente, la disattivazione e riattivazione può essere fatta con una singola istruzione macchina.
  • Istruzione Test-and-Set: Alcuni computer forniscono un'istruzione denominata Test-and-Set la cui missione è imporre la mutua esclusione. Tuttavia, non molti computer la supportano, e da sola non è sufficiente a garantire la mutex.
  • Lock: Basato sull'istruzione precedente, il suo scopo è consentire l'accesso alla sezione critica di un processo in assenza di altre attività al suo interno.

Gestione della Memoria

Gerarchia di Storage

Relazione tra Costo, Tempo di Accesso e Capacità:

CostoTempo di AccessoCapacità
(Alto)(Basso)(Basso)
(Basso)(Alto)(Alto)

Strategie di Gestione della Memoria

  • Monoprogramming: Memoria dedicata (senza gestore).
  • Monitor: (Insorgenza dei sistemi operativi).
  • Protezione dei Confini (Border Protection).
  • Remapping degli Indirizzi: Statico (Compilazione) / Dinamico (Esecuzione).
  • Swapping.
  • Multiprogrammazione: Protezione della memoria.
  • Partizioni a Dimensione Fissa.
  • Partizioni a Dimensione Variabile.
  • Frammentazione Interna / Esterna.
  • Compattazione.

Paginazione (Paging)

Sistema di gestione della memoria che divide l'applicazione in sezioni di uguale dimensione chiamate page frame o cornici, e il programma in blocchi delle stesse dimensioni chiamati pagine. Crea così una tabella di pagina. Con questa strategia non è richiesto che i blocchi di programma (pagine) siano memorizzati in cornici contigue.

Segmentazione

Sistema di gestione della memoria che supporta la prospettiva dell'utente sulla memoria fisica del sistema, basato su una serie di segmenti, ciascuno con un ID e un offset. La segmentazione è effettuata dall'assemblatore o dal compilatore.

Paging Segmentato

  • Segmentazione con Paginazione (Segmentazione Paginata): Sistema di gestione della memoria che segmenta la tabella di pagina appropriata per le dimensioni del programma (es. serie IBM 370).
  • Segmentazione con Paginazione (Variante): Consiste nel cambiare il contenuto della tabella di pagina per ogni segmento per indicare la loro lunghezza (es. Intel 386, Multics/Honeywell, GE 645).

Memoria Virtuale

Programma di gestione della memoria che permette l'esecuzione di programmi parzialmente caricati in memoria principale.

  • Caricamento (Load): Richieste (Demand) o Anticipo (Advance).
  • Selezione dello Spazio (Placement).
  • Sostituzione (Replacement): FIFO, LRU, LFU.

Cache

Deriva dal francese cacher (nascondere). Chiamata anche cache buffer. È una tecnica che utilizza blocchi (che ovviamente risiedono) del disco rigido, ma li mantiene in RAM per migliorare le prestazioni del sistema.

Gestione dei Record e dei Dati

Evoluzione Storica della Gestione dei File

  • 1950 - 1960: File sequenziali.
  • 1960 - 1970: File sequenziali indicizzati.
  • 1970 - 1980: File ad accesso casuale (Random Access).
  • 1980 - 1990: Sistemi di gestione di database (DBMS), Data Mart, Data Warehouse.
  • 1990 - attuale: Sistemi di gestione di database relazionali/oggetti (ORDBMS), Cluster File System.

Concetti Fondamentali di Organizzazione Logica e Fisica dei Dati

Organizzazione LogicaOrganizzazione FisicaDescrizione
CarattereByte (minimo, 8 bit)Unità minima di informazione (es. # Corretto un carattere)
CampoParola / BytesElemento base di dati con un singolo valore. I campi si distinguono per identità, grandezza e, se a lunghezza variabile, per la lunghezza. Classificati per tipo e lunghezza.
RecordBlocco FisicoInsieme di campi correlati che possono essere gestiti come una singola unità.
FileArea DatiRaccolta di record simili con un nome univoco, gestita dall'utente e dalle applicazioni come unità.
DatabaseAree RegistroUna raccolta di dati correlati e un gruppo di programmi per consentire l'accesso a tali dati.
DirectorySpazio riservato al sistema operativo per tenere traccia dei file sul sistema.
  • Campo Chiave: Campo che identifica il record e lo distingue dagli altri (es. ID, n. di serie).
  • Record Fisico / Blocco: La più piccola quantità di dati che può essere trasferita in un'operazione di I/O tra memoria principale e periferiche (es. una linea di stampa).
  • Fattore di Bloccaggio: Numero di record logici che possono contenere un blocco fisico.

Definizioni di Database

  • DBMS (Database Management System): Insieme di dati correlati e un gruppo di programmi per accedervi (Korth HF).
  • È un insieme di dati integrati e autodescrittivi (DM Kroenke).
  • È una raccolta di elementi di dati correlati che possono essere elaborati da uno o più sistemi applicativi (Hansen GW).

Perché i Database? (Problemi dei File System Tradizionali)

  • Dati sparsi in file diversi con formati differenti.
  • Accesso multiutente con incoerenza dovuta a molteplici aggiornamenti.
  • Ridondanza e inconsistenza dei dati (Dati ripetuti in file diversi).
  • Difficoltà di accesso ai dati (Mancanza di query per relazioni non fornite).
  • Problemi di Sicurezza e Integrità (Ogni utente ha la propria vista e i dati devono soddisfare vincoli di coerenza).

Data Warehouse e Data Mart

  • Data Warehouse: Repository o archivio di informazioni integrate disponibili per la ricerca e l'analisi. I dati provengono da più fonti e tipi diversi. Sono il prodotto dell'unione di vari Data Mart. Si osserva che l'80% dei dati utilizzati proviene dal 20% delle fonti del sistema.
  • Data Mart: Repository di dati di dimensioni standardizzate e architettura a bus, ottenuto dai database operativi e concepito per servire una specifica area aziendale. L'architettura a bus permette loro di agire insieme come un data warehouse virtuale.

Processi di Analisi e Strumenti

  • Online Analytical Processing (OLAP): Strumenti di ricerca tipicamente usati in Data Warehouse e Data Mart.
  • Online Transaction Processing (OLTP): Processa l'acquisizione dei dati nel momento in cui la transazione viene generata.
  • Strumenti CASE: Un dizionario di fonti informative costituito da: componenti di analisi e progettazione (diagrammi di flusso di dati, diagrammi Entità-Relazione, diagrammi di database, disegni schermo), strutture di programmi, algoritmi, repository di dati.

Obiettivi dei Sistemi di Gestione dei Record

  • Disporre di un sistema di gestione dei record a disposizione di utenti e applicazioni per i servizi di archiviazione.
  • Soddisfare le esigenze di gestione dei dati e le esigenze degli utenti.
  • Assicurare la coerenza e la validità dei dati.
  • Proteggere i dati contro eventi che possono causare perdita o distruzione.
  • Fornire supporto per I/O per un ampio numero di tipi di dispositivi di storage.
  • Ottimizzazione delle prestazioni.

Architettura del File System

Al livello più basso, i device driver comunicano direttamente con le periferiche o i loro canali. Ogni driver è responsabile dell'avvio delle operazioni di I/O su un dispositivo e della gestione del completamento di una richiesta.

Livelli Architetturali

  • Metodo di Accesso
  • I/O Logico
  • Supervisore di Base I/O
  • File System di Base
  • Device Manager

Il File System di Base (o livello di I/O fisico) fornisce l'interfaccia principale con l'ambiente esterno al computer. Si occupa dei blocchi di dati scambiati con sistemi a disco o nastro, posizionando questi blocchi nel dispositivo di storage secondario e nei buffer di memoria. È irrilevante per il contenuto o la struttura dei file coinvolti.

Il Supervisore di Base I/O è responsabile dell'avvio e del completamento di tutte le operazioni di I/O. A questo livello risiedono le strutture di controllo responsabili della corrispondenza I/O con i dispositivi, la pianificazione e lo stato dei file. Si occupa anche della selezione del dispositivo per le operazioni I/O sui file.

L'I/O Logico è il file system che permette agli utenti e alle applicazioni di accedere ai record, offrendo una capacità di I/O di record di uso generale e mantenendo i file di dati di base.

Il Metodo di Accesso è il livello del file system più vicino all'utente. Fornisce un'interfaccia standard tra le applicazioni e i sistemi di file/dispositivi che memorizzano i dati. Alcuni metodi di accesso sono: sequenziale, sequenziale indicizzato, indicizzazione e dispersione (hashing).

Amministrazione della Sicurezza

Criteri di Sicurezza

  • Impedire l'accesso non autorizzato (spionaggio, furto, sabotaggio).
  • Manutenzione del sistema (hardware e software).
  • Minimizzare i rischi di perdite (incendio, alluvione, terremoto, virus, peste).
  • Il livello di protezione è relativo all'importanza per l'organizzazione.

Classificazione della Sicurezza

  • Sicurezza Esterna: Strategie e meccanismi per salvaguardare l'installazione senza l'intervento del sistema informatico.
  • Sicurezza Interna (Protezione): Strategie e meccanismi per proteggere il sistema attraverso le proprie risorse informatiche.
  • Sicurezza Fisica: Strategie e meccanismi per salvaguardare l'installazione da catastrofi naturali e accesso non autorizzato (allarmi antincendio, griglie di sicurezza, ecc.).
  • Sicurezza di Amministrazione: Strategie e meccanismi per prevenire accessi logici (controllo accessi, firewall, sicurezza TX = codice bit di parità di Hamming, CRC + checksum).

Sicurezza Interna

Si basa sull'autenticazione (User ID):

  • Semplice, coerente e completa (se non fornita).
  • Lo stato di default non è accessibile.
  • Ridurre al minimo i privilegi.
  • Password: Qualcosa che l'utente sa.
  • Token/Chiave: Qualcosa che è dell'utente.
  • Biometria: Qualcosa che è l'utente.

Voci correlate: