sistema operativo

55
Sistema Operativo Sistema Operativo A. Ferrari A. Ferrari

Upload: chipo

Post on 07-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Sistema Operativo. A. Ferrari. Definizione (da Wikipedia). Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un insieme di componenti software, che garantisce l'operatività di base di un calcolatore, coordinando e gestendo le risorse hardware, le periferiche, - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sistema Operativo

Sistema Sistema OperativoOperativo

A. FerrariA. Ferrari

Page 2: Sistema Operativo

DefinizioneDefinizione(da Wikipedia)(da Wikipedia)

Il sistema operativo, abbreviato in SO (in inglese OS, Il sistema operativo, abbreviato in SO (in inglese OS, "operating system") è un insieme di componenti software, "operating system") è un insieme di componenti software, che garantisce l'operatività di base di un calcolatore, che garantisce l'operatività di base di un calcolatore, coordinando e gestendo coordinando e gestendo

le risorse hardware, le risorse hardware, le periferiche, le periferiche, le risorse software (processi) le risorse software (processi) e facendo da interfaccia con l'utentee facendo da interfaccia con l'utente

È la "base" per i software applicativi , che dovranno essere È la "base" per i software applicativi , che dovranno essere progettati e realizzati in modo da essere riconosciuti e progettati e realizzati in modo da essere riconosciuti e supportati da quel particolare sistema operativo. supportati da quel particolare sistema operativo.

Es. su un computer con CPU intel facciamo “girare” SW per Es. su un computer con CPU intel facciamo “girare” SW per Windows o per Linux o per MAC OS X (a seconda del SO Windows o per Linux o per MAC OS X (a seconda del SO installato)installato)

Assieme al processore, con cui è strettamente legato, Assieme al processore, con cui è strettamente legato, costituisce la piattaforma del sistema di elaborazione.costituisce la piattaforma del sistema di elaborazione.

Page 3: Sistema Operativo

Application Application Program Interface Program Interface

(API)(API)Il Sistema Operativo espone una API che Il Sistema Operativo espone una API che tradizionalmente assume la forma di una libreria tradizionalmente assume la forma di una libreria di funzioni speciali (system-call, chiamate di di funzioni speciali (system-call, chiamate di sistema)sistema)

L’API di Windows è nota come WINAPIL’API di Windows è nota come WINAPIL’interfaccia di riferimento per il mondo Linux è L’interfaccia di riferimento per il mondo Linux è denominata POSIXdenominata POSIX

Molti programmatori non utilizzano direttamente Molti programmatori non utilizzano direttamente le API, i linguaggi di programmazione le API, i linguaggi di programmazione “nascondono” l’interazione col SO.“nascondono” l’interazione col SO.

Es. Es. printfprintf del linguaggio C o del linguaggio C o coutcout del C++ vengono del C++ vengono trasformate dal compilatore in chiamate alle API trasformate dal compilatore in chiamate alle API del SOdel SO

Page 4: Sistema Operativo

Come sono scritti Come sono scritti i SOi SO

Data la stretta dipendenza dall’HW Data la stretta dipendenza dall’HW alcune parti del SO sono in linguaggio alcune parti del SO sono in linguaggio macchina.macchina.

Tradizionalmente la maggior parte del Tradizionalmente la maggior parte del SW che compone un SO è scritta in C.SW che compone un SO è scritta in C.

Es. Windows, LinuxEs. Windows, Linux

Page 5: Sistema Operativo

““strati”strati”

Page 6: Sistema Operativo

firmwarefirmwareIl firmware è un programma integrato direttamente in un Il firmware è un programma integrato direttamente in un componente elettronico nel senso più vasto del termine componente elettronico nel senso più vasto del termine (integrati, schede elettroniche, periferiche). (integrati, schede elettroniche, periferiche).

Lo scopo del programma è quello di avviare il componente Lo scopo del programma è quello di avviare il componente stesso e consentirgli di interagire con altri componenti stesso e consentirgli di interagire con altri componenti tramite l'implementazione di protocolli di comunicazione o tramite l'implementazione di protocolli di comunicazione o interfacce di programmazione.interfacce di programmazione.

Il termine deriva dall'unione di "firm" (azienda) e "ware" Il termine deriva dall'unione di "firm" (azienda) e "ware" (componente), indica che il programma non è (componente), indica che il programma non è immediatamente modificabile dall'utente finale, ovvero immediatamente modificabile dall'utente finale, ovvero risiede stabilmente nell'hardware integrato in esso, e che risiede stabilmente nell'hardware integrato in esso, e che si tratta del punto di incontro fra componenti logiche e si tratta del punto di incontro fra componenti logiche e fisiche, ossia fra hardware e software.fisiche, ossia fra hardware e software.

Il firmware forse più conosciuto è quello della scheda Il firmware forse più conosciuto è quello della scheda madre, chiamato comunemente BIOS e responsabile del madre, chiamato comunemente BIOS e responsabile del corretto avvio del computer.corretto avvio del computer.

Page 7: Sistema Operativo

BootBootIl sistema operativo Il sistema operativo viene caricato nella viene caricato nella memoria RAM memoria RAM all’accensione della all’accensione della macchina macchina (programma di boot) (programma di boot) e rimane attivo fino e rimane attivo fino allo spegnimento.allo spegnimento.

Page 8: Sistema Operativo

CaratteristicheCaratteristicheIl sistema operativo:Il sistema operativo:

è un insieme di moduli softwareè un insieme di moduli software

controlla le risorse hardware del sistemacontrolla le risorse hardware del sistema

mette a disposizione dell’utente una mette a disposizione dell’utente una macchina virtuale, in grado di eseguire macchina virtuale, in grado di eseguire comandi dati dall’utente, utilizzando la comandi dati dall’utente, utilizzando la macchina “reale”.macchina “reale”.

la macchina virtuale nasconde tutti i la macchina virtuale nasconde tutti i dettagli hardware che sarebbero troppo dettagli hardware che sarebbero troppo complicati da gestire per la maggior complicati da gestire per la maggior parte degli utentiparte degli utenti

Page 9: Sistema Operativo

Struttura a Struttura a “cipolla”“cipolla”

Page 10: Sistema Operativo

Gli strati della Gli strati della “cipolla”“cipolla”

Ogni strato (livello) costituisce una Ogni strato (livello) costituisce una macchina virtuale:macchina virtuale:

usa le funzionalità di quello sottostanteusa le funzionalità di quello sottostante

fornisce servizi al livello che segue nella fornisce servizi al livello che segue nella gerarchiagerarchia

gestisce delle risorse mediante politiche gestisce delle risorse mediante politiche invisibili ai livelli superiori (struttura invisibili ai livelli superiori (struttura modulare del Sistema Operativo)modulare del Sistema Operativo)

Page 11: Sistema Operativo

Gerarchia di Gerarchia di Macchine virtualiMacchine virtualiChi scrive un sistema operativo vede il sistema come Chi scrive un sistema operativo vede il sistema come un insieme di risorse fisiche da comandare un insieme di risorse fisiche da comandare direttamentedirettamente

Chi progetta un ambiente di programmazione vede la Chi progetta un ambiente di programmazione vede la macchina come l’insieme delle funzioni messe a macchina come l’insieme delle funzioni messe a disposizione dal sistema operativodisposizione dal sistema operativo

Il programmatore usa un linguaggio ad alto livello Il programmatore usa un linguaggio ad alto livello per realizzare un programma applicativo e vede per realizzare un programma applicativo e vede l’elaboratore come l’insieme delle funzionalità messe l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ambiente di programmazionea disposizione dall’ambiente di programmazione

per l’utilizzatore di un programma applicativo il per l’utilizzatore di un programma applicativo il sistema appare virtualmente come l’insieme dei sistema appare virtualmente come l’insieme dei comandi che può fornire alla macchina per soddisfare comandi che può fornire alla macchina per soddisfare le sue esigenzele sue esigenze

Page 12: Sistema Operativo

SW di SW di virtualizzazionevirtualizzazione

Da non confondere con il concetto Da non confondere con il concetto esposto in precedenza di “macchine esposto in precedenza di “macchine virtuali” sono i SW di virtualizzazione virtuali” sono i SW di virtualizzazione (chiamati anche questi macchine (chiamati anche questi macchine virtuali”)virtuali”)

Sono applicazioni installate in un Sono applicazioni installate in un sistema operativo host in grado di sistema operativo host in grado di “eseguire” altri sistemi operativi guest.“eseguire” altri sistemi operativi guest.

Page 13: Sistema Operativo

Un esempio di Sw di Un esempio di Sw di virtualizzazione: virtualizzazione:

VirtualBoxVirtualBoxVirtualBox è un software di virtualizzazione VirtualBox è un software di virtualizzazione commerciale proprietario (con una versione commerciale proprietario (con una versione ridotta distribuita secondo i termini della GNU ridotta distribuita secondo i termini della GNU General Public License) per architettura x86 che General Public License) per architettura x86 che supporta Windows, GNU/Linux e Mac OS X come supporta Windows, GNU/Linux e Mac OS X come sistemi operativi host, ed è in grado di eseguire sistemi operativi host, ed è in grado di eseguire Windows, GNU/Linux, OS/2 Warp, OpenBSD e Windows, GNU/Linux, OS/2 Warp, OpenBSD e FreeBSD come sistemi operativi guest.FreeBSD come sistemi operativi guest.

Il 12 febbraio 2008 Sun Microsystems ha Il 12 febbraio 2008 Sun Microsystems ha acquistato Innotek GmbH, l'azienda tedesca acquistato Innotek GmbH, l'azienda tedesca sviluppatrice di VirtualBox.sviluppatrice di VirtualBox.

Il 27 gennaio 2010 è stata perfezionata Il 27 gennaio 2010 è stata perfezionata l'acquisizione di Sun da parte di Oracle l'acquisizione di Sun da parte di Oracle Corporation.Corporation.

Page 14: Sistema Operativo

Linux (host) Linux (host) Windows (guest)Windows (guest)

Page 15: Sistema Operativo

Classificazione dei Classificazione dei SOSO

Page 16: Sistema Operativo

Sistemi Sistemi proprietariproprietari

Ogni azienda produttrice di piattaforme Ogni azienda produttrice di piattaforme hardware o produttrice di programmi applicativi hardware o produttrice di programmi applicativi comunque interessate a distribuire il proprio comunque interessate a distribuire il proprio prodotto ha creato spesso un sistema operativo prodotto ha creato spesso un sistema operativo proprio, spesso non trasportabile su altre proprio, spesso non trasportabile su altre macchine. macchine.

Tutto ciò per tutelare e garantire la vendita delle Tutto ciò per tutelare e garantire la vendita delle proprie piattaforme hardware o software, ma di proprie piattaforme hardware o software, ma di fatto impedendo sia la standardizzazione sia la fatto impedendo sia la standardizzazione sia la diffusione di modelli operativi condivisibili.diffusione di modelli operativi condivisibili.

I SO per mainframe di solito sono sistemi I SO per mainframe di solito sono sistemi proprietariproprietari

Page 17: Sistema Operativo

Sistemi apertiSistemi apertiLa casa produttrice del SO distribuisce La casa produttrice del SO distribuisce documentazione (API Applications documentazione (API Applications Program Interface) atta a favorire la Program Interface) atta a favorire la scrittura di applicativi sw da parte di scrittura di applicativi sw da parte di terze parti (la prima parte è il costruttore terze parti (la prima parte è il costruttore dell’hardware, la seconda parte è il dell’hardware, la seconda parte è il costruttore del sistema operativo) e, di costruttore del sistema operativo) e, di fatto, base essenziale per uno sviluppo fatto, base essenziale per uno sviluppo orizzontale del mercato del sw.orizzontale del mercato del sw.

MS-DOS, Windows, Mac OSX, iOS …MS-DOS, Windows, Mac OSX, iOS …

Page 18: Sistema Operativo

Sistemi Open Sistemi Open SourceSource

Sistemi operativi per Sistemi operativi per cui la distribuzione cui la distribuzione commerciale è commerciale è svincolata da costi e svincolata da costi e il cui codice sorgente il cui codice sorgente è disponibile ai è disponibile ai programmatori.programmatori.

Linux, FreeDOS …Linux, FreeDOS …

Page 19: Sistema Operativo

Utenti e livelliUtenti e livelliL’utente finale del sistema interagisce L’utente finale del sistema interagisce solo con il livello più esterno della solo con il livello più esterno della gerarchiagerarchia

E’ ignaro di tutti i dettagli delle E’ ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiorioperazioni svolte dai livelli inferiori

Page 20: Sistema Operativo

Interprete dei Interprete dei comandicomandi

Le richieste dell'utente al Sistema Operativo Le richieste dell'utente al Sistema Operativo sono fatte sono fatte

digitando dei comandi nelle interfacce a digitando dei comandi nelle interfacce a carattere (a riga di comando) (CLI, Command carattere (a riga di comando) (CLI, Command Line Interface)Line Interface)o selezionando oggetti con il mouse nelle o selezionando oggetti con il mouse nelle interfacce grafiche (Graphic User Interface)interfacce grafiche (Graphic User Interface)

Le richieste sono intercettate dall'interprete Le richieste sono intercettate dall'interprete dei comandi (shell), il quale attiva i moduli dei comandi (shell), il quale attiva i moduli programma che agiscono nei componenti del programma che agiscono nei componenti del nucleo (kernel). nucleo (kernel).

Questi attivano i dispositivi hardware quali il Questi attivano i dispositivi hardware quali il processore, la memoria, i controller di I/O, ecc., processore, la memoria, i controller di I/O, ecc., che svolgono la richiesta dell'utente.che svolgono la richiesta dell'utente.

Page 21: Sistema Operativo

Command Line Command Line Interface (shell Interface (shell

testuali)testuali)

Page 22: Sistema Operativo

GUI, Graphic User GUI, Graphic User InterfaceInterface

Page 23: Sistema Operativo

WIMPWIMPLa maggior parte delle interfacce grafiche La maggior parte delle interfacce grafiche sono di tipo WIMP (Windows, Icons, Menus, sono di tipo WIMP (Windows, Icons, Menus, Pointing device)Pointing device)

La metafora più utilizzata nei personal La metafora più utilizzata nei personal computer, oggi, è quella della “scrivania”computer, oggi, è quella della “scrivania”(in inglese, desktop).(in inglese, desktop).

Dalla sua introduzione ad oggi sono state Dalla sua introduzione ad oggi sono state introdotte interfacce alternative, allo scopo introdotte interfacce alternative, allo scopo di superarne le limitazioni, ma ancora di superarne le limitazioni, ma ancora senza successo.senza successo.

Page 24: Sistema Operativo

Xerox StarXerox StarLa workstation dello Xerox La workstation dello Xerox Star è stata il primo Star è stata il primo computer commercializzato computer commercializzato della storia ad essere dotato della storia ad essere dotato di interfaccia grafica di tipo di interfaccia grafica di tipo WIMP.WIMP.

Lo Xerox Star, è un sistema Lo Xerox Star, è un sistema informatico della Xerox informatico della Xerox Corporation Corporation commercializzato a partire commercializzato a partire dal 27 aprile 1981 e dal 27 aprile 1981 e costituito da una serie di costituito da una serie di workstation collegate fra loro workstation collegate fra loro tramite LAN.tramite LAN.

Lo Xerox Star per la prima Lo Xerox Star per la prima volta proponeva, in volta proponeva, in alternativa alla multiutenza alternativa alla multiutenza del minicomputer una serie del minicomputer una serie di computer monoutenti di computer monoutenti collegati tramite LAN.collegati tramite LAN.

Page 25: Sistema Operativo

Microsoft BOBMicrosoft BOBhttp://www.youtube.com/watch?v=ZegWedG-jk4

Microsoft Bob era un prodotto di Microsoft, rilasciato nel Microsoft Bob era un prodotto di Microsoft, rilasciato nel marzo 1995, progettato per diventare un'interfaccia marzo 1995, progettato per diventare un'interfaccia alternativa al desktop di Microsoft Windows 3.1 e 95, in alternativa al desktop di Microsoft Windows 3.1 e 95, in sostituzione del Program Manager e dell'Explorer.sostituzione del Program Manager e dell'Explorer.

Il software si basava sulla rappresentazione di un ambiente Il software si basava sulla rappresentazione di un ambiente casalingo, che doveva essere più semplice da comprendere casalingo, che doveva essere più semplice da comprendere per l'utente. per l'utente.

La schermata iniziale ha una porta per effettuare il login, un La schermata iniziale ha una porta per effettuare il login, un salotto come ambiente principale e un assistente (il cane salotto come ambiente principale e un assistente (il cane Rover) Rover)

Le varie applicazioni sono rappresentate tramite delle Le varie applicazioni sono rappresentate tramite delle metafore: il calendario, la rubrica degli indirizzi ... metafore: il calendario, la rubrica degli indirizzi ...

Non ebbe successo nelle vendite, ed infatti è generalmente Non ebbe successo nelle vendite, ed infatti è generalmente considerato il prodotto meno riuscito di Microsoft.considerato il prodotto meno riuscito di Microsoft.

Page 26: Sistema Operativo

Microsoft BOB Microsoft BOB (1995)(1995)

Page 27: Sistema Operativo

X WindowsX WindowsX Window System è un gestore grafico molto diffuso, X Window System è un gestore grafico molto diffuso, standard de facto per molti sistemi Unix-like. standard de facto per molti sistemi Unix-like.

X fornisce l'ambiente e i componenti di base per le interfacce X fornisce l'ambiente e i componenti di base per le interfacce grafiche, il disegno e lo spostamento delle finestre sullo grafiche, il disegno e lo spostamento delle finestre sullo schermo e l'interazione con periferiche d'input quali il mouse schermo e l'interazione con periferiche d'input quali il mouse e la tastiera. X non gestisce invece l'interfaccia grafica e la tastiera. X non gestisce invece l'interfaccia grafica utente o lo stile grafico delle applicazioni che vengono utente o lo stile grafico delle applicazioni che vengono gestite dall'ambiente desktop scelto dall'utente e in uso sul gestite dall'ambiente desktop scelto dall'utente e in uso sul computer.computer.

Un'altra caratteristica molto importante è la trasparenza di Un'altra caratteristica molto importante è la trasparenza di rete: la macchina dove girano i programmi (client) non deve rete: la macchina dove girano i programmi (client) non deve essere necessariamente la macchina locale (display server). essere necessariamente la macchina locale (display server). Questo permette anche di visualizzare sullo stesso display Questo permette anche di visualizzare sullo stesso display applicazioni che vengono eseguite su diversi host, oppure applicazioni che vengono eseguite su diversi host, oppure che su un host vengano eseguite applicazioni la cui che su un host vengano eseguite applicazioni la cui interfaccia grafica finisce su diversi display.interfaccia grafica finisce su diversi display.

X è stato creato dal MIT nel 1984. X è stato creato dal MIT nel 1984.

Page 28: Sistema Operativo

GNOMEGNOMEGNOME (GNU Network Object Model GNOME (GNU Network Object Model Environment) è un desktop environment Environment) è un desktop environment creato nell'agosto del 1997, con l'obiettivo creato nell'agosto del 1997, con l'obiettivo di fornire un ambiente di sviluppo e di fornire un ambiente di sviluppo e desktop libero per il sistema operativo desktop libero per il sistema operativo GNU/Linux. Grazie a questo e ai risultati GNU/Linux. Grazie a questo e ai risultati raggiunti, è presto stato riconosciuto come raggiunti, è presto stato riconosciuto come il desktop environment ufficiale del il desktop environment ufficiale del progetto GNU.progetto GNU.

Attualmente GNOME è l'ambiente grafico Attualmente GNOME è l'ambiente grafico predefinito di molte distribuzioni Linux, tra predefinito di molte distribuzioni Linux, tra le quali Debian e Fedora.le quali Debian e Fedora.

Page 29: Sistema Operativo

KDEKDEKDE (K Desktop Environment) è un ambiente desktop KDE (K Desktop Environment) è un ambiente desktop grafico per postazioni di lavoro Unix.grafico per postazioni di lavoro Unix.

È basato sulle librerie Qt di Qt Software e funziona È basato sulle librerie Qt di Qt Software e funziona sulla maggior parte dei sistemi operativi di tipo Unix, sulla maggior parte dei sistemi operativi di tipo Unix, come GNU/Linux, distribuzioni BSD ed esistono anche come GNU/Linux, distribuzioni BSD ed esistono anche delle versioni funzionanti su Microsoft Windows e su delle versioni funzionanti su Microsoft Windows e su Mac OS X che sfruttano il layer di portabilità del Mac OS X che sfruttano il layer di portabilità del toolkit Qt nell'attuale versione 4. L'ultima versione toolkit Qt nell'attuale versione 4. L'ultima versione disponibile è la 4.9 (rilasciata il 1 agosto 2012) ed è disponibile è la 4.9 (rilasciata il 1 agosto 2012) ed è stato tradotto in più di sessanta lingue.stato tradotto in più di sessanta lingue.

KDE viene concepito come un Desktop Environment KDE viene concepito come un Desktop Environment orientato prevalentemente agli utenti medio-avanzati, orientato prevalentemente agli utenti medio-avanzati, per via della vasta configurabilità dell'ambiente e dei per via della vasta configurabilità dell'ambiente e dei suoi programmi.suoi programmi.

Page 30: Sistema Operativo

FunzioniFunzioniIl Il gestore dei processi gestore dei processi (nucleo) gestisce (nucleo) gestisce l’esecuzione dei programmi da parte l’esecuzione dei programmi da parte dell’unità di elaborazionedell’unità di elaborazione

Il Il gestore della memoria gestore della memoria alloca la memoria e alloca la memoria e la partiziona tra i vari programmila partiziona tra i vari programmi

I I driverdriver sono responsabili delle operazioni di sono responsabili delle operazioni di ingresso/uscita che coinvolgono le perifericheingresso/uscita che coinvolgono le periferiche

Il Il file system file system è responsabile della gestione è responsabile della gestione dei file in memoria di massadei file in memoria di massa

L’L’interprete comandi interprete comandi consente all’utente di consente all’utente di attivare i programmiattivare i programmi

Page 31: Sistema Operativo

Monoutente o Monoutente o multiutentemultiutente

Il Sistema Operativo deve garantire che Il Sistema Operativo deve garantire che ogni utente avverta la macchina come ogni utente avverta la macchina come dedicatadedicata

Page 32: Sistema Operativo

SO SO monopragrammatmonopragrammat

i o i o multiprogrammatimultiprogrammatiMonoprogrammatiMonoprogrammati: in grado di mandare in : in grado di mandare in

esecuzione un solo processo alla volta su un esecuzione un solo processo alla volta su un sistema in cui un solo utente può agire.sistema in cui un solo utente può agire.

Sono oramai scomparsi, pur avendo Sono oramai scomparsi, pur avendo rappresentato una rivoluzione sostanziale per rappresentato una rivoluzione sostanziale per l’epoca, come MsDos e MaC OS. l’epoca, come MsDos e MaC OS.

MultiprogrammatiMultiprogrammati: possono gestire più : possono gestire più processi contemporaneamente, per i quali processi contemporaneamente, per i quali alternano un preciso quanto di tempo di alternano un preciso quanto di tempo di esecuzione di CPU, mantenendo traccia di esecuzione di CPU, mantenendo traccia di differenti sessioni per ogni utente, potendo differenti sessioni per ogni utente, potendo disporre di memoria centrale virtuale e quindi disporre di memoria centrale virtuale e quindi teoricamente infinita.teoricamente infinita.

Page 33: Sistema Operativo

I primi Sistemi I primi Sistemi OperativiOperativi

I primi sistemi operativi sono stati progettati I primi sistemi operativi sono stati progettati negli anni ’50 per i calcolatori allora negli anni ’50 per i calcolatori allora disponibili. disponibili.

Consistevano in poche centinaia di istruzioni Consistevano in poche centinaia di istruzioni per il caricamento del programma in memoria per il caricamento del programma in memoria centrale e per la produzione, su un dispositivo centrale e per la produzione, su un dispositivo di output, dei risultati dell’elaborazione.di output, dei risultati dell’elaborazione.

L’interfaccia era quella comune allora – L’interfaccia era quella comune allora – interruttori e spie luminose.interruttori e spie luminose.

I comandi venivano impartiti in codice binario.I comandi venivano impartiti in codice binario.

Page 34: Sistema Operativo

Pannello di Pannello di controllocontrollo

Page 35: Sistema Operativo

Nascita di UNIXNascita di UNIXAnni ’60, alla AT&T nasce UNIX, Anni ’60, alla AT&T nasce UNIX, capostipite di una numerosa e varia capostipite di una numerosa e varia famiglia di sistemi operativi. famiglia di sistemi operativi.

Anni ’70, iniziano a diffondersi i primi Anni ’70, iniziano a diffondersi i primi micro computer.micro computer.

Anni ‘80, a Seattle venne sviluppato il Anni ‘80, a Seattle venne sviluppato il sistema operativo QDOS (Quick and sistema operativo QDOS (Quick and Dirty Operating System).Dirty Operating System).

Page 36: Sistema Operativo

DOSDOSDopo pochi mesi, un’altra ditta di Dopo pochi mesi, un’altra ditta di Seattle, la Microsoft di Bill Gates, ne Seattle, la Microsoft di Bill Gates, ne acquista i diritti per rivendere il DOS ad acquista i diritti per rivendere il DOS ad un cliente importante.un cliente importante.

Il cliente è l’IBM, che nel 1981 lancerà il Il cliente è l’IBM, che nel 1981 lancerà il primo PC, dando il via alla rivoluzione primo PC, dando il via alla rivoluzione dei personal computer.dei personal computer.

Page 37: Sistema Operativo

Win e MacWin e Mac1984, lancio dell’Apple Macintosh, e del 1984, lancio dell’Apple Macintosh, e del suo sistema operativo a interfaccia suo sistema operativo a interfaccia grafica, il System 1.0 grafica, il System 1.0

http://it.wikipedia.org/wiki/Storia_del_Mac_OS#Pre-System_6

L’anno successivo, il 1985, la Microsoft L’anno successivo, il 1985, la Microsoft lancia la prima versione di Windows.lancia la prima versione di Windows.

http://it.wikipedia.org/wiki/Windows#Storia_di_Microsoft_Windows

Page 38: Sistema Operativo

LinuxLinuxNel 1991 uno studente finlandese, Linus Nel 1991 uno studente finlandese, Linus Torvalds, sviluppò il kernel per un Torvalds, sviluppò il kernel per un sistema operativo basato su una variante sistema operativo basato su una variante di UNIX.di UNIX.

Lo distribuì in rete secondo la GNULo distribuì in rete secondo la GNUGeneral Public License, una licenza che General Public License, una licenza che ne consentiva l’uso, la redistribuzione e ne consentiva l’uso, la redistribuzione e la modifica (a certe condizioni).la modifica (a certe condizioni).

Iniziò a ricevere da subito contributi da Iniziò a ricevere da subito contributi da altri sviluppatori.altri sviluppatori.

Page 39: Sistema Operativo

Linux e software Linux e software liberolibero

Nasceva così Linux, una Nasceva così Linux, una delle varianti UNIX oggi delle varianti UNIX oggi più diffuse. Il kernel di più diffuse. Il kernel di Linux è continuamente Linux è continuamente aggiornato, e aggiornato, e disponibile anche disponibile anche gratuitamente.gratuitamente.

Uno dei punti di forza Uno dei punti di forza di questo sistema è la di questo sistema è la comunità che lo comunità che lo supporta, e la filosofia supporta, e la filosofia su cui si basa, quella su cui si basa, quella del software libero.del software libero.

Page 40: Sistema Operativo

Elementi tipici di Elementi tipici di un SOun SO

Gli elementi chiave che caratterizzano un Gli elementi chiave che caratterizzano un SO sono tradizionalmente individuati nel SO sono tradizionalmente individuati nel modo in cui lo stesso gestisce e organizza modo in cui lo stesso gestisce e organizza i suoi costituenti principali:i suoi costituenti principali:

•• La gestione dei Processi;La gestione dei Processi;

•• La gestione della Memoria Principale;La gestione della Memoria Principale;

•• La gestione dei Dispositivi;La gestione dei Dispositivi;

•• La gestione delle Memorie di Massa;La gestione delle Memorie di Massa;

Page 41: Sistema Operativo

Kernel (nucleo) di Kernel (nucleo) di un SOun SO

Page 42: Sistema Operativo

KernelKernelKernel monoliticiKernel monolitici, che implementano , che implementano direttamente una completa astrazione direttamente una completa astrazione dell'hardware sottostante.dell'hardware sottostante.

Unix, LinuxUnix, Linux

• MicrokernelMicrokernel, che forniscono un insieme , che forniscono un insieme ristretto e semplice di astrazione dell'hardware ristretto e semplice di astrazione dell'hardware e usano software (chiamati device driver o e usano software (chiamati device driver o server) per fornire maggiori funzionalità.server) per fornire maggiori funzionalità.

• Kernel ibridi Kernel ibridi (o microkernel modificati), che si (o microkernel modificati), che si differenziano dai microkernel puri per differenziano dai microkernel puri per l'implementazione di alcune funzioni aggiuntive l'implementazione di alcune funzioni aggiuntive al fine di incrementare le prestazioni.al fine di incrementare le prestazioni.– Windows, Mac OS XWindows, Mac OS X

Page 43: Sistema Operativo

Gestione dei Gestione dei processiprocessi

• Nei sistemi multiprogrammati più programmi Nei sistemi multiprogrammati più programmi in esecuzione contemporaneamente (processi) in esecuzione contemporaneamente (processi) consentono all’utente di utilizzare più consentono all’utente di utilizzare più applicazioni nello stesso tempo e alla applicazioni nello stesso tempo e alla macchina di distribuire il carico macchina di distribuire il carico computazionale con estrema efficacia, per computazionale con estrema efficacia, per esempio sulle operazioni di Input/Output verso esempio sulle operazioni di Input/Output verso i dispositivi.i dispositivi.

• Il SO alterna sulla CPU differenti processi Il SO alterna sulla CPU differenti processi (schedulazione)per tempi molto ridotti (time-(schedulazione)per tempi molto ridotti (time-sharing), rendendo l’esecuzione dei programmi sharing), rendendo l’esecuzione dei programmi contemporanea agli occhi degli utenti. contemporanea agli occhi degli utenti.

Page 44: Sistema Operativo

Gestione della Gestione della memoriamemoria

• La multiprogrammazione impone che la La multiprogrammazione impone che la memoria sia sempre maggiore, in modo da memoria sia sempre maggiore, in modo da contenere sempre più processi in time-sharing.contenere sempre più processi in time-sharing.

• Per risolvere il problema della dimensione della Per risolvere il problema della dimensione della memoria i SO simulano la memoria mancante memoria i SO simulano la memoria mancante sulla memoria di massa (es. disco fisso), sulla memoria di massa (es. disco fisso), cosicché l’ampiezza della memoria è sempre cosicché l’ampiezza della memoria è sempre sufficiente. sufficiente.

• L’insieme delle tecniche che consentono di L’insieme delle tecniche che consentono di simulare la memoria su disco viene detta simulare la memoria su disco viene detta memoria virtuale.memoria virtuale.

Page 45: Sistema Operativo

Gestione dei Gestione dei dispositividispositivi

• La gestione dei dispositivi o dell’Input/Output La gestione dei dispositivi o dell’Input/Output è, da sempre, la parte più critica di ogni è, da sempre, la parte più critica di ogni sistema operativo.sistema operativo.

• La ragione riguarda la necessità commerciale La ragione riguarda la necessità commerciale di avere più produttori di periferiche (terze di avere più produttori di periferiche (terze parti) spesso diversi dai produttori di parti) spesso diversi dai produttori di calcolatori e dai produttori del SO. calcolatori e dai produttori del SO.

• Ciò significa che parti consistenti del SO Ciò significa che parti consistenti del SO devono essere integrate con programmi devono essere integrate con programmi scritti da terze parti (driver).scritti da terze parti (driver).

Page 46: Sistema Operativo

Gestione della Gestione della memoria di massamemoria di massa• La gestione delle memorie di massa viene ottenuta da La gestione delle memorie di massa viene ottenuta da

un SO adottando una o più strutture dati denominate un SO adottando una o più strutture dati denominate File System.File System.

• I dati residenti fisicamente sulle memorie secondarie I dati residenti fisicamente sulle memorie secondarie sono organizzati in settori, a loro volta componenti di sono organizzati in settori, a loro volta componenti di elementi logici denominati files.elementi logici denominati files.

• Una seconda astrazione serve per organizzare i files tra Una seconda astrazione serve per organizzare i files tra di loro, tramite directory per costituire un cosiddetto di loro, tramite directory per costituire un cosiddetto file system gerarchico organizzato ad albero. file system gerarchico organizzato ad albero.

• Tipici elementi di una organizzazione ad albero è la Tipici elementi di una organizzazione ad albero è la presenza di una root directory (directory radice), di presenza di una root directory (directory radice), di nomi completi di files (pathname, percorso più nome nomi completi di files (pathname, percorso più nome logico) e di directory corrente.logico) e di directory corrente.

Page 47: Sistema Operativo

ShellShell• La Shell consente all'utente di accedere inizialmente La Shell consente all'utente di accedere inizialmente

al sistema tramite un meccanismo di autenticazione al sistema tramite un meccanismo di autenticazione (login), o di interrompere l’attività del sistema (login), o di interrompere l’attività del sistema impostandone la terminazione (logoff e/o impostandone la terminazione (logoff e/o shutdown).shutdown).

• La shell definisce l'interfaccia principale tra l’utente La shell definisce l'interfaccia principale tra l’utente e il sistema operativo.e il sistema operativo.

• L'interfaccia a caratteri realizzata da quasi tutti i SO L'interfaccia a caratteri realizzata da quasi tutti i SO è detto prompt della shell, ed essa possiede come è detto prompt della shell, ed essa possiede come dispositivi standard di input la console (tastiera) e dispositivi standard di input la console (tastiera) e standard di output lo schermo (monitor).standard di output lo schermo (monitor).

• L’ “interprete dei comandi” è un processo del SO L’ “interprete dei comandi” è un processo del SO che interpreta le chiamate al sistema da parte che interpreta le chiamate al sistema da parte dell’utentedell’utente

Page 48: Sistema Operativo

Strumenti di Strumenti di calcolocalcolo

AppendiceAppendice

Page 49: Sistema Operativo

SupercalcolatoriSupercalcolatori• Un esempio Bull Tera-10Un esempio Bull Tera-10

• Costo 50 milioni di euro Costo 50 milioni di euro

• Formato da 270 scaffalature per circuiti alte ciascuna 2.5 metriFormato da 270 scaffalature per circuiti alte ciascuna 2.5 metri

• 540 unità di calcolo dotate di 16 processori ciascuna540 unità di calcolo dotate di 16 processori ciascuna

• 800 metri quadri di superficie800 metri quadri di superficie

• Necessita di 2 megawatt di elettricità per l'alimentazione e di Necessita di 2 megawatt di elettricità per l'alimentazione e di altrettanti per il raffreddamento. altrettanti per il raffreddamento.

• Può compiere diecimila miliardi di operazioni al secondo (10 Può compiere diecimila miliardi di operazioni al secondo (10 teraflop)teraflop)

• Memoria 30 terabyteMemoria 30 terabyte

• Nel 2017andrà in pensione e verrà sostituito da Tera-100, dieci volte Nel 2017andrà in pensione e verrà sostituito da Tera-100, dieci volte più potente. più potente.

Page 50: Sistema Operativo

MainframeMainframe• Decine di Mips (milioni Decine di Mips (milioni

di istruzioni per di istruzioni per secondo)secondo)

• Memoria di centinaia di Memoria di centinaia di milioni di bytemilioni di byte

• Costo di miliardi di lireCosto di miliardi di lire

• Necessità di locali Necessità di locali particolari e di particolari e di operatorioperatori

• Possibilità di Possibilità di collegamento con un collegamento con un centinaio di terminalicentinaio di terminali

Page 51: Sistema Operativo

MinicomputerMinicomputer• 1965 Digital PDP 8 1965 Digital PDP 8

'economico''economico'

• Decine di terminaliDecine di terminali

• Decine di milioni di Decine di milioni di byte di memoriabyte di memoria

• Costo di centinaia di Costo di centinaia di milioni di liremilioni di lire

• Non necessario un Non necessario un operatore ed un operatore ed un locale specificolocale specifico

Page 52: Sistema Operativo

MinicomputerMinicomputer• Workstation Workstation

(postazione di lavoro)(postazione di lavoro)

• Si intende un Si intende un elaboratore con un elaboratore con un solo posto di lavoro solo posto di lavoro con potenza con potenza superiore a quella di superiore a quella di un normale Personal un normale Personal ComputerComputer

• Applicazioni Applicazioni industriali, tecniche, industriali, tecniche, grafichegrafiche

Page 53: Sistema Operativo

Personal Personal computercomputer

• Avvento del Avvento del microprocessoremicroprocessore

• Singolo posto di lavoroSingolo posto di lavoro

• Decine di migliaia (poi Decine di migliaia (poi milioni) di byte di milioni) di byte di memoriamemoria

• Centinaia di migliaia Centinaia di migliaia (poi milioni) di (poi milioni) di operazioni per secondooperazioni per secondo

• Home Computer, Home Computer, Personal Computer, Personal Computer, Desktop, Laptop, Palm Desktop, Laptop, Palm ……

Page 54: Sistema Operativo

Tipologie di Tipologie di personal personal computercomputer• DesktopDesktop

– Computer da scrivania. Personal computer non Computer da scrivania. Personal computer non portatili. portatili.

– Il desktop è caratterizzato da una notevole Il desktop è caratterizzato da una notevole espandibilità e modularità (si possono aggiungere espandibilità e modularità (si possono aggiungere altri componenti) e da prestazioni quasi sempre altri componenti) e da prestazioni quasi sempre superiori rispetto al computer portatile.superiori rispetto al computer portatile.

• Laptop (computer portatile, notebook)Laptop (computer portatile, notebook)– Di solito il portatile è alimentato da una batteria Di solito il portatile è alimentato da una batteria

ricaricabile che ne permette l'utilizzo dove non è ricaricabile che ne permette l'utilizzo dove non è possibile usare altre fonti elettriche.possibile usare altre fonti elettriche.

• Palmtop (Palm)Palmtop (Palm)– Un computer palmare spesso indicato in lingua Un computer palmare spesso indicato in lingua

inglese con l'acronimo PDA (Personal Digital inglese con l'acronimo PDA (Personal Digital Assistant)Assistant)

Page 55: Sistema Operativo

SintesiSintesi