Sistema Operativo e Compilatore

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

STRUTTURA DEL SISTEMA OPERATIVO
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.
Gestione della memoria
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Gestione dei processi A. Ferrari.
I file system.
INFORMATICA Trattamento automatizzato dellinformazione.
TEORIA DEI SISTEMI OPERATIVI
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
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
12. Il Sistema Operativo Ing. Simona Colucci
Strutture dei Sistemi Operativi
INTRODUZIONE AI SISTEMI OPERATIVI
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
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.
Laboratorio di Informatica
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
I SISTEMI OPERATIVI.
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.
Il Software Una programmazione diretta della macchina hardware da parte degli utenti è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica.
STRUTTURA GENERALE DI UN ELABORATORE
SISTEMA OPERATIVO..
Software e sistema operativo 19-22/5/08 Informatica applicata B Cristina Bosco.
Il sistema operativo.
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Il Sistema Operativo (1)
Il Sistema Operativo: il File System
prof. Antonella Schiavon ottobre 2009
Il Software Programmare direttamente la macchina hardware è molto difficile: l’utente dovrebbe conoscere l’organizzazione fisica del computer e il suo.
I sistemi operativi1 CONCETTI FONDAMENTALI l HARDWARE: il componente “materiale” di un sistema informatico l SOFTWARE: il componente “immateriale” di un.
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.
Autori:  Gazzola Alex  Cassol Simone  Kawkab Wassim Data: 14/04/2014 Classe: 3° INF.
I processi.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
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.
Concetti Fondamentali sulla Programmazione
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.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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.
Il software Claudia Raibulet
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
INTRODUZIONE AI SISTEMI OPERATIVI. Introduzione Il software può essere diviso un due grandi classi: Il software può essere diviso un due grandi classi:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
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.
Definizione e obiettivi del Sistema Operativo. DIFFERENZA TRA SISTEMA OPERATIVO – SOFTWARE APPLICATIVO Sistema operativo è un insieme organico di programmi.
Transcript della presentazione:

Sistema Operativo e Compilatore Università degli Studi di Catania Facoltà di Ingegneria Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Sistema Operativo e Compilatore Prof.Salvatore Cavalieri

Il sistema operativo Strato di interfaccia fra l’utente e l’hardware che permette di: Superare problemi legati alla gestione delle risorse hardware Favorire la condivisione delle risorse hardware, regolandone l’accesso da parte di utenti/programmi diversi Compito principale: Fornire un sistema “virtuale”, più semplice da usare rispetto l’hardware che si ha effettivamente a disposizione

Classificazione dei Sistemi Operativi In base al numero di utenti: Mono-utente: un solo utente alla volta può utilizzare il sistema 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 di più programmi dando l'impressione della contemporaneità (sebbene ci sia una sola CPU). nel caso di multi-programmazione il sistema operativo deve gestire l’unità di elaborazione (CPU) suddividendola tra i vari programmi.

Sicurezza e protezione Controllo degli accessi: 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

Architettura di un Sistema Operativo Modello a strati gerarchici: Struttura organizzata su diversi livelli Gerarchie di macchine virtuali con il compito di gestire specifiche risorse fornendo meccanismi logici di accesso, che ne regolamentino l’uso e ne mascherino l’effettivo funzionamento kernel hw

Il nucleo del sistema operativo (kernel) Compiti del kernel: Dialoga direttamente con l’hardware Esegue i programmi utente Risponde agli eventi (Interrupt) generati dalle periferiche Requisiti Fondamentali: Consentire a utenti/processi diversi la condivisione delle risorse Offrire virtualmente ad ogni utente/processo una CPU CPU Virtuale Processo CPU Virtuale Processo Processo Memoria CPU Virtuale BUS

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 processi figli

Stati di un processo Accodamento Selezione ai processi pronti Processi in attesa Processo in Esecuzione Termine Elaborazione Richiesta Operazione di I/O Completamento Operazione di I/O (evento esterno atteso) Selezione primo processo pronto Termine quanto di tempo Accodamento ai processi pronti

Politiche di scheduling dei processi Round-Robin Assegnare a rotazione la disponibilità di una 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-Robin con 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 Round-Robin FIFO Esempio: Windows 2000 Round-Robin con priorità (con alcune varianti) Quanto: 13-30ms

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 P1 è in attesa di poter accedere al disco (dove risiedono i dati da stampare) Il disco è però a sua volta controllato in maniera esclusiva dal processo P2. P2 rilascerà il disco dopo essere riuscito a ottenere l’accesso alla stampante. Processo P1 Stampante Hard-Disk Processo P2

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

Gestore della memoria Memoria vituale Gli strati di livello superiore posso lavorare come se avessero a disposizione l’intera memoria centrale CPU Virtuale Memoria Virtuale CPU Virtuale Memoria Virtuale Memoria Virtuale CPU Virtuale BUS Hard-Disk

Rilocazione del codice Output del linker: codice in linguaggio macchina in cui tutti i nomi simbolici e i riferimenti sono stati 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) È necessario rilocare il codice del programma

Rilocazione del codice Statica Eseguita direttamente dal linker È necessario conoscere in anticipo in quale parte della memoria sarà caricato il programma Dinamica È una necessità nel caso della multi-programmazione Eseguita dal SO prima dell’esecuzione del programma

Gestore delle periferiche Periferiche astratte: Le caratteristiche fisiche delle periferiche e le operazioni di I/O 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 CPU Virtuale Periferica Virtuale CPU Virtuale Periferica Virtuale Memoria BUS

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 Driver D1 Stampante HP Desk-Jet Comandi specifici per stampante HP Desk-Jet Sistema Operativo Processo P Driver D2 Primitive di comunicazione con una generica stampante Stampante HP Laser Comandi specifici per stampante HP Laser Primitive di comunicazione con un generico driver di stampante

Gestore dei files (filesystem) Funzioni principali di un File System: Fornire un meccanismo di identificazione univoco dei files Implementare i meccanismi per accedere ai files Realizzare metodi per il controllo d'accesso ai files Allocare spazio su disco per la memorizzazione dei files Deallocare e Riutilizzare lo spazio su disco con l’operazione di cancellazione Fornire un’interfaccia utente per: creazione, cancellazione, spostamento, ispezione di file e directory mascherare le caratteristiche fisiche dei dispositivi di memorizzazione e delle interfacce I più comuni FileSystems sono:  FAT 16 Windows3.x, Windows95 FAT 32 Windows95 (SE), Windows98, Windows ME NTFS (New Technology File System) Windows NT , Windows 2000 Professional e Server NetWare File System Novell Netware Ext2 Unix/ Linux

Gestore dei files (filesystem) Il filesystem windows: Nei Floppy Disk: utilizza il settore come unità minima di allocazione Negli Hard Disk: non utilizza il settore come unità di allocazione, ma il cluster. gruppo di n settori (n = 2, 4, 8, 16, 32) Componenti principali: Partition Table nel boot sector della partizione stessa e contiene le informazioni sulla partizione. Directory Table contiene informazioni sui file e le sottodirectory contenute in una directory FAT (File Allocation Table) permette di individuare i cluster occupati da un file è il “cuore” del filesystem, per sicurezza essa viene duplicata per proteggerla da cancellazioni o danneggiamenti accidentali

Interazione con l’utente Interprete dei comandi Riceve i comandi tramite i dispositivi di input Esegue i programmi 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 Interfacce utente A caratteri Grafiche: GUI (Graphical User Interface)

Ambiente di programmazione 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. Compilatori accettano in ingresso l’intero programma e producono in uscita la rappresentazione dell’intero programma in linguaggio macchina (versione oggetto). o Interpreti traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione. Linker (solo per compilatori) 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.

Interprete del linguaggio L 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 M1, M2, … , Mn Esegue M1, M2, … , Mn Passa all’istruzione successiva di P fino a quando non si sia raggiunta una istruzione di terminazione Memoria Dati Interprete P in Linguaggio L Dati di P Interprete LM Interprete del linguaggio L BUS

Compilazione e Linking È 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

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, .NET