Un sistema operativo funge da intermediario tra l’utente di un computer e l’hardware del computer. Lo scopo di un sistema operativo è quello di fornire un ambiente in cui un utente può eseguire programmi in modo conveniente ed efficiente.
Un sistema operativo è un software che gestisce l’hardware del computer. L’hardware deve fornire meccanismi appropriati per assicurare il corretto funzionamento del sistema del computer e per impedire ai programmi utente di interferire con il corretto funzionamento del sistema.
Sistema operativo – Definizione:
- Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi e agisce come interfaccia tra l’utente di un computer e l’hardware del computer.
- Una definizione più comune è che il sistema operativo è l’unico programma in esecuzione in ogni momento sul computer (di solito chiamato kernel), mentre tutti gli altri sono programmi applicativi.
- Un sistema operativo si occupa dell’assegnazione di risorse e servizi, come memoria, processori, dispositivi e informazioni. Il sistema operativo include corrispondentemente programmi per gestire queste risorse, come un controllore del traffico, uno scheduler, un modulo di gestione della memoria, programmi I/O e un file system.
Funzioni del sistema operativo – Il sistema operativo svolge tre funzioni:
- Convenienza: Un sistema operativo rende un computer più comodo da usare.
- Efficienza: Un sistema operativo permette di utilizzare le risorse del sistema informatico in modo efficiente.
- Capacità di evolvere: Un sistema operativo dovrebbe essere costruito in modo tale da permettere lo sviluppo efficace, il test e l’introduzione di nuove funzioni di sistema allo stesso tempo senza interferire con il servizio.
Sistema operativo come interfaccia utente –
- Utente
- Programmi di sistema e applicazioni
- Sistema operativo
- Hardware
Ogni computer di uso generale consiste di hardware, sistema operativo, programmi di sistema e programmi applicativi. L’hardware consiste di memoria, CPU, ALU e dispositivi I/O, periferiche e dispositivi di archiviazione. Il programma di sistema consiste in compilatori, caricatori, editor, OS, ecc. Il programma applicativo consiste in programmi di business, programmi di database.
Fig1: Vista concettuale di un sistema informatico
Ogni computer deve avere un sistema operativo per eseguire altri programmi. Il sistema operativo coordina l’uso dell’hardware tra i vari programmi di sistema e i programmi applicativi per i vari utenti. Fornisce semplicemente un ambiente all’interno del quale altri programmi possono fare un lavoro utile.
Il sistema operativo è un insieme di programmi speciali che girano su un sistema informatico che gli permette di funzionare correttamente. Svolge compiti di base come riconoscere l’input dalla tastiera, tenere traccia dei file e delle directory sul disco, inviare output allo schermo e controllare le periferiche.
Il sistema operativo è progettato per servire due scopi fondamentali:
- Controlla l’assegnazione e l’uso delle risorse del sistema informatico tra i vari utenti e compiti.
- Fornisce un’interfaccia tra l’hardware del computer e il programmatore che semplifica e rende fattibile la codifica, la creazione, il debug dei programmi applicativi.
Il sistema operativo deve sostenere i seguenti compiti. I compiti sono:
- Fornisce le strutture per creare, modificare i programmi e i file di dati utilizzando un editor.
- Accesso al compilatore per tradurre il programma utente dal linguaggio di alto livello al linguaggio macchina.
- Fornire un programma loader per spostare il codice del programma compilato nella memoria del computer per l’esecuzione.
- Fornire routine che gestiscono i dettagli della programmazione I/O.
Gestione del sistema I/O –
Il modulo che tiene traccia dello stato dei dispositivi è chiamato controller del traffico I/O. Ogni dispositivo I/O ha un gestore del dispositivo che risiede in un processo separato associato a quel dispositivo.
Il sottosistema I/O consiste di
- Un componente di gestione della memoria che include il buffering caching e lo spooling.
- Un’interfaccia generale del driver del dispositivo.
Driver per dispositivi hardware specifici.
Assembler –
L’input di un assemblatore è un programma in linguaggio assembly. L’output è un programma oggetto più informazioni che permettono al caricatore di preparare il programma oggetto per l’esecuzione. Un tempo, il programmatore di computer aveva a disposizione una macchina di base che interpretava, attraverso l’hardware, alcune istruzioni fondamentali. Egli programmava questo computer scrivendo una serie di uno e zero (linguaggio macchina) e li metteva nella memoria della macchina.
Compilatore –
I linguaggi di alto livello – esempi sono FORTRAN, COBOL, ALGOL e PL/I sono elaborati da compilatori e interpreti. Un compilatore è un programma che accetta un programma sorgente in un “linguaggio di alto livello” e produce un programma oggetto corrispondente. Un interprete è un programma che sembra eseguire un programma sorgente come se fosse linguaggio macchina. Lo stesso nome (FORTRAN, COBOL, ecc.) è spesso usato per designare sia un compilatore che il suo linguaggio associato.
Loader –
Un Loader è una routine che carica un programma oggetto e lo prepara per l’esecuzione. Ci sono vari schemi di caricamento: assoluto, relocating e direct-linking. In generale, il caricatore deve caricare, trasferire e collegare il programma oggetto. Il caricatore è un programma che mette i programmi in memoria e li prepara per l’esecuzione. In uno schema di caricamento semplice, l’assemblatore produce la traduzione in linguaggio macchina di un programma su un dispositivo secondario e un caricatore lo colloca nel nucleo. Il caricatore mette in memoria la versione in linguaggio macchina del programma dell’utente e gli trasferisce il controllo. Poiché il programma loader è molto più piccolo dell’assemblatore, questi rende più core disponibile al programma dell’utente.
Storia del sistema operativo –
Il sistema operativo si è evoluto negli anni. La seguente tabella mostra la storia del sistema operativo.
Generation | Year | Electronic device used | Types of OS Device |
---|---|---|---|
First | 1945-55 | Tubi di accumulo | Schede a spina |
Secondo | 1955-65 | Transistori | Sistemi a lotto |
Terzo | 1965-80 | Circuiti integrati (IC) | Multiprogrammazione |
Quarta | Dal 1980 | Integrazione su larga scala | PC |
Tipi di sistemi operativi –
- Sistema operativo a lotti- Sequenza di lavori in un programma su un computer senza interventi manuali.
- Sistema operativo time sharing- permette a molti utenti di condividere le risorse del computer.(Utilizzo massimo delle risorse).
- Sistema operativo distribuito- Gestisce un gruppo di computer diversi e li fa apparire come un unico computer.
- Sistema operativo di rete- i computer che girano in diversi sistemi operativi possono partecipare alla rete comune (è usato per scopi di sicurezza).
- Sistema operativo in tempo reale- significava applicazioni per fissare le scadenze.
Esempi di sistemi operativi sono –
- Windows (basato su GUI, PC)
- GNU/Linux (Personale, Stazioni di lavoro, ISP, File e print server, Three-tier client/Server)
- macOS (Macintosh), usato per i personal computer e le stazioni di lavoro Apple (MacBook, iMac).
- Android (il sistema operativo di Google per smartphone/tablet/smartwatch)
- iOS (il sistema operativo di Apple per iPhone, iPad e iPod Touch)