SISTEMI OPERATIVI
indice:
Le componenti principali di un sistema operativo sono:
interfaccia utente
L'interfaccia di un sistema operativo non è altro che una parte del sistema operativo che permette all'utente di utilizzare
il computer. Esistono diversi tipi di interfacce ma hanno tutte la stessa funzione: quella di richiedere servizi. Esiste
l'interfaccia a linea di comando e l'interfaccia a menu.L'interfaccia utente è il mezzo attraverso cui l'utente interagisce con
il computer (ad es., per spostare un file da una directory all'altra o lanciare un programma). Ce ne sono due tipi:
interfaccia testuale (terminale):
ad ogni azione corrisponde una frase (comando) che l'utente scrive sulla tastiera e che compare in un'area dello schermo simile
al foglio di una macchina da scrivere (terminale); eventuali risposte del computer sotto forma di testo sono stampate sullo stesso
terminale.
interfaccia grafica (GUI):
per compiere operazioni sul sistema si opera, principalmente con il mouse, su elementi grafici come menù, icone, finestre. Quasi
sempre l'intefaccia grafica contiene, tra i vari strumenti, anche un terminale. GUI sta per Graphical User Interface (Interfaccia
Utente Grafica)
Un'interfaccia utente può includere il layout di schermi di visualizzazione o stampa in uscita, visualizzati o stampati, comandi,
help online e messaggi. Un'interfaccia utente è anche la parte di un prodotto software che devi tradurre o apportare modifiche
culturali agli utenti di altri paesi o culture.
Il sistema operativo fornisce funzioni software specifiche per facilitare l'organizzazione del testo dalla propria interfaccia
utente e memorizzare quel testo in una libreria per una facile traduzione. Il sistema operativo vi fornisce anche un gestore di
interfaccia utente che fornisce un'interfaccia utente coerente. Il gestore dell'interfaccia utente fornisce un supporto completo
per la definizione e l'esecuzione di pannelli come i display e la guida online.
Questa sezione fornisce le linee guida che è possibile seguire quando si progetta un'interfaccia utente per un'applicazione
internazionale. È necessario applicare queste linee guida all'inizio del processo di progettazione.L'interfaccia utente comprende
il flusso di informazioni per il supporto delle decisioni, attraverso messaggi visivi, generalmente forniti da uno schermo o monitor,
messaggi sonori, come altoparlanti, sirene, ricetrasmittenti e azioni di controllo, quindi tastiere, pulsanti, interruttori.
Un insieme di più monitor, dispositivi e superfici di controllo forma una console o stazione di controllo. Da una console, un
operatore visiona le informazioni, riceve notifiche ed esegue azioni di controllo.
Una sala di controllo può contenere una o più stazioni di controllo.
Sala di controllo di una centrale nucleare
La sala di controllo e le stazioni di controllo possono essere trovate in molte applicazioni diverse, come ad esempio:
Torre di controllo di un aeroporto;
Centro di controllo di polizia e ambulanza;
Centrale nucleare.
La progettazione dell'abitacolo di aeroplani ed elicotteri comprende la progettazione di interfacce utente altamente specializzate, ma anche applicazioni su larga scala come lavatrici o lavastoviglie necessitano di un'interfaccia utente.
In ogni caso in tale ambito per le interfacce uomo-macchina risultano di primaria importanza i concetti di usabilità e accessibilità per garantire un uso tipicamente user-friendly della macchina stessa a ogni tipologia di soggetto e che spesso ne decidono il relativo successo commerciale come accaduto per i personal computer.
Nell'automotive, con l'avvento dei quadri di bordo digitali, sta diventando sempre più importante lo studio approfondito della migliore interfaccia uomo-macchina.
torna a indice
gestore dei processi
il gestore dei processi è responsabile dell'esecuzione dei programmi da parte dell'unità di elaborazione.
questo strato offre agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse a disposizione un'unità di elaborazione
dedica.
Un SO ha una sola prerogativa: coordinare, sincronizzare, gestire ed eseguire i processi. Ogni processo ha un proprio task, ovvero
una sua particolare e precisa mansione, e per eseguirla ha bisogno di determinate risorse. Una di queste, forse la più importante, è il processore. Immaginate che il solo processo "elaboratore di testo" si serve del monitor, della memoria, della tastiera etc. (risorse fisiche) e una serie infinita di dati (risorse virtuali) per poter svolgere il proprio compito.
Così come una strada può avere da una ad numero finito di corsie per poter permettere alle auto di veicolare ordinatamente, così
un sistema operativo permette ai processi che sono in numero molto elevato, di essere eseguiti in maniera tale da evitare condizioni
critiche (i cosiddetti Crash). Nei moderni sistemi i processi possono essere sincronizzati secondo diversi algoritmi, che operano in
maniera differente. Ogni sistema ha un suo algoritmo di gestione dei processi. Il gestore dei processi è detto Scheduler, dall'
inglese Archivio. Lo Scheduler ha il compito di scegliere quale processo deve essere eseguito, ovvero quale tra i processi attivi
deve essere scelto per l'esecuzione. Immaginate il caso in cui abbiate un numero molto elevato di programmi aperti e che
"saltelliate" dall'uno all'altro in maniera causale.
Un processo può essere creato (ad esempio quando un file, o quando digitiamo un tasto o quando stampiamo un documento),può essere
in esecuzione, oppure essere sospeso momentaneamente per poi riprendere in un secondo momento. Quando si conclude, il processo è terminato. Uno dei principali punti di forza di un SO è proprio la capacità, la velocità e l'affidabilità con cui svolge questo ruolo.
torna a indice
gestore della memoria (fisica e virtuale)
il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi.
questo strato offre agli strati superiori una macchina virtuale in cui ciascun programma ha a disposizione una memoria dedicata.
VMM (Virtual Memory Manager) gestisce le richieste di memoria effettuate dal sistema e dalle sue applicazioni.
I segmenti di memoria virtuale sono partizionati in unità denominate pagine; ogni pagina è ubicata nella memoria fisica reale (RAM) o memorizzata su disco fino a quando non è necessaria. AIX utilizza la memoria virtuale per indirizzare una quantità di memoria superiore a quella fisicamente disponibile nel sistema. La gestione delle pagine di memoria in RAM o su disco è gestita dal VMM.
In informatica, la memoria virtuale è un'architettura di sistema capace di simulare uno spazio di memoria centrale (memoria primaria) maggiore di quello fisicamente presente o disponibile, dando l'illusione all'utente di un enorme quantitativo di memoria[1].
Il sistema operativo usando una combinazione di hardware e software, mappa gli indirizzi di memoria usati da un programma, chiamati indirizzi virtuali, in indirizzi fisici. La memoria principale, dal punto di vista di un processo, appare come uno spazio di indirizzi (o una lista di segmenti) contiguo. Il sistema operativo gestisce lo spazio virtuale e l'assegnamento di memoria fisica a memoria virtuale. La traduzione di indirizzi è fatta da un hardware presente nella CPU, comunemente chiamato MMU, che traduce i vari indirizzi. Software presente all'interno del sistema operativo può estendere queste funzionalità per offrire uno spazio virtuale che eccede quello della memoria fisica, indirizzando così più memoria di quella fisicamente presente nel computer.
I vantaggi principali di quest'architettura sono una maggiore sicurezza dovuta all'isolamento della memoria, la possibilità di condividere alcune pagine di memoria fra diversi processi (in particolar modo quella delle librerie), e potere usare più memoria di quella disponibile con una tecnica chiamata swap.
Questo risultato si raggiunge utilizzando spazio di memoria secondaria su altri dispositivi o supporti di memorizzazione, di solito le unità a disco. La memoria centrale fisicamente presente diventa quindi la parte effettivamente utilizzata di quella virtuale, più grande: questo stratagemma è utile in virtù del principio di località e riuso dell'esecuzione dei programmi.
In ambiente POSIX, la memoria di massa utilizzata a questo scopo è comunemente chiamata "swap" o "spazio di swap" (verbo inglese che significa "scambiare"), mentre, in ambiente Windows, è chiamata "file di paging". Le operazioni di spostamento delle pagine dallo spazio di swap alla memoria fisica sono chiamate "swapping".
torna a indice
gestore della memoria secondaria
La memoria secondaria è la parte di memoria che normalmente non è volatile. I supporti di memorizzazione sono vari, tra cui
l'hard disk, floppy disk, cd e dvd, memorie usb e zip disk. Questi supporti mantengono le informazioni in modo
permanente, cioè, allo spegnimento del computer i dati rimangono salvati.
La memoria secondaria è la parte di memoria che normalmente non è volatile. I supporti di memorizzazione sono vari, tra cui l'hard disk (o disco rigido), floppy disk, cd e dvd, memorie usb e zip disk. Questi supporti mantengono le informazioni in modo permanente, cioè, allo spegnimento del computer i dati rimangono salvati.
Il sistema operativo ha il compito di gestire la memoria secondaria e specificamente:
Controlla tutte le fasi di scrittura/lettura dei settori, per rilevare qualsiasi errore
Controlla che i processi non scrivano in zone riservate al sistema operativo o ad altri programmi
Controlla che i processi non modifichino la memoria virtuale di altri processi
Mette a disposizione dell'utente una visione astratta della memoria.
Rappresentazione della memoria
La visione astratta della memoria è possibile grazie al file system. Il file system è l'insieme dei tipi di dati astratti necessari per la memorizzazione, l'organizzazione gerarchica, la manipolazione, la navigazione. Il file system viene inoltre utilizzato per memorizzare i dati che servono a controllare l'accesso a ciascun file da parte dei processi.
Nel corso del tempo sono state prodotte parecchie tipologie di file system, con caratteristiche abbastanza variabili, in base alla tipologia di computer a cui erano rivolti, dai file system semplificati per computer monoutente (il FAT dell'MS-DOS) fino a raffinati file system per server, pensati per un ambiente multiutente. Alcuni file system hanno anche funzionalità crittografiche, che rendono possibile aggiungere protezione crittografica ai file di ciascun utente.
I criteri di sicurezza nell'accesso alle operazioni sui file system sono in genere basati su liste di controllo di accesso (access control list o ACL) o capabilities. Si è scoperta qualche decina di anni l'inaffidabilità delle ACL, e per questo motivo i sistemi operativi moderni tendono a usare il meccanismo delle capabilities. I file system commerciali usano ancora le ACL.
Una ACL permette di definire per ciascun elemento del file system di quali permessi (lettura, scrittura, modifica ecc.) dispone ciascun utente che accede al sistema.
torna a indice
sottosistema di I/O
Uno dei compiti principali di un sistema operativo è la gestione ed il controllo dei dispositivi di input/output. Esiste una
incredibile varietà di dispositivi di I/O largamente diversi per funzioni e velocità. I metodi di controllo di tali dispositivi
sono quindi altrettanto diversi. L’insieme di tali metodi costituisce il sottosistema di I/O del nucleo (kernel) di un sistema
operativo. Questo sottosistema di I/O del nucleo è strutturato in moduli chiamati driver, che incapsulano le particolarità e i
dettagli dei vari dispositivi.
torna a indice
sottosistema per la protezione del sistema operativo
Per protezione si intende un meccanismo per controllare l’accesso di programmi, processi e utenti sia al sistema, sia alle risorse degli utenti. Il meccanismo di protezione deve:
- distinguere tra uso autorizzato e non autorizzato.
- fornire un modo per specificare i controlli da imporre.
- forzare gli utenti e i processi a sottostare ai controlli richiesti.
torna a indice
macchina di Von Neuman:
Pagina web a cura di Emma Nencetti.
invia email