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



Documenti analoghi
Approccio stratificato

Capitolo 3: Strutture dei sistemi operativi

Strutture dei Sistemi Operativi

Struttura dei Sistemi Operativi

Architettura di un sistema operativo

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

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

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

Il Sistema Operativo

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Il Sistema Operativo (1)

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

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Protezione. Protezione. Protezione. Obiettivi della protezione

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

Organizzazione Monolitica

Sistemi Operativi (modulo di Informatica II) Architettura

Compiti del S.O. Lezione 2: Gestione dei processi. La struttura e funzioni dei Sistemi Operativi

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

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

Introduzione ai sistemi operativi

Introduzione al sistema operativo Il file system: file, directory,...

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

CAPITOLO 1 I SISTEMI OPERATIVI

Il Software. Il software del PC. Il BIOS

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

2. Strutture dei Sistemi Operativi

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

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

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

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

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

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

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

STRUTTURE DEI SISTEMI DI CALCOLO

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

TITLE Sistemi Operativi 1

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

Le Infrastrutture Software ed il Sistema Operativo

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

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

Gestione della memoria centrale

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

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

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

operativi Ing. delle Telecomunicazioni Ing. dell Automazione A.A Corso di Sistemi Operativi Informatica per l Automazione l Ing. M. Ruta 3.

Corso di Sistemi di Elaborazione delle informazioni

Sistemi operativi. Esempi di sistemi operativi

Strutture dei sistemi operativi

Introduzione ai Sistemi Operativi

Dispensa di Informatica I.1

Architetture software. Virtualizzazione

Architettura di un sistema di calcolo

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

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Sistema Operativo e Applicativi

Sommario della lezione

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

Software di base. Corso di Fondamenti di Informatica

Sistema Operativo Compilatore

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

CAPITOLO 5 - Sistemi Operativi Moderni

GESTIONE DEI PROCESSI

Architetture Applicative

comuni ai moderni SO sui quali il corso è incentrato Definizione di sistema operativo

Sistema di protezione (1)

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

Sistema di protezione (2) Protezione (1)

Comunicazione tra Processi

Comunicazione tra Processi

CdL in Medicina Veterinaria - STPA AA

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

Corso di Informatica

Il computer: primi elementi

Funzioni del Sistema Operativo

Protezione. Sistemi Operativi mod. B 16.1

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Infrastrutture Software

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Corso di Informatica

The Onion PC. Virtualizzazione strato dopo strato

PARTE 4 La Macchina Software

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

Sistemi Operativi. Struttura astratta della memoria. Gerarchia dei dispositivi di. Memoria centrale. Memoria secondaria (di massa)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

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

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Introduzione alla Virtualizzazione

File system II. Sistemi Operativi Lez. 20

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Architettura del calcolatore

Capitolo Silberschatz

Informatica e Bioinformatica: Sistemi Operativi

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

HARDWARE. Relazione di Informatica

Transcript:

STRUTTURA DEI SISTEMI OPERATIVI 3.1

Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione Generazione di sistemi 3.2

Componenti del sistema Interprete dei comandi Sistema di protezione Accesso alla Rete Gestione della memoria secondaria Gestione dell I/O Gestione dei file Gestione della memoria principale Gestione dei processi (nucleo) 3.3

Gestione dei Processi Un processo è un programma in esecuzione. Un processo ha bisogno di un certo numero di risorse per svolgere il suo compito: CPU, memoria, files, e dispositivi di I/O. Il sistema operativo è responsabile delle seguenti attività per la gestione dei processi: creazione e terminazione dei processi. sospensione e ripristino dei processi. Meccanismi per: Sincronizzazione di processi, comunicazione tra processi, Gestione dello stallo. 3.4

Gestione della memoria centrale La memoria centrale è costituita da una sequenza di word ognuna con un proprio indirizzo. E uno spazio per conservare dati facilmente accessibile per la CPU e i dispositivi di I/O. Il sistema operativo che si occupa della gestione della memoria principale è responsabile di: Tenere traccia di quali parti della memoria sono correntemente usate e da chi. Decidere quali processi caricare quando la memoria si rende disponibile. Allocare and deallocare lo spazio di memoria. 3.5

Gestione dei File Un file è un insieme di informazioni definite dal suo creatore. Generalmente i file contengono programmi (in formato sorgente o oggetto) e dati. Le directory sono file particolari. La componente della gestione dei file del sistema operativo è responsabile delle seguenti attività: Creazione e cancellazione di file. Creazione e cancellazione di directory. Supporto di primitive per manipolare file e directory. Mappare file in memoria secondaria. Backup dei file su memorie non volatili. 3.6

Gestione dell I/O Il sistema di gestione dell I/O consiste di: Un sistema di buffer-caching Una interfaccia generale per i driver dei dispositivi. Driver per dispositivi hardware specifici. 3.7

Gestione della memoria secondaria Poiché la memoria centrale è volatile e non riesce a contenere tutti i programmi e i dati in maniera permanente, i computer hanno bisogno di una memoria secondaria che contenga tutto quello che serve al computer. La maggior parte dei computer usano i dischi come dispositivi di memoria secondaria per contenere dati e programmi. Per la gestione della memoria secondaria il sistema operativo si occupa di: allocazione della memoria, gestione della memoria libera, scheduling del disco. 3.8

Accesso alla rete In un sistema distribuito (es: rete locale) ogni calcolatore ha la propria memoria locale. I calcolatori sono connessi attraverso una rete di comunicazione. Le comunicazioni sono basati su protocolli. L accesso alla rete permette: Condivisione di risorse, Prestazioni più alte, Maggiore disponibilità di dati Maggiore affidabilità. 3.9

Sistema di Protezione Questo componente dei sistemi operativi fornisce meccanismi per controllare l accesso di processi e utenti alle risorse del sistema e/o degli utenti. I meccanismi di protezione devono: distinguere tra usi autorizzati e usi non autorizzati. Specificare i controlli che devono essere imposti, fornire i mezzi per l attuazione della protezione 3.10

Interprete comandi Il sistema operativo riceve continuamente comandi tramite istruzioni di controllo che riguardano: creazione e gestione di processi gestione dell I/O gestione della memoria secondaria gestione della memoria centrale accesso al file system protezione networking E necessario per il sistema interpretare i comandi ricevuti. 3.11

Interprete comandi Il programma che legge e interpreta i comandi viene chiamato: interprete comandi o shell (in UNIX) La sua funzione è di ricevere il comando, controllarne la correttezza, gestire la sua esecuzione da parte dei diversi livelli del sistema e mostrare i risultati. 3.12

Servizi di un sistema operativo Esecuzione di programmi capacità di caricare in memoria un programma ed eseguirlo. Operazioni di I/O poiché i programmi non possono eseguire direttamente le operazioni di I/O, il sistema operativo deve fornire meccanismi per le operazioni di I/O. Gestione del File system fornire ai programmi modalità per leggere, scrivere, creare e cancellare file. Communicazioni scambio di informazioni tra processi in esecuzione sullo stesso computer o su computer connessi in rete. Scoperta di errori rilevamento di errori nella CPU, nella memoria, nell I/O o nei programmi utente. 3.13

Funzioni Addizionali Esistono funzioni del sistema operativo che servono non tanto per l esecuzione dei programmi utente, ma per assicurare l esecuzione efficiente delle operazioni del sistema: Allocazione di risorse allocazione di risorse per i programmi eseguiti contemporaneamente. Accounting memorizzazione dell uso delle risorse da parte dei vari utenti per i calcolo di costi e per la generazione di statistiche. Protezione controllo degli accessi a tutte le risorse del sistema. 3.14

System Call Le System call forniscono l interfaccia di programmazione tra un programma e il sistema operativo. Generalmente a basso livello, in alcuni casi con sintassi simile ai linguaggi di alto livello. Alcuni sistemi hanno system call con sintassi simile a quella di linguaggi come C, e C++. Generalmente vengono usati tre metodi per il passaggio dei parametri tra un programma in esecuzione e il sistema operativo: 1 Passaggio dei parametri in registri. 2 Memorizzazione dei parametri in una tabella in memoria centrale e passaggio dell indirizzo della tabella, come un parametro, in un registro. 3 Push (inserimento) dei parametri in uno stack e pop (prelievo) dallo stesso dal sistema operativo. 3.15

Passaggio di parametri come una tabella 3.16

Tipi di System Call Le system call offerte da un sistema operativo riguardano le diverse funzionalità del sistema, come: Controllo dei processi, Gestione dei file, Gestione dei dispositivi di I/O, Informazioni sul sistema, Comunicazioni. Application Programming Interface (API). 3.17

Esecuzione MS-DOS System Start-up Esecuzione di un programma 3.18

UNIX: Esecuzione di più programmi 3.19

Modelli di comunicazione Le comunicazioni tra i processi possono avvenire usando lo scambio di messaggi o la memoria condivisa. Scambio messaggi Memoria condivisa 3.20

Programmi di sistema I programmi di sistema forniscono un ambiente conveniente per lo sviluppo e l esecuzione di applicazioni. Essi si occupano di: Gestione dei file Informazioni di stato Supporto ai linguaggi di programmazione Caricamento ed esecuzione dei programmi Comunicazioni La maggior parte degli utente conosce il sistema operativo tramite i programmi di sistema e non tramite le system call. 3.21

Struttura del sistema MS-DOS MS-DOS è originato dal Q-DOS (Quick and Dirty Operating System). MS-DOS realizzato per fornire le funzionalità principali occupando poco spazio di memoria. Non è diviso in moduli. Le interfacce e i livelli funzionali non sono ben separati. 3.22

Struttura del sistema MS-DOS 3.23

Struttura del sistema UNIX UNIX le versioni iniziali avevano una strutturazione limitata. UNIX consiste di due componenti principali. I programmi di sistema Il nucleo (kernel) Tra il livello delle sistem call e l hardware, Fornisce il file system, lo scheduling della CPU, gestione della memoria, ed altre funzioni di base. 3.24

Struttura del sistema UNIX 3.25

Approccio a livelli Il sistema operativo è composto da un certo numero di livelli (strati) ognuno costruito a partire dai livelli sottostanti. Il livello più basso (layer 0), è l hardware; il più alto (layer N) è l interfaccia utente (interprete comandi). In ogni livello sono usate le funzionalità dei livelli sottostanti (modularità). 3.26

Un livello del S.O. 3.27

Struttura dell OS/2 3.28

Struttura del sistema a Microkernel La maggior parte delle funzioni sono spostate fuori dal nucleo nello user space. Le comunicazioni tra i moduli utente avvengono tramite lo scambio di messaggi. Benefici: - maggiore facilità di estensione del microkernel - maggiore facilità di portare il S.O. su nuove architetture - maggiore affidabilità - maggiore sicurezza. 3.29

Struttura Client-Server di Windows NT 3.30

Macchine Virtuali Una macchina virtuale porta l approccio a livelli alla sua massima esplicitazione. L hardware e il nucleo sono considerati come fossero un unico elemento. Una macchina virtuale fornisce una identica interfaccia ai diverse architetture hardware. Il sistema operativo crea l impressione di diversi di diversi processi ognuno in esecuzione su un proprio processore usando la propria memoria. 3.31

Macchine Virtuali Le risorse fisiche di un computer sono condivise per creare le macchine virtuali. Lo scheduling della CPU crea l impressione che ogni utente abbia il proprio processore. Si possono avere virtualizzazioni di dispositivi di I/O. 3.32

Modelli di sistemi Senza Macchina Virtuale Macchina Virtuale 3.33

Vantaggi/Svantaggi delle Macchine Virtuali Il concetto di macchina virtuale fornisce una protezione completa delle risorse del sistema poiché ogni macchina virtuale è isolata dalle altre. L isolamento tuttavia non permette condivisione di risorse. Una macchina virtuale è un ambiente ideale per la ricerca e lo sviluppo che vengono svolti sulla macchina senza perturbare il normale funzionamento del sistema operativo. Il concetto di macchina virtuale è complesso da implementare a causa della necessità di fornire un duplicato esatto della macchina sottostante. 3.34

Java Virtual Machine Il programmi Java dopo la compilazione sono architecture-neutral e vengono eseguiti dalla Java Virtual Machine (JVM). La JVM consiste di - un class loader - un class verifier - un runtime interpreter I compilatori Just-In-Time (JIT) aumentano le prestazioni dei programmi Java. 3.35

Java Virtual Machine 3.36

Obiettivi di progetto Obiettivi utente il sistema operativo dovrebbe essere conveniente da usare, facile da apprendere, affidabile, sicuro, e veloce. Obiettivi del sistema il sistema operativo dovrebbe essere facile da progettare e manutenere, flessibile, affidabile, libero da errori ed efficiente. 3.37

Meccanismi e politiche I meccanismi determinano come fare qualcosa, le politiche determinano come farlo. La separazione tra politiche e meccanismi è un principio molto importante perché permette la massima flessibilità se le politiche verranno cambiate. 3.38

Implementazione del Sistema I sistemi operativi sono stati sviluppati tradizionalmente in assembler per ragioni di efficienza e di accesso alle risorse hardware. Oggi vengono implementati tramite linguaggi di alto livello. Il codice scritto in questi linguaggi è: più veloce da sviluppare. più compatto. è facile da comprendere e da correggere. Un sistema operativo è facile da portare su altro hardware se scritto in un linguaggio di alto livello. 3.39

Generazione di sistemi (SYSGEN) I sistemi operativi vengono sviluppati per essere eseguiti su macchine differenti e devono poter essere configurati su ogni diverso computer. Il programma SYSGEN ottiene le informazioni sulla configurazione dell hardware specifico. Booting partenza del computer tramite il caricamento del nucleo. Bootstrap program codice memorizzato nella ROM che accede al nucleo, lo carica in memoria centrale, e lo manda in esecuzione. 3.40

Domande Quali sono le componenti funzionali di un sistema operativo? Spiegare l utilità delle system call. Discutere le differenze principali tra approccio a livelli e approccio a microkernel. Quali sono gli aspetti fondamentali del modello a macchine virtuali nei sistemi operativi? Quale è la differenza tra meccanismi e politiche? 3.41