11.07.2015 Views

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

Amministrare GNU/Linux - Cia

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5.4. LA GESTIONE DI INTERFACCE E PERIFERICHE 217Una descrizione dettagliata del funzionamento di queste interfacce va ben oltre lo scopo diqueste dispense, la loro gestione è infatti completamente realizzata all’interno del kernel attraversoil codice relativo al loro supporto. Quello che interessa dal punto di vista dell’amministrazionedi sistema è capire quali sono le risorse utilizzate e come allocarle e le funzionalità messe a disposizionedel kernel che consentono di accedere alle informazioni relative a dette interfacce edai dispositivi su di esse presenti a scopo di configurazione o di controllo.Le risorse fondamentali usate da una interfaccia sono sostanzialmente due gli interrupt e icanali DMA. Un interrupt è un un meccanismo con cui un dispositivo hardware può inviare unsegnale al processore 64 (usando quella che si chiama una linea di interrupt) così che questo possainterrompere le operazioni e rispondere all’esigenza di attenzione così manifestata dal dispositivo.In genere un processore ha un numero limitato di linee di interrupt (originariamente nei PC erano8, oggi sono state portate a 15), in altre architetture sono 32 o 64.La seconda risorsa è quella dei canali DMA, questi sono un meccanismo hardware che consentedei trasferimenti diretti di dati da una periferica alla memoria senza che questi debbanoessere letti direttamente con l’intervento della CPU, che può essere utilizzata in altre operazioni.Con l’uso dei canali DMA il sistema si limita a richiedere solo un intervento iniziale della CPUper indicare al dispositivo in quale zona di memoria inviare i dati, che saranno poi trasferiti inmaniera asincrona. In genere l’uso di un canale DMA si abbina sempre a quello di un interruptche serve a segnalare la conclusione del trasferimento, così che la CPU sistema possa utilizzarei dati disponibili in memoria.Uno dei problemi relativi alla gestione delle interfacce di espansione è allora proprio quellodella allocazione degli interrupt e dei canali DMA ai dispositivi esistenti, 65 che di norma puòessere eseguita a livello di BIOS. In particolare alcuni interrupt sono assegnati staticamente aperiferiche presenti sui PC da prima che fosse possibile una allocazione dinamica, come l’interfacciaIDE per i dischi, le seriali e la parallela; gli altri poi possono essere lasciati liberi per l’usoda parte delle interfacce di espansione o di altre interfacce interne come USB (che vedremo insez. 5.4.4).I problemi che possono sorgere sono allora quelli dell’allocazione di queste risorse; il kernelpermette di esaminare lo stato corrente di queste allocazioni attraverso i due file /proc/interruptsper gli interrupt e /proc/dma per i canali DMA; un esempio potrebbe essere il seguente:# cat /proc/interruptsCPU00: 584706 XT-PIC timer1: 15435 XT-PIC keyboard2: 0 XT-PIC cascade8: 4 XT-PIC rtc9: 2 XT-PIC usb-uhci, usb-uhci, btaudio, bttv10: 933383 XT-PIC EMU10K1, eth011: 2170 XT-PIC ide2, ide3, aic7xxx12: 319229 XT-PIC PS/2 Mouse14: 56 XT-PIC ide015: 162630 XT-PIC ide1NMI: 0LOC: 584659ERR: 848MIS: 0che mostra l’allocazione degli interrupt, il cui numero progressivo è riportato in prima colonna,rispettivamente ai dispositivi ad essi associati (riportati nell’ultima); nella seconda colonna sono64 in senso fisico, viene alzato un livello su uno dei piedini del processore a questo dedicato.65 in realtà questo è un problema che si ha quasi esclusivamente sui PC intel-compatibili, che hanno pochiinterrupt e canali DMA e tutta una serie di limitazioni ereditate dall’architettura originaria che su altre piattaformenon esistono.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!