Tutte le componenti non facenti parte dell’unità centrale , unità di I/O, memorie di massa, dispositivi come stampanti, scanner ed in generale tutte le apparecchiature che si possono mettere in comunicazione con un computer si indicano con il nome di periferiche. LE PIU COMUNI • • tastiera dispositivi di puntamento: – mouse – – – – trackball penna ottica tavoletta grafica joystick • • mouse ottico memorie di massa: – – – – – – – – hard disk floppy disk drive lettori di dischi ottici (CD, DVD, Blu-ray Disc) lettori di memory card e pen-drive USB microdrive nuclei di ferrite unità a nastro unità a dischi removibili • unità IOMEGA – – – – • monitor: – – – • monitor CRT (a tubo catodico) monitor LCD (a cristalli liquidi) monitor al plasma stampanti: – – – – – – • unità a dischi Bernoulli unità a dischi Zip unità a dischi Jaz unità a dischi Rev plotter stampante ad aghi stampante a getto d'inchiostro stampante a margherita stampante laser stampante termica altri dispositivi di input-output: – – – – modem router print server scanner d'immagini Il collegamento tra un computer e le sue periferiche avviene mediante le apparecchiature che si chiamano interfacce. Un interfaccia è in sostanza una scheda di circuiti elettrici che, inserita nella struttura di un computer, permette di eseguire il trasferimento di informazioni dal computer alle periferiche o viceversa. Il collegamento è realizzato tramite le porte di I/O accessibili all’esterno. Le piu usate sono: • Porta Seriale (1 bit per volta) •Porta Parallela (bit carattere trasmessi contemporaneamente) •USB(Universal Serial Bus)”fino a 127 dispositivi in sequenza su stessa porta” “PnP” Per realizzare la completa indipendenza tra le operazioni di I/O e le attività della CPU il sistema di elaborazione usa i bus di I/O, canali di comunicazione specializzati per eseguire autonomamente trasferimenti tra le periferiche e la memoria centrale. I tradizionali bus d I/O non sono abbastanza veloci per trasferire applicazioni di tipo multimediale, quindi si usa un bus locale(local bus) in grado di operare a velocità più elevate. Il bus locale esclude le periferiche dal dal bus di I/O e le connette ad altre unità del sistema di elaborazione, CPU e memoria centrale, o alle memorie dedicate. OBBIETTIVO PRINCIPALE del sistema operativo per la gestione delle periferiche è: controllare l’esecuzione delle operazioni per conto dei processi assegnare i dispositivi ai processi che li richiedono con una politica di schedulazione Nascondere al programmatore i dettagli delle interfacce hardware dei dispositivi; Omogeneizzare la gestione di dispositivi diversi; Gestire i malfunzionamenti che si possono verificare durante un trasferimento di dati; controllare l’esecuzione delle operazioni per conto dei processi Le operazioni di I/O richieste da un processo si solito vengono eseguite da processori dedicati mentre il processo è in attesa e il processore sta eseguendo un altro programma. Per fare in modo che un dispositivo possa ricevere o inviare dati mentre il processo è in attesa si usano dei buffer e per la sincronizzazione i segnali di interruzione. Quando il programma deve eseguire una operazione di I/O genera una interruzione di tipo software per richiedere un servizio al sistema operativo; il processore avvia l’operazione e, in attesa che la periferica la completi,può dedicarsi ad altre operazioni; quando la periferica ha concluso l’operazione genera un interruzione per avvertire il processore. Per ogni operazione di I/O il sistema operativo riserva un area di memoria “tampone”(buffer), per contenere i dati oggetto del trasferimento. Motivazioni: Differenza di velocità tra processo e periferica: disaccoppiamento Quantità di dati da trasferire(es. dispositivi a blocchi): il processo può richiedere il trasferimento di una quantità di informazioni inferiore a quella del blocco. lettura dispositivo buffer copia Sistema Operativo Buffer: area tampone U-Buf: area tampone nella memoria virtuale del processo applicativo U- buf Processo assegnare i dispositivi ai processi che li richiedono con una politica di schedulazione ESISTE UN PRECISO ALGORITMO DI SCHEDULAZIONE. PUO AVVENIRE IN MODO: SERIALE, LA PERIFERICA VIENE ASSEGNATA IN MODO DEDICATO A UN PROCESSORE PER TUTTA LA DURATA, QUINDI LA PERIFERICA E’ OCCUPATA PER TUTTA LA DURATA DEL PROCESSO ANCHE SE UTILIZZATA PER PICCOLI INTERVALLI DI TEMPO(STAMPANTI) CONDIVISA, LA PERIFERICA E’ ASSEGNATA A PIU PROCESSI IN MODO DINAMICO PER IL TEMPO NECESSARIO AD EFFETTUARE L’OPERAZIONE I/O(HD). HARD DISK LE POLITICHE DI SCHEDULAZIONE HARD DISK CERCANO DI MINIMIZZARE I TEMPI DI SEEEK(SPOSTAMENTO TESTINA) E SONO: FCFS (FIRST COME FIRST SERVED) SSTF(SHORTEST SEEK TIME FIRST) SERVE LA PIU VICINA SCAN(TEMPO MINORE MA IN DIREZIONE DELLA TESTINA) C-SCAN(CIRCULAR SCAN) UNA VOLTA ALL’ESTREMITA TORNA INIZIO IN CERCHIO PER LE PERIFERICHE USATE IN MODO DEDICATO(STAMPANTI), PUO ESSERE SIMILATA L’ALLOCAZIONE CONDIVISA CON UNA TECNICA DI COLLOCAZIONE A PERIFERICHE VIRTUALI. L’OPERAZIONE DI I/O NON HA EFFETTO REALMENTE SULLA PERIFERICA MA SU UN AREA DI DISCO CHE SIMULA LA PERIFERICA(FILE DI SPOOL). IL COLLEGAMENTO TRA PERIFERICA VIRTUALE E REALE VIENE FATTO DAI PROGRAMMI DI SPOOL(SIMULTANEOUS PERIPHERAL OPERATIONS ON LINE) CHE SI OCCUPANO DEL TRASFERIMENTO DA E VERSO LA PERIFERICA DI OGNI FILE DI SPOOL POSTO IN CODA. SE PIU PROCESSI RICHIEDONO LA STAMPANTE AD OGNUNO SI ASSOCIA UN FILE SU DISCO IN CUI SI MEMORIZZANO DI VOLTA IN VOLTA LE INFORMAZIONI DA STAMPARE. SOLO QUANDO UN PROCESSO E TERMINATO IL FILE DI SPOOL PUO ESSERE MANDATO ALLA STAMPANTE E CANCELLATO. SE LA STAMPANTE E OCCUPATA IL FILE VIENE POSTO IN CODA DI STAMPA. PROCESSO 1 OUTPUT 1 PROCESSO 2 OUTPUT 2 PROCESSO 3 OUTPUT 3 3 2 1 STAMPANTE Omogeneizzare la gestione di dispositivi diversi; Vengono usati dei programmi, driver, che fanno da intermediari tra le operazioni Ad alto livello richieste dai programmi e l’invio dei segnali elettrici all’hardware. Per velocizzare gli accessi si puo usare un disco virtuale, che combina il dispositivo fisico e un area di memoria ram usata come cache. Questo metodo crea problemi con la caduta della corrrente. Gestire i malfunzionamenti che si possono verificare durante un trasferimento di dati TIPOLOGIE DI GUASTI • Eventi eccezionali (es. mancanza di carta sulla stampante ); • Guasti transitori (es. disturbi elettromagnetici durante un trasferimento dati); • Guasti permanenti (es. rottura di una testina di lettura/scrittura di un disco). Tipi di gestione degli eventi anomali: Ø Risoluzione del problema (mascheramento dell’evento anomalo); Ø Gestione parziale e propagazione a livello applicativo; • Tipi di eventi anomali: Ø Eventi propagati dal livello inferiore (es. guasto HW permanente; Ø Eventi generati a questo livello (es. tentativo di accesso a un dispositivo inesistente).