Le infrastrutture software - Introduzione sistemi informatici PDF
Document Details
![ComfortableOnyx6589](https://quizgecko.com/images/avatars/avatar-16.webp)
Uploaded by ComfortableOnyx6589
Politecnico di Bari
Donatella Sciuto, Giacomo Buonanno e Luca Mari
Tags
Summary
Questo documento illustra le infrastrutture software, focalizzandosi sul sistema operativo e sulle sue funzionalità, la multiprogrammazione e le interazioni fra i processi. Il file è tratto da un libro di testo del 2014 ed. ai sistemi informatici, offrendo un’introduzione completa all'informatica.
Full Transcript
Le infrastrutture software Capitolo 7 Le infrastrutture SoftWare ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari C...
Le infrastrutture software Capitolo 7 Le infrastrutture SoftWare ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Sistema operativo Complesso di programmi necessario per gestire le risorse fisiche del sistema informatico Può includere programmi di utilità (calcolatrice, blocco note, etc.) Attraverso il sistema operativo l’utente vede il sistema informatico come un erogatore di servizi Ogni servizio corrisponde all’esecuzione di uno o più programmi specifici È un software di sistema o di base per la sua natura infrastrutturale ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità, disponibilità e sicurezza dei sistemi; privatezza dei dati; interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Il sistema operativo può essere inteso come uno strumento che virtualizza le caratteristiche dell’hardware sottostante, offrendo di esso la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 SO: funzionalità SO come GESTORE DELLE RISORSE controlla tutte le risorse del calcolatore e le gestisce in modo efficiente tiene traccia di chi utilizza la risorse accetta e soddisfa le richieste di utilizzo di una risorsa fa da mediatore fra le risorse che risultano in conflitto. SO come MACCHINA ESTESA costituisce la base su cui è possibile scrivere i programmi applicativi presenta all’utente una macchina estesa più facile da programmare dell’HW sottostante ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Funzioni di servizio del SO Controllo esecuzione di applicazioni Accesso ai dispositivi di ingresso/uscita Archiviazione di dati e programmi Controllo di accesso Contabilizzazione Gestione dei malfunzionamenti ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Vantaggi di un SO Sono legati alla possibilità di definire modalità standard di interfaccia con i dispositivi fisici, cosicché sia possibile: sviluppare programmi in modo semplice, modulare ed indipendente dallo specifico calcolatore su cui viene fatto funzionare il sistema operativo; aggiornare il software di base e l'hardware in modo trasparente ai programmi applicativi e all'utente, ossia senza che vengano influenzati dall'operazione. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Visioni fornite da un SO Dall'alto: il sistema operativo fornisce all'utente un'interfaccia conveniente. Dal basso: gestisce tutti le parti di un sistema complesso, allocando in modo ordinato le diverse risorse della macchina: processori, memorie, dischi, interfacce di rete, stampanti e altre periferiche. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Il software SW Applicativo SW Sistema Operativo HW HW SW= Sistema Operativo + SW applicativo Il S.O. come necessario intermediario ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Elementi di un SO Sistema di gestione del processore Sistema di gestione della memoria Sistema di gestione delle periferiche Sistema di gestione dei file (file system) Sistema di gestione degli utenti e dei relativi comandi (interprete comandi) Sistema di gestione della rete ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Elementi di un SO Utente Interprete comandi Sistema Operativo Gestione Gestione memoria periferiche Software applicativo File Nucleo (o kernel) [gestione processore] Interfaccia system con la rete Hardware ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 SO vs applicazioni Programmi applicativi Sistema operativo hanno accesso a un ha accesso a tutte le insieme ridotto di risorse; risorse; possono utilizzare solo un può utilizzare tutte le sottoinsieme delle istruzioni del processore istruzioni del processore (esecuzione in modalità (esecuzione in modalità utente); supervisore); non possono decidere stabilisce in che ordine e autonomamente quando e come le richieste che come avere accesso alle riceve devono essere risorse del sistema soddisfatte; (richiedono al sistema operativo l’esecuzione di … alcuni servizi); … ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Multiprogrammazione elaborazione attesa per operazioni di I/O Tempo Progr. 1 Progr. 2 Progr. 3 Tempo elaborazione attesa per operazioni di I/O ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Processo vs programma Programma: entità statica composta dal codice eseguibile dal processore Processo: entità dinamica che corrisponde al programma in esecuzione, composto da: codice (il programma) dati (quelli che servono per l’esecuzione del programma) stato (a che punto dell’esecuzione ci si trova, cosa c’è nei registri, …) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Organizzazione di un SO Gerarchia di “macchine virtuali” La visione della macchina virtuale a livello n è quella fornita dall’HW e dagli strati del SO fino all’ennesimo (incluso) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Organizzazione a “strati” Ogni macchina virtuale è un insieme di programmi che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone l’uso e mascherandone i limiti I meccanismi che garantiscono la correttezza logica sono separati dalle politiche di gestione (maggiore flessibilità) ogni “strato” risolve un problema specifico ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Nucleo Interagisce direttamente con l’hardware Si occupa dell’esecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche. Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi. Fornisce alle macchine virtuali di livello superiore la visione di un insieme di unità di elaborazione virtuali ciascuna dedicata a un processo presente in memoria Gestisce il contesto di esecuzione dei vari processi Attua una politica di alternanza (scheduling) nell’accesso alla CPU da parte dei processi in esecuzione. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Nucleo: macchina astratta Memoria di Video/tastiera massa (terminale) Memoria CPU di lavoro Interfaccia I/O Interfaccia I/O dati BUS indirizzi controllo CPU CPU CPU CPU CPU ……… virtuale virtuale virtuale virtuale virtuale processo processo processo processo processo ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestore della memoria Controlla la memoria centrale, al fine di risolvere le relative esigenze dei vari processi in modo trasparente ed efficiente. Consente ai programmi di lavorare in un proprio spazio di indirizzamento virtuale e di ignorare quindi le effettive zone di memoria fisica occupata. Si occupa di: proteggere programmi e relativi dati caricati nella memoria di lavoro; mascherare la collocazione fisica dei dati; permettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria associati ai vari programmi. Fornisce alle macchine di livello superiore la possibilità di lavorare come se esse avessero a disposizione una memoria dedicata, di capacità anche maggiore di quella fisicamente disponibile. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Gestore memoria: macchina Capitolo 7 astratta Memoria di Video/tastiera massa (terminale) Memoria di lavoro (fisica) Interfaccia I/O Interfaccia I/O dati BUS indirizzi controllo CPU CPU CPU CPU CPU ……… virtuale virtuale virtuale virtuale virtuale processo processo processo processo processo Memoria Memoria Memoria Memoria Memoria logica logica logica logica logica ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestore delle periferiche Fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte. Maschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita Ogni processo ha a disposizione delle periferiche virtuali ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Memoria Gestore periferiche Capitolo 7 logica processo I/O virtuale I/O: macchina astratta Memoria di Video/tastiera massa (terminale) CPU I/O virtuale virtuale Interfaccia I/O Interfaccia I/O dati BUS indirizzi controllo CPU I/O CPU I/O CPU I/O virtuale virtuale virtuale virtuale virtuale virtuale processo I/O processo I/O processo I/O virtuale virtuale virtuale Memoria Memoria Memoria logica logica logica ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Memoria Memoria logica logica File System: processo I/O virtuale processo I/O virtuale macchina Memoria di astratta massa CPU I/O CPU I/O virtuale virtuale virtuale virtuale Interfaccia I/O dati BUS indirizzi controllo root CPU I/O virtuale virtuale uno due tre … f3 alfa beta f3 f4 Memoria processo I/O logica virtuale f1 f2 f1 f2 ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 File System (gestore dei file) Gestisce la memoria di massa anche se è una delle unità periferiche, le sue peculiarità richiedono la presenza di un apposito modulo del SO Gestisce i file Un file è un contenitore logico per dati e programmi Un file è l’unità di base per la memorizzazione nella memoria di massa Ogni file è identificato da un nome e accessibile tramite comandi ad alto livello che rendono trasparenti all’utente le operazioni per l’allocazione della memoria necessaria per i dati l’accesso alla memoria di massa Di ogni file si possono definire diversi diritti di accesso ai relativi contenuti ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Interprete dei comandi Modulo del SO direttamente accessibile dall’utente Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) e di attivare i programmi corrispondenti Le operazioni che svolge sono: lettura dalla memoria di massa del programma da eseguire allocazione della memoria centrale caricamento del programma e dei relativi dati nella memoria allocata creazione e attivazione del processo corrispondente ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Il middleware Insieme di librerie di utilità che viene “standardizzato” fino a poter essere considerato uno strato del SO Facilita lo sviluppo di software applicativo Vere e proprie macchine virtuali possibilità di eseguire software indipendentemente dalla piattaforma HW/SW Astrazione estrema: middleware per sistemi distribuiti travalica il limite fisico della macchina Esempi: Sun Java Runtime Environment, Microsoft.NET, CORBA… ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 La gestione dei processi ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Elaborazione parallela Il concetto di elaborazione parallela si riferisce specificamente: ai dati alle istruzioni ai programmi Il parallelismo a livello di dati e di istruzioni è possibile solo con l’impiego di architetture di elaborazione parallela, basate sulla presenza di più unità di elaborazione in grado di eseguire istruzioni in modo concorrente ma anche, per esempio, di adeguati linguaggi di programmazione Il parallelismo a livello di programma ricade nell’ambito dei sistemi operativi Le condizioni che un sistema operativo deve soddisfare sono: efficienza interattività sincronizzazione/cooperazione ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 SO in time sharing Permette la condivisione della CPU tra più processi interattivi Il tempo di esecuzione del processore è condiviso tra più utenti Ogni processo in esecuzione ha a disposizione un quanto di tempo di utilizzo della CPU, al termine del quale viene sospeso per lasciare il posto ad un altro processo in attesa di esecuzione ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Esecuzione di un processo Tempo elaborazione attesa per operazioni di I/O Un processo utente può effettivamente essere in esecuzione sulla CPU Ogni operazione di I/O consiste in una chiamata al sistema operativo e quindi in una sospensione del processo utente per l’esecuzione dell’operazione di I/O da parte del kernel ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Stati di un processo Completamento operazione di I/O (si verifica l’evento atteso) Processo Processo attivo in attesa Richiesta operazione di I/O ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Processi non in esecuzione Si possono distinguere due casi Processi in attesa di un evento esterno (ad esempio I/O) Processi pronti ad essere eseguiti in attesa della CPU Si tratta di due stati diversi: PRONTO e ATTESA realizzati con due code diverse ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Diagramma a tre stati Selezione primo processo Termine pronto e sua esecuzione elaborazione Inizio esecuzione (accodamento ai processi pronti) Processi Processo in pronti Termine quanto esecuzione di tempo Richiesta operazione di I/O Processi Completamento operazione di in attesa I/O (evento esterno atteso) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Transizioni di stato Pronto Esecuzione Il SO stabilisce quale dei processi P E “pronti” debba essere mandato in “esecuzione”. La scelta è fatta dall’algoritmo di scheduling che deve bilanciare A efficienza e fairness. Esecuzione Attesa il processo chiede delle risorse che non sono disponibili o attende un evento P E il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella A tabella dei processi ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Transizioni di stato Attesa Pronto P E Si verifica l’evento atteso dal processo e il SO sposta quel processo nella coda dei processi pronti. A Esecuzione Pronto Termina il quanto di tempo e il processo in “esecuzione” lascia spazio a un altro processo “pronto”. Il SO salva (nella tabella dei processi) P E tutte le informazioni per riprendere l’esecuzione del processo dal punto in cui viene interrotta. Contemporaneamente un altro A processo passa da “pronto” a “esecuzione”. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Modalità user e modalità kernel I processi possono essere eseguiti in modalità kernel (riservata ai servizi forniti dal sistema operativo) o user (programmi applicativi) Ci sono due nuove transizione di stato: esecuzione user esecuzione kernel esecuzione kernel esecuzione user ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Transizioni di stato Processi Inizio esecuzione attivi Processo in (accodamento ai RTI esecuzione processi pronti) Selezione primo processo pronto e sua esecuzione (user) Interrupt Processo in Processi o SVC esecuzione pronti Termine quanto (kernel) di tempo Termine elaborazione Completamento Processi operazione di I/O Richiesta in attesa operazione di I/O (evento esterno atteso) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Round Robin Fine I/O I/O Processo 1 E P P E A A A P P E Processo 2 P E P P E P E E P P Processo 3 P P E P P E P P E P P3 P2 P1 P E A Cambio di contesto ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 “concorrenza” fra processi Vantaggi dell’esecuzione concorrente di più processi: impiegare in maniera trasparente una o più CPU (sia inserite in un solo calcolatore che in più calcolatori, collegati in rete); aumentare l’utilizzo della CPU nei sistemi a partizione di tempo, ove si eseguono più lavori in quasi parallelismo; condividere la stessa risorsa fisica fra diversi utenti in modo del tutto trasparente ma controllato; accedere contemporaneamente, da parte di diversi utenti, a una base di dati comune e centralizzata; … Problemi starvation: un processo non riesce ad accedere ad una risorsa perché la trova sempre occupata da altri processi (che per esempio possono avere un livello di priorità maggiore); blocco critico: un insieme di processi rimane bloccato perché ciascuno di essi aspetta delle risorse che sono occupate da un altro processo compreso in questo stesso insieme (vincolo circolare). Evitare (prevenzione) o risolvere (eliminazione) situazioni di blocco critico o di starvation riduce le prestazioni complessive del sistema. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Interazioni tra processi Le interazioni fra processi sono classificabili in: indesiderate e (spesso) impreviste desiderate e previste La gestione delle interazioni fra i processi implica la sincronizzazione fra le varie attività che ogni singolo processo deve svolgere in modo parallelo rispetto agli altri la comunicazione, ovvero una modalità per lo scambio dei dati fra i processi Modalità di funzionamento dei processi: in foreground, quando il processo è abilitato all’interazione con l’utente; in background, quando il processo non è in grado, almeno temporaneamente, di interagire direttamente con l’utente; questo è lo stato in cui si trovano parecchi dei processi relativi alle funzioni interne del sistema operativo ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Organizzazione client- Le infrastrutture software Capitolo 7 server Obiettivo: minimizzare le dimensioni del nucleo si spostano alcune componenti del sistema verso gli strati applicativi le funzionalità estranee al nucleo sono “servizi” forniti da processi server Processo Processo Processo … Strato Utente client client client Scambio messaggi Terminal File Print Memory … server server server server Strato Sistema Primitive di sistema Nucleo ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Client-server Vantaggi di questa strutturazione: Vantaggi di questa strutturazione: indipendenza fisica fra le applicazioni client e applicazioni server (addirittura su macchine diverse via rete) possibilità di specializzare l’interfaccia utente del client lasciando invariato l’insieme dei servizi del server possibilità di aggiornare tecnologicamente e funzionalmente il server in modo trasparente ai client riduzione degli interventi di manutenzione del software e garanzia di coerenza degli aggiornamenti Diffusione destinata a rafforzarsi ulteriormente: introduzione di palmari wireless: client in grado di connettersi a processi server accessibili tramite la rete Microkernel: struttura moderna in cui si assegnano al kernel poche funzioni essenziali gestione degli spazi di indirizzamento comunicazione fra i processi (IPC, Inter‑Process Communication) funzioni base di gestione della CPU (scheduling) i servizi del SO sono forniti da processi che sono trattati dal microkernel come tutte le altre applicazioni ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 I modelli ibridi Organizzazione ibrida: coesistono paradigmi di interazione basati su dati condivisi (come nel modello a strati) con altri che impiegano la comunicazione di messaggi (come nel modello client-server) Multi-threading è utile per quelle applicazioni che svolgono compiti ragionevolmente indipendenti che non necessitano pertanto di essere serializzati Microkernel e multithreading sono ormai usati in maniera congiunta nello sviluppo dei sistemi operativi e delle applicazioni distribuite ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Nucleo: macchina astratta Memoria di Video/tastiera massa (terminale) Memoria CPU di lavoro Interfaccia I/O Interfaccia I/O dati BUS indirizzi controllo CPU CPU CPU CPU CPU ……… virtuale virtuale virtuale virtuale virtuale processo processo processo processo processo ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 La gestione della memoria ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestore della memoria Applica tecniche per gestire il conflitto fra dimensione della memoria fisica e spazio complessivo richiesto dai programmi che devono essere eseguiti in modo concorrente e dai relativi dati Combina le seguenti strategie: consentire il caricamento di un programma a partire da un indirizzo qualunque della memoria; ridurre la necessità di spazio tenendo in memoria solo una porzione dei programmi e dei dati; condividere parte delle istruzioni (codice eseguibile) fra diversi processi corrispondenti a uno stesso programma. Il gestore della memoria garantisce ai vari processi uno spazio di indirizzamento virtuale in cui lavorare, che può essere superiore alla memoria fisica presente nel calcolatore mette in atto dei meccanismi di protezione che tutelano la privatezza dello spazio di lavoro assegnato a ogni processo. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 La rilocabilità del codice Durante la compilazione i nomi simbolici e i riferimenti a celle di memoria sono stati risolti Due spazi di memoria spazio logico spazio fisico Per far funzionare il programma caricandolo a partire da una posizione arbitraria della memoria bisogna effettuare una rilocazione: sommare a tutti gli indirizzi presenti nel programma un valore (spiazzamento) corrispondente alla differenza fra l’indirizzo a partire dal quale verrà effettivamente caricato il programma e il valore a partire dal quale sono stati calcolati gli indirizzi. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Swapping Inizio esecuzione Processo in (accodamento ai Termine quanto di tempo esecuzione processi pronti) e scarica dalla memoria (user) Esecuzione primo RTI processo pronto Carica in SVC memoria Interrupt Processi Processi Processo in pronti pronti esecuzione (su disco) (in memoria) Termine quanto di (kernel) Scarica tempo dalla memoria Evento Evento Richiesta esterno esterno operazione atteso atteso di I/O Termine elaborazione Processi Processi in attesa in attesa (in memoria) Scarica (su disco) dalla memoria ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Paginazione Frammentazione della memoria (logica e fisica) in blocchi di dimensioni prefissate: le pagine Lo spazio logico di indirizzamento del processo è suddiviso in sezioni, di dimensioni fisse e uguali fra loro, dette pagine logiche Lo spazio fisico di indirizzamento disponibile nel calcolatore è anch’esso suddiviso in pagine fisiche, della stessa dimensione delle pagine logiche Si basa sul principio di località spazio-temporale Meccanismo: Vengono caricate, in alcune pagine fisiche su RAM, solo alcune pagine logiche del codice in esecuzione. Le pagine logiche necessarie vengono caricate di volta in volta, in base all’esigenza ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Corrispondenza tra pagine logiche contigue e pagine fisiche non contigue Spazio fisico Spazio logico Memoria fisica del calcolatore suddivisa PF0 PL0 in 8 pagine PF1 PL1 Memoria logica del processo 2 Spazio logico PF2 PL2 (4 pagine logiche) Memoria logica PL0 del processo 1 PF3 PL3 (2 pagine PL1 logiche) PF4 PF5 PF6 PF7 ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Paginazione RAM al tempo T1 RAM al tempo T2 0 … 0 … 1 Pagina 1 processo 1 1 2 Pagina 2 processo 1 Al processo 1 servono 2 Pagina 6 processo 1 3 nuove pagine. Alcune 3 vecchie non servono più 4 4 Pagina 7 processo 1 5 5 Pagina 5 processo 1 6 6 7 Pagina 3 processo 1 7 Pagina 3 processo 1 8 Pagina 4 processo 1 8 Pagina 4 processo 1 … … … … ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Memory Management Unit - MMU Serve un dispositivo dispositivo hardware aggiuntivo in grado di convertire gli indirizzi logici cui fa riferimento il programma nei corrispondenti indirizzi fisici: Memory Management Unit La MMU utilizza una tabella delle pagine: mantiene la relazione tra ogni pagina logica e l’indirizzo della pagina fisica corrispondente Spazio fisico Spazio logico Memoria fisica del calcolatore suddivisa in 8 pagine PF0 PL0 PF1 PL1 Memoria logica del processo 2 Spazio logico (4 pagine PF2 PL2 logiche) Memoria logica PL0 del processo 1 PF3 PL3 Tabella pagine (2 pagine logiche) PL1 del processo 2 PF4 Tabella pagine 0 PF1 del processo 1 PF5 1 PF2 0 PF3 PF6 2 PF0 1 PF4 3 PF5 PF7 ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Memory Management Unit - MMU Dimensioni: Memoria fisica di 32 MByte (indirizzata dunque con 25 bit) Memoria logica di 4 MByte (indirizzo di 22 bit) Pagine lunghe 512 KByte (indirizzo di 19 bit). I primi 3 dei 22 bit dell’indirizzo logico selezionano una delle 2 3=8 righe della tabella delle pagine, il cui contenuto rappresenta l’indirizzo della pagina fisica corrispondente, mentre i restanti 19 bit identificano lo spiazzamento relativo all’inizio della pagina specificata dai 3 bit iniziali. Spiazzamento 3 bit 19 bit 6 bit 19 bit Indirizzo logico Indirizzo fisico 0 Numero Pagina Fisica Numero Pagina Logica Tabella delle 7 pagine ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Paginazione La paginazione risolve contemporaneamente tre problemi: 1. Dove mettere il processo in memoria 2. Superare il numero di processi che posso gestire contemporaneamente 3. Superare la dimensione fisica della memoria di lavoro ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Gestore memoria: macchina Capitolo 7 astratta Memoria di Video/tastiera massa (terminale) Memoria di lavoro (fisica) Interfaccia I/O Interfaccia I/O dati BUS indirizzi controllo CPU CPU CPU CPU CPU ……… virtuale virtuale virtuale virtuale virtuale processo processo processo processo processo Memoria Memoria Memoria Memoria Memoria logica logica logica logica logica ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestione periferiche I/O ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestore delle periferiche Comunicazione tra l’ambiente CPU-RAM ed i dispositivi esterni Mascherare ai processi l’esistenza di un numero limitato di risorse Mascherare ai processi la differenza tra risorse dello stesso tipo (o di tipo simile) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestione periferiche I/O Comandi ad alto livello per accedere alle periferiche che usano meccanismi quali: i controller i driver I sistemi operativi comprendono i driver per la gestione delle periferiche più comuni Ogni aggiunta o modifica alla configurazione standard comporta l’installazione di software addizionale (driver aggiuntivi) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Installazione driver ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 PlugPlay I sistemi operativi più recenti sono dotati di funzioni di PlugPlay (PnP) che permettono la configurazione automatica dei driver Un sistema PnP consente di aggiungere (plug) nuove periferiche al sistema che possono essere utilizzate (play), senza necessità di intervento da parte dell’utente per la selezione e l’installazione dei driver ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Spooling I driver servono anche a virtualizzare la presenza di più periferiche intrinsecamente non condivisibili, tramite la tecnica di spooling Esempio: gestione di una stampante quando un processo desidera stampare un file, lo invia al driver il driver lo accoda in un’opportuna directory di spooling i file contenuti nella directory di spooling vengono stampati in ordine di arrivo (a meno che siano stabilite delle politiche di gestione delle priorità) quando la directory di spooling si svuota il driver rimane in memoria in attesa che un processo cerchi di stampare Questa soluzione consente di disaccoppiare il programma che deve stampare e la periferica rende possibile l’uso della stampante da parte di molti processi senza attese inutili ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestione stampe ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Memoria logica Gestore periferiche I/O: processo I/O virtuale macchina astratta Memoria di Video/tastiera massa (terminale) CPU I/O virtuale virtuale Interfaccia I/O Interfaccia I/O dati BUS indirizzi controllo CPU I/O CPU I/O CPU I/O virtuale virtuale virtuale virtuale virtuale virtuale processo I/O processo I/O processo I/O virtuale virtuale virtuale Memoria Memoria Memoria logica logica logica ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 File System Ovvero il sistema di gestione della memoria di massa. ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Gestione memoria di massa Obiettivo: presentare all’utente l’organizzazione logica dei dati e le operazioni che è possibile compiere su di essi Operazioni di base di un file system: recupero di dati precedentemente memorizzati eliminazione (cancellazione) di dati obsoleti modifica/aggiornamento di dati preesistenti copia di dati (e.g. da HD a FD) per backup o per il trasferimento … I servizi vengono forniti sia ai programmi applicativi che direttamente agli utenti ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 File system FILE: contenitore logico di informazioni (dati o istruzioni) oggetto a “lunga vita”, per conservare le informazioni anche dopo la terminazione del processo che lo ha generato Per ogni file: Identificatore (nome.estensione) Periferica (drive) e percorso sulla periferica Data creazione Dimensione Posizione effettiva dei dati nella memoria di massa Altre informazioni applicazione che consente all’utente di “usare” il file data di ultima modifica diritti di accesso al contenuto del file … ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 File I nomi dei file sono in genere composti da due parti: nome (vero e proprio), che viene assegnato dall’utente estensione, associata al programma che ha generato il file e consente quindi di identificare la tipologia dei dati contenuti nel file Ogni sistema operativo pone dei vincoli sulla lunghezza dei filename e sui caratteri di cui possono essere costituiti MS-DOS imponeva una lunghezza massima di 8+3 caratteri per nomi ed estensioni Windows ha un limite di 254 caratteri (compreso il path) I file sono generalmente organizzati in cartelle (directory) e sottocartelle in una gerarchia ad albero (o, al limite, a grafo aciclico). ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Un esempio di struttura. (radice) UTENTI DOS DIDATT ROSSI NERI LEZIONI command.com ESAMI BIANCHI edit.com filea.txt filec.jpg filea.txt xcopy.com intro.txt iscrfeb.doc iscrgen.doc fileb.wav iscrmar.doc ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Interfaccia grafica ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Organizzazione fisica dei dati Come mantenere la corrispondenza tra il nome del file e i blocchi su disco che ne contengono i dati: lista concatenata (e.g. Windows 95/98) i‑node (e.g. UNIX) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Il controllo degli accessi Identificazione degli accessi al sistema Associare a ogni utente un account (login) e una parola d’ordine (password) All’interno del sistema operativo, in un apposito file, è contenuta la lista di tutti gli account e delle relative password: solo se viene specificato un account fra quelli previsti (utente abilitato) e la password corrisponde a quella memorizzata (certificazione di identità) viene consentito l’accesso al sistema Questo consente di personalizzare il sistema, per esempio definendo: la distribuzione dei costi di gestione fra i vari utenti la visibilità del sistema in termini di porzione del file system complessivo, periferiche e programmi applicativi disponibili la personalizzazione dell’ambiente operativo Consente di controllare gli accessi ai file: livello di protezione a livello di file o di directory altro metodo: Access Control List ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Memoria Memoria logica logica File System: processo I/O virtuale processo I/O virtuale macchina Memoria di astratta massa CPU I/O CPU I/O virtuale virtuale virtuale virtuale Interfaccia I/O dati BUS indirizzi controllo root CPU I/O virtuale virtuale uno due tre … f3 alfa beta f3 f4 Memoria processo I/O logica virtuale f1 f2 f1 f2 ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Il gestore delle interfacce - Shell Interfaccia a caratteri Interfaccia grafica (point & click) ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 La gestione della rete ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 Virtualizzazione delle risorse di rete Estendere anche a processi in esecuzione su calcolatori diversi il principio di virtualizzazione delle risorse Condividere in modo trasparente dati, periferiche e unità di elaborazione In particolare si tratta di poter gestire le periferiche e il file system ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Le infrastrutture software Capitolo 7 File system di rete Un sistema operativo che consente una gestione distribuita del file system deve: integrare in modo organico i singoli file system dei calcolatori della rete risolvere i problemi dell’univocità dei nomi di file e directory per i calcolatori della rete consentire un accesso efficiente anche a file presenti su calcolatori remoti Questi requisiti vengono soddisfatti con un file system di tipo client‑server ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl Organizzazione client- Le infrastrutture software Capitolo 7 server I client possono usufruire dei servizi di sistema inviando una richiesta al server Ottime proprietà di modularità e portabilità: Calcolatore 1 Calcolatore 2 Calcolatore 3 Calcolatore 4 Client Client Client Client Client Client Server Client Client Client Client Server Nucleo Nucleo Nucleo Nucleo Messaggio da client verso server Rete di trasmissione ai sistemi informatici 5/ed Di: Donatella Sciuto, Giacomo Buonanno e Luca Mari Copyright © 2014 McGraw-Hill Education (Italy) srl