Architettura e Funzionamento dei Sistemi Operativi: Evoluzione e Gestione delle Risorse
Classificato in Informatica
Scritto il in
italiano con una dimensione di 10,69 KB
Il Sistema Operativo: Fondamenti e Ruolo Centrale
Il sistema operativo è il software di base del computer. Questo software gestisce tutte le risorse hardware del sistema informatico e fornisce le basi per la creazione e realizzazione di software applicativo. Il sistema consiste di un insieme di programmi, servizi e funzioni che gestiscono e coordinano il funzionamento dell'hardware. Grazie al sistema operativo, l'hardware viene riconosciuto e il sistema informatico inizia a lavorare. Con i programmi e le applicazioni del sistema operativo, l'utente può eseguire determinate funzioni e compiti.
Modalità di Utilizzo delle Risorse
- SOMO (Sistema Operativo Monoutente): In questo sistema hardware e software sono disponibili le risorse per un singolo utente.
- SOMU (Sistema Operativo Multiutente): Permette a più utenti di utilizzare le risorse hardware e software del singolo computer.
Evoluzione Storica dei Computer e dei Sistemi Operativi
Le Generazioni dei Calcolatori
La storia del trattamento automatico delle informazioni è legata all'evoluzione delle macchine:
Prima Generazione (1st Generation)
- Utilizzo di tubi a vuoto per i calcolatori.
- Queste macchine erano di grande dimensione e consumavano molta elettricità.
- Erano macchine molto lente; le operazioni venivano ridotte a semplici operazioni matematiche.
- L'inserimento dei dati avveniva manualmente, come un centralino telefonico, giocando in un paio di pannelli pieni di buchi.
- Dal 1950, l'uso delle schede perforate permise di inserire i dati in modo più rapido.
Seconda Generazione (di seconda generazione)
- Introduzione dei transistor nei computer.
- I computer divennero più piccoli, più economici, più veloci e consumavano meno energia, emettendo meno calore.
- Le persone coinvolte nel trattamento automatico delle informazioni erano di due tipi: operatori di schede perforate e gestori di console.
- Appare quella che viene chiamata lavorazione batch (batch processing).
- In questo decennio appaiono i sistemi operativi multiutente, che consentono di eseguire più programmi contemporaneamente. Appare quello che oggi è conosciuto come periferica.
Terza Generazione
- Periodo: tra il 1965 e il 1980.
- In questo decennio si utilizzano i circuiti integrati, riducendo le dimensioni e il consumo di calore.
- Venne creato l'IBM 360, una macchina in grado di eseguire operazioni di tipo logico e matematico.
- Si consolida l'hardware di base e la progettazione del software (sistema operativo) che permette a una macchina o a un sistema informatico di eseguire più processi contemporaneamente.
Quarta Generazione (I 4 generazione)
- Periodo: dal 1980 ad oggi.
- Creazione dei personal computer.
- Tecniche di integrazione dei componenti elettronici: il chip (composto di silicio).
- Dispositivi di archiviazione di massa con maggiore capacità e più sicuri; compaiono i dispositivi ottici (facili da produrre e meno costosi).
- Questi sistemi sono potenzialmente utilizzabili da utenti che non dispongono di grandi competenze informatiche.
- Appaiono sistemi operativi più user friendly.
- I sistemi operativi attuali sono ad alta potenza per la gestione dell'hardware e l'uso e la distribuzione di programmi e dati. Compaiono sempre più versioni con meno errori e più facilmente utilizzabili, principalmente con interfaccia grafica.
- Appaiono le reti di computer e Internet/Intranet.
Gestione dei Processi
Stato del Processo
Lo stato di un processo è definito come la posizione per quanto riguarda l'utilizzo delle risorse hardware dell'equipo. Un processo potrebbe essere in esecuzione o bloccato. Fondamentalmente, i possibili stati di un processo sono:
- Esecuzione (Running): Il processore sta implementando e eseguendo le istruzioni che costituiscono il programma e ha il tempo concesso per l'uso in una particolare CPU.
- Pronto (Ready): Un processo è pronto per essere eseguito, è in attesa del proprio turno per utilizzare l'intervallo di tempo e far funzionare le proprie istruzioni per accedere alle risorse di sistema.
- Bloccato (Blocked): Il processo viene mantenuto in questo stato a causa di molteplici cause. Una ragione è che due processi utilizzano le stesse risorse, come un file di dati.
Definizioni correlate:
- Tiempo di Servizio (Service Time) = Tempo di arrivo - Tempo di completamento (Timeout).
- Indice di Servizio (Service Index) = Tempo di esecuzione del servizio / Tempo di servizio.
Architettura e Servizi del Sistema Operativo
Gerarchia del Sistema Operativo
Il sistema operativo coordina i programmi in uso su diversi livelli:
- Livello di Gerarchia 2: Software e Hardware.
- Livello di Gerarchia 3: Applicazioni, Sistema Operativo, Hardware.
Servizi del Sistema Operativo
I servizi sono applicazioni in background. Offrono agli utenti, tramite le applicazioni che li incorporano, la possibilità di utilizzare le risorse del sistema operativo, in alcuni casi anche in modalità multiutente. Alcuni servizi lanciati dai sistemi operativi sono applicazioni client/server, server Web, server di database e altre applicazioni basate su server locale, utilizzabili attraverso una rete.
Questi servizi possono essere utilizzati per:
- Creare programmi (editor, compilatori, debugger).
- Eseguire tali programmi fornendo le risorse hardware e software necessarie.
- Accedere a un file in modo controllato e sicuro.
- Accedere in modo controllato ai dispositivi di I/O.
- Accedere a informazioni in modo controllato e sicuro.
- Controllare e correggere gli errori causati da hardware o software.
- Fornire informazioni statistiche, di sicurezza e registrare ciò che avviene nel sistema.
I servizi sono essenziali per il funzionamento di molte applicazioni e del sistema operativo stesso. Se questi programmi o servizi non fossero in esecuzione, molte applicazioni non funzionerebbero, o qualcosa di così comune come l'accesso a Internet sarebbe impossibile.
Livelli di Controllo del Sistema Operativo Corrente
I sistemi operativi moderni sono caratterizzati da 3 livelli di controllo:
- Livello 3 - Responsabile Utente: Responsabile del controllo a livello dei processi utente, ovvero mostra all'utente quale processo è in esecuzione o deve essere eseguito.
- Livello 2 - Supervisor: Responsabile dell'esecuzione di ogni processo e della comunicazione tra il sistema e l'utente. Controlla e coordina l'input/output dei diversi processi verso le periferiche e i dispositivi di archiviazione esterni.
- Livello 1 - Executive: Su questo piano si gestisce lo storage management. Memorizza i processi in pagine (segmentazione, paginazione, ecc.) sia in memoria centrale che su disco.
- Livello 0 - Nucleo (Kernel): Responsabile del controllo della CPU. Gestisce i processi del computer da eseguire. Nei sistemi operativi multiutente, questo livello è responsabile dell'esecuzione delle attività di base, della comunicazione con l'hardware, della pianificazione dei processi, ecc.
Funzioni Principali del Sistema Operativo
Un sistema operativo è in grado di svolgere le seguenti funzioni:
- Controllo e attuazione dei programmi.
- Controllo, gestione e amministrazione delle periferiche.
- Controllo, gestione e amministrazione del controllo dei processi utente.
- Controllo degli errori di sistema e delle applicazioni.
- Controllo e gestione della sicurezza contro intrusioni o virus.
Gestione della Memoria
La parte del sistema che gestisce la memoria è il gestore della memoria. Il suo ruolo è chiaro: tenere traccia delle parti di memoria in uso e di quelle non utilizzate, riservare nuovo spazio per i processi e liberare lo spazio quando i processi sono terminati.
Tipi di Interfaccia Utente
Interfaccia a Testo (Text Interface)
Se il sistema operativo è in formato testo, tutti gli utenti inseriscono comandi e le risposte del sistema operativo vengono introdotte o visualizzate tramite stringhe. Esempi: DOS, UNIX. Tutti gli ordini vengono effettuati tramite tastiera e visualizzati sullo schermo.
Interfaccia Grafica (Graphical Interface)
Attualmente, la maggior parte dei mezzi di comunicazione tra la macchina e l'utente avviene tramite interfaccia grafica. In questo tipo di interfaccia, l'utente utilizza lo schermo visualizzando informazioni tramite mouse, blocchi o schermate indipendenti. Questi blocchi sono chiamati finestre e contengono componenti e obiettivi utilizzati per inviare o ricevere informazioni senza dover scrivere nulla.
Blocco di Controllo di Processo (PCB)
Una struttura dati è chiamata Blocco di Controllo di Processo (PCB) e contiene le seguenti informazioni per ogni processo:
- Stato attuale: Un processo può essere avviato, fermato o bloccato.
- ID del Processo (PID): Ogni processo è assegnato un codice (PID). Questo codice è solitamente il numero che il sistema operativo assegna come priorità e parametri di progetto, tenendo conto dell'uso e del livello di ciascun processo.
- Priorità del Processo: Questa priorità è determinata automaticamente dal sistema operativo a seconda dei parametri di progettazione. Può essere modificata dall'amministratore.
- Allocazione di Memoria: Tenendo conto della tecnica utilizzata per localizzare i programmi in memoria e in funzione del tipo di programma, il sistema operativo cercherà di allocare ogni processo in una zona separata della memoria o, nel peggiore dei casi, in aree di memoria condivisa con altri processi.
- Risorse Utilizzate: Ogni processo deve avere a disposizione determinate risorse hardware e alcune risorse software per l'esecuzione. Queste risorse vengono messe a disposizione del processo non appena inizia a funzionare. Queste risorse sono gestite dal sistema operativo.