Appunti per Scuola e Università
humanisticheUmanistiche
Appunti e tesine di tutte le materie per gli studenti delle scuole medie riguardanti le materie umanistiche: dall'italiano alla storia riguardanti le materie umanistiche: dall'italiano alla storia 
sceintificheScientifiche
Appunti, analisi, compresione per le scuole medie suddivisi per materie scientifiche, per ognuna troverai appunti, dispense, esercitazioni, tesi e riassunti in download.
tecnicheTecniche
Gli appunti, le tesine e riassunti di tecnica amministrativa, ingegneria tecnico, costruzione. Tutti gli appunti di AppuntiMania.com gratis!
Appunti
informatica
CComputerDatabaseInternetJava
Linux unixReti


AppuntiMania.com » Informatica » Appunti di computer » La gestione delle periferiche

La gestione delle periferiche




Visite: 1237Gradito:apreciate 5-stela [ Medio appunti ]
Leggi anche appunti:

La velocità: una misura difficile


La velocità: una misura difficile Cosa vuoi dire che un processare è migliore

Cd-audio


Cd-audio  Nel giugno del 1980 è stato presentato sul mercato un rivoluzionario

Il computer al servizio del progresso dell'umanità


Il computer al servizio del progresso dell'umanità   La nostra era moderna,
immagine di categoria

Scarica gratis La gestione delle periferiche

LA GESTIONE DELLE PERIFERICHE


Il modulo del sistema operativo preposto al device management ovvero alla gestione delle periferiche, delle unità di controllo e di quelle di canale deve svolgere le seguenti funzioni :


  • Conservare lo stato delle periferiche  (unit control block / channel control block)
  • Gestire un' opportuna politica di assegnazione delle periferica ai processi. Definire quando e per quanto tempo assegnare la periferica al processo. (i/o scheduler)
  • Assegnare la periferica e le relative interfacce al processo prescelto 
  • Gestire un'opportuna politica di rilascio della periferica sia a livello di processo che di lavoro.

Ricordiamo che : se una periferica è assegnata a livello di lavoro, essa gli viene associata al processo al momento in qui questo viene creato e ad esso rimane associata fin quando il processo esiste. Se una periferica  è assegnata a livello di processo, essa viene assegnata solo per il tempo strettamente necessario.


CONTROLLORE DEL TRAFFICO DI I/O.


Il modulo che si preoccupa di controllare e tenere aggiornato lo stato delle periferiche (e dei canali) è il "controllore del traffico I/O" (I/O traffic controller).

Il C.D.T. in ogni istante deve essere in grado di conoscere la disponibilità dei canali e delle periferiche e decidere a quale processo tra quelli in attesa assegnare il canale o la periferica richiesti.


Per fare questo deve consultare e tenere aggiornate due tabelle :


  1. un descrittore di periferica (unit control block) contenente tutte le informazioni relative allo stato delle periferiche (identif, stato periferica , lista dei canali associati, lista dei processi in attesa)
  2. un descrittore di canale (channel control block) contenente tutte le informazioni relative allo stato del canale (identif, stato canale, lista delle periferiche associate, lista dei processi in attesa)

Il Controllore del traffico di I/O si avvale di un algoritmo che gestisce la politica di assegnazione delle periferiche ai processi o ai lavori. Questo algoritmo chiamato Schedulatore di I/O (I/O scheduler) viene interpellato dal c.d.t. ogni volta che viene mandato in esecuzione un processo o sottoprocesso di I/O.


L'effettivo trasferimento fisico delle informazioni tra il sistema e la periferica avviene per mezzo di un programma posto in memoria di massa detto Handler della periferica (driver?) che ha il compito di creare i programmi di canale, di inizializzare l'operazione di I/O e di ottimizzare i tempi di trasmissione.


TECNICHE DI ALLOCAZIONE DELLE PERIFERICHE


Poiché in un ambiente multiprogrammato, le periferiche possono essere richieste contemporaneamente da più processi attivi, per mantenere elevato i rendimento del sistema e massimizzarne l'uso si deve ricorrere a particolari tecniche di gestione :


  • Allocazione a periferiche dedicate
  • Allocazione a periferiche condivise
  • Allocazione a periferiche virtuali.

Allocazione a periferiche dedicate


E' un sistema di allocazione utilizzato per quelle periferiche che possono essere usate solo serialmente quindi quando servono un processo non possono servire nessun altro processo. Questo sistema di allocazione prevede all'assegnazione della periferica a livello di lavoro, ovvero per l'intera durata dello stesso nessun'altro processo potrà utilizzarla. Il lato negativo di questo tipo di assegnazione è chiaro : anche se la risorsa (periferica) rimarrà inutilizzata per diverso tempo, essa non è utilizzabile da altri processi.


Allocazione a periferiche condivise


Questa modalità di assegnazione è quella messa in pratica per la maggior parte delle risorse che quindi possono essere utilizzate "parallelamente" da più processi (un esempio è il disco fisso : i processi di i/o non interf. Tra loro):

Questo è possibile grazie a due fattori :

  • Alla periferica viene effettuato un "accesso diretto" simile come avviene all'accesso in memoria centrale.
  • La periferica opera ad un elevata velocità di i/o consentendo una sorta di "time sharing" tra i processi.

L'attuazione di questo sistema di allocazione prevede l'assegnazione dinamica della risorsa ai vari processi per il solo tempo necessario al suo uso e per mezzo di una politica di assegnazione a priorità che tenga conto delle caratteristiche dei processi.  Per garantire meccanismi di protezione, nei moderni S.O. le operazioni di I/O vengono definite come privilegiate cioè possono avvenire solo tramite intermediazione del S.O. che controlla se la richiesta del processo è lecita.


Allocazione a periferiche virtuali


La difficoltà della gestione delle periferiche dedicate ha suggerito la possibilità di convertirle in risorse compartite in modo da far avanzare in maniera parallela i processi che le richiedono.

In pratica vengono simulate le periferiche tramite delle opportune aree di memoria di massa nelle quali memorizzare i dati diretti alla periferica. Sarà compito dei programmi di SPOOL (Simultaneous Peripheral Operations On Line) dirottare i dati diretti alla periferica verso le aree del disco consentendo al processo di proseguire il suo task e successivamente, quando la periferica si libera di trasferire i dati dall'area del disco alla periferica.


COLLEGAMENTI TRA CANALI E PERIFERICHE.


In un sistema operativo, Il modulo di gestione delle periferiche ha anche il compito di sovrintendere alle operazioni dei canali di I/O i quali sono dei processori dedicati che eseguono particolari programmi detti programmi di canale.

Anche se sarebbe desiderabile disporre di un processore di canale per ogni tipo di periferica, questo non è possibile per gli elevati costi di implementazione; quindi il loro numero è molto minore rispetto a quello delle periferiche.


E' intuitivo che per poter effettuare un trasferimento dati tra la memoria e una periferica è indispensabile che siano unite da una linea di trasmissione eventualmente condivisa da più dispositivi.


In questo caso il controllore del traffico di I/O dovrà verificare lo stato di ogni dispositivo presente sulla linea consultando la lista dei descrittori delle periferiche e la lista dei descrittori dei canali.


In considerazione del fatto che se un canale è utilizzato da un dispositivo, non sarebbe possibile raggiungere gli altri dispositivi connessi allo stesso canale sono state sviluppate delle tecniche per minimizzare questo fenomeno:


  • Utilizzo di periferiche indipendenti
  • Utilizzo di periferiche bufferizzate
  • Utilizzo di linee multiple
  • Utilizzo di canali multiplexati.

Periferiche indipendenti


Adottare delle periferiche indipendenti significa usare periferiche dotate di particolari dispositivi che le rendono in grado di effettuare alcune operazioni necessarie per il trasferimento senza l'assistenza del processori di canale. In questo modo, mentre la periferica operata autonomamente, il processori di canale può essere utilizzato per inizializzare una nuova operazione di I/O.

In considerazione del fatto che il processore di canale più quindi servire più processi è necessario sincronizzare le operazioni di I/O su tutte le periferiche collegate allo stesso canale.

A tale scopo si usano opportuni segnali di interruzione che vengono attivati ogni volta che un dispositivo (canale o periferica) ha terminato il proprio lavoro.

Queste interruzioni, dette interruzioni di fine I/O vanno a modificare alcuni bit della parola di stato del canale (channel status word) definendo quindi lo stato di ciascuno dei componenti presenti sulla linea di trasmissione rendendo quindi disponibile l'informazione di tutti i dispositivi disponibili per nuove operazioni.

In particolare il segnale di fine uso del canale porrà a 0 il bit relativo al processore di canale, ma lasciando invariato quello della periferica che sta ancora lavorando autonomamente, mentre il segnale fine operazione di I/O porrà a 0 sia il bit del processore di canale che quello della periferica rendendo disponibile l'intera linea.


Periferiche bufferizzate


Sono dotate di un'area di memoria autonoma (buffer) su cui depositare temporaneamente i dati nel corso delle operazioni di I/O. Questo riduce di tempi morti legati alla minore velocità della periferica rispetto al sistema e di conseguenze limitare l'uso del canale al solo tempo necessario al trasferimento dei dati.


Linee multiple


Una terza tecnica che consente di superare le limitazioni imposte dal collegamento diretto tra periferica e canale è quella di disporre di più collegamenti fisici tra canali e dispositivi rendendo quindi la periferica utilizzabile indipendentemente dalla disponibilità di un particolare canale.

Questa tecnica è detta delle linee multiple. Se si potesse avere un linea di collegamento tra una periferica e tutti i processori di canale saremo certi che per accedere a tale periferica basterebbe avere anche un solo canale disponibile. Questo però non è praticamente possibile per via dell'alto costo di implementazione del collegamenti, ma ci si limita a implementare linee multiple di collegamento con quelle periferiche maggiormente usate e il cui funzionamento influenza fortemente il rendimento del sistema (per esempio le unità disco).


Canali multiplexati


Per sfruttare appieno le potenzialità delle periferiche indipendenti e bufferizzate è possibile usare dei canali multiplexati in maniera tale da avere una sorta di "multiprogrammazione" a livello di I/O consentendo al processori di canale di servire "contemporaneamente" più programmi. Non appena la periferica (bufferizzata o indipendente)

Non richiede l'intervento diretto del processore di canale quest'ultimo viene dirottato su un altro programma.

TECNICHE DI SCHEDULAZIONE DEL DISCO


Le periferiche condizionano maggiormente l'efficienza di un sistema informatico sono indubbiamente le unità disco che rappresentano le memorie di massa più utilizzate.

E' quindi comprensibile come l'ottimizzazione dei tempi medi di accesso al disco grazie ad una corretta politica di gestione delle richieste dei processi (politiche di schedulazione) possa incidere in modo non trascurabile sui tempi di risposta dei singoli programmi.


Le politiche di schedulazione si basano sommariamente su principi simili a quelli esposti per la schedulazione dei processi; vengono però applicate ai processi in coda di attesa alla periferica allo scopo di determinare in modo più veloce per servire le richieste di accesso.


Nella realizzazione degli algoritmi di schedulazione del disco (politiche di schedulazione) occorre tenere presenti i fattori che influenzano il tempo di risposta della periferica :


  • Tempo di seek che rappresenta il tempo necessario alle testine per raggiungere il cilindro indirizzato per effettuare l'operazione di I/O.
  • Tempo di latenza che rappresenta il tempo i rotazione necessario per portare il settore indirizzato sotto la testina.
  • Tempo di trasferimento che rappresenta il tempo necessario per il trasferimento fisico dei dati dal disco al buffer in memoria o viceversa.

La maggior parte degli algoritmi tende ad ottimizzare soprattutto i tempi di seek che sono molto più gravosi di quelli di latenza e trasferimento.


I sistemi di schedulazione più diffusi sono :


  • Schedulazione FCFS (First Come First Served)          [il primo che arriva è servito prima ]
  • Schedulazione SSTF  (Shortest Seek Time First) [è servito prima il tempo di seek più basso]
  • Schedulazione SCAN (politica dell'ascensore)
  • Schedulazione C-SCAN (scan circolare)
  • Schedulazione C-LOOK  (versione migliorata di C-SCAN)

Schedulazione FCFS  (First Come First Served)


Questa strategia non prevede alcun ordinamento o analisi di priorità tra i processi in attesa, semplicemente i processi vengono serviti nell'ordine in cui hanno richiesto la risorsa : inizialmente il primo, poi il secondo e così via. E' molto semplice da implementare poiché in pratica si tratta di una coda FIFO (first in first out). E' intrinsecamente imparziale , ma non offre un buon tempo di risposta dato che le testine sono spesso costrette a muoversi senza razionalità sulla superficie del disco in accordo con le tracce richieste dai singoli processi.


Schedulazione SSTF  (Shortest Seek Time First)


Con questa strategia viene servita per prima la richiesta che indirizza verso la traccia più vicina a quella su cui si trova già posizionata la testa, ovvero la richiesta che genera il minor spostamento della testina.

Questo algoritmo privilegia fortemente le richieste localizzate e penalizza molto quelle distribuite sulla superficie del disco dando luogo a possibili starvation.

Fornisce un tempo medio di risposta migliore del FCFS, ma può essere ancora migliorato.


Schedulazione SCAN (politica dell'ascensore)


E' un'evoluzione del SSTF , quindi la selezione del processo da servire si basa sempre sul minore "seek time", ma vengono considerati però i processi che richiedono l'accesso a settori raggiungibili mantenendosi nella direzione corrente del movimento della testina. La direzione non viene cambiata finchè non si raggiunge l'estremità della superficie del disco. La testina quindi esegue una scansione continua del disco da un'estremità all'altra, prima in una direzione poi nell'altra.


Schedulazione C-SCAN (Circular SCAN)


Questa strategia è una variante della SCAN ed'è stata progettata per avere tempi di attesa più uniformi. La differenza rispetto alla SCAN consiste nel fatto che una volta raggiunta l'estremità del disco, invece di percorrerlo nel senso opposto (come la SCAN) torna immediatamente all'inizio ripercorrendo la superficie nello stesso verso. In pratica le tracce del disco vengono considerate come una lista circolare in cui all'ultima traccia segue la prima.


Schedulazione C-LOOK (Circular LOOK)


E' una versione migliorata del C-SCAN. A differenza di questo, infatti, la testina non arriva all'estremità opposta del disco, ma inverte direzione dopo aver servito l'ultima richiesta e prosegue poi a servire in senso opposto partendo dalle richieste più vicine all'altro estremo. In pratica non raggiunge i cilindri che stanno agli estremi se non i sono richieste per quei cilindri.

Scarica gratis La gestione delle periferiche
Appunti su:



Scarica 100% gratis e , tesine, riassunti



Registrati ora

Password dimenticata?
  • Appunti superiori
  • In questa sezione troverai sunti esame, dispense, appunti universitari, esercitazioni e tesi, suddivisi per le principali facoltà.
  • Università
  • Appunti, dispense, esercitazioni, riassunti direttamente dalla tua aula Universitaria
  • all'Informatica
  • Introduzione all'Informatica, Information and Comunication Tecnology, componenti del computer, software, hardware ...