La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone

Presentazioni simili


Presentazione sul tema: "I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone"— Transcript della presentazione:

1 I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone AA. 2012/2013 IL SISTEMA OPERATIVO

2 Il sistema operativo Un generico programma non accede direttamente alle componenti hardwareUn generico programma non accede direttamente alle componenti hardware Software di sistema (o di base): programmi che gestiscono in modo ottimale le risorse fisicheSoftware di sistema (o di base): programmi che gestiscono in modo ottimale le risorse fisiche Un sistema operativo è un insieme di programmi che agiscono da intermediario fra utente e macchina hardwareUn sistema operativo è un insieme di programmi che agiscono da intermediario fra utente e macchina hardware Il sistema operativo fornisce all'utente vari strumenti, quale un ambiente per l'esecuzione di altri programmi e una visione astratta del hardwareIl sistema operativo fornisce all'utente vari strumenti, quale un ambiente per l'esecuzione di altri programmi e una visione astratta del hardware

3 Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informaticoRendere utilizzabili le risorse fisiche presenti nel sistema informatico infrastruttura software, che si pone come interfaccia per linfrastruttura hardware e serve a facilitarne lutilizzo e la gestione Il sistema operativo è un insieme di moduli software che virtualizzano le caratteristiche dellhardware sottostante, rendendolo accessibile come una macchina astratta, più semplice da utilizzare di quella fisicamente disponibileIl sistema operativo è un insieme di moduli software che virtualizzano le caratteristiche dellhardware sottostante, rendendolo accessibile come una macchina astratta, più semplice da utilizzare di quella fisicamente disponibile

4 HW SW HW Sistema Operativo SW Applicativo Il software SW= Sistema Operativo + SW applicativo SW= Sistema Operativo + SW applicativo Il S.O. come necessario intermediario Il S.O. come necessario intermediario

5 Funzionalità del sistema operativo GESTORE DELLE RISORSE, controlla tutte le risorse del calcolatore e le gestisce in modo efficiente: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 MACCHINA ESTESA:MACCHINA ESTESA: costituisce la base su cui è possibile scrivere i programmi applicativi presenta allutente una macchina estesa più facile da programmare dellHW sottostante

6 Funzioni di servizio del SO Esecuzione di applicazioniEsecuzione di applicazioni caricamento del programma (istruzioni e dati) nella memoria centrale, inizializzazione dei dispositivi di ingresso/uscita, preparazione e gestione di altre risorse come la rete di comunicazione Accesso ai dispositivi di ingresso/uscitaAccesso ai dispositivi di ingresso/uscita gestione dei segnali necessari per il trasferimento dei dati, consente allutente di ragionare in termini di operazioni astratte di lettura e scrittura; Archiviazione di dati e programmiArchiviazione di dati e programmi fornire unorganizzazione logica dei dati sotto forma di cartelle (directory) e file, gestire le operazioni di basso livello per il relativo ingresso/uscita;

7 Funzioni di servizio del SO Controllo di accessoControllo di accesso condivisione di risorse da parte di più utenti o applicazioni, meccanismi di protezione e politiche di risoluzione degli eventuali conflitti duso; ContabilizzazioneContabilizzazione ottimizzare il tempo di risposta dei programmi interattivi, fatturare agli utenti i costi dellimpiego del sistema; Gestione dei malfunzionamentiGestione dei malfunzionamenti rilevare e, se possibile, di risolvere eventuali malfunzionamenti provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo.

8 Elementi di un sistema operativo Gestisce il processore, la memoria centrale, la memoria di massa e i dispositivi di I/O gestione del processoreSistema di gestione del processore controlla lunità centrale di elaborazione (CPU); definisce quali programmi sono da eseguire e quali compiti sono da assegnare alla CPU; Supporto di compilatori ed interpreti per la traduzione dei programmi gestione della memoriaSistema di gestione della memoria controlla lallocazione della memoria di lavoro ai diversi programmi che possono essere contemporaneamente in esecuzione; garantisce la mutua esclusione nellaccesso alle risorse

9 Elementi di un sistema operativo Sistema di gestione delle perifericheSistema di gestione delle periferiche garantisce laccesso ai dispositivi di ingresso/uscita, maschera i dettagli di basso livello e gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente a uno stesso dispositivo Sistema di gestione dei file (file system)Sistema di gestione dei file (file system) consente larchiviazione e il reperimento dei dati sfruttando le periferiche che costituiscono la memoria di massa; Sistema di gestione degli utenti e dei relativi comandi (interprete comandi)Sistema di gestione degli utenti e dei relativi comandi (interprete comandi) interfaccia diretta con gli utenti, permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità disponibili. Sistema di gestione della reteSistema di gestione della rete interfaccia con risorse collegate via rete comunicazione con processi in esecuzione su altri calcolatori.

10 Sistema Operativo Utente Nucleo (o kernel) [gestione processore] Hardware Software applicativo Gestione periferiche File system Interfaccia con la rete Gestione memoria Interprete comandi Elementi di un sistema operativo

11 Programmi applicativi e SO Programmi applicativiProgrammi applicativi hanno accesso a un insieme ridotto di risorse possono utilizzare solo un sottoinsieme delle istruzioni del processore esecuzione in modalità utente non possono decidere autonomamente quando e come avere accesso alle risorse del sistema richiedono al sistema operativo lesecuzione di alcuni servizirichiedono al sistema operativo lesecuzione di alcuni servizi Sistema operativoSistema operativo ha accesso a tutte le risorse; può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore); è organizzato in modo modulare per consentire efficientemente laggiornamento dellhardware stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte;stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte;

12 Evoluzione dei sistemi operativi Seconda metà degli anni 40 (schede perforate)Seconda metà degli anni 40 (schede perforate) non cera un sistema operativonon cera un sistema operativo: il programmatore interagiva direttamente con i dispositivi fisici, gestione dellhardwareintrodurre nel software applicativo anche le funzionalità di gestione dellhardware. un solo programma alla voltaesecuzione di un solo programma alla volta problemi da risolvere: evoluzione dellinterfaccia utente miglioramento dellefficienza di gestione delle risorse disponibili Sistemi a lotti (batch)Sistemi a lotti (batch) monitorimpiego di un componente software, detto monitor, in grado di automatizzare lavviamento e lesecuzione di programma; Job Control Languageapposito linguaggio, detto Job Control Language (JCL); operazioni di ingresso/uscita vengono eseguite tramite filele operazioni di ingresso/uscita vengono eseguite tramite file; ottimizzano lo sfruttamento delle risorse di elaborazioneottimizzano lo sfruttamento delle risorse di elaborazione del sistema con unaccurata distribuzione del tempo di calcolo tra i vari programmi da eseguire svantaggio principalesvantaggio principale: tempo di latenza che intercorre fra il momento in cui un job è sottoposto al sistema e il momento in cui vengono presentati i risultati dellelaborazione di quel job.

13 Sistemi mono-processori jobjob: esecuzione di un programma; compiti laboriosiNei primi computer lesecuzione di un programma richiedeva compiti laboriosi; sessioneCiascuna sessione iniziava con il caricamento del programma e brevi periodi di esecuzioni del job; Operatore addetto al computerOperatore addetto al computer: seguiva il funzionamento del calcolatore Compiti delloperatore addetto al computerCompiti delloperatore addetto al computer: caricava il programma e le istruzioni speciali del programma nella memoria di massa, dove il sistema operativo poteva eseguirli. Separazione tra utente e calcolatoreSeparazione tra utente e calcolatore: ciascun utente portava il programma con le relative istruzioni alloperatore e ritornava successivamente per avere i risultati.

14 Elaborazione BATCH jobs: programma, dati e istruzioni dominio dellutente risultati dominio del computer elaborazione batchbatch (lotto) elaborazione batch: caricamento di job in un unico batch (lotto) e successiva esecuzione senza interazioni con lutente. Nei sistemi di elaborazione batch un job aspetta di trovarsi in job execution

15 Elaborazione BATCH codastruttura dati FIFOfirst in, first outcoda: struttura dati in cui gli oggetti (job) sono ordinati utilizzando il metodo FIFO (first in, first out) gli oggetti vengono rimossi dalla coda nellordine di arrivogli oggetti vengono rimossi dalla coda nellordine di arrivo metodo FIFO priorità dei joble code di job seguono il metodo FIFO, tenendo conto delle priorità dei job Svantaggioelaborazione batchSvantaggio dellelaborazione batch: lutente non ha alcune possibilità di interagire con il programma

16 Evoluzione dei sistemi operativi elaborazione interattivaelaborazione interattiva: nuovi sistemi operativi in grado di far interagire lutente durante lesecuzione dei programmi elaborazione in tempo realereal timetale sistema viene denominato anche elaborazione in tempo reale (real time) Caratteristiche desiderate in un sistema operativo:Caratteristiche desiderate in un sistema operativo: interattivitàinterattività con un utente umano con tempi di risposta accettabili; protezioneaccurata protezione della memoria; temporizzazionetemporizzazione dellesecuzione (evitare che un programma monopolizzi il sistema); ingresso/uscitagestione delle attività di ingresso/uscita; maggiore sfruttamentomaggiore sfruttamento delle risorse disponibili nel sistema. in parallelo da parte di diversi programmi

17 Evoluzione dei sistemi operativi Sistemi uniprogrammati: in memoria centrale risiede un solo programma utenteSistemi uniprogrammati: in memoria centrale risiede un solo programma utente Sistemi multiprogrammati: in ogni istante, la memoria centrale può contenere più di un programma applicativoSistemi multiprogrammati: in ogni istante, la memoria centrale può contenere più di un programma applicativo

18 Sistemi uni e multi programmati Nei sistemi uniprogrammati, nellattesa per le operazioni I/O il processore rimane inattivo ridurre i tempi mortiPer ridurre i tempi morti è possibile passare da un programma allaltro: scaricare il programma residente in memoria centralescaricare il programma residente in memoria centrale caricare il nuovo programma dalla memoria di massacaricare il nuovo programma dalla memoria di massa ha senso se i tempi di attesa sono maggiori del tempo dicarica/scaricaha senso se i tempi di attesa sono maggiori del tempo dicarica/scarica Nei sistemi multiprogrammati la commutazioni tra programmi avviene in maniera efficiente tempo di accesso alla memoria centrale molto inferiore rispetto alla memoria di massa Possibilità di gestione di più utenti senza degrado eccessivo delle prestazioni

19 Sistemi uni e multi programmati Svantaggio dei sistemi multiprogrammatiSvantaggio dei sistemi multiprogrammati: complessità del sistema operativo gestire in modo sofisticato la memoria Minimizzare il tempo necessario alla commutazione fra programmi partizione di tempotime-sharing esecuzioneattesaSistema a partizione di tempo (time-sharing): sistema operativo in grado di alternare i vari job tra uno stato di esecuzione e uno di attesa tempo suddiviso in porzionitempo suddiviso in porzioni parallelismo nellaccesso alle risorsesimulazione di un parallelismo nellaccesso alle risorse

20 Sistemi uni e multi programmati Tempo Progr. 3 Progr. 2 Progr. 1 attesa per operazioni di I/O elaborazione Sistema uniprogrammato Sistema multiprogrammato Tempo attesa per operazioni di I/O elaborazione

21 Sistema time-sharing Per evitare lutilizzo esclusivo della CPU da parte di un solo programmaPer evitare lutilizzo esclusivo della CPU da parte di un solo programma quantiTempo suddiviso in unità di tempo: quanti Ogni programma ha assegnato un quanto di tempoOgni programma ha assegnato un quanto di tempo per lesecuzione sulla CPU che gli viene tolta allo scadere per assegnarla a un altro programma Un programma rinuncia alla CPU spontaneamente quando è in attesa di operazioni di ingresso/uscitaUn programma rinuncia alla CPU spontaneamente quando è in attesa di operazioni di ingresso/uscita scelta dei turni dipendedal sistema operativoLa scelta dei turni di assegnazione della CPU ai programmi dipende dalle politiche decise dal sistema operativo: Metodo più semplice: a rotazione tra tutti i programmi in memoria centrale (round robin)Metodo più semplice: a rotazione tra tutti i programmi in memoria centrale (round robin) La durata del quanto di tempo incide sulle prestazioni del sistema e sullefficacia del paralellismoLa durata del quanto di tempo incide sulle prestazioni del sistema e sullefficacia del paralellismo

22 Sistema time-sharing time-sharingmono-utente multi-utentiIl time-sharing viene utilizzato sia nei sistemi mono-utente che in quelli multi-utenti sistema multitaskingNel primo caso si dice sistema multitasking Il time-sharing aumenta lefficienza di un computerIl time-sharing aumenta lefficienza di un computer sistema time-sharingIl sistema time-sharing consente di destinare ad altri job il tempo che altrimenti andrebbe sprecato

23 Sistemi Multi-Processori

24 Sistemi multi-processore Singoli computer contenenti più processori danno origine ad un sistema multi-processoreSingoli computer contenenti più processori danno origine ad un sistema multi-processore coordinare attribuzione dei compitiIl SO ha il compito di coordinare le attività da eseguire simultaneamente su ciascun processore e lattribuzione dei compiti Bilanciamento del caricoBilanciamento del carico: distribuzione dinamica dei tasks ai vari processi tale che ogni processore lavori efficientemente ScalabilitàScalabilità: divisione dei tasks in sotto-tasks compatibile con il numero di processori

25 Processo versus Programma Programma: entità statica composta dal codice eseguibile dal processoreProgramma: entità statica composta dal codice eseguibile dal processore Processo: entità dinamica che corrisponde al programma in esecuzione, composto da:Processo: entità dinamica che corrisponde al programma in esecuzione, composto da: codice (il programma); dati (quelli che servono per lesecuzione del programma); stato (a che punto dellesecuzione ci si trova, cosa cè nei registri, …). Il sistema operativo è caratterizzato da un insieme di processi di servizio e un gestore, detto nucleoIl sistema operativo è caratterizzato da un insieme di processi di servizio e un gestore, detto nucleo il nucleo opera come sistema di controllo dei processiil nucleo opera come sistema di controllo dei processi

26 Organizzazione di un SO I moderni SO sono strutturati in successione di livelliI moderni SO sono strutturati in successione di livelli Ogni livello è costruito a partire da quelli sottostantiOgni livello è costruito a partire da quelli sottostanti Gerarchia di macchine virtualiGerarchia di macchine virtuali La visione della macchina virtuale a livello n è quella fornita dallHW e dagli strati del SO fino allennesimo (incluso)La visione della macchina virtuale a livello n è quella fornita dallHW e dagli strati del SO fino allennesimo (incluso) Il nucleo è lunico componente dipendente dalle caratteristiche HWIl nucleo è lunico componente dipendente dalle caratteristiche HW

27 livelli Organizzazione a livelli Ogni livello corrisponde a un insieme di programmi che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore.Ogni livello corrisponde a un insieme di programmi che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore. Obiettivo: creare un insieme di ambienti protetti in cui i processi possono evolvere, ognuno dei quali dispone apparentemente di una macchina dotata di tutte le risorse di quella reale e a esso completamente dedicata: macchina virtualeObiettivo: creare un insieme di ambienti protetti in cui i processi possono evolvere, ognuno dei quali dispone apparentemente di una macchina dotata di tutte le risorse di quella reale e a esso completamente dedicata: macchina virtuale Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone luso e mascherandone i limiti.Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone luso e mascherandone i limiti. I meccanismi che garantiscono la correttezza logica sono separati dalle politiche di gestione (maggiore flessibilità).I meccanismi che garantiscono la correttezza logica sono separati dalle politiche di gestione (maggiore flessibilità). ogni livello risolve un problema specifico

28 Macchine virtuali I diversi moduli del sistema operativo virtualizzano specifiche risorse fisiche: I diversi moduli del sistema operativo virtualizzano specifiche risorse fisiche: il nucleo consente a ogni processo di considerare la CPU completamente dedicata alla sua esecuzione il nucleo consente a ogni processo di considerare la CPU completamente dedicata alla sua esecuzione gestire la memoria centrale come dedicata interamente al processo il modulo della memoria consente di gestire la memoria centrale come dedicata interamente al processo interagire con le periferiche in modo astratto tramite file il gestore delle periferiche permette al processo di interagire con le periferiche in modo astratto tramite file accedere ai file indipendentemente dalla struttura del disco il file system consente al processo di accedere ai file indipendentemente dalla struttura del disco

29 Nucleo (o Kernel) Interagisce direttamente con lhardwareInteragisce direttamente con lhardware Si occupa dellesecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche.Si occupa dellesecuzione dei programmi e della risposta agli eventi esterni generati dalle unità periferiche. Scopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attiviScopo principale: gestire i processi corrispondenti ai programmi che sono contemporaneamente attivi applicazioni utente processi di servizio Fornisce alle macchine virtuali di livello superiore la visione di un insieme di unità di elaborazione virtuali ciascuna dedicata a un processo presente in memoriaFornisce 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 processiGestisce il contesto di esecuzione dei vari processi Attua una politica di alternanza (scheduling) nellaccesso alla CPU da parte dei processi in esecuzione.Attua una politica di alternanza (scheduling) nellaccesso alla CPU da parte dei processi in esecuzione.

30 CPU dati controllo indirizziBUS Memoria di lavoro Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O Nucleo: macchina astratta

31 dati controllo indirizziBUS Memoria di lavoro Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O CPU virtuale processo CPU virtuale processo CPU virtuale processo CPU virtuale processo CPU virtuale processo … … …

32 Gestore della memoria Controlla la memoria centrale, al fine di risolvere le relative esigenze dei vari processi in modo trasparente ed efficiente.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.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:Si occupa di: proteggere programmi e relativi dati caricati nella memoria di lavoroproteggere programmi e relativi dati caricati nella memoria di lavoro (nessun processo deve poter leggere o modificare quanto contenuto nello spazio di indirizzamento virtuale di un altro processo); mascherare la collocazione fisica dei datimascherare la collocazione fisica dei dati (un processo potrebbe agire su uno spazio di indirizzamento di dimensione maggiore di quello della memoria fisica); sovrapposizione degli spazi di memoriapermettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria associati ai vari programmi (condivisione dati e/o scambio messaggi). 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.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.

33 Gestore della memoria Memoria di lavoro (fisica) BUS Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O CPU virtuale processo CPU virtuale processo CPU virtuale processo CPU virtuale processo CPU virtuale processo … … …

34 Gestore della memoria BUS Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O CPU virtuale processo CPU virtuale processo CPU virtuale processo CPU virtuale processo CPU virtuale processo … … … Memoria logica 34

35 Gestore delle periferiche Fornisce una visione del sistema in cui i processi possono operare mediante periferiche astratte.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/uscitaMaschera le caratteristiche fisiche delle periferiche e le specifiche operazioni di ingresso/uscita Ogni processo ha a disposizione delle periferiche virtualiOgni processo ha a disposizione delle periferiche virtuali completamente dedicate alle esigenze del processosono completamente dedicate alle esigenze del processo in questione soluzione degli eventuali conflitti di accessoil gestore si preoccupa della soluzione degli eventuali conflitti di accesso (es: stampante condivisa fra più utenti) comandi di alto livellodriverutilizza un insieme di comandi di alto livello (forniti dai driver delle periferiche) per leggere e scrivere dati, senza preoccuparsi dei problemi di indirizzamento e di sincronizzazione delle periferiche.

36 file system Gestore dei file (file system) Si occupa di organizzare i dati e programmi in contenitori logici (file)Si occupa di organizzare i dati e programmi in contenitori logici (file) maschera le operazioni di allocazione e accesso alla memoriamaschera le operazioni di allocazione e accesso alla memoria Gestisce la memoria di massaGestisce la memoria di massa anche se è una delle unità periferiche, le sue peculiarità richiedono la presenza di un apposito modulo del SO Gestisce i fileGestisce i file Un file è un contenitore logico per dati e programmi lunità di base per la memorizzazioneUn file è lunità di base per la memorizzazione nella memoria di massa Ogni file è identificato da un nome e accessibile tramite comandi ad alto livelloOgni file è identificato da un nome e accessibile tramite comandi ad alto livello che rendono trasparenti allutente le operazioni per: lallocazione della memoria necessaria per i dati laccesso alla memoria di massa diversi diritti di accessoDi ogni file si possono definire diversi diritti di accesso ai relativi contenuti.

37 Organizzazione del file system uno root duetre… alfabeta f1f2f1f2 f3 f4

38 Interprete dei comandi Modulo del SO direttamente accessibile dallutenteModulo del SO direttamente accessibile dallutente Ha la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) e di attivare i relativi programmiHa la funzione di interpretare i comandi che gli giungono (da tastiera e/o point&click) e di attivare i relativi programmi Le operazioni che svolge sono:Le operazioni che svolge sono: letturalettura dalla memoria di massa del programma da eseguire (tramite il gestore dei file); allocazioneallocazione della memoria centrale (tramite il gestore della memoria); caricamentocaricamento del programma e dei relativi dati nella memoria allocata (tramite il gestore della memoria); creazioneattivazionecreazione e attivazione del processo corrispondente (tramite il nucleo).

39 Programmi di utilità Consentono di ampliare le funzionalità del SOConsentono di ampliare le funzionalità del SO facilitano ed ottimizzano lutilizzo allutente I programmi di utilità sono (numerosi): CompilatoriCompilatori DebbugerDebbuger backupProgrammi per le memorizzazione organizzata dei dati (backup) Programmi di ottimizzazione dello spazio occupato su discoProgrammi di ottimizzazione dello spazio occupato su disco Programmi di testProgrammi di test Editor di testiEditor di testi ……..

40 Gestione dei processi Il concetto di elaborazione parallela si riferisce:Il concetto di elaborazione parallela si riferisce: ai dati, che potrebbero essere trattati parallelamente (es. immagine); alle istruzioni, che potrebbero essere eseguite contemporaneamente nel caso di operazioni indipendenti che trattano dati distinti; ai programmi, che potrebbero essere in esecuzione nello stesso tempo. Il parallelismo a livello di dati e di istruzioni è possibile solo con limpiego 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 dati e di istruzioni è possibile solo con limpiego 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 nellambito dei sistemi operativi.Il parallelismo a livello di programma ricade nellambito dei sistemi operativi.

41 Elaborazione parallela dei programmi Sistema operativo deve gestire un insieme di risorse scarseSistema operativo deve gestire un insieme di risorse scarse Obiettivo:Obiettivo: ridurre i periodi di inutilizzoridurre i periodi di inutilizzo aumentare lutilizzo del sistemaaumentare lutilizzo del sistema ridurre i tempi di risposta (in caso di interazione con utente)ridurre i tempi di risposta (in caso di interazione con utente) Le condizioni che un sistema operativo deve soddisfare sono:Le condizioni che un sistema operativo deve soddisfare sono: efficienza: occorre assicurare un impiego ottimale di tutte le risorse; interattività: il tempo di risposta è un fattore determinante per definire la qualità del sistema operativo; agentisincronizzazione/cooperazione: gestire la conseguente presenza di più agenti in grado di operare sul sistema in modo concorrente, al fine di evitare possibili malfunzionamenti (per esempio il blocco di un programma a causa di operazioni errate compiute da altri).

42 Elaborazione parallela dei programmi processiLe condizioni di parallelismo a livello di programma si riferiscono ai processi programma in esecuzioneprogramma in esecuzione contestoUn processo è caratterizzato anche dal contesto necessario per la sua esecuzione elenco file utilizzati valori contenuti nei vari registri dinamiciI processi sono di natura dinamici Ad un programma possono corrispondere più processiprocessi figliAd un programma possono corrispondere più processi (processi figli) es: scrittura e stampa lettera

43 Esecuzione dei processi Processo caratterizzato da:Processo caratterizzato da: Programma eseguibile Contesto: informazioni ausiliarie necessarie alla sua esecuzione In un sistema con una sola CPU multiprogrammato in time sharing la CPU è condivisa tra più processi in memoriaIn un sistema con una sola CPU multiprogrammato in time sharing la CPU è condivisa tra più processi in memoria 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 esecuzioneOgni 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 Un processo in esecuzione si (auto)sospende quando è in attesa di una operazione di ingresso/uscitaUn processo in esecuzione si (auto)sospende quando è in attesa di una operazione di ingresso/uscita

44 Processi non in esecuzione Processi in attesa di un evento esterno (ad esempio I/O)Processi in attesa di un evento esterno (ad esempio I/O) Processi pronti ad essere eseguiti in attesa della CPUProcessi pronti ad essere eseguiti in attesa della CPU Si tratta di due stati diversi: PRONTO e ATTESA realizzati con due code diverseSi tratta di due stati diversi: PRONTO e ATTESA realizzati con due code diverse NOTA:NOTA: in un dato istante un solo processo è in esecuzionein un dato istante un solo processo è in esecuzione ci possono essere due modalità di esecuzione:ci possono essere due modalità di esecuzione: esecuzione in modalità utenteesecuzione in modalità utente esecuzione in modalità supervisoreesecuzione in modalità supervisore

45 Stati di un processo Selezione primo processo pronto e sua esecuzione Processo in esecuzione Processi pronti Inizio esecuzione (accodamento ai processi pronti) Termine quanto di tempo Termine elaborazion e Processi in attesa Richiesta operazione di I/O Completamento operazione di I/O (evento esterno atteso)

46 Pronto EsecuzionePronto Esecuzione Il SO stabilisce quale dei processipronti debba essere mandato inesecuzione. La scelta è fatta dallalgoritmo di scheduling che deve bilanciare efficienza e fairness. Esecuzione AttesaEsecuzione Attesa il processo chiede delle risorse che non sono disponibili o attende un evento il SO salva tutte le informazioni necessarie a riprendere lesecuzione e linformazione relativa allevento atteso nella tabella dei processi Transizioni di stato E E P A P A

47 Esecuzione dei processi Il processo viene creato e posto nella coda dei processi prontiIl processo viene creato e posto nella coda dei processi pronti il primo tra i processi pronti viene posto in esecuzione (FIFO)il primo tra i processi pronti viene posto in esecuzione (FIFO) il processo in esecuzione dispone delle risorse del sistema fino a:il processo in esecuzione dispone delle risorse del sistema fino a: termine del quanto di tempotermine del quanto di tempo il nucleo interrompe il processo e lo mette in coda ai processi pronti; quando arriva in cima alla coda dei processi pronti, il processo torna in stato in esecuzione, proseguendo con lelaborazione dellistruzione successiva a quella su cui era stato interrotto; richiesta di operazione I/Orichiesta di operazione I/O il nucleo sposta il processo attivo nello stato di attesa; quando loperazione di ingresso/uscita si completa il processo può proseguire lelaborazione e viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente; termine esecuzione (istruzione finale)termine esecuzione (istruzione finale) il processo viene eliminato e rimosso dallelenco dei processi esistenti; il nucleo provvede a sostituirlo con il primo dei processi pronti.il nucleo provvede a sostituirlo con il primo dei processi pronti.

48 Esecuzione dei processi Il processo non si rende conto delle interruzioni (interrupt):Il processo non si rende conto delle interruzioni (interrupt): il nucleo maschera al processo come effettivamente la sua elaborazione evolve nel tempo; il nucleo rende trasparente la presenza delle operazioni di interruzione e di riassegnamento del processore a un processo. Contesto di un processoContesto di un processo insieme dei dati che rappresentano lo stato del processo: situazione della memoria, contenuto dei registri, livello di priorità, … descrittore del processoquando un processo viene interrotto (esce dallo stato di esecuzione) il nucleo provvede a salvare il suo contesto (in una struttura dati chiamata descrittore del processo); quando un processo torna nello stato di esecuzione il nucleo provvede a ripristinare il suo contesto (recuperando i dati precedentemente salvati nel descrittore).

49 Context Swapping Cambio di contesto (context swapping)Cambio di contesto (context swapping) si verifica quando un processo (e.g. P1) in esecuzione viene sostituito da un altro processo P2 (il primo dei processi pronti); il nucleo provvede a salvare il contesto di P1 e gestirne levoluzione (pronto vs attesa); ripristinare il contesto di P2 per consentirgli una corretta evoluzione.


Scaricare ppt "I N F O R M A T I C A CdL Magistrale in Odontoiatria e Protesi Dentaria Università degli Studi di Catania Prof. Mario Pavone"

Presentazioni simili


Annunci Google