12. Il Sistema Operativo Ing. Simona Colucci

Slides:



Advertisements
Presentazioni simili
Il Sistema Operativo.
Advertisements

12. Il Sistema Operativo Ing. Simona Colucci
Struttura dei sistemi operativi (panoramica)
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Il sistema operativo Vito Perrone
Il sistema operativo.
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Sistema Operativo (Software di base)
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
LA MEMORIA CENTRALE. La memoria nella struttura generale del calcolatore MEMORIA CONTROLLO INGRESSO E USCITA ARITMETICA E LOGICA CPU Dispositivi esterni.
IL PROCESSORE I MICROPROCESSORI INTEL Il microprocessore è un circuito integrato dotato di una struttura circuitale in grado di effettuare un determinato.
Presentazione web domanda di accreditamento Programmazione
Giuditta Cantoni, 4 E S.I.A I DATABASE. Definizione databese In informatica, il termine database, banca dati o base di dati (a volte abbreviato con il.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
Sistemi Operativi : Gestione della Memoria Anno Scolastico 2012/2013 Un sistema operativo è un programma o un insieme di programmi che garantisce e permette.
Il Sistema Operativo. Sistema Operativo (Software di base) Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità.
Gestione delle configurazioni Configuration management (CM) E` un processo che controlla le modifiche fatte a un sistema e gestisce le diverse versioni.
IL SISTEMA OPERATIVO (seconda parte) PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI.
PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa.
Informatica - CDL in Scienze Politiche e delle Relazioni Internazionali A.A Architettura di un calcolatore Ing. Simona Colucci.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI LINGUAGGIO MACCHINA.
CONTROLLO DELLA CONCORRENZA
6. Codifica degli algoritmi in un linguaggio di alto livello
Corso di Elementi di Informatica
Sistema Operativo Il software può essere diviso in due grandi classi:
Process synchronization
Sistemi operativi.
Il Sistema Operativo Gestione dei Processi
Prova d’Esame: selezione di domande
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Introduzione al linguaggio C
Il Sistema Operativo Ripasso
Programmazione per la Musica | Adriano Baratè
LE ARCHITETTURE NON VON NEUMANN
Microcontrollori e microprocessori
I microprocessori Il microprocessore è un circuito integrato costituito da silicio. Il microprocessore svolge fondamentalmente due funzioni: sovraintende.
Sicurezza dati: Backup
SISTEMA OPERATIVO - INTERPRETE DEI COMANDI -
Organizzazione fisica
STRUTTURA GENERALE DI UN ELABORATORE
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
I BUS È un insieme di fili conduttori che permette il passaggio di dati tra le varie periferiche del pc.
Architetture non Von Neumann
Informatica per l’Ingegneria
SAS® OnDemand for Academics SAS Studio
Capitolo 7 Le infrastrutture SoftWare
analizzatore di protocollo
Database
istalliamo l’ambiente di sviluppo - ide
Processi e Thread Meccanismi di IPC (1).
Predisposizione e presentazione della domanda di nullaosta
Sistemi Operativi.
Programmare.
Scheduling in Linux (Kernel 2.4 e 2.6)
© 2007 SEI-Società Editrice Internazionale, Apogeo
Ricorsione 16/01/2019 package.
Definizione di linguaggio di programmazione
Processi e thread in Windows 2000
File System ed Input/Output
APPUNTI SUL LINGUAGGIO C
LINUX: struttura generale
Concorrenza e parallelismo
Predisposizione e presentazione della domanda di nullaosta
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Scheduling (Schedulazione)
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Progetto del processore e supporto del processore al SO (interruzioni – eccezioni) Salvatore Orlando.
Transcript della presentazione:

12. Il Sistema Operativo Ing. Simona Colucci Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Il sistema operativo(SO) E’ uno strato software che opera direttamente sull’hardware Isola gli utenti dai dettagli dell’hardware fornendo funzionalità di alto livello Mono-utente o multi-utente: Il SO deve garantire che ogni utente avverta la macchina come dedicata E’ organizzato a strati: Architettura a buccia di cipolla Ogni strato costituisce una macchina virtuale: Una macchina che maschera le caratteristiche di una macchina hardware ed offre ai suoi utenti delle funzionalità Una macchina che esporta funzionalità all’esterno senza mostrare i propri meccanismi implementativi: struttura modulare del SO Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Kernel Architettura del sistema operativo Programmi utente Interprete comandi attivazione programmi d’utente o di sistema File system controllo e gestione degli accessi a file Gestione delle periferiche gestione di ingresso/uscita da periferica Gestione della memoria allocazione e gestione della memoria Gestione dei processi (nucleo) gestione dei processi e delle interruzioni Macchina fisica Kernel Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Funzioni del sistema operativo Il gestore dei processi (o nucleo) è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione gestisce l’esecuzione contemporanea di molti processi reagisce agli eventi esterni offre la visione di un’unità di elaborazione dedicata a ciascun utente Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi offre la visione di una memoria dedicata a ciascun utente I driver sono responsabili delle operazioni di ingresso/uscita che coinvolgono le periferiche Il file system è responsabile della gestione dei file in memoria di massa fornisce all’utente funzioni di alto livello per operare sui file L’ interprete comandi usa gli strati sottostanti per: accedere al programma in memoria di massa tramite file system allocare la memoria e caricarvi il programma tramite gestore della memoria attivare un processo, tramite il nucleo Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Obiettivo del SO Ottimizzare le prestazioni del sistema informatico determinando le politiche migliori di gestione delle risorse sotto il suo controllo Attività necessarie: gestire l’eventuale sovraccarico di richieste ridurre il tempo di attesa dell’utente in condizioni di carico complessivo elevato Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Un processo P è una coppia di elementi (E, S) Gestione dei processi Processo: esecuzione(oggetto dinamico) di un programma(oggetto statico) Un processo P è una coppia di elementi (E, S) E: codice eseguibile del programma S: stato del processo(insieme di tutti i valori contenuti nella memoria centrale e nei registri della CPU, in particolare il PC) Lo stesso programma può essere associato a più processi(assenza di corrispondenza biunivoca): Un programma può essere scomposto in varie parti e ognuna di esse può essere associata ad un diverso processo Lo stesso programma può essere associato a diversi processi quando diverse copie del medesimo processo sono mandate in esecuzione Alcuni linguaggi di programmazione (concorrenti) prevedono l’esecuzione di un programma in più processi L’unità di elaborazione che esegue i processi prende nome di processore nel contesto dei SO(in generale vi possono essere n processori, ma ne supporremo uno solo) I processi possono essere classificati come: In esecuzione Pronti In attesa Ipotesi semplificative: Un programma sia associato a un solo processo Il sistema sia dotato di un unico processore Uno solo dei processi può essere in esecuzione in un certo istante, gli altri processi saranno pronti oppure in attesa Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Classificazione dei processi in esecuzione: eseguiti istante per istante dal processore(uno solo nelle nostre ipotesi) pronti: possono andare immediatamente in esecuzione se il gestore dei processi lo decide in attesa: attendono il verificarsi di un evento esterno per passare in stato di pronto Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Il processo in esecuzione richiede un’operazione di I/O: Interruzioni interne Il processo in esecuzione richiede un’operazione di I/O: l’esecuzione del processo si sospende il processo passa dallo stato in esecuzione allo stato in attesa il nucleo diviene attivo Sono eventi sincroni rispetto alle attività del processore Corrispondono all’esecuzione di una istruzione detta chiamata a supervisore(SVC, supervisor call) che fa passare il processore dall’esecuzione di un processo utente all’esecuzione di un processo di sistema operativo Bloccano il processo in esecuzione per evitare l’attesa di un’operazione di I/O prima della prosecuzione Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Interruzioni interne: context switching Sospensione: il processo sospeso deve poter riprendere esattamente nello stato al momento dell’interruzione interna, per cui c’è necessità di: salvataggio del contesto al momento dell’interruzione: copia del contenuto dei registri del processore nell’area di memoria chiamata descrittore del processo ripristino del contesto prima di rimandare in esecuzione il processo: copia del descrittore di processo nei registri del processore Scelta del processo pronto da avviare al posto di quello sospeso Esecuzione del nuovo processo pronto: ripristino del suo contesto ed esecuzione dell’istruzione contenuta nel registro Program Counter Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Sono eventi asincroni rispetto alle attività del processore Interruzioni esterne Causano il passaggio di un processo da stato di attesa(dovuto a sospensione per interruzione interna) a stato di pronto Si verificano quando la periferica ha terminato di eseguire l’operazione e chiede la sospensione del processo in esecuzione per il completamento dell’operazione di I/O al fine di trasformare in pronto il processo in attesa Sono eventi asincroni rispetto alle attività del processore Vengono segnalate al processore tramite il registro delle interruzioni(INTR): ha varie posizioni corrispondenti alle possibili interruzioni, segnalate da un bit posto ad 1(se l’evento non è presente il bit rimane a 0 per convenzione) la CPU verifica la presenza di un’interruzione calcolando l’OR dei bit di registro INTR tramite circuiti elettronici Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Interruzioni esterne: gestione Il nucleo: salva il contesto del programma attivo che passa da stato in esecuzione a stato di pronto richiama il sottoprogramma gestore delle interruzioni che esegue le operazioni necessarie a far fronte alla particolare interruzione dopo la gestione dell’interruzione sceglie uno dei programmi in stato di pronto e lo manda in esecuzione Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Processi: passaggi di stato Interruzioni interne(passaggio da esecuzione a in attesa) Interruzioni esterne(passaggio da in esecuzione a pronto) Evento esterno atteso(passaggio da in attesa a pronto) Processo pre-empted: sospeso dal nucleo dopo un certo intervallo temporale per garantire un uso paritario della CPU(passaggio da in esecuzione a pronto) Processo aborted: interrotto e terminato forzatamente dal nucleo a seguito di un errore(da in esecuzione a terminato) Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Passaggi di stato: diagramma stato/trasizioni Interruzione esterna, fine quanto di tempo Inizio esecuzione Processo in esecuzione Processo pronto Primo processo pronto Interruzione interna Evento esterno atteso Processo in attesa Abort per errore Fine esecuzione Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Gestione dei processi della CPU Obiettivo: ogni programma utente deve essere eseguito entro un tempo approssimativamente proporzionale alla sua complessità(necessità di processi pre-empted) Politica più semplice: rotazione dei processi(round robin): si assegna il processore ad un processo per un quanto di tempo (sufficientemente maggiore del tempo di context switching e sufficientemente minore del tempo di esecuzione del programma) dopo il quanto di tempo il processo viene interrotto di autorità e passato nei processi pronti si gestisce una coda di processi pronti con strategia FIFO(First In First Out) Risultato: attesa proporzionale alla lunghezza del programma e al numero di operazioni I/O richieste programmi brevi favoriti nel completamento massimizzazione del throughput di sistema: programmi completati nell’unità di tempo Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Gestione dei processi della CPU: politiche alternative Gestione delle priorità: si crea una coda dei processi pronti per ogni livello di priorità si preleva sempre il primo processo della coda a priorità più alta Scenario applicativo: sistemi di sicurezza Problema: attesa troppo lunga per priorità basse Soluzione: cambio dinamico della priorità in base allo stato Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Coordinamento delle attività di diversi processi: Sincronizzazione Coordinamento delle attività di diversi processi: coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo(coordinamento semplice) coordinamenti complessi: competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica) cooperazione: un processo ha bisogno dell’altro per evolvere Fanno uso di variabili condivise(semafori) per l’accesso a parti critiche dei programmi e della comunicazione esplicita tra processi tramite scambio di messaggi. Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Problemi connessi con la gestione della memoria: Gestione della memoria centrale La gestione concorrente di molti processi comporta la presenza di molti programmi in memoria centrale: la MM diventa una risorsa unica, in generale scarsa, da suddividere tra i vari programmi Problemi connessi con la gestione della memoria: Per allocare i programmi in memoria è necessario rilocarli : trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici(l’uso degli indirizzi simbolici consente il caricamento del programma in porzioni di memoria differente). Paginazione: La memoria centrale è considerata dal gestore della memoria come partizionata in pagine Ciascuna di queste è un’area di memoria contigua, di dimensione fissata Dati e programmi vengono partizionati in pagine e allocati in un numero intero di pagine, non necessariamente contigue Segmentazione: Durante la compilazione, il programma è frazionato in parti che svolgono differenti funzioni Per es. si possono separare i dati dalle istruzioni E’ una partizione logica del programma. Consente al gestore della memoria di caricare i segmenti che compongono il programma stesso in maniera indipendente Mentre le pagine hanno lunghezza fissa, i segmenti, hanno lunghezza variabile Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Meccanismi di gestione Paginazione: il gestore della memoria la considera partizionata in pagine, che occupano aree contigue di dimensione fissata i programmi vengono partizionati in pagine Segmentazione: durante la compilazione un programma viene frazionato in parti che svolgono differenti funzioni la dimensione dei segmenti è variabile perché essi sono semanticamente significativi il gestore della memoria può caricare in maniera indipendente i segmenti NON sono tecniche alternative. Spesso sono applicate contemporaneamente Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

La memoria virtuale Sia nel caso della paginazione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale La memoria virtuale v può essere maggiore di quella fisica p: è sufficiente allocare più pagine o segmenti di quelli che possono stare contemporaneamente in p(quelli non caricati in MM rimangono disponibili in memoria di massa dove i programmi con i relativi dati sono organizzati in file): i programmi con dimensione s>p possono essere eseguiti se s<v; in questo caso gli indirizzi di s sono riferiti a v quindi: i registri devono potere indirizzare tutta v; il gestore della memoria converte gli indirizzi virtuali in fisici La memoria virtuale è maggiore di quella fisica: E’ possibile allocare più pagine o segmenti di quelle che possono stare nella memoria fisica allo stesso tempo Le pagine o i segmenti che non sono al momento caricate nella memoria fisica rimango disponibili nella memoria di massa La gestione della memoria è coordinata con la gestione dei processi: Quando un processo è eseguito, le pagine o i segmenti che sono al momento in esecuzione o che contengono i dati attualmente indirizzati devono essere caricati in memoria Se una pagina o un segmento necessario al programma non è presente, il processo deve essere sospeso per consentire il caricamento Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Gestione dei processi e della memoria La gestione della memoria è coordinata con la gestione dei processi: le pagine e i segmenti di programma che sono attualmente in esecuzione o che contengono dati attualmente indirizzati devono risiedere in MM se una pagina o un segmento necessari ad un processo in esecuzione non si trovano in MM, il processo viene sospeso e passa in stato di attesa dopo l’operazione di input da memoria di massa della pagina o segmento il processo torna ad essere pronto Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

La catena di programmazione Rilocazione: La catena di programmazione Il compilatore trasforma un modulo di programma sorgente in un modulo di programma oggetto; trasforma le variabili locali ai moduli in indirizzi rilocabili Il linker trasforma diversi moduli oggetto in un unico programma eseguibile collega il programma utente a librerie di programmi di utilità trasforma le variabili esterne a tutti i moduli in indirizzi rilocabili Il loader carica il programma eseguibile in memoria se il programma ha indirizzi assoluti il loader non ha margini di intervento se il programma ha indirizzi rilocabili il loader si occupa della rilocazione Il compilatore trasforma un modulo di programma sorgente in un modulo di programma oggetto Un programma può essere suddiviso in parti (moduli) I nomi delle variabili locali al modulo di programma vengono tradotti in indirizzi rilocabili (espressi in forma logica) I riferimenti alle variabili esterne al modulo, restano in formato simbolico Il linker trasforma diversi moduli oggetto in un unico programma eseguibile Il linker risolve i riferimenti a variabili definite esternamente a ciascun modulo, trasformando i residui indirizzi simbolici in indirizzi rilocabili A volte (raramente) gli indirizzi sono espressi in formato assoluto (calcolati a partire da una specifica cella di memoria) Il loader carica il programma eseguibile in memoria Indirizzi assoluti: il loader caricare il programma nella specifica zona di memoria Indirizzi rilocabili: il loader è responsabile della loro rilocazione Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

+ Registro base Indirizzo calcolato Indirizzo rilocabile La rilocazione Rilocazione statica: All’atto del caricamento in memoria Trasforma il codice: indirizzi rilocabili  indirizzi assoluti Registro base Indirizzo rilocabile + Indirizzo calcolato Rilocazione dinamica: Non comporta una conversione del codice Richiede l’utilizzo di due registri speciali: Il registro base contiene il valore dell’indirizzo della prima cella di memoria a partire dalla quale il programma è stato caricato Il registro dimensione contenente la dimensione del programma; permette di verificare che l’indirizzo generato dal programma rientri nello spazio indirizzabile Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

La memoria è suddivisa in: Modo S e modo U La memoria è suddivisa in: Memoria di modo S (supervisore): contiene i programmi di sistema operativo (possono usare tutte le istruzioni del calcolatore, possono essere allocati in memoria in maniera ottimale,devono essere protetti da errori procurati da altri programmi) e le strutture dati da esso utilizzate Memoria di modo U (utente): contiene i programmi utente Se il processore sta eseguendo un processo utente : Lo si dice attivo in modo utente (in modo U) può accedere soltanto alla memoria di modo U Se il processore sta eseguendo un processo di sistema: E’ attivo il nucleo Si dice attivo in modo supervisore (in modo S) Può accedere alla memoria di modo S e di modo U Può eseguire istruzioni “privilegiate” Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Garantiscono ai programmi che li usano una visione di alto livello I driver Sono meccanismi software cui è affidato il compito di comunicare dati da e verso le periferiche Garantiscono ai programmi che li usano una visione di alto livello E’ possibile leggere o scrivere tramite primitive indipendenti dalla struttura hardware delle periferiche Si distingue fra: Driver fisici (hardware): Vengono attivati direttamente dal gestore delle interruzioni Driver logici (software): Fanno parte del sistema operativo e forniscono una gerarchia di operazioni, con un’organizzazione a strati Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Consente di gestire i file sulla memoria di massa: Il file system Consente di gestire i file sulla memoria di massa: Creare un file Dargli un nome Collocarlo in un opportuno spazio nella memoria di massa Accedervi in lettura e scrittura Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa I file vengono inclusi all’interno di directory (o cataloghi): Hanno una tipica organizzazione ad albero Alcuni sistemi operativi permettono una struttura a grafo(un file può appartenere a più directory) Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

La struttura ad albero Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

Organizzazione dei file A ciascun utente è normalmente associata una directory specifica, detta home directory, che ha lo stesso nome dell’utente Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero: nome unico Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017

File System: funzioni disponibili agli utenti creazione di file creazione di directory elencazione dei file cambiamento del contesto copia di un file visualizzazione di un file rinominazione di un file cancellazione di file o directory Informatica per l’Ingegneria- CDL in Ingegneria Informatica- A.A. 2016-2017