Capitolo 1: Concetti introduttivi
Principali funzioni di un sistema operativo
Sistema operativo: componente software di un sistema di elaborazione che ha il compito fondamentale di agire come intermediario tra il livello delle applicazioni e il livello hardware. Insieme di programmi che nascondono la macchina fisica e mostrano una macchina virtuale come interfaccia, facile da usare. Ha il compito di garantire la sicurezza e la protezione dei dati che appartengono agli utenti del sistema. Crea quindi un'astrazione di tutti i moduli presenti al livello fisico e questo è un vantaggio perché consente agli sviluppatori di software di non preoccuparsi dell'architettura della macchina a basso livello e di concentrarsi esclusivamente sulle funzionalità dei programmi in quanto le interazioni con l'hardware vengono affidate al s.o.
Sistema di elaborazione diviso gerarchicamente in tre livelli:
- Livello hardware, che corrisponde ai componenti fisici di un computer (CPU, RAM, mouse, stampante) e che mette a disposizione dei programmi queste risorse fisiche per la loro esecuzione.
- Livello del s.o., che corrisponde a un insieme di componenti software che devono gestire le risorse fisiche. Fanno parte di questo livello i driver (o interfacce) per ogni modulo del livello fisico che semplificano l'utilizzo degli applicativi non mostrando i componenti hardware.
- Livello dei programmi applicativi, cioè l'insieme delle applicazioni usate direttamente dall'utente del sistema. Gli utenti non interagiscono mai con l'hardware, ma sempre tramite interfaccia del s.o. Esempi d'applicativi: shell, editor, browser, ecc.
Oltre alle risorse fisiche, un s.o. deve gestire anche le risorse logiche, cioè dati e funzioni comuni utilizzate da più programmi. Le varie tecniche adottate variano da sistema a sistema e la scelta delle strategie porta vantaggi e svantaggi. Come già detto, il s.o deve garantire la riservatezza e la protezione delle informazioni rispetto a intrusioni in rete. Per questo, ogni utente di un sistema di elaborazione può decidere quali dati personali rendere pubblici e quali privati grazie alle funzionalità del s.o.
Astrazione di macchina virtuale: il s.o fornisce un'interfaccia ai programmi utente. Questa interfaccia è detta API (Application Programming Interface) di sistema. Le operazioni fornite dall'API vengono dette chiamate di sistema e mettono in comunicazione il livello dei programmi applicativi usati dall'utente con il livello del sistema operativo che a sua volta comunica con il livello fisico. Molte volte le chiamate di sistema vengono anche chiamate primitive perché per un programma applicativo, una chiamata di sistema dev'essere vista come istruzione macchina anche se viene realizzata in software dal s.o. Le funzionalità offerte dalla macchina virtuale dipendono dal tipo di s.o. utilizzato e dal tipo di obiettivi che si vogliono conseguire in un dato ambito applicativo.
Cenni storici sull'evoluzione dei sistemi operativi
I primi sistemi di elaborazione risalgono alla prima metà degli anni '50. C'erano grandi macchine usate solo per scopi scientifico-militari. Non erano dotate di s.o. e il programmatore comunicava con la macchina tramite consolle, dove s'inseriva un codice binario in un registro o in una locazione di memoria. Il problema era l'efficienza d'uso della CPU (tempo uso CPU / tempo execute job).
Sistemi batch: introdotti all'inizio degli anni '60 con l'obiettivo di ridurre l'intervento manuale dell'utente. L'idea base fu quella di dividere i tre lavori: caricamento dei dati, calcolo e stampa su macchine distinte. C'era un operatore unico che gestiva la macchina. L'utente programmatore forniva il proprio programma (codice sorgente e dati su cui operare) scritto in JCL (Job Control Language) su schede perforate all'operatore. Fu definito infine un nuovo programma di sistema, detto monitor (primo s.o.), che:
- Leggeva ciclicamente le schede caricandole su disco magnetico;
- Trasferiva il controllo alla CPU per l'elaborazione del contenuto;
- Riprendeva il controllo per continuare con l'esame della scheda successiva fino a quando non c'era una particolare scheda che rappresentava la fine del job.
Per ridurre ulteriormente l'intervento manuale dell'operatore fu deciso di organizzare il lavoro del sistema caricando sul lettore di schede un lotto di pacchi di schede, contenenti più job di diversi utenti. Così il monitor poteva passare dall'esecuzione di uno job all'altro e l'operatore interveniva solo alla fine dell'esecuzione di un batch (un insieme) di job. A quel punto l'operatore caricava un altro batch di job raccolto durante l'esecuzione di quello precedente.
Le caratteristiche principali del sistema batch erano tre:
- Positiva: si ebbe l'incremento dell'efficienza d'uso delle risorse di macchina grazie solo alla limitazione dell'intervento manuale dell'utente.
- Negativa: il pieno controllo dell'operatore sulla macchina implicò l'allontanamento dell'utente dalla...
-
Sistemi operativi - Appunti
-
Sistemi Operativi - Appunti
-
Calcolatori Elettronici - Sistemi Operativi
-
Corso di Sistemi operativi - modulo I