Il sistema operativo Vito Perrone

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
TEORIA DEI SISTEMI OPERATIVI
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Il Sistema Operativo.
Orario definitivo Martedì Aula 2 Polo Mercoledì Aula 1 Fondi Palazzina delle Scienze Giovedì 9-11 Aula 1 Fondi Palazzina delle Scienze Nota:
Elaboratore e Sistemi Operativo
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
12. Il Sistema Operativo Ing. Simona Colucci
Sommario Il sistema operativo Introduzione
Il sistema operativo.
Sommario Il sistema operativo Introduzione
INTRODUZIONE AI SISTEMI OPERATIVI
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Sistema Operativo e Compilatore
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.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
Sistema Operativo (Software di base)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
I processi.
1 Gestione del Processore (Scheduling). 2 Scheduling dei processi È l’attività mediante la quale il sistema operativo effettua delle scelte tra i processi,
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione del processore (Scheduler)
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Corso di Laurea in Scienze e Tecnologie Chimiche corso di Informatica Generale Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistema operativo Il sistema operativo è un insieme di programmi che gestiscono tutte le componenti hardware e software di un calcolatore. Spesso si può.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l’ambiente e il territorio Il software di base Stefano Cagnoni e Monica Mordonini.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
I primi elaboratori Anni ‘50 Rigidamente sequenziali
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
Sistemi operativi. HW Sistema Operativo Il sistema operativo.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
10. Il Sistema Operativo Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
IL NUCLEO Le funzioni del nucleo sono: Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione.
Transcript della presentazione:

Il sistema operativo Vito Perrone Corso di Informatica A per Gestionali

Indice Architettura Gestione dei processi Gestione della memoria centrale Driver Gestione dei file

Il sistema operativo E’ uno strato software che opera direttamente sull’hardware Isola gli utenti dai dettagli dell’hardware Mono-utente o multi-utente E’ organizzato a strati: Architettura a buccia di cipolla Ogni strato costituisce una macchina virtuale 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

Funzioni del sistema operativo Il gestore dei processi (o nucleo) è responsabile dell’esecuzione dei programmi da parte dell’unità di elaborazione Il gestore della memoria ha la funzione di allocare la memoria e partizionarla tra i vari programmi 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 L’interprete comandi consente all’utente di attivare i programmi

Gestione dei processi

Definizione di processo Il termine processo fa riferimento all’esecuzione di un programma Un processo P è una coppia di elementi (E, S), che comprende il codice eseguibile E del programma e lo stato S del processo Lo stesso programma può essere associato a più processi: 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

Stati di un processo (1) L’unità di elaborazione che esegue i processi prende nome di processore. In generale vi saranno n processori 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

Processo in esecuzione Stati di un processo (2) Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore In esecuzione: assegnato al processore ed eseguito da esso Pronto: può andare in esecuzione, se il gestore dei processi lo decide In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto

Processo in esecuzione Stati di un processo (3) I processi appena creati sono messi in stato di pronto Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P2 P1 Il nucleo decide quale processo pronto mettere in stato di esecuzione Il nucleo assegna il processore a un processo per un quanto di tempo Coda dei processi pronti Round-robin Priorità dei processi Round Robin: Scheduling alghoritm; Molto adatto per i sistemi multi-tasking; Semplice algoritmo di scheduling nel quale ogni processo è attivato in modo ciclico ed è eseguito per un quanto di tempo o timeslice. Quando un processo termina il quanto viene messo in coda. Quando un processo è in attesa di qualche risorsa, input o terminazione di processi figli passa il controllo allo scheduler. Una delle virtù dell’algoritmo è la sua semplicità in quanto solo gli stessi processi hanno bisogno di sapere per cosa sono stati messi in attesa e come rilevare l’evento che li risveglia (evento esterno). Uno degli svantaggi è che quando un pro

Processo in esecuzione Stati di un processo (4) Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna) Corrisponde alla esecuzione dell’istruzione “chiamata a supervisore” (SuperVisor Call, SVC) P2 P1

Processo in esecuzione Stati di un processo (5) Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore Cambiamento di contesto: Salvare il contesto di P1 nel suo descrittore di processo P2 Il processore è ora libero, un altro processo passerà in esecuzione P1

Processo in esecuzione Stati di un processo (6) Quando l’operazione di I/O è finita viene generata un’interruzione esterna Il processo in esecuzione viene interrotto Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore P2 Il nucleo esegue il gestore delle interruzioni che esegue le azioni opportune P1 può tornare pronto P1 Il nucleo sceglie quale processo mandare in esecuzione

Processo in esecuzione Stati di un processo (7) Processo in esecuzione Processo pronto Processo in attesa Inizio esecuzione Primo processo pronto - Fine quanto di tempo - Interruzione esterna Interruzione interna Evento esterno atteso - Fine esecuzione - Abort per errore Pre-emption: quando il quanto di tempo è scaduto, il nucleo interrompe il processo in esecuzione P2 Si cerca di garantire un uso equo della CPU a tutti i processi P1

Sincronizzazione A volte, i processi devono sincronizzarsi, ovvero coordinare le loro attività Il coordinamento sequenziale: un processo termina invocando l’attivazione di un altro processo La competizione: due processi vogliono accedere simultaneamente a una medesima risorsa (risorsa critica)

Gestione della memoria centrale

Rilocazione e paginazione La gestione concorrente di molti processi, comporta la presenza di molti programmi in memoria centrale Per allocare i programmi in memoria è necessario rilocarli (trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici) 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 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 La segmentazione e la paginazione non sono tecniche alternative. Spesso sono applicate contemporaneamente

La memoria virtuale In entrambi i casi, il gestore della memoria offre al programma applicativo la visione di una memoria virtuale 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

La catena di programmazione (1) 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

La catena di programmazione (2) 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

La rilocazione Rilocazione statica: Rilocazione dinamica: + 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

Modo S e modo U La memoria è suddivisa in: Memoria di modo S (supervisore): contiene i programmi di sistema operativo e vengono create 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”

Driver

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

Gestione dei file

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

La struttura ad albero

Organizzazione dei file A ciascun utente è normalmente associata una directory specifica, detta home directory 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 Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova