Gli interrupts e le ioports

Diamo un’occhiata al file /proc/ioports/. Al suo interno vediamo ogni dispositivo e il suo corrispondente e univoco spazio in memoria. Una cosa sono gli interrupts, ma una volta che il dispositivo ha inviato l’interrupt alla CPU questa deve mediare il trasferimento di dati tra la periferica e la memoria. e questo e’ lo scopo delle IOPORTS.Fornire ad un Device un range di memoria in cui possa essere assegnato e poi la CPU trasferisce e mette in atto una mediazione in termini di trasferimento di dati dal device alla memoria.

Ognuno di questi indirizzi posti in

memoria non e’ e non e’ possibile poterlo condividere con altri dispositivi per funzionare correttamente. Se cosi non fosse ci sarebbe un malfunzionamento dell’intero sistema

In alcuni sistemi piu’ recenti,invece di usare le ioports viene usato DMA ( cat /proc/dma dove possono esserci piu’ dispositivi e il vantaggio con questo sistema e’ che non si affatica la cpu.

Infatti con DMA possiamo assegnare la memoria direttamente ai dispositivi e bypassare la mediazione della CPU. Quindi sara’ il dispositivo che scrive e legge direttamente dalla memoria che gli e’ stata assegnata.