Sistemi Operativi e Reti Capitolo 2 Gianluca Amato Dipartimento di Economia Università di Chieti-Pescara Anno Accademico 2015-2016 Revisione del 17 settembre 2015 basate sulle slide ufficiali del libro The Architecture of Computer Hardware, Systems Software & Networking: an Information Technology Approach 5th Edition, Irv Englander John Wiley and Sons ©2013 Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 1 / 29 Sistemi Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 2 / 29 Sistema La parola sistema è usata ovunque e non solo in informatica: sistema solare sistema idraulico sistema di controllo dell’inventario Ma cos’è un sistema? Definizione Un sistema è una collezione di componenti collegati assieme e organizzati in maniera tale da essere riconoscibile come una singola unità. Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 3 / 29 Sistema La parola sistema è usata ovunque e non solo in informatica: sistema solare sistema idraulico sistema di controllo dell’inventario Ma cos’è un sistema? Definizione Un sistema è una collezione di componenti collegati assieme e organizzati in maniera tale da essere riconoscibile come una singola unità. Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 3 / 29 Sistema idraulico Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 4 / 29 Sistema solare Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 5 / 29 Sistema di rete Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 6 / 29 Sistema di controllo dell’inventario Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 7 / 29 Sistema, interfaccia e ambiente Quando l’interfaccia con l’ambiente è ben definita, è possibile scambiare un sistema con un altro che implementa la stessa interfaccia. Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 8 / 29 Architettura di un sistema Definizione (Architettura di un sistema) L’insieme delle proprietà fondamentali di un sistema e di relazioni, collegamenti e vincoli che si instaurano tra i componenti del sistema o tra il sistema e il suo ambiente. Quando si studia l’architettura di un sistema si astrae da dettagli che non ci interessano per un ottenere un modello le slide viste prime sono solo modelli del sistema che rappresentano a seconda di quello che si vuole ottenere, si possono avere modelli molto diversi dello stesso sistema. Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 9 / 29 Architettura di un sistema Definizione (Architettura di un sistema) L’insieme delle proprietà fondamentali di un sistema e di relazioni, collegamenti e vincoli che si instaurano tra i componenti del sistema o tra il sistema e il suo ambiente. Quando si studia l’architettura di un sistema si astrae da dettagli che non ci interessano per un ottenere un modello le slide viste prime sono solo modelli del sistema che rappresentano a seconda di quello che si vuole ottenere, si possono avere modelli molto diversi dello stesso sistema. Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 9 / 29 Architettura di un sistema Esempio di modelli di una azienda Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 10 / 29 Sistemi e sotto-sistemi Sottosistemi I I Componenti riducibili ed irriducibili Componenti riducibili danno origine a sotto-sistemi Decomposizione I I Divisione di un sistema o sotto-sistema nei suoi componenti e collegamenti Gerarchica Raggruppare componenti in sistemi e decomporre i sistemi in componenti consente di studiare un sistema al livello di dettaglio desiderato. I I Se studiamo la Via Lattea, il sistema solare si può considerare com un unico sistema irriducibile Se studiamo l’effetto delle maree, il sistema Terra dovrà essere decomposto nei suoi componenti Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 11 / 29 Sistemi e sotto-sistemi Sottosistemi I I Componenti riducibili ed irriducibili Componenti riducibili danno origine a sotto-sistemi Decomposizione I I Divisione di un sistema o sotto-sistema nei suoi componenti e collegamenti Gerarchica Raggruppare componenti in sistemi e decomporre i sistemi in componenti consente di studiare un sistema al livello di dettaglio desiderato. I I Se studiamo la Via Lattea, il sistema solare si può considerare com un unico sistema irriducibile Se studiamo l’effetto delle maree, il sistema Terra dovrà essere decomposto nei suoi componenti Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 11 / 29 Sistemi e sotto-sistemi Sottosistemi I I Componenti riducibili ed irriducibili Componenti riducibili danno origine a sotto-sistemi Decomposizione I I Divisione di un sistema o sotto-sistema nei suoi componenti e collegamenti Gerarchica Raggruppare componenti in sistemi e decomporre i sistemi in componenti consente di studiare un sistema al livello di dettaglio desiderato. I I Se studiamo la Via Lattea, il sistema solare si può considerare com un unico sistema irriducibile Se studiamo l’effetto delle maree, il sistema Terra dovrà essere decomposto nei suoi componenti Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 11 / 29 Architetture dei sistemi di elaborazione Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 12 / 29 Sistemi distribuiti La maggior parte delle aziende hanno bisogno di sistemi di elaborazione che siano distribuiti. un ordine può essere generato da un venditore ovunque nel mondo l’ordine deve essere validato con la disponibilità di magazzino successivamente l’ordine deve raggiungere il reparto contabilità per il controllo del pagamento. . . . . . e inviato ai magazzini per la spedizione gli ordini per rimpinguare il magazzino sono generati automaticamente e inviati al reparto acquisti È questa è pur sempre azienda “convenzionale”, figurarsi una azienda di vendite on-line come Amazon. Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 13 / 29 Architettura applicativa La parte fondamentale nello sviluppo del sistema informatico di una azienda è la architettura applicativa: I I descrive il comportamento delle applicazioni si focalizza sulle interazioni tra le applicazioni e con gli utenti I singoli computer e le reti di comunicazioni sono considerati irriducibili in questo contesto Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui sistemi sottostanti (hardware, reti, etc. . . ) A questo punto si passerà a studare l’architettura di questi sistemi, tenendo conto dei vincoli posti dalla architettura applicativa (più altri, come requisiti di spazio o di efficienza energetica) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 14 / 29 Architettura applicativa La parte fondamentale nello sviluppo del sistema informatico di una azienda è la architettura applicativa: I I descrive il comportamento delle applicazioni si focalizza sulle interazioni tra le applicazioni e con gli utenti I singoli computer e le reti di comunicazioni sono considerati irriducibili in questo contesto Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui sistemi sottostanti (hardware, reti, etc. . . ) A questo punto si passerà a studare l’architettura di questi sistemi, tenendo conto dei vincoli posti dalla architettura applicativa (più altri, come requisiti di spazio o di efficienza energetica) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 14 / 29 Architettura applicativa La parte fondamentale nello sviluppo del sistema informatico di una azienda è la architettura applicativa: I I descrive il comportamento delle applicazioni si focalizza sulle interazioni tra le applicazioni e con gli utenti I singoli computer e le reti di comunicazioni sono considerati irriducibili in questo contesto Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui sistemi sottostanti (hardware, reti, etc. . . ) A questo punto si passerà a studare l’architettura di questi sistemi, tenendo conto dei vincoli posti dalla architettura applicativa (più altri, come requisiti di spazio o di efficienza energetica) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 14 / 29 Architettura applicativa La parte fondamentale nello sviluppo del sistema informatico di una azienda è la architettura applicativa: I I descrive il comportamento delle applicazioni si focalizza sulle interazioni tra le applicazioni e con gli utenti I singoli computer e le reti di comunicazioni sono considerati irriducibili in questo contesto Una volta stabilita l’architettura applicativa, essa porrà dei vincoli sui sistemi sottostanti (hardware, reti, etc. . . ) A questo punto si passerà a studare l’architettura di questi sistemi, tenendo conto dei vincoli posti dalla architettura applicativa (più altri, come requisiti di spazio o di efficienza energetica) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 14 / 29 Modelli standard per l’architettura applicativa Client-Server Computing I I I Two-tier Three-tier N-tier Web-Based Computing Cloud Computing Peer-to-Peer Computing Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 15 / 29 Client-Server Un programma sul computer client chiede servizi e risorse ad un programma complementare su un computer server: web, posta elettronica, etc. . . Vantaggi: Centralizzazione dei diritti di accesso Amministrazione semplificata Servizi facili da localizzare Più efficiente avere pochi computer estremamente potenti che molti mediamente potenti. Simula un comportamento umano Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 16 / 29 Client-Server Esempio In generale possiamo avere vari server e vari client Più servizi possono risiedere sullo stesso server (shared server o server condiviso) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 17 / 29 Client-Server Architetture multi-tier Due strati (Two tier) I I I Solo due computer coinvolti nella erogazione di un servizio Quello che abbiamo visto nelle slide precedenti Esempio: web con pagine già pronte Tre strati (Three tier) I I Tre computer coinvolti per l’erogazione di un servizio Esempio: web con pagine da creare dinamicamente con dati presi da un database Web server HTTP Request CGI* Request database server database HTTP response Gianluca Amato (UniCH) CGI response (HTML) Sistemi Operativi e Reti A.A. 2015/16 18 / 29 Client-Server Soluzioni progettuali Tradeoff tra lavoro fatto dal client e dal server I I Più lavoro sul server: server molto potente, client poco potente Più lavoro sul client: server meno potente, client più potente, infrastruttura di rete più veloce I vari server potrebbero non riuscire a parlare direttamente tra di loro I I Uso di software middleware Il middleware può migliorare anche le prestazioni e facilitare i cambiamenti architetturali Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 19 / 29 Client-Server Soluzioni progettuali Tradeoff tra lavoro fatto dal client e dal server I I Più lavoro sul server: server molto potente, client poco potente Più lavoro sul client: server meno potente, client più potente, infrastruttura di rete più veloce I vari server potrebbero non riuscire a parlare direttamente tra di loro I I Uso di software middleware Il middleware può migliorare anche le prestazioni e facilitare i cambiamenti architetturali Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 19 / 29 Web-based Variante della architettura client-server in cui le tecnologie web (HTTP, HTML, XML) sono usate per tutte le comunicazioni: I I comunicazioni tra utenti e applicazioni tramite browser comunicazioni tra applicazioni usando il formato XML e il protocollo HTTP Presenza web comunque necessaria per una azienda, tanto vale usarne le tecnologie per altri scopi Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno un utente è il browser Esempi: GMail, Facebook sono web based, Whataspp no! Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 20 / 29 Web-based Variante della architettura client-server in cui le tecnologie web (HTTP, HTML, XML) sono usate per tutte le comunicazioni: I I comunicazioni tra utenti e applicazioni tramite browser comunicazioni tra applicazioni usando il formato XML e il protocollo HTTP Presenza web comunque necessaria per una azienda, tanto vale usarne le tecnologie per altri scopi Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno un utente è il browser Esempi: GMail, Facebook sono web based, Whataspp no! Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 20 / 29 Web-based Variante della architettura client-server in cui le tecnologie web (HTTP, HTML, XML) sono usate per tutte le comunicazioni: I I comunicazioni tra utenti e applicazioni tramite browser comunicazioni tra applicazioni usando il formato XML e il protocollo HTTP Presenza web comunque necessaria per una azienda, tanto vale usarne le tecnologie per altri scopi Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno un utente è il browser Esempi: GMail, Facebook sono web based, Whataspp no! Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 20 / 29 Web-based Variante della architettura client-server in cui le tecnologie web (HTTP, HTML, XML) sono usate per tutte le comunicazioni: I I comunicazioni tra utenti e applicazioni tramite browser comunicazioni tra applicazioni usando il formato XML e il protocollo HTTP Presenza web comunque necessaria per una azienda, tanto vale usarne le tecnologie per altri scopi Facilita la distribuzione delle applicazioni: tutto ciò di cui ha bisogno un utente è il browser Esempi: GMail, Facebook sono web based, Whataspp no! Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 20 / 29 Cloud computing Definizione (Cloud computing) Metodologia di erogazione di risorse informatiche tramite hardware e software di terze parti, accessibili tramite Internet. Memorizzazione remota di dati (es. DropBox, Google Drive) SaaS (Software as a Service): fornisce applicazioni che girano su un server e con la quale l’utente interagisce direttamente (es. GMail, Facebook) PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di applicazioni (sistema operativo, linguaggio di programmazione, server web, server database) che gireranno su server remoti del provider PaaS (Google App Engine) IaaS (Infrastructure as a Service): fornisce computer (macchine fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il resto, a cominciare dall’installazione del sistema operativo (es. Google Compute Engine, Amazon EC2) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 21 / 29 Cloud computing Definizione (Cloud computing) Metodologia di erogazione di risorse informatiche tramite hardware e software di terze parti, accessibili tramite Internet. Memorizzazione remota di dati (es. DropBox, Google Drive) SaaS (Software as a Service): fornisce applicazioni che girano su un server e con la quale l’utente interagisce direttamente (es. GMail, Facebook) PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di applicazioni (sistema operativo, linguaggio di programmazione, server web, server database) che gireranno su server remoti del provider PaaS (Google App Engine) IaaS (Infrastructure as a Service): fornisce computer (macchine fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il resto, a cominciare dall’installazione del sistema operativo (es. Google Compute Engine, Amazon EC2) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 21 / 29 Cloud computing Definizione (Cloud computing) Metodologia di erogazione di risorse informatiche tramite hardware e software di terze parti, accessibili tramite Internet. Memorizzazione remota di dati (es. DropBox, Google Drive) SaaS (Software as a Service): fornisce applicazioni che girano su un server e con la quale l’utente interagisce direttamente (es. GMail, Facebook) PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di applicazioni (sistema operativo, linguaggio di programmazione, server web, server database) che gireranno su server remoti del provider PaaS (Google App Engine) IaaS (Infrastructure as a Service): fornisce computer (macchine fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il resto, a cominciare dall’installazione del sistema operativo (es. Google Compute Engine, Amazon EC2) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 21 / 29 Cloud computing Definizione (Cloud computing) Metodologia di erogazione di risorse informatiche tramite hardware e software di terze parti, accessibili tramite Internet. Memorizzazione remota di dati (es. DropBox, Google Drive) SaaS (Software as a Service): fornisce applicazioni che girano su un server e con la quale l’utente interagisce direttamente (es. GMail, Facebook) PaaS (Platform as a Service): fornisce un ambiente per lo sviluppo di applicazioni (sistema operativo, linguaggio di programmazione, server web, server database) che gireranno su server remoti del provider PaaS (Google App Engine) IaaS (Infrastructure as a Service): fornisce computer (macchine fisiche o più spesso virtuali), risorse di rete, etc. . . L’utente fa tutto il resto, a cominciare dall’installazione del sistema operativo (es. Google Compute Engine, Amazon EC2) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 21 / 29 Cloud computing Schema riassuntivo Software as a Service Platform as a Service Infrastructure as a Service Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 22 / 29 Cloud computing Vantaggi e rischi Vantaggi I I I I I Il centro dati di una azienda è semplificato e i costi ridotti Supporta nativamente meccanismi di collaborazione tra utenti Scalabile facilmente quando la necessità lo richiede, anche on-demand Downtime ridotto Investimenti più bassi per progetti a breve termine Rischi I I I Probemi critici di sicurezza: un’azienda non possiede più i suoi dati Potenziali problemi di prestazioni se rete non adeguata Rischi nel caso il provider del servizio chiuda o cambi le sue politiche Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 23 / 29 Peer to Peer computing I computer sulla rete sono trattati in maniera eguale Ogni computer può condividere le sue risorse con gli altri Svantaggi I I I I Difficile controllare in maniera centralizzata le risorse condivise Difficile localizzare le risorse cercate Possibili versioni multiple non sincronizzate degli stessi dati o dei software Difficile difendersi da accessi non autorizzati o da virus Utilizzi I I Condivisione di file o stampanti tra computer in gruppi ristretti Condivisione di file su Intenet (es. BitTorrent) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 24 / 29 Modelli ibridi Architettura client-server usata per localizzare i dati Architettura peer-to-peer per scambiarsi i dati Esempi: eMule, Skype Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 25 / 29 Architettura del sistema informatico di Google Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 26 / 29 Architettura del sistema informatico di Google Consente di effettuare ricerche veloci e potenti su Internet Trae profitto dalla pubblicità inviata all’utente con ogni ricerca Requisiti dell’architettura del sistema informatico di Google I I I Rispondere a milioni di utenti simultaneamente Alta affidabilità Elevata scalabilità (ovvero, possibilità di crescere quando aumenta il numero di richieste) Due processi distinti I I Risposte alla richieste degli utenti Scaricamento e indicizzazione di tutte le pagine web di Internet (web crawling) Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 27 / 29 Architettura applicativa di Google Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 28 / 29 Architettura harware di Google Gianluca Amato (UniCH) Sistemi Operativi e Reti A.A. 2015/16 29 / 29