Sistema Operativo Compilatore



Documenti analoghi
Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Sistema Operativo

Il Software. Il software del PC. Il BIOS

Infrastrutture Software

Il Sistema Operativo (1)

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Le Infrastrutture Software ed il Sistema Operativo

Sistemi operativi. Esempi di sistemi operativi

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il sistema operativo

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Approccio stratificato

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

FONDAMENTI di INFORMATICA L. Mezzalira

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Dispensa di Informatica I.1

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Gestione della memoria centrale

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Funzioni del Sistema Operativo

Fondamenti di Informatica: Sistemi Operativi 1. Introduzione

Architettura di un sistema operativo

Introduzione ai Sistemi Operativi

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Software di base. Corso di Fondamenti di Informatica

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Corso di Informatica

Corso di Sistemi di Elaborazione delle informazioni

INFORMATICA 1 L. Mezzalira

Fondamenti di Informatica

Pronto Esecuzione Attesa Terminazione

Sistemi Operativi. 5 Gestione della memoria

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Capitolo Silberschatz

Protezione. Protezione. Protezione. Obiettivi della protezione

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

HARDWARE. Relazione di Informatica

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sistema di protezione (1)

Sistema di protezione (2) Protezione (1)

Il computer: primi elementi

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Sistemi operativi e reti A.A Lezione 2

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

Corso di Informatica

Lezione 5: Software. Firmware Sistema Operativo. Introduzione all'informatica - corso E

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

Introduzione ai sistemi informatici 3/ed Donatella Sciuto, Giacomo Buonanno, Luca Mari. Copyright 2005 The McGraw-Hill Companies srl

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Il memory manager. Gestione della memoria centrale

CAPITOLO 1 I SISTEMI OPERATIVI

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Il software. la parte contro cui si può solo imprecare. Il software

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistema operativo: Gestione della memoria

Linguaggi di programmazione

Esercitazione E1 Scheduling, deadlock, monitor

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

La Macchina Virtuale

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Laboratorio di Informatica

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

Transcript:

MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema Operativo Sistema operativo: strato di interfaccia fra l utente e l hardware che permette di: Superare problemi legati alle limitazioni delle risorse hardware Favorire la condivisione delle risorse hardware, regolandone l accesso da parte di utenti/programmi diversi Compito principale di un sistema operativo: Fornire un sistema virtuale, più semplice da usare rispetto l hardware che si ha effettivamente a disposizione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 2

Classificazione dei Sistemi Operativi In base al numero di utenti: Multi-utente: più utenti contemporaneamente possono interagire con la macchina. nel caso di più utenti collegati, il sistema operativo deve fornire a ciascun utente l astrazione di un sistema dedicato In base al numero di programmi in esecuzione: Mono-programmato: il sistema può gestire l esecuzione di al più un programma alla volta. Multi-programmato: il sistema operativo è in grado di portare avanti l esecuzione contemporanea di più programmi (mantenendo una sola CPU). nel caso di multi-programmazione il sistema operativo deve gestire l unità di elaborazione (CPU) suddividendola tra i vari programmi. Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 3 Sicurezza e Protezione Controllo degli accessi I sistemi operativi multi-utente possiedono meccanismi per l identificazione degli accessi al sistema Procedura di accesso al sistema: login A ogni utente è associato uno username e una password Protezione Ogni utente può accedere solo a determinati file e risorse Permessi di scrittura, lettura ed esecuzione Administrator (o root) utente privilegiato» Accesso a qualsiasi file o risorsa Personalizzazione Ogni utente può configurare (nei limiti dei permessi ad esso associati) il proprio ambiente operativo Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 4

Architettura di un Sistema Operativo Un moderno S.O. è organizzato secondo una architettura a strati (a cipolla) Ogni strato implementa una macchina virtuale più potente della precedente Appoggiandosi alle funzionalità offerte dallo strato precedente Tale approccio permette una chiara separazione tra interfaccia e implementazione delle diverse funzionalità Ogni strato è costituito da un insieme di programmi e librerie I meccanismi di chiamate tra livelli possono essere diversi chiamate a sottoprogrammi, interruzioni sincrone o asincrone,invio di messaggi a processi Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 5 Nucleo del Sistema Operativo (Kernel( Kernel) Compiti del kernel: Esegue i programmi e risponde agli eventi generati dalle periferiche Requisito Fondamentale: consentire a utenti/programmi diversi la condivisione delle risorse Offrire virtualmente ad ogni utente/programma tutta la macchina Come se si avessero a disposizione tante CPU virtuali Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 6

Programmi e Processi Programma: entità statica Memorizzato in genere su di un dispositivo di massa Processo: entità dinamica Programma in esecuzione Dati utilizzati dal programma Informazioni relative al programma (contesto) Ad un programma possono corrispondere diversi processi Copie contemporaneamente in esecuzione Un processo può a sua volta richiedere l esecuzione di altri processi processo padre processo figlio Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 7 Stati di un processo Inizio esecuzione: accodamento ai processi pronti Selezione primo processo pronto e sua esecuzione Termine elaborazione Pronti In esecuzione Termine quanto di tempo Completamento operazione di IO In attesa Richiesta operazione di IO Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 8

Politiche di scheduling di un processo Round-Robin Assegnare a rotazione la disponibilità di un unità di tempo (time slice) della CPU ai vari processi coda FIFO (First In First Out) Un processo può anche rinunciare al tempo di CPU attesa di I/O Round-Robincon priorità Ad ogni processo viene assegnata una priorità viene scelto il processo con priorità massima I processi ad uguale livello di priorità vengono trattati con politica FIFO Esempio: Windows 2000 Round-Robin con priorità (con alcune varianti) Quanto: 13-30ms Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 9 Problematiche di concorrenza Problemi legati alla virtualizzazione delle risorse Starvation: un processo non riesce mai ad accedere ad una risorsa Nel caso di scheduling con priorità, un processo a bassa priorità potrebbe non riuscire mai a guadagnare la CPU Deadlock : più processi bloccati a vicenda Il processo P1 ha ottenuto l accesso esclusivo alla stampante ed è in attesa di poter accedere al disco (dove risiedono i dati da stampare), che è però a sua volta controllato in maniera esclusiva dal processo P2. P2 rilascerà il disco dopo essere riuscito a ottenere l accesso alla stampante. Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 10

Comunicazione tra i processi Scambio di dati tra i processi Mediante uno spazio di memoria comune (shared memory) Mediante scambio di messaggi Sincronizzazione Metodi per il controllo degli eventi (semafori) Un processo P1 deve attendere che P2 abbia prodotto determinati risultati prima di iniziare una determinata elaborazione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 11 Gestore della memoria Spazio di indirizzamento virtuale I processi possono ignorare l effettiva collocazione fisica del codice e dei dati in memoria Protezione della memoria I dati e le istruzioni dei programmi vengono protette, in modo che nessun altro processo possa leggerle o modificarle Condivisione della memoria Permettere, in modo controllato, la parziale sovrapposizione degli spazi di memoria dei vari processi Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 12

Gestore della memoria Memoria vituale Gli strati di livello superiore posso lavorare come se avessero a disposizione l intera memoria centrale Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 13 Rilocazione del codice Output del linker Codice in linguaggio macchina in cui tutti i nomi simbolici e i riferimenti sono stati risolti (espressi come indirizzi di memoria) Questo spazio di memoria (logico) non coincide necessariamente con la memoria in cui risiederà il programma durante l esecuzione (spazio fisico) E necessario rilocare il codice del programma Codice rilocato in memoria, pronto per l esecuzione Codice non rilocato prodotto dal linker Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 14

Rilocazione del codice Statica Eseguita direttamente dal linker È necessario conoscere in anticipo in quale parte della memoria sarà caricato il programma Dinamica È una necessità nei casi della multi-programmazione Eseguita continuamente durante l esecuzione di ogni istruzione del programma Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 15 Gestore delle periferiche Periferiche astratte Le caratteristiche fisiche delle periferiche e le operazioni di IO che le coinvolgono vengono mascherate Vengono esposte una serie di primitive a livello più alto per leggere e scrivere i dati Ogni processo si trova ad operare con periferiche virtualmente dedicate solo ad esso Gestione delle problematiche relative ai conflitti di accesso Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 16

Gestore delle periferiche Drivers Programmi per la gestione delle periferiche Inclusi nel sistema operativo Spesso sono realizzati e forniti dai produttori delle periferiche stesse Nascondono al programma applicativo e al resto del SO l effettiva modalità con cui avviene lo scambio dei dati con le periferiche Generalmente tale modalità è diversa per ogni tipo di dispositivo Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 17 Gestore dei file (filesystem( filesystem) Funzioni principali di un FS: Fornire un meccanismo di identificazione univoca dei file Implementare i meccanismi per accedere ai file Realizzare metodi per il controllo di accesso ai file Allocare spazio su disco per la memorizzazione dei file Deallocare spazio su disco con l operazione di cancellazione Fornire un interfaccia utente per: Creazione, cancellazione, spostamento, ispezione di file e directory I più comuni sono FAT 16: Windows3.x, Windows95 FAT 32: Windows95(S), Windows98, Windows ME NTFS (New Technology File System): Windows NT, Windows 2000 Pro e Server Ext2: Unix, Linux Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 18

Gestore dei files Componenti principali del filesystem windows: Ogni disco è suddiviso in unità di allocazione chiamate cluster Partition Table Si trova nel Master Boot Record di ogni HD (il primo settore di ogni disco) e contiene le informazioni sulle partizioni Directory Table Contiene le informazioni sui file e sulle sottodirectory contenute in una directory FAT (File Allocation Table) Permette di individuare i cluster occupati da un file L indice della tabella rappresenta il numero di cluster Il contenuto è il numero del successivo cluster occupato da un dato file È il cuore del filesystem, per sicurezza viene duplicata per proteggerla da cancellazioni o danneggiamenti accidentali Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 19 Interazione con l utente Interprete dei comandi Riceve i comandi tramite i dispositivi di input Esegue i programi assocciati a tali comandi Lettura della memoria di massa del programma da eseguire Filesystem Allocazione della memoria centrale necessaria e caricamento del programma Gestore della memoria Creazione, attivazione e gestione del processo Kernel Programmi di utilità Come l interprete dei comandi sono direttamente visibili all utente Compilatori, editor, programmi di backup, utility di deframmentazione etc. etc. Interfacce utente A caratteri Grafiche: GUI (Graphical User Interface) Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 20

Ambiente di programmazione CPU: esegue programmi scritti in linguaggio macchina E possibile codificare qualsiasi algoritmo in linguaggio macchina Ambiente di Sviluppo l insieme dei programmi che consentono la scrittura e la verifica di nuovi programmi Editor serve per la costruzione di file che contengono testi. In particolare tramite un editor si scrive il programma sorgente. Traduttore opera la traduzione di un programma sorgente scritto in un linguaggio ad alto livello in un programma oggetto scritto in linguaggio macchina Compilatori: accettano in ingresso l intero programma e producono in uscita la rappresentazione dell intero programma in linguaggio macchina. Interpreti: traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione. Linker nel caso in cui il programma sia suddiviso in moduli (oggetto) separati provvede a collegarli per formare un unico programma eseguibile. Debugger serve per scoprire ed eliminare errori presenti durante l esecuzione di un programma, ma non rilevati in fase di compilazione. Linguaggi ad alto livello Minore tempo di sviluppo dei programmi Maggiore riusabilità del codice Modularità e standardizzazione nella progettazione del software Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 21 Interprete Funzionamento di un interprete: Preleva un istruzione I del programma P scritto nel linguaggio L Decodifica I Traduce I in una serie di istruzioni in linguaggio macchina M 1, M 2,,M n Esegue M 1, M 2,,M n Passa all istruzione successiva di P fino a quando non si sia raggiunta una istruzione di terminazione Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 22

Compilatore Funzionamento di un compilatore Traduce il programma P (sorgente) scritto in liguaggio L in un programma E (eseguibile) equivalente in linguaggio macchina La traduzione viene eseguita una sola volta Il programma E può essere eseguito più volte Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 23 Compilazione vs Interpretazione I programmi commerciali sono solitamente compilati Maggior velocità di esecuzione Protezione del codice sorgente Con l avvento di Internet è stato riavvivato l interesse per gli interpreti JavaScript, VBScript Soluzioni miste Visual Basic, Java Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 24

Compilatore È possibile suddividere il programma sorgente in diverse parti Moduli sorgente Fase di compilazione: Ogni modulo sorgente viene compilato producendo l equivalente in linguaggio macchina Modulo oggetto Eventuali riferimenti a dati o routine di altri moduli vengono raggruppati Tabelle dei simboli Fase di linking: I moduli oggetto vengono collegati risolvendo i riferimenti contenuti nella tabella dei simboli, producendo un unico programma eseguibile Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 25