La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il Sistema Operativo I N F O R M A T I C A

Presentazioni simili


Presentazione sul tema: "Il Sistema Operativo I N F O R M A T I C A"— Transcript della presentazione:

1 Il Sistema Operativo 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

2 Il sistema operativo Un generico programma non accede direttamente alle componenti hardware Software 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 hardware Il 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 informatico infrastruttura software, che si pone come interfaccia per l’infrastruttura hardware e serve a facilitarne l’utilizzo e la gestione Il sistema operativo è un insieme di moduli software che virtualizzano le caratteristiche dell’hardware sottostante, rendendolo accessibile come una macchina astratta, più semplice da utilizzare di quella fisicamente disponibile

4 Il software SW Applicativo SW HW HW Sistema Operativo
SW= Sistema Operativo + SW applicativo 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: 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: costituisce la base su cui è possibile scrivere i programmi applicativi presenta all’utente una macchina estesa più facile da programmare dell’HW sottostante

6 Funzioni di servizio del SO
Esecuzione 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/uscita gestione dei segnali necessari per il trasferimento dei dati, consente all’utente di ragionare in termini di operazioni astratte di lettura e scrittura; Archiviazione di dati e programmi fornire un’organizzazione 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 accesso condivisione di risorse da parte di più utenti o applicazioni, meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d’uso; Contabilizzazione ottimizzare il tempo di risposta dei programmi interattivi, fatturare agli utenti i costi dell’impiego del sistema; Gestione 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 Sistema di gestione del processore controlla l’unità 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 Sistema di gestione della memoria controlla l’allocazione della memoria di lavoro ai diversi programmi che possono essere contemporaneamente in esecuzione; garantisce la mutua esclusione nell’accesso alle risorse

9 Elementi di un sistema operativo
Sistema di gestione delle periferiche garantisce l’accesso 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) consente l’archiviazione 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) interfaccia diretta con gli utenti, permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità disponibili. Sistema di gestione della rete interfaccia con risorse collegate via rete comunicazione con processi in esecuzione su altri calcolatori.

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

11 Programmi applicativi e SO
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 l’esecuzione di alcuni servizi Sistema 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 l’aggiornamento dell’hardware 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) non c’era un sistema operativo: il programmatore interagiva direttamente con i dispositivi fisici, introdurre nel software applicativo anche le funzionalità di gestione dell’hardware. esecuzione di un solo programma alla volta problemi da risolvere: evoluzione dell’interfaccia utente miglioramento dell’efficienza di gestione delle risorse disponibili Sistemi a lotti (batch) impiego di un componente software, detto monitor, in grado di automatizzare l’avviamento e l’esecuzione di programma; apposito linguaggio, detto Job Control Language (JCL); le operazioni di ingresso/uscita vengono eseguite tramite file; ottimizzano lo sfruttamento delle risorse di elaborazione del sistema con un’accurata distribuzione del tempo di calcolo tra i vari programmi da eseguire svantaggio 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 dell’elaborazione di quel job.

13 Sistemi mono-processori
job: esecuzione di un programma; Nei primi computer l’esecuzione di un programma richiedeva compiti laboriosi; Ciascuna sessione iniziava con il caricamento del programma e brevi periodi di esecuzioni del job; Operatore addetto al computer: seguiva il funzionamento del calcolatore Compiti dell’operatore 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 calcolatore: ciascun utente portava il programma con le relative istruzioni all’operatore e ritornava successivamente per avere i risultati.

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

15 Elaborazione BATCH coda: struttura dati in cui gli oggetti (job) sono ordinati utilizzando il metodo FIFO (first in, first out) gli oggetti vengono rimossi dalla coda nell’ordine di arrivo le code di job seguono il metodo FIFO, tenendo conto delle priorità dei job Svantaggio dell’elaborazione batch: l’utente non ha alcune possibilità di interagire con il programma

16 Evoluzione dei sistemi operativi
elaborazione interattiva: nuovi sistemi operativi in grado di far interagire l’utente durante l’esecuzione dei programmi tale sistema viene denominato anche elaborazione in tempo reale (real time) Caratteristiche desiderate in un sistema operativo: interattività con un utente umano con tempi di risposta accettabili; accurata protezione della memoria; temporizzazione dell’esecuzione (evitare che un programma monopolizzi il sistema); gestione delle attività di ingresso/uscita; maggiore 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 utente Sistemi multiprogrammati: in ogni istante, la memoria centrale può contenere più di un programma applicativo

18 Sistemi uni e multi programmati
Nei sistemi uniprogrammati, nell’attesa per le operazioni I/O il processore rimane inattivo Per ridurre i tempi “morti” è possibile passare da un programma all’altro: “scaricare” il programma residente in memoria centrale “caricare” il nuovo programma dalla memoria di massa ha “senso” se i tempi di attesa sono maggiori del tempo di “carica/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 multiprogrammati: complessità del sistema operativo gestire in modo sofisticato la memoria Minimizzare il tempo necessario alla commutazione fra programmi Sistema 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 porzioni simulazione di un parallelismo nell’accesso alle risorse

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

21 Sistema time-sharing Per evitare l’utilizzo esclusivo della CPU da parte di un solo programma Tempo suddiviso in unità di tempo: quanti Ogni programma ha assegnato un quanto di tempo per l’esecuzione 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/uscita La 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) La durata del quanto di tempo incide sulle prestazioni del sistema e sull’efficacia del paralellismo

22 Sistema time-sharing Il time-sharing viene utilizzato sia nei sistemi mono-utente che in quelli multi-utenti Nel primo caso si dice sistema multitasking Il time-sharing aumenta l’efficienza di un computer Il 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-processore Il SO ha il compito di coordinare le attività da eseguire simultaneamente su ciascun processore e l’attribuzione dei compiti Bilanciamento del carico: distribuzione dinamica dei tasks ai vari processi tale che ogni processore “lavori” efficientemente 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 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, …). Il sistema operativo è caratterizzato da un insieme di processi di servizio e un gestore, detto nucleo il nucleo opera come sistema di controllo dei processi

26 Organizzazione di un SO
I moderni SO sono strutturati in successione di livelli Ogni livello è costruito a partire da quelli sottostanti 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) Il nucleo è l’unico componente dipendente dalle caratteristiche HW Compilatori Programmi di utilità Gestione banca Gestione biblioteca CAD Gestore della memoria Nucleo HW Gestore delle periferiche Gestore dei file (file system) Interprete comandi (shell)

27 Organizzazione a “livelli”
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 virtuale 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 “livello” risolve un problema specifico

28 Macchine virtuali 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 modulo della memoria consente di gestire la memoria centrale come dedicata interamente al processo il gestore delle periferiche permette al processo di interagire con le periferiche in modo astratto tramite file il file system consente al processo di accedere ai file indipendentemente dalla struttura del disco

29 Nucleo (o Kernel) 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 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 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.

30 Nucleo: macchina astratta
Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 Nucleo: macchina astratta CPU Memoria di lavoro Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O dati controllo indirizzi BUS Capitolo 5 – La formalizzazione dell'informazione 30

31 Video/tastiera (terminale)
Mari, Buonanno, Sciuto – Informatica e cultura dell’informazione – McGraw-Hill 3/27/2017 Memoria di lavoro Memoria di massa Interfaccia I/O Video/tastiera (terminale) Interfaccia I/O dati controllo indirizzi BUS CPU virtuale processo CPU virtuale processo CPU virtuale processo … … … Capitolo 5 – La formalizzazione dell'informazione 31

32 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 (nessun processo deve poter leggere o modificare quanto contenuto nello spazio di indirizzamento virtuale di un altro processo); mascherare la collocazione fisica dei dati (un processo potrebbe agire su uno spazio di indirizzamento di dimensione maggiore di quello della memoria fisica); permettere, 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.

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

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

35 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 sono completamente dedicate alle esigenze del processo in questione il gestore si preoccupa della soluzione degli eventuali conflitti di accesso (es: stampante condivisa fra più utenti) utilizza 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 Gestore dei file (file system)
Si occupa di organizzare i dati e programmi in contenitori logici (file) maschera le operazioni di allocazione e accesso alla memoria 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.

37 Organizzazione del file system
uno root due tre alfa beta f1 f2 f3 f4

38 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 relativi programmi Le operazioni che svolge sono: lettura dalla memoria di massa del programma da eseguire (tramite il gestore dei file); allocazione della memoria centrale (tramite il gestore della memoria); caricamento del programma e dei relativi dati nella memoria allocata (tramite il gestore della memoria); creazione e attivazione del processo corrispondente (tramite il nucleo).

39 Programmi di utilità Consentono di ampliare le funzionalità del SO
facilitano ed ottimizzano l’utilizzo all’utente I programmi di utilità sono (numerosi): Compilatori Debbuger Programmi per le memorizzazione organizzata dei dati (backup) Programmi di ottimizzazione dello spazio occupato su disco Programmi di test Editor di testi ……..

40 Gestione dei processi 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 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.

41 Elaborazione parallela dei programmi
Sistema operativo deve gestire un insieme di risorse scarse Obiettivo: ridurre i periodi di inutilizzo aumentare l’utilizzo del sistema ridurre i tempi di risposta (in caso di interazione con utente) 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; sincronizzazione/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
Le condizioni di parallelismo a livello di programma si riferiscono ai processi programma in esecuzione Un processo è caratterizzato anche dal contesto necessario per la sua esecuzione elenco file utilizzati valori contenuti nei vari registri I processi sono di natura dinamici Ad un programma possono corrispondere più processi (processi figli) es: scrittura e stampa lettera

43 Esecuzione dei processi
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 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 esecuzione Un 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 pronti ad essere eseguiti in attesa della CPU Si tratta di due stati diversi: PRONTO e ATTESA realizzati con due code diverse NOTA: in un dato istante un solo processo è in esecuzione ci possono essere due modalità di esecuzione: esecuzione in modalità utente esecuzione in modalità supervisore

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

46 Transizioni di stato Pronto  Esecuzione Esecuzione  Attesa
Il SO stabilisce quale dei processi “pronti” debba essere mandato in “esecuzione”. La scelta è fatta dall’algoritmo di scheduling che deve bilanciare efficienza e fairness. Esecuzione  Attesa il processo chiede delle risorse che non sono disponibili o attende un evento il SO salva tutte le informazioni necessarie a riprendere l’esecuzione e l’informazione relativa all’evento atteso nella tabella dei processi P E A P E A

47 Esecuzione dei processi
Il processo viene creato e posto nella coda dei processi pronti il primo tra i processi pronti viene posto in esecuzione (FIFO) il processo in esecuzione dispone delle risorse del sistema fino a: termine 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 l’elaborazione dell’istruzione successiva a quella su cui era stato interrotto; richiesta di operazione I/O il nucleo sposta il processo attivo nello stato di attesa; quando l’operazione di ingresso/uscita si completa il processo può proseguire l’elaborazione e viene messo in fondo alla coda dei processi in pronti e prosegue come nel punto precedente; termine esecuzione (istruzione finale) il processo viene eliminato e rimosso dall’elenco dei processi esistenti; 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 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 processo insieme dei dati che rappresentano lo “stato” del processo: situazione della memoria, contenuto dei registri, livello di priorità, … quando 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)
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 l’evoluzione (pronto vs attesa); ripristinare il contesto di P2 per consentirgli una corretta evoluzione.


Scaricare ppt "Il Sistema Operativo I N F O R M A T I C A"

Presentazioni simili


Annunci Google