Operating System Concepts

Slides:



Advertisements
Presentazioni simili
Meccanismi di IPC Problemi classici di IPC
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Introduzione Cosa è un Sistema Operativo? Una breve storia
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.
Capitolo 3 Risorse e Stallo 3.1. Risorse 3.2. Introduzione
Gestione Input Output A. Ferrari.
Il Sistema Operativo.
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
Gestione del processore
Gestione della Memoria
File system Casi di studio (3).
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Realizzazione del file system
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Gestione della memoria
Interfaccia del file system
Strutture dei Sistemi Operativi
Strutture dei Sistemi Operativi
Realizzazione del file system
Gestione della memoria
Interfaccia del file system
Scheduling della CPU Concetti fondamentali Criteri di scheduling
Silberschatz and Galvin Operating System Concepts Gestione della memoria Nella fase iniziale dello sviluppo di UNIX, gli schemi di gestione della.
File.
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Input/Output.
Risorse e Stallo.
Sistema Operativo e Compilatore
Struttura dei sistemi operativi (panoramica)
I Thread.
Introduzione.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Linguaggi di programmazione
1 Gestione del processore Il modello a processi sequenziali.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
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.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5,
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Informatica per medici
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
TECNICHE DI INPUT/OUTPUT
SISTEMA OPERATIVO..
Architettura degli elaboratori
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Il Sistema Operativo (1)
Processi.
Threads.
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)
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Architettura di una CPU
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
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.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Operating System Concepts Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l’I/O del kernel Trasformazione delle richieste di I/O in operazioni dell’hardware Prestazioni Operating System Concepts

Operating System Concepts Hardware di I/O Esiste una incredibile varietà di dispositivi di I/O. Concetti comuni: Porta Bus (daisy chain o accesso diretto condiviso) Controller (host adapter) Le istruzioni di I/O controllano i dispositivi. I dispositivi hanno indirizzi usati da: Istruzioni dirette di I/O Memory-mapped I/O Operating System Concepts

Operating System Concepts Polling Determina lo stato di un dispositivo: command-ready busy error Si ha un ciclo busy-wait per attendere l’I/O dal dispositivo. Operating System Concepts

Operating System Concepts Interrupt La linea di richiesta dell’interrupt della CPU viene settata dal dispositivo di I/O. Il gestore di interrupt (interrupt–handler) riceve gli interrupt. Alcuni tipi di interrupt possono essere mascherati, per ignorarli definitivamente o rimandarne il servizio. Il vettore degli contiene gli indirizzi di memoria dei gestori specializzati. Basato su priorità Alcuni sono non mascherabili Il meccanismo di interrupt viene impiegato anche per le eccezioni. Operating System Concepts

Ciclo di I/O guidato da interrupt Operating System Concepts

Accesso diretto alla memoria – DMA Viene impiegato per evitare l’I/O programmato (PIO) per trasferimenti di grandi quantità di dati. Richiede un controller di DMA. Si evita così di sovraccaricare di compiti la CPU: è il controller di DMA che si occupa di trasferire i dati direttamente tra il dispositivo di I/O e la memoria. Operating System Concepts

Passi di un trasferimento DMA Operating System Concepts

Interfaccia di I/O per le applicazioni Le chiamate di sistema di I/O incapsulano i comportamenti dei dispositivi in classi generali. Lo strato dei driver dei dispositivi nasconde al sottosistema di I/O del kernel le differenze fra i controller dei dispositivi di I/O. I dispositivi possono differire per molteplici aspetti: Character–stream o block–stream (trasferimento a flusso di caratteri o di blocchi); Accesso sequenziale o casuale; Dispositivo sincrono o asincrono, condivisibile o dedicato; Velocità di funzionamento; Lettura e scrittura, sola lettura o sola scrittura. Operating System Concepts

Dispositivi con trasferimento a blocchi o a caratteri Dispositivi con traserimento a blocchi comprendono principalmente drive di dischi: Il dispositivo comprende istruzioni del tipo read, write, seek; Raw I/O (I/O di basso livello); Possibilità di accesso ai file mappato in memoria. Dispositivi a caratteri comprendono tastiere, mouse, porte seriali: Comandi classici sono get, put; Con l’uso di librerie appropriate permettono l’accesso per righe e la gestione di un buffer. Operating System Concepts

Operating System Concepts Dispositivi di rete Variano molto dai dispositivi per il trasferimento di I/O a blocchi e/o caratteri fino a presentare una propria interfaccia specifica. Unix e Windows/NT comprendono un’interfaccia socket: Separa il protocollo di rete dalle operazioni di rete; Include la funzionalità select. Gli approcci variano molto (pipe half–duplex, FIFO full–duplex, stream full–duplex, code di messaggi, socket) Operating System Concepts

Operating System Concepts Clock e Timer Forniscono il tempo corrente, il tempo trascorso, regolano un timer per avviare l’operazione X al tempo T. Se impiega un interval timer per la tempificazione: con questo meccanismo è possibile avere interrupt periodici. La system call ioctl (su UNIX) controlla vari aspetti di I/O come clock e timer. Operating System Concepts

I/O bloccante e non bloccante I/O bloccante: il processo viene sospeso fino al completamento dell’operazione di I/O. Facile da usare e da comprendere; Per alcuni scopi è insufficiente. I/O non-bloccante: la chiamata ad I/O ritorna appena possibile (dopo aver iniziato il trasferimento di dati). Utile per processi utente, e per trasferimento dati, ad esempio da disco a schermo (I/O bufferizzato); Viene implementato per mezzo di multi-threading; Ritorna rapidamente con il numero di byte letti o scritti. I/O asincrono: il processo prosegue mentre avviene l’I/O. Difficile da usare; Il sottosistema di I/O segnala al processo il completamento dell’I/O. Operating System Concepts

Sottosistema di I/O del kernel Scheduling Alcune richieste di I/O sono ordinate per mezzo di code in ciascun dispositivo; Il sistema operativo è equo: nessuna applicazione deve ricevere un servizio carente, da maggiore priorità ad applicazioni inficiate da un ritardo nel servizio. Buffering: si memorizzano i dati in memoria mentre avviene il trasferimento fra dispositivi. Utile per gestire la differenza di velocità dei dispositivi; Per gestire la differenza di dimensione dei blocchi di trasferimento dei dispositivi; Per mantenere la “semantica di copia”. Operating System Concepts

Operating System Concepts Kernel I/O Subsystem Caching: una regione di memoria veloce che serve per mantenere copie di certi dati. L’accesso a queste copie è più rapido che l’accesso agli originali. Spooling: è un buffer contenente output per un dispositivo che non può accettare flussi interfogliati di dati (ad esempio, una stampante). Prenotazione di un dispositivo: fornisce accesso esclusivo ad un dispositivo. System call per allocazione e deallocazione dei dispositivi; Responsabilità di evitare i deadlock. Operating System Concepts

Operating System Concepts Gestione degli errori Un sistema operativo che usi la protezione della memoria può recuperare varie situazioni di errore, ad esempio, errori di lettura di un disco, errori per dispositivi non disponibili o errori di scrittura momentanei. La maggior parte dei sistemi operativi restituisce un codice di errore quando una richiesta di I/O fallisce. I file log di errori possono essere consultati per avere statistiche sul funzionamento del sistema. Operating System Concepts

Strutture dati del kernel Il kernel mantiene informazioni sullo stato dei componenti coinvolti nelle operazioni di I/O, come la tabella dei file aperti e la tabella delle socket. Moltissime strutture dati complesse tengono traccia dell’allocazione dei vari buffer, dell’allocazione della memoria e dei blocchi “dirty”. Alcuni sistemi operativi utilizzano metodologie object-oriented e message passing per l’implementazione dell’I/O. Operating System Concepts

Trasformazione delle richieste di I/O in operazioni hardware Si consideri la lettura di un file su disco da parte di un processo: Si determina il dispositivo su cui il file è memorizzato; Si opera la traduzione fra nome del dispositivo e suo driver fisico; Si leggono i dati dal disco in un buffer; Si rendono i dati disponibili al processo che li ha richiesti; Si ritorna il controllo al processo richiedente. Operating System Concepts

Schema di esecuzione di una richiesta di I/O Operating System Concepts

Operating System Concepts Prestazioni L’I/O è un fattore fondamentale per le prestazioni dell’intero sistema: Richiede un notevole impegno della CPU per l’esecuzione del codice dei driver e per lo scheduling dei processi; Produce numerosi context switch dovuti agli interrupt; Sovraccarica il bus della memoria durante i trasferimenti di dati tra i controller e la memoria fisica e tra i buffer del kernel e lo spazio di indirizzamento delle applicazioni. Operating System Concepts

Comunicazione fra computer Operating System Concepts

Come migliorare le prestazioni Ridurre il numero di context switch. Ridurre il numero di trasferimenti di dati. Ridurre il numero di interrupt, trasferendo grossi volumi di dati, utilizzando controller intelligenti e polling. Utilizzare il DMA Equilibrare le prestazioni della CPU, della memoria, del bus e dell’I/O, dato che il sovraccarico di una componente qualsiasi provoca il basso utilizzo delle altre. Operating System Concepts