01-Sistema Operativo new.pptx [Sola lettura] Opera… · 18/09/2011 3 Un’esempio’di’Swdi...
Transcript of 01-Sistema Operativo new.pptx [Sola lettura] Opera… · 18/09/2011 3 Un’esempio’di’Swdi...
18/09/2011
1
Sistema Opera2vo
A. Ferrari
Definizione (da Wikipedia)
• Il sistema opera2vo, abbreviato in SO (in inglese OS, "opera2ng system") è un insieme di componen2 soIware, che garan2sce l'opera2vità di base di un calcolatore, coordinando e gestendo – le risorse hardware, – le periferiche, – le risorse soIware (processi) – e facendo da interfaccia con l'utente
• È la "base" per i soIware applica2vi , che dovranno essere progePa2 e realizza2 in modo da essere riconosciu2 e supporta2 da quel par2colare sistema opera2vo. – Es. su un computer con CPU intel facciamo “girare” SW per Windows o
per Linux o per MAC OS X (a seconda del SO installato) • Assieme al processore, con cui è strePamente legato, cos2tuisce la
piaPaforma del sistema di elaborazione.
Applica2on Program Interface (API)
• Il Sistema Opera2vo espone una API che tradizionalmente assume la forma di una libreria di funzioni speciali (system-‐call, chiamate di sistema) – L’API di Windows è nota come WINAPI – L’interfaccia di riferimento per il mondo Linux è denominata POSIX
• Mol2 programmatori non u2lizzano direPamente le API, i linguaggi di programmazione “nascondono” l’interazione col SO. – Es. printf del linguaggio C o cout del C++ vengono trasformate dal compilatore in chiamate alle API del SO
Come sono scria i SO
• Data la strePa dipendenza dall’HW alcune par2 del SO sono in linguaggio macchina.
• Tradizionalmente la maggior parte del SW che compone un SO è scriPa in C. – Es. Windows, Linux
“stra2” firmware • Il firmware è un programma integrato direPamente in un componente
elePronico nel senso più vasto del termine (integra2, schede eleProniche, periferiche).
• Lo scopo del programma è quello di avviare il componente stesso e consen2rgli di interagire con altri componen2 tramite l'implementazione di protocolli di comunicazione o interfacce di programmazione.
• Il termine deriva dall'unione di "firm" (azienda) e "ware" (componente), indica che il programma non è immediatamente modificabile dall'utente finale, ovvero risiede stabilmente nell'hardware integrato in esso, e che si traPa del punto di incontro fra componen2 logiche e fisiche, ossia fra hardware e soIware.
• Il firmware forse più conosciuto è quello della scheda madre, chiamato comunemente BIOS e responsabile del correPo avvio del computer.
18/09/2011
2
Boot
• Il sistema opera2vo viene caricato nella memoria RAM all’accensione della macchina (programma di boot) e rimane aavo fino allo spegnimento.
CaraPeris2che
• Il sistema opera2vo: – è un insieme di moduli soIware – controlla le risorse hardware del sistema – mePe a disposizione dell’utente una macchina virtuale, in grado di eseguire comandi da2 dall’utente, u2lizzando la macchina “reale”.
– la macchina virtuale nasconde tua i dePagli hardware che sarebbero troppo complica2 da ges2re per la maggior parte degli uten2
StruPura a “cipolla” Gli stra2 della “cipolla”
• Ogni strato (livello) cos2tuisce una macchina virtuale: – usa le funzionalità di quello soPostante – fornisce servizi al livello che segue nella gerarchia – ges2sce delle risorse mediante poli2che invisibili ai livelli superiori (struPura modulare del Sistema Opera2vo)
Gerarchia di Macchine virtuali • Chi scrive un sistema opera2vo vede il sistema come un
insieme di risorse fisiche da comandare direPamente • Chi progePa un ambiente di programmazione vede la
macchina come l’insieme delle funzioni messe a disposizione dal sistema opera2vo
• Il programmatore usa un linguaggio ad alto livello per realizzare un programma applica2vo e vede l’elaboratore come l’insieme delle funzionalità messe a disposizione dall’ambiente di programmazione
• per l’u2lizzatore di un programma applica2vo il sistema appare virtualmente come l’insieme dei comandi che può fornire alla macchina per soddisfare le sue esigenze
SW di virtualizzazione
• Da non confondere con il concePo esposto in precedenza di “macchine virtuali” sono i SW di virtualizzazione (chiama2 anche ques2 macchine virtuali”)
• Sono applicazioni installate in un sistema opera2vo host in grado di “eseguire” altri sistemi opera2vi guest.
18/09/2011
3
Un esempio di Sw di virtualizzazione: VirtualBox
• VirtualBox è un soIware di virtualizzazione commerciale proprietario (con una versione ridoPa distribuita secondo i termini della GNU General Public License) per architePura x86 che supporta Windows, GNU/Linux e Mac OS X come sistemi opera2vi host, ed è in grado di eseguire Windows, GNU/Linux, OS/2 Warp, OpenBSD e FreeBSD come sistemi opera2vi guest.
• Il 12 febbraio 2008 Sun Microsystems ha acquistato Innotek GmbH, l'azienda tedesca sviluppatrice di VirtualBox.
• Il 27 gennaio 2010 è stata perfezionata l'acquisizione di Sun da parte di Oracle Corpora2on.
Linux (host) Windows (guest)
Classificazione dei SO
Sistem
i Ope
ra2vi
Proprietari
Aper2
Open Source
Sistemi proprietari • Ogni azienda produPrice di piaPaforme hardware o produPrice di programmi applica2vi comunque interessate a distribuire il proprio prodoPo ha creato spesso un sistema opera2vo proprio, spesso non trasportabile su altre macchine.
• TuPo ciò per tutelare e garan2re la vendita delle proprie piaPaforme hardware o soIware, ma di faPo impedendo sia la standardizzazione sia la diffusione di modelli opera2vi condivisibili.
• I SO per mainframe di solito sono sistemi proprietari
Sistemi aper2
• La casa produPrice del SO distribuisce documentazione (API Applica2ons Program Interface) aPa a favorire la scriPura di applica2vi sw da parte di terze par2 (la prima parte è il costruPore dell’hardware, la seconda parte è il costruPore del sistema opera2vo) e, di faPo, base essenziale per uno sviluppo orizzontale del mercato del sw.
• MS-‐DOS, Windows, Mac OSX, iOS …
Sistemi Open Source
• Sistemi opera2vi per cui la distribuzione commerciale è svincolata da cos2 e il cui codice sorgente è disponibile ai programmatori.
• Linux, FreeDOS …
18/09/2011
4
Uten2 e livelli
• L’utente finale del sistema interagisce solo con il livello più esterno della gerarchia
• E’ ignaro di tua i dePagli delle operazioni svolte dai livelli inferiori
Interprete dei comandi
• Le richieste dell'utente al Sistema Opera2vo sono faPe – digitando dei comandi nelle interfacce a caraPere (a riga di comando) (CLI, Command Line Interface)
– o selezionando oggea con il mouse nelle interfacce grafiche (Graphic User Interface)
• Le richieste sono intercePate dall'interprete dei comandi (shell), il quale aava i moduli programma che agiscono nei componen2 del nucleo (kernel).
• Ques2 aavano i disposi2vi hardware quali il processore, la memoria, i controller di I/O, ecc., che svolgono la richiesta dell'utente.
Command Line Interface (shell testuali) GUI, Graphic User Interface
WIMP
• La maggior parte delle interfacce grafiche sono di 2po WIMP (Windows, Icons, Menus, Poin2ng device)
• La metafora più u2lizzata nei personal computer, oggi, è quella della “scrivania” (in inglese, desktop).
• Dalla sua introduzione ad oggi sono state introdoPe interfacce alterna2ve, allo scopo di superarne le limitazioni, ma ancora senza successo.
Xerox Star • La worksta2on dello Xerox Star è
stata il primo computer commercializzato della storia ad essere dotato di interfaccia grafica di 2po WIMP.
• Lo Xerox Star, è un sistema informa2co della Xerox Corpora2on commercializzato a par2re dal 27 aprile 1981 e cos2tuito da una serie di worksta2on collegate fra loro tramite LAN.
• Lo Xerox Star per la prima volta proponeva, in alterna2va alla mul2utenza del minicomputer una serie di computer monouten2 collega2 tramite LAN.
18/09/2011
5
MicrosoI BOB • hPp://www.youtube.com/watch?v=ZegWedG-‐jk4 • MicrosoI Bob era un prodoPo di MicrosoI, rilasciato nel marzo
1995, progePato per diventare un'interfaccia alterna2va al desktop di MicrosoI Windows 3.1 e 95, in sos2tuzione del Program Manager e dell'Explorer.
• Il soIware si basava sulla rappresentazione di un ambiente casalingo, che doveva essere più semplice da comprendere per l'utente.
• La schermata iniziale ha una porta per effePuare il login, un saloPo come ambiente principale e un assistente (il cane Rover)
• Le varie applicazioni sono rappresentate tramite delle metafore: il calendario, la rubrica degli indirizzi ...
• Non ebbe successo nelle vendite, ed infaa è generalmente considerato il prodoPo meno riuscito di MicrosoI.
MicrosoI BOB (1995)
X Windows • X Window System è un gestore grafico molto diffuso, standard de facto
per mol2 sistemi Unix-‐like. • X fornisce l'ambiente e i componen2 di base per le interfacce grafiche, il
disegno e lo spostamento delle finestre sullo schermo e l'interazione con periferiche d'input quali il mouse e la tas2era. X non ges2sce invece l'interfaccia grafica utente o lo s2le grafico delle applicazioni che vengono ges2te dall'ambiente desktop scelto dall'utente e in uso sul computer.
• Un'altra caraPeris2ca molto importante è la trasparenza di rete: la macchina dove girano i programmi (client) non deve essere necessariamente la macchina locale (display server). Questo permePe anche di visualizzare sullo stesso display applicazioni che vengono eseguite su diversi host, oppure che su un host vengano eseguite applicazioni la cui interfaccia grafica finisce su diversi display.
• X è stato creato dal MIT nel 1984.
GNOME • GNOME (GNU Network Object Model Environment) è un desktop environment creato nell'agosto del 1997, con l'obieavo di fornire un ambiente di sviluppo e desktop libero per il sistema opera2vo GNU/Linux. Grazie a questo e ai risulta2 raggiun2, è presto stato riconosciuto come il desktop environment ufficiale del progePo GNU.
• APualmente GNOME è l'ambiente grafico predefinito di molte distribuzioni Linux, tra le quali Debian e Fedora.
KDE • KDE (K Desktop Environment) è un ambiente desktop
grafico per postazioni di lavoro Unix. • È basato sulle librerie Qt di Qt SoIware e funziona sulla
maggior parte dei sistemi opera2vi di 2po Unix, come GNU/Linux, distribuzioni BSD ed esistono anche delle versioni funzionan2 su MicrosoI Windows e su Mac OS X che sfruPano il layer di portabilità del toolkit Qt nell'aPuale versione 4. L'ul2ma versione disponibile è la 4.9 (rilasciata il 1 agosto 2012) ed è stato tradoPo in più di sessanta lingue.
• KDE viene concepito come un Desktop Environment orientato prevalentemente agli uten2 medio-‐avanza2, per via della vasta configurabilità dell'ambiente e dei suoi programmi.
Funzioni • Il gestore dei processi (nucleo) ges2sce l’esecuzione dei programmi da parte dell’unità di elaborazione
• Il gestore della memoria alloca la memoria e la par2ziona tra i vari programmi
• I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche
• Il file system è responsabile della ges2one dei file in memoria di massa
• L’interprete comandi consente all’utente di aavare i programmi
18/09/2011
6
Monoutente o mul2utente
• Il Sistema Opera2vo deve garan2re che ogni utente avverta la macchina come dedicata
SO monopragramma2 o mul2programma2
• Monoprogramma8: in grado di mandare in esecuzione un solo processo alla volta su un sistema in cui un solo utente può agire. – Sono oramai scomparsi, pur avendo rappresentato una rivoluzione sostanziale per l’epoca, come MsDos e MaC OS.
• Mul8programma8: possono ges2re più processi contemporaneamente, per i quali alternano un preciso quanto di tempo di esecuzione di CPU, mantenendo traccia di differen2 sessioni per ogni utente, potendo disporre di memoria centrale virtuale e quindi teoricamente infinita.
I primi Sistemi Opera2vi
• I primi sistemi opera2vi sono sta2 progePa2 negli anni ’50 per i calcolatori allora disponibili.
• Consistevano in poche cen2naia di istruzioni per il caricamento del programma in memoria centrale e per la produzione, su un disposi2vo di output, dei risulta2 dell’elaborazione.
• L’interfaccia era quella comune allora – interruPori e spie luminose.
• I comandi venivano impar22 in codice binario.
Pannello di controllo
Nascita di UNIX
• Anni ’60, alla AT&T nasce UNIX, capos2pite di una numerosa e varia famiglia di sistemi opera2vi.
• Anni ’70, iniziano a diffondersi i primi micro computer.
• Anni ‘80, a SeaPle venne sviluppato il sistema opera2vo QDOS (Quick and Dirty Opera2ng System).
DOS
• Dopo pochi mesi, un’altra diPa di SeaPle, la MicrosoI di Bill Gates, ne acquista i diria per rivendere il DOS ad un cliente importante.
• Il cliente è l’IBM, che nel 1981 lancerà il primo PC, dando il via alla rivoluzione dei personal computer.
18/09/2011
7
Win e Mac
• 1984, lancio dell’Apple Macintosh, e del suo sistema opera2vo a interfaccia grafica, il System 1.0
• hPp://it.wikipedia.org/wiki/Storia_del_Mac_OS#Pre-‐System_6
• L’anno successivo, il 1985, la MicrosoI lancia la prima versione di Windows.
• hPp://it.wikipedia.org/wiki/Windows#Storia_di_MicrosoI_Windows
Linux
• Nel 1991 uno studente finlandese, Linus Torvalds, sviluppò il kernel per un sistema opera2vo basato su una variante di UNIX.
• Lo distribuì in rete secondo la GNU General Public License, una licenza che ne consen2va l’uso, la redistribuzione e la modifica (a certe condizioni).
• Iniziò a ricevere da subito contribu2 da altri sviluppatori.
Linux e soIware libero • Nasceva così Linux, una
delle varian2 UNIX oggi più diffuse. Il kernel di Linux è con2nuamente aggiornato, e disponibile anche gratuitamente.
• Uno dei pun2 di forza di questo sistema è la comunità che lo supporta, e la filosofia su cui si basa, quella del soIware libero.
Elemen2 2pici di un SO
• Gli elemen2 chiave che caraPerizzano un SO sono tradizionalmente individua2 nel modo in cui lo stesso ges2sce e organizza i suoi cos2tuen2 principali:
• • La ges2one dei Processi; • • La ges2one della Memoria Principale; • • La ges2one dei Disposi2vi; • • La ges2one delle Memorie di Massa;
Kernel (nucleo) di un SO
Ges2one dei processi
Ges2one della memoria principale
Ges2one dei disposi2vi
Ges2one della memoria di massa
Kernel • Kernel monoli8ci, che implementano direPamente una completa astrazione dell'hardware soPostante. – Unix, Linux
• Microkernel, che forniscono un insieme ristrePo e semplice di astrazione dell'hardware e usano soIware (chiama2 device driver o server) per fornire maggiori funzionalità.
• Kernel ibridi (o microkernel modifica2), che si differenziano dai microkernel puri per l'implementazione di alcune funzioni aggiun2ve al fine di incrementare le prestazioni. – Windows, Mac OS X
18/09/2011
8
Ges2one dei processi • Nei sistemi mul2programma2 più programmi in esecuzione contemporaneamente (processi) consentono all’utente di u2lizzare più applicazioni nello stesso tempo e alla macchina di distribuire il carico computazionale con estrema efficacia, per esempio sulle operazioni di Input/Output verso i disposi2vi.
• Il SO alterna sulla CPU differen2 processi (schedulazione)per tempi molto ridoa (2me-‐sharing), rendendo l’esecuzione dei programmi contemporanea agli occhi degli uten2.
Ges2one della memoria
• La mul2programmazione impone che la memoria sia sempre maggiore, in modo da contenere sempre più processi in 2me-‐sharing.
• Per risolvere il problema della dimensione della memoria i SO simulano la memoria mancante sulla memoria di massa (es. disco fisso), cosicché l’ampiezza della memoria è sempre sufficiente.
• L’insieme delle tecniche che consentono di simulare la memoria su disco viene dePa memoria virtuale.
Ges2one dei disposi2vi
• La ges2one dei disposi2vi o dell’Input/Output è, da sempre, la parte più cri2ca di ogni sistema opera2vo.
• La ragione riguarda la necessità commerciale di avere più produPori di periferiche (terze par2) spesso diversi dai produPori di calcolatori e dai produPori del SO.
• Ciò significa che par2 consisten2 del SO devono essere integrate con programmi scria da terze par2 (driver).
Ges2one della memoria di massa • La ges2one delle memorie di massa viene oPenuta da un
SO adoPando una o più struPure da2 denominate File System.
• I da2 residen2 fisicamente sulle memorie secondarie sono organizza2 in sePori, a loro volta componen2 di elemen2 logici denomina2 files.
• Una seconda astrazione serve per organizzare i files tra di loro, tramite directory per cos2tuire un cosiddePo file system gerarchico organizzato ad albero.
• Tipici elemen2 di una organizzazione ad albero è la presenza di una root directory (directory radice), di nomi comple2 di files (pathname, percorso più nome logico) e di directory corrente.
Shell • La Shell consente all'utente di accedere inizialmente al sistema tramite un meccanismo di auten2cazione (login), o di interrompere l’aavità del sistema impostandone la terminazione (logoff e/o shutdown).
• La shell definisce l'interfaccia principale tra l’utente e il sistema opera2vo.
• L'interfaccia a caraPeri realizzata da quasi tua i SO è dePo prompt della shell, ed essa possiede come disposi2vi standard di input la console (tas2era) e standard di output lo schermo (monitor).
• L’ “interprete dei comandi” è un processo del SO che interpreta le chiamate al sistema da parte dell’utente
Strumen2 di calcolo
Appendice
18/09/2011
9
Supercalcolatori • Un esempio Bull Tera-‐10 • Costo 50 milioni di euro • Formato da 270 scaffalature per circui2 alte ciascuna 2.5 metri • 540 unità di calcolo dotate di 16 processori ciascuna • 800 metri quadri di superficie • Necessita di 2 megawaP di elePricità per l'alimentazione e di
altrePan2 per il raffreddamento. • Può compiere diecimila miliardi di operazioni al secondo (10
teraflop) • Memoria 30 terabyte • Nel 2017andrà in pensione e verrà sos2tuito da Tera-‐100, dieci
volte più potente.
Mainframe
• Decine di Mips (milioni di istruzioni per secondo)
• Memoria di cen2naia di milioni di byte
• Costo di miliardi di lire • Necessità di locali
par2colari e di operatori • Possibilità di
collegamento con un cen2naio di terminali
Minicomputer
• 1965 Digital PDP 8 'economico'
• Decine di terminali • Decine di milioni di byte di memoria
• Costo di cen2naia di milioni di lire
• Non necessario un operatore ed un locale specifico
Minicomputer
• Worksta2on (postazione di lavoro)
• Si intende un elaboratore con un solo posto di lavoro con potenza superiore a quella di un normale Personal Computer
• Applicazioni industriali, tecniche, grafiche
Personal computer • Avvento del
microprocessore • Singolo posto di lavoro • Decine di migliaia (poi
milioni) di byte di memoria
• Cen2naia di migliaia (poi milioni) di operazioni per secondo
• Home Computer, Personal Computer, Desktop, Laptop, Palm …
Tipologie di personal computer • Desktop – Computer da scrivania. Personal computer non porta2li. – Il desktop è caraPerizzato da una notevole espandibilità e modularità (si possono aggiungere altri componen2) e da prestazioni quasi sempre superiori rispePo al computer porta2le.
• Laptop (computer porta2le, notebook) – Di solito il porta2le è alimentato da una baPeria ricaricabile che ne permePe l'u2lizzo dove non è possibile usare altre fon2 elePriche.
• Palmtop (Palm) – Un computer palmare spesso indicato in lingua inglese con l'acronimo PDA (Personal Digital Assistant)
18/09/2011
10
Sintesi