1.10: Gestione dell'i/o
|
|
- Daniele Vitali
- 7 anni fa
- Visualizzazioni
Transcript
1 1.10: Gestione dell'i/o Hardware di I/O Interfaccia applicativa Sottosistema di I/O del Kernel Block buffer cache Scenario operativo (dalla richiesta di I/O all'operazione hardware) Prestazioni
2 Enorme varietà di dispositivi di I/O Hardware di I/O Concetti di base: Controller (o host adapter) Microprocessore dedicato + firmware + RAM privata Porta di I/O (registro del controller; punto di connessione e di comunicazione, visibile sul bus di I/O) Bus di I/O (es. PCI bus, ISA bus etc.) Bus = insieme di segnali su fili comuni + un protocollo di interazione L'accesso ai dispositivi di I/O si realizza tramite le porte di I/O Le porte hanno Indirizzi di I/O (logici e fisici a un tempo non sono traslati dalla MMU), usati da istruzioni specifiche di I/O es., 80x86: b = in(addr); out(b, addr);
3 Hardware di I/O (Cont.) Schema hardware del bus di un PC:
4 Hardware di I/O (Cont.) Funzioni realizzate tramite le porte di I/O del controller: Inviare comando al dispositivo Leggere stato del dispositivo Inviare dati al dispositivo Leggere dati dal dispositivo. Registri tipici di un controller (ciascuno da 1 a 4 byte): CSR Control (write) and Status (read) Register DATA (in + out) Segnali (sul bus di I/O) per generare interrupt alla CPU Circuiteria e segnali sul bus per gestire trasferimenti DMA Spesso esiste un apposito circuito, il DMAC (DMA Controller), con un certo numero di canali DMA che possono essere utilizzati da vari controller di
5 Hardware di I/O (Cont.) Rappresentazione possibile dei registri di un controller (memorymapped I/O): struct device { char CSR; /* lettura: status; scrittura: control */ char DATA; /* data in / out */ }; struct device *dev = CONTROLLER_START_ADDRESS; Tre modalità di interazione/sincronizzazione CPU periferica: Polling Preferibile se il tempo risposta dispositivo è breve rispetto al tempo commutazione processi (stampanti veloci con grosso buffer) Interrupt (byte a byte) Il tempo di risposta del dispositivo è lungo (linee seriali, connessioni
6 Polling Polling: basato su interazione continua attraverso il registro CSR Bit command-ready e write, nel Control Register Bit busy e error, nello Status Register Scenario (caso di una scrittura): la CPU determina stato del dispositivo: testa continuamente il bit busy nel registro status per aspettare che il dispositivo sia pronto all'i/o (loop di busy wait) while(dev->csr & SR_BUSY) ; alza il bit write, invia valore in data-out; quindi alza il bit commandready (c'è un comando pronto nel CSR, da eseguire) dev->csr = CR_WRITE; dev->data = value; dev->csr = CMD_READY; il controller alza immediatamente il bit BUSY, legge il CSR e trova il comando write; legge allora il valore dal registro DATA e lo invia alla periferica fisica
7 Interrupt Segnale di Interrupt Request per generare interrupt alla CPU, azionato dalla periferica. Scenario: come per il polling, ma Non c'è il ciclo continuo iniziale (la CPU interviene solo in seguito a un interrupt di fine operazione precedente) al termine, il controller (oltre alle altre operazioni) alza la linea di Interrupt Request. La CPU salva il contesto attuale e passa il controllo a una routine di servizio dell'interrupt (interrupt handler), ad un indirizzo fisso in memoria Vettore di interrupt (interrupt vector) per il dispatching dell'interrupt allo handler giusto. Lo interrupt handler serve il dispositivo, quindi esegue una istruzione di "ritorno dall'interrupt"
8 Interrupt (Cont.) Interrupt: Mascherabili, per ignorare o ritardare alcuni interrupt Meccanismo basato sulla priorità degli interrupt (rispetto alla priorità hardware della CPU) Non mascherabili (solo alcuni, per situazioni di particolare gravità) Il meccanismo degli interrupt è usato anche per eccezioni, trap e chiamate di sistema
9 Interrupt (Cont.) Assegnazione degli interrupt in un PC:
10 Interrupt (Cont.) Ciclo di I/O ad interrupt:
11 DMA Utilizzato per evitare l'i/o programmato (interazione con registri CSR e DATA per ciascun byte o parola da trasferire) per trasferimenti di dati grossi e/o veloci (ad es. per I/O su disco). Attraverso il controller di DMA, cortocircuita la CPU per trasferire dati direttamente tra il dispositivo di I/O e la memoria. Rappresentazione possibile dei registri di un controller (memorymapped I/O): struct device { char CSR; /* lettura: status; scrittura: control */ char DATA; /* data in / out */ int ADDR; /* indirizzo iniziale di RAM da/a cui trasferire dati */ int COUNT; /* contatore dei byte da trasferire */ }; struct device *dev = CONTROLLER_START_ADDRESS;
12 Scenario (caso di una lettura): DMA la CPU carica il registro count col numero di byte da trasferire, e il registro addr con l'indirizzo iniziale del buffer di memoria in RAM dev->count = byte_count; dev->addr = buffer_address; alza il bit read, nel registro control; quindi alza il bit command-ready (c'è un comando pronto nel CSR, da eseguire) dev->csr = CR_READ; dev->csr = CMD_READY; il controller alza immediatamente il bit busy, legge il CSR e trova il comando read; legge dai registri count e addr i valori specificati; con l'ausilio del controller di DMA, trasferisce il numero di byte specificati a partire dall'indirizzo specificato al termine, il controller abbassa il bit command-ready, posiziona il bit error a 0 nel CSR, abbassa il bit busy (pronto ad accettare un nuovo comando), e alza la linea di Interrupt Request per segnalare la fine dell'operazione e la disponibilità dei dati in memoria
13 DMA (Cont.) Sei passi base per la realizzazione di un trasferimento in DMA:
14 Interfaccia Applicativa di I/O Le chiamate di sistema orientate all'i/o tendono a virtualizzare i vari dispositivi, raggruppandoli in classi generiche e offrendo al programmatore un'interfaccia quanto più possibile omogenea Lo strato dei device driver (device driver layer) nasconde al Kernel le differenze tra diversi controller. Molti S.O. forniscono una chiamata di sistema scappatoia (escape system call), per passare comandi specifici da un'applicazione a un device driver; questi comandi sono definiti dal driver (p.es. un comando FORMAT per formattare dischi rigidi o floppy disk) Unix: ioctl(2) ioctl(fd, cmd, argp); fd = file descriptor dello special file (periferica) cmd = una costante, definita nel device driver, che specifica un comando argp = puntatore a una struttura di dati con gli argomenti relativi a cmd. Possibili categorie di dispositivi: A flusso di caratteri, a blocchi di dati, orientati alle reti
15 Interfaccia Applicativa di I/O (Cont.) Unix/Linux realizzano una completa virtualizzazione delle periferiche, che sono viste come file; pertanto la programmazione di base di una periferica è identica a quella di un normale file su disco. Periferica = special file L'inode contiene tre informazioni essenziali: Tipo file (special file di tipo carattere, blocco) MDN (Major Device Number), mdn (Minor Device Number) MDN individua una categoria di periferiche, gestite da uno stesso device driver mdn individua la specifica unità della categoria data
16 Dispositivi a Carattere, a Blocco, di Rete I dispositivi a blocco (block devices) includono dischi e unità a nastro I comandi includono read(), write(), seek() È possibile la mappatura in memoria di file (es. Linux) Unix: accessibili in modo diretto (raw I/O, raw mode), cioè con trasferimento diretto da periferica a buffer utente, o attraverso una cache di Kernel (block buffer cache) I dispositivi a carattere (character devices) includono tastiere e schermi, mouse, porte seriali I comandi includono get(), put() In Unix, continuano a chiamarsi read() e write() Per i dispositivi di tipo tty (linea utente), l'edizione di linea (line editing) può essere supportata a livello di strati di libreria utente, o di sottosistemi nel Kernel, chiamati dai device driver (è il caso di Unix)
17 Dispositivi a Carattere, a Blocco, di Rete (Cont.) I dispositivi di rete sono differenti dagli altri tipi visti, ed hanno quindi la loro specifica interfaccia Unix: formalmente sono dispositivi di tipo carattere (tipo file nell'inode) Non vengono quasi mai utilizzati in modo diretto da applicazioni a livello utente: si trovano in basso appl. ad utente una pila di moduli funzionali interf. di prog. protocolli disp. di rete Device driver e/o moduli del Kernel Unix and Windows/* includono il supporto per una interfaccia socket (socket interface), interfaccia di programmazione de facto standard Insieme di primitive, implementate come chiamate di sistema o talvolta
18 Supporto del Kernel A seconda del tipo di dispositivo, il Kernel può offrire: Nessun supporto es. Unix: interfaccia grafica X.11 interamente gestita a livello applicazione utente (previa autorizzazione ad accedere a certe porte di I/O) Supporto limitato alla porta di I/O es. Unix: linee seriali (/dev/ttys0, etc.) il Kernel fornisce un device driver per letture e scritture di caratteri, ma nessun supporto per gestione modem, stampanti seriali, mouse seriali etc. Supporto totale es.: dischi, interfacce di rete il Kernel fornisce un device driver e uno o più moduli che si occupano in toto della gestione della periferica e della strutturazione e gestione dei dati
19 Supporto del Kernel (Cont.) User level Applicazioni Moduli sistema Kernel Device driver Hardware Periferica fisica N.B. tra l'applicazione e il Kernel ci può essere uno strato di librerie di
20 Supporto del Kernel (Cont.) Esempio struttura del kernel di Linux:
21 Sottosistema di I/O del Kernel In generale, il Kernel fornisce diversi servizi comuni per l'i/o, raggruppati in un insieme di moduli funzionali che costituiscono il (sotto)sistema di I/O del Kernel: Vista canonica delle periferiche i device driver hanno come compito principale quello di nascondere le peculiarità dei dispositivi, che rimangono circoscritti all'interno del driver, offrendo al resto del Kernel una "vista canonica" delle varie periferiche. Scheduling dell'i/o codice per ordinare in modo ottimale le richieste di I/O, attraverso code di dispositivo; disponibile come insieme di routine che possono esssere utilizzate dai device driver. Bufferizzazione memorizzare dati in memoria del kernel mentre vengono trasferiti per compensare differenze di velocità tra dispositivi hardware (es. tra disco e RAM, etc.) per compensare incompatibilità di dimensione di trasferimento (es. poter scrivere o leggere 10 byte a/da un file su disco)
22 Sottosistema di I/O del Kernel (Cont.) Spooling accumulare e gestire l'output per una periferica Necessario se il dispositivo può servire solo una richiesta alla volta (es., job di stampa) N.B. in Unix, lo spooling di stampa è gestito con programmi a livello utente. Prenotazione di periferica fornisce un accesso esclusivo ad una periferica Chiamate di sistema per allocazione e deallocazione, o apertura esclusiva N.B. pericolo di deadlock
23 Sottosistema di I/O del Kernel (Cont.) Sottosistema di I/O del Kernel Unix 4.3BSD:
24 Block Buffer Cache Block buffer cache sistema di caching delle operazioni di I/O di tutti i dispositivi di tipo blocco (in pratica, tutti i dischi). Comune a tutti gli Unix. Consiste (nel caso Unix classico) di Un insieme di blocchi di RAM, di dimensione pari a un multiplo (variabile) di blocchi logici di un file system Un array di strutture di controllo, denominate buffer header: struct buf buf[], ciascuna identificata da una terna: (MDN+mnd) del dispositivo (membro b_dev) Numero di blocco iniziale (del dispositivo) (b_blkno) a cui si aggiungono l'indirizzo e dimensione del buffer associato (che può essere variabile) (b_addr, b_count) In Linux, la quantità di memoria dedicata alla cache varia dinamicamente, e tende a utilizzare tutta la memoria RAM disponibile (non reclamata dai processi o dal Kernel)
25 Block Buffer Cache (Cont.) I buffer header (o più brevemente buffer) per blocchi non attualmente in uso (cioè non interessati a operazioni di I/O pendenti) sono mantenuti in diverse liste collegate: Buffer usati recentemente, collegati in ordine LRU (LRU list) Buffer non usati recentemente, o senza un contenuto valido (AGE list) Buffer vuoti, senza memoria RAM associata (EMPTY list). Tutti i buffer in uso sono invece inseriti in una delle code di transazioni pendenti associate ai vari driver di dispositivo; tali code sono iniziate da un'apposita struttura struct iobuf (ce n'è almeno una per ogni driver): struct iobuf d_tab; Una richiesta di transazione è memorizzata nella stessa struct buf, precisando un ulteriore dato: il senso del trasferimento (membro b_flags, che vale B_READ o B_WRITE)
26 Block Buffer Cache (Cont.) Per gestire queste liste, ogni struct buf ha due coppie di puntatori: b_forw, b_back (hash list) e av_forw, av_back (liste AGE, LRU, EMPTY; oppure lista delle transazioni pendenti di un driver). struct buf { int b_flags; /* B_READ or B_WRITE, etc. */ struct buf *b_forw; /* headed by hbuf[] */ struct buf *b_back; /* " */ struct buf *av_forw; /* position on the free lists, */ struct buf *av_back; /* if not B_BUSY */ dev_t b_dev; /* major+minor device name */ unsigned b_bcount; /* transfer count */ caddr_t b_addr; /* core address */ daddr_t b_blkno; /* first block # on device */... };
27 Block Buffer Cache (Cont.) Quando un blocco è richiesto da una periferica, viene cercato nella cache: Se il buffer corrispondente viene trovato, viene usato, senza bisogno di I/O fisico Altrimenti, viene scelto un buffer dalla AGE list, o se questa è vuota, dalla LRU list. Il buffer scelto viene "ribattezzato", cioè associato al nuovo blocco Se il buffer ribattezzato contiene dati che devono essere scritti su disco, la scrittura non è più procrastinabile e viene avviata ora (in generale, le scritture vengono rimandate sempre all'ultimo momento). Vantaggi: Velocizzazione dell'i/o, data dalla cache Possibilità di leggere/scrivere in quantità arbitrarie Non è necessario bloccare in memoria processi interessati a operazioni di I/O (il DMA è sempre indirizzato verso memoria del Kernel, non swappabile)
28 Block Buffer Cache (Cont.) struct hbuf struct buf struct iobuf b_forw, b_back av_forw, av_back av_forw hbuf[ ] bhash(dev,blkno) N.B. per ogni lista, i puntatori tra strutture di inizio lista e ultimo elemento non sono mostrati; la AGE list non è mostrata. LRU list d_tab d_tab d_tab
29 Scenario Operativo Per servire un processo che vuole leggere un insieme di dati da file su disco: Determinare la periferica che contiene il file Traslare numero di blocco logico del file in numero di blocco del disco Lettura fisica dei dati del blocco da disco in un buffer della block buffer cache Mettere i dati a disposizione del processo richiedente Restituire il controllo al processo
30 Scenario Operativo (Cont.) Processo che legge un insieme di dati da file su disco caso Unix: Processo utente: chiamata alla funzione read() trap la CPU passa in System mode Kernel codice di servizio della read(): Controlla legalità degli argomenti, e li passa al modulo di gestione dei file Modulo Kernel di gestione dei file: Determina dispositivo che contiene il file: consultare la mount table Trasla nome del file in rappresentazione interna: da path a inode routine namei() (al momento della open()) Determina il numero di blocco logico del file che contiene gli N byte richiesti dal processo utente Trasla numero di blocco logico del file in numero di blocco del disco logico, blkno: routine bmap()
31 Scenario Operativo (Cont.) Prepara una struttura dati struct buf con la richiesta di I/O, inserendo in essa: MDN, mdn blkno indirizzo RAM del blocco della Kernel cache (dove i dati dovranno essere scritti) e dimensione della richiesta, in byte tipo operazione: B_READ (lettura) Chiama la routine d_strategy() del device driver, passando come argomento la struttura dati preparata Device driver del disco: Inserisce la struct buf nella coda di richieste del driver, secondo l'algoritmo di scheduling del disco utilizzato; Modulo Kernel di gestione dei file routine bread(): Attende il completamento dell'operazione: il processo va a dormire;
32 Scenario Operativo (Cont.) Più tardi, la richiesta viene servita, e i relativi comandi inviati al controller; al termine dell'operazione scatta l'interrupt di fine DMA (dati disponibili). Device driver del disco, routine d_intr(): Controlla eventuali errori Rimuove la struct buf dalla coda Risveglia il processo interessato Scheduler di CPU: Ridà la CPU al processo interessato all'i/o Modulo Kernel di gestione dei file routine bread() (ora risvegliata): Restituisce la struct buf, che ora punta ai dati nella block buffer cache Codice di servizio della read() Copia gli N byte richiesti, dal blocco della cache nel buffer del processo utente (copia da memoria a memoria)
33 Gestione degli Errori Il S.O. può recuperare e gestire errori di vario tipo: periferica non disponibile (es. CD ROM o floppy disk), errori di scrittura o di lettura N.B. quando è utilizzata la cache del Kernel per l'i/o su disco, Unix non può recuperare errori di scrittura: le scritture fisiche sono ritardate al massimo, e quando avvengono è tipicamente troppo tardi per notificare il processo interessato (che potrebbe aver già terminato, e quindi non esistere più). Molti S.O. ritornano un codice di errore (attraverso le chiamate di sistema) in caso di errore di I/O es., Unix/Linux: errno Se la chiamata di sistema fallisce, ritorna invariabilmente 1 e la variabile esterna errno contiene un codice di errore specifico. I file di log di sistema memorizzano messaggi specifici sui problemi incontrati
34 Prestazioni L'I/O è un elemento di gran peso per le prestazioni globali di un sistema Impegna, oltre ai processori periferici, anche la CPU: Codice dei moduli di I/O del Kernel Codice dei device driver Context switch dovuti agli interrupt Copia di dati (da/a buffer utente, block buffer cache, RAM privata dei controller, etc.) Il traffico di rete può essere particolarmente pesante, per sua natura
35 Prestazioni (Cont.) Linee guida per migliorare le prestazioni: Ridurre il numero di context switch Ridurre le copie di dati Ridurre la frequenza degli interrupt, usando Trasferimento di dati in grossi quantitativi alla volta Controller intelligenti Polling, ove opportuno (cioè ovunque i loop di busy wait possono essere minimizzati) Usare controller di DMA intelligenti per aumentare il numero di operazioni concorrenti (sfruttare al massimo il parallelismo del sistema) Implementare primitive direttamente in hardware, ovunque possibile Bilanciare bene (tuning del sistema) le prestazioni di CPU, memoria, bus, e I/O, per massimizzare il throughput globale: se uno di questi elementi è
Sistemi Operativi SISTEMI DI INPUT/OUTPUT. D. Talia - UNICAL. Sistemi Operativi 10.1
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi 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 Stream Prestazioni 10.2 I/O Hardware
DettagliSistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel
SISTEMI DI INPUT/OUTPUT 10.1 Sistemi 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 Stream Prestazioni 10.2 I/O Hardware
DettagliSistemi Operativi. Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
Dettagli5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche
Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con
DettagliStruttura interna del sistema operativo Linux
Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04
DettagliSistemi operativi 2003/2004. Input e output
Sistemi operativi 2003/2004 Input e output Dispositivi di I/O Human readable Usati per comunicare con esseri umani Stampanti Terminali video Tastiera Mouse, joystick, ecc. Dispositivi di I/O Machine readable
DettagliSistemi di I/O. Contenuti. L hardware di I/O. Bus in un PC. L hardware di I/O. Le interfacce I/O per le applicazioni.
Contenuti L hardware di I/O. Sistemi di I/O Le interfacce I/O per le applicazioni. Il sottosistema di I/O del kernel. Trasformazione di richieste di I/O in operazioni hardware. Streams. Prestazioni. L
DettagliLivelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal dispositivo Driver dei dispositivi Gestori delle interruzioni Hardware Modo utente
DettagliIl sistema di I/O. Sistemi Operativi 13.1
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 Prestazioni 13.1 Introduzione Un elaborazione eseguita da
DettagliCAP9. Device drivers
Struttura interna del sistema operativo Linux CAP9. Device drivers Device drivers Gestori di periferiche Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI
DettagliArchitettura dei sistemi di elaborazione (Input/Output parte 1)
Architettura dei sistemi di elaborazione (Input/Output parte 1) Sottosistema di I/O Il sottosistema di I/O è la parte attraverso la quale si esplica la comunicazione tra il calcolatore e il mondo esterno.
DettagliSistemi Operativi. Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
DettagliLA GESTIONE DELLA I/O
LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA COMPITI DEL SOTTOSISTEMA DI I/O ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un di I/O 1. Nascondere al programmatore i dettagli delle interfacce
DettagliGESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI
GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere
DettagliStrutture dei sistemi di calcolo
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Architettura di un sistema di calcolo
DettagliInput/Output. Livelli del sottosistema di I/O
Input/Output 1 Livelli del sottosistema di I/O Software di I/O di livello utente Software di sistema indipendente dal Di Driver dei didispositivi itii Gestori delle interruzioni Hardware utente kernel
DettagliCapitolo 2: Strutture dei sistemi di calcolo
Capitolo 2: Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di protezione Struttura delle reti di calcolatori
DettagliOperazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU
Operazioni di I/O 1 Schema di collegamento fra dispositivi periferici e CPU Memoria CPU buffer interfaccia Registro di controllo Registro Di stato Unità di controllo Dispositivo fisico 2 1 Unità di interfaccia
DettagliSistemi Operativi. Input/Output
Input/Output 1 Dispositivi di I/O Human readable Usati per interagire con esseri umani Stampanti Terminali video Tastiera Topi 2 Dispositivi di I/O Machine readable Usati per le comunicazioni tra apparati
DettagliPD-32. Connessione di dispositivi esterni (periferiche)
PD-32 Seconda parte Connessione di dispositivi esterni (periferiche) Ogni dispositivo di I/O è connesso al PD-32 mediante un interfaccia suddivisa in una parte dipendente dal dispositivo ed un altra indipendente
DettagliISA Input / Output (I/O) Data register Controller
ISA Input / Output (I/O) Numerose Periferiche di tanti tipi diversi, collegati alla CPU mediante BUS diversi. Solo Input (tastiera, mouse), producono dati che la CPU deve leggere. Solo Output (Schermo),
DettagliLezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario
Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1
Dettagli2. Tipi di periferiche e classificazione dei gestori
9. I GESTORI DI PERIFERICHE 1. Introduzione I gestori di periferiche (device drivers) sono dei componenti il cui funzionamento, a differenza di quello del file system, è fortemente intrecciato con quello
DettagliSecondo biennio Articolazione Informatica Sistemi e Reti Prova Terza
Il clock della CPU A. fornisce la data corrente ai programmi macchina B. temporizza le operazioni elementari C. ha la stessa frequenza del clock del bus di sistema D. si misura in bit per secondo (bps)
DettagliComponenti di un sistema operativo
Componenti di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Componenti di un S.O. Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria
DettagliI Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.
I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 23 Martedì 17-01-2017 Il file system Il file system si basa sulle astrazioni
DettagliTrasparenze del Corso di Sistemi Operativi
Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in Informatica A.A. 2018/19 Trasparenze del Corso di Sistemi Operativi Marina Lenisa Università di Udine Copyright c 2000-04 Marino Miculan (miculan@dimi.uniud.it)
Dettaglimemoria virtuale protezione
Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.
DettagliIl sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione
Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia
DettagliGestione del processore. Il modello a processi sequenziali
Gestione del processore Il modello a processi sequenziali 1 Il modello a processi sequenziali Nei computer attuali, ci sono molte attività attive contemporaneamente (sia di SO che di utente) es : stampa
DettagliIn entrambi i casi i dispositivi vengono comunque trattati alla stregua di indirizzi, con minime
C7. SISTEMI DI I/O Architetture e dispositivi di I/O Vi sono diversi tipi di dispositivi: dispositivi di memorizzazione, dispositivi di trasmissione e interfacce uomo macchina. Nonostante la varietà, ci
DettagliStruttura dei Sistemi di Calcolo
Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2009-2010 Copyright c 2000 04 Marino Miculan (miculan@dimi.uniud.it) La copia letterale e la distribuzione di questa presentazione nella sua integrità
DettagliGestione periferiche I/O
Gestione periferiche I/O Compiti del sottosistema IO Nascondere al programmatore i dettagli delle interfacce hw e dei dispositivi (utilizzo di controllori) Omogeneizzare la gestione di dispositivi diversi
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 15 Martedì 26-11-2013 1 Allocazione dei dispositivi e tecniche di spooling
DettagliInput/Output (Cap. 7, Stallings)
Input/Output (Cap. 7, Stallings) Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi Tutti più lenti della CPU e della RAM Necessità di avere moduli
DettagliSistemi Operativi (modulo di Informatica II) Sottosistema di I/O
Sistemi Operativi (modulo di Informatica II) Sottosistema di I/O Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario L hardware di I/O Struttura Interazione tra computer e controllori
DettagliI processi: concetti di base, context switch e scheduling
Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva
DettagliIl Sistema Operativo Ripasso
ISTITUTO TECNICO SECONDO BIENNIO GIORGIO PORCU www.thegiorgio.it Sommario Concetti di base Sistema Operativo Risorse Funzioni e Struttura Bootstrap, Kernel, Shell Gestione dei Processi Processo e PCB Algoritmi
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di
DettagliSISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.
SISTEMI OPERATIVI 06.a Il Nucleo Nucleo di un SO Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher 1 Architettura di base dei SO Due le strutture di riferimento: a
DettagliGestione dei Processi
Gestione dei Processi Informatica B Che cosa è un processo per il SO? Processo programma! Rappresenta un istanza di un programma composta da: codice eseguibile (il programma stesso) dati del programma
DettagliInput/output. Sistemi Operativi Lez. 32. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010
Input/output Sistemi Operativi Lez. 32 1 Ruolo del SO Le periferiche di I/O sono i dispositivi attraverso i quali un calcolatore scambia dati/ interagisce con la realtà esterna Per ogni periferica collegata
DettagliPeriferiche CPU. Misure e Sistemi Microelettronici Sistemi 6-1 SREG. Data Bus Address Bus Control Bus
Periferiche Interface Interface Interface Interface CPU SREG CREG DREG Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: Control REGister; Status REGister; Data
DettagliGiuseppe Pelagatti. Programmazione e Struttura del sistema operativo Linux
Giuseppe Pelagatti Programmazione e Struttura del sistema operativo Linux Appunti del corso di Architettura dei Calcolatori e Sistemi Operativi (AXO) Parte IO: Input/Output e File System cap. IO3 I Gestori
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Lezione 24 Martedì 15-01-2019 Allocazione dei dispositivi e tecniche di spooling
DettagliSistemi Operativi. La gestione delle risorse
Sistemi Operativi La gestione delle risorse Introduzione Il sistema operativo ha il compito di fornire la gestione dell hardware ai programmi dell utente. Utente utilizza i programmi applicativi Programmi
DettagliUniversità di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 1 Martedì 11-10-2016 1 Introduzione Un sistema operativo è un software
DettagliLa memoria cache. Informatica generale
La memoria cache Nello schema di funzionamento di un calcolatore il processore continuamente preleva informazioni ed istruzioni dalla memoria centrale e scrive in essa informazioni La memoria centrale,
DettagliIl problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano
Il problema dello I/O e gli Interrupt Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano Il Calcolatore e le periferiche Periferica Decodifica Indirizzi Circuiti di Controllo Registri
DettagliMemoria cache. Memoria cache. Miss e Hit. Problemi. Fondamenti di Informatica
FONDAMENTI DI INFORMATICA Prof PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Memoria cache, interrupt e DMA 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
DettagliFILE SYSTEM 2. I-nodes (o Inodes)
FILE SYSTEM 2 I-nodes (o Inodes) Un file ha diverse componenti: nome, contenuto, proprietario, diritti d accesso, data di modifica, ecc. Tutte le informazioni sono contenute in una struttura (un record)
DettagliHARDWARE. Hardware. Vista di insieme
HARDWARE Vista di insieme 1 Hardware Hardware LA PARTE FISICA DEL SISTEMA Insieme di tutti i circuiti, dei componenti elettronici, elettrici e meccanici di un sistema di elaborazione 2 1 3 4 2 6 3 7 8
DettagliARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!
ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore
DettagliSistemi Operativi. Il file system Casi di studio. Sistemi Operativi. Corso di laurea in Informatica. AA 2002/03 Bruschi, Rosti
Il file system Casi di studio 1 CP/M Control Program for Microcomputer Predecessore del MS-DOS Dimensione media 16K File system predisposto per Floppy Allocazione dei file come lista-linkata di blocchi
DettagliPremessa. Input /output e gestione dei file. I file e gli stream. Il puntatore al file. 21. I FILE NEL LINGUAGGIO C Versione 1.
Input /output e gestione dei file Premessa Iniziamo la lezione dicendo subito che per INPUT/OUTPUT si intende l insieme delle operazioni di ingresso ed uscita, ossia lo scambio di informazioni tra il programma
DettagliBootstrap. Bootstrap. Shutdown. Struttura di un SO. Elementi principali di un SO:
Bootstrap Bootstrap All accensione di un calcolatore vengono attivati programmi di diagnostica scritti nella ROM (Read Only Memory) che verificano l assenza di guasti Poi viene attivato il programma di
DettagliPrincipi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica
Principi operativi dei computer Capitolo 7 Fluency Conoscere e usare l informatica I soliti sospetti Processore Sistema operativo Software Istruzioni Ciclo macchina Memoria Hardware componente Com è fatto
DettagliLa gestione dell I/O (Cap. 5, Tanenbaum)
La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità
DettagliIl Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:
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 efficientemente l'elaboratore e le sue periferiche,
DettagliCorso di Informatica
Corso di Informatica Modulo T3 2-Stati di un processo 1 Prerequisiti Concetto intuitivo di coda Cooperazione e competizione Prerilascio di una risorsa Concetto intuitivo di interruzione 2 1 Introduzione
DettagliSi pone allora il problema fondamentale: come far dialogare la CPU con le periferiche nel modo più efficiente possibile CPU
Sistemi Roberta Gerboni 1 Un computer è un sistema complesso costituito da: - una Unità Centrale di Elaborazione (CPU) - e da un insieme più o meno numeroso di dispositivi periferici chiamati, semplicemente,
DettagliSistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
DettagliLezione XII: La gestione delle eccezioni in MINIX
1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it 4 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia
DettagliSISTEMI OPERATIVI. Struttura dei. Sistemi Operativi. Giorgio Giacinto 2015
SISTEMI OPERATIVI Struttura dei Sistemi Operativi 2 Panoramica dei servizi del sistema operativo 3 4 Cos è una chiamata al sistema?» Il SO mette a disposizione i suoi servizi ai programmi utente attraverso
DettagliModulo 12: File System
Modulo 12: File System Livelli logici per l accesso ai file Organizzazione dei file su disco Organizzazione di un File System di UNIX 12.1 Livelli logici per l accesso ai file Programmi utente Pile Sequenziali
DettagliDrivers. Introduzione Tipologie Struttura Interazione con il kernel
Drivers Introduzione Tipologie Struttura Interazione con il kernel Driver Un driver è un modulo del sistema operativo Esterno al kernel Dedicato alla gestione di una specifica periferica Come altre funzionalità
DettagliDispositivi di I/O. Dispositivi di I/O
Dispositivi di I/O Architetture dei Calcolatori (lettere A-I) Dispositivi di I/O Un dispositivo di I/O è costituito da due componenti: Il dispositivo fisico effettivo (disco, stampante, mouse, video, )
DettagliArchitettura dei sistemi di elaborazione (Input/Output parte 2)
Architettura dei sistemi di elaborazione (Input/Output parte 2) Gestione dell I/O Il processore può comunicare con uno o più dispositivi esterni secondo schemi temporali imprevedibili che dipendono dalle
DettagliCapitolo2: Architettura del calcolatore
Capitolo2: Architettura del calcolatore Funzionamento di un calcolatore general purpose. Struttura dell input/output. Struttura della memoria. Gerarchia di memorizzazione. Protezione hardware. ng. delle
DettagliGerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base
Gerarchia fisica di memoria 1 Tempo di accesso Capacità tipica Ricapitolazione di concetti base Sistemi Operativi - T. Vardanega Pagina 92/113 Gerarchia fisica di memoria 2 La cache è suddivisa in blocchi
DettagliIl file system di Unix. Caratteristiche generali dei FS comunemente usati da Unix/Linux
Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux Il file system di Unix Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente
DettagliPentium: architettura di sistema
Pentium: architettura di sistema 1 2 TXC 4 3 5 6 PIIX 7 Pentium: architettura a livello di sistema 1 Il processore Pentum (1) è interfacciato sul bus con la memoria cache di livello 2 (2). L interfacciamento
DettagliPag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 La inserita nella architettura dell elaboratore Informatica Facoltà di Medicina Veterinaria a.a.
Dettagli2. Nucleo del sistema operativo (la gestione dei processi)
Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle
DettagliTipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB)
Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB) Architettura degli Elaboratori (Prima Unità) Renato.LoCigno@dit.unitn.it www.dit.unitn.it/~locigno/didattica/archit/02-03/index.html
DettagliComponenti e connessioni. Capitolo 3
Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura
DettagliComponenti principali
Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria
DettagliIl software: Istruzioni per il computer
Il software: Istruzioni per il computer Software applicativo aiuta a svolgere operazioni utili in vari campi programmi di videoscrittura, fogli elettronici, videogiochi Software di sistema permette l utilizzo
DettagliDispositivi di I/O. Dispositivi di I/O. Prestazioni degli hard disk. Dispositivi di I/O (2) Architetture dei Calcolatori (lettere A-I)
Dispositivi di I/O Architetture dei Calcolatori (lettere A-I) Dispositivi di I/O Un dispositivo di I/O è costituito da due componenti: Il dispositivo fisico effettivo (disco, stampante, mouse, video, )
DettagliComponenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni
Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria
DettagliSommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads
Sommario Lezione 5 Processi e Threads Processi e Programmi Implementazione dei Processi Casi di Studio relativi a Processi Thread Casi di Studio relativi a Thread 5.2 Processi e Programmi Che cosa e un
DettagliSistemi Operativi A.A , prova scritta del 7 luglio 2006
Libri e appunti chiusi. Vietato comunicare con chiunque. Vietato l'uso di cellulari, calcolatrici, palmari e affini. Tempo a disposizione: 60 minuti. Le domande sono etichettate con 1,2 o 3 asterischi:
DettagliArchitettura del calcolatore
Architettura del calcolatore I tipi di elaboratori Esistono due grandi classi di elaboratori: Elaboratori di uso generale (general-purpose computer) Elaboratori dedicati (special-purpose computer) Le classi
DettagliSistemi Operativi. Bruschi Martignoni Monga. Altre periferiche fondamentali Hard disk Terminale. Sistemi Operativi. Bruschi Martignoni Monga
1 Mattia Lezione XXIX: Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo
DettagliI dispositivi di input/output
I dispositivi di input/output I dispositivi di input/output (anche detti periferiche), permettono di realizzare l'interazione tra l'uomo e la macchina La loro funzione primaria è quella di consentire l'immissione
DettagliInput/Output. Input/Output
Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di sistema; Trasferimento dati; Gestione I/O. 2 M. Violante 1.1 Organizzazione di sistema Memoria
DettagliArchitettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus
Architettura del calcolatore Calcolatori (1) Introdotti all'inizio degli anni 1940 Costruiti assemblano componenti elettronici elementari per memorizzare informazioni ed eseguire programmi informazioni
DettagliEmbedded and Reconfigurable Systems M 03 Bus protocols
Embedded and Reconfigurable Systems M 03 Bus protocols Stefano Mattoccia, DISI - University of Bologna 1 Protocolli di comunicazione standard - Protocolli per connessioni con periferiche e memorie - 3
DettagliArchitettura del Calcolatore
Giuseppe Manco Lezione 3 17 Ottobre 2003 Architettura del calcolatore Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e l elaborazione delle informazioni un calcolatore
DettagliFile System ext2. Struttura del filesystem ext2.
Struttura di base File System ext2 Lo spazio fisico di un disco viene usualmente diviso in partizioni; ogni partizione può contenere un filesystem. Nel filesystem ext2 il blocco (block) definisce la minima
DettagliIO 1 Input Output a livello Hardware
Architettura dei calcolatori e sistemi operativi Input Output IO 1 Input Output a livello Hardware Accesso delle periferiche Le unità periferiche interagiscono con il processore e la memoria centrale attraverso
Dettagli