Search Header Logo
Sistemi Operativi - Gestione I/O

Sistemi Operativi - Gestione I/O

Assessment

Presentation

Computers

11th Grade

Practice Problem

Hard

Created by

Giovanni Pedroncelli

Used 3+ times

FREE Resource

28 Slides • 18 Questions

1

Sistemi Operativi - Gestione I/O

By Giovanni Pedroncelli

2

Gestione I/O

SO = Interfaccia tra utenti e dispositivi di Input/Output

Tanti dispositivi I/O --> ​sottosistema I/O suddiviso in driver (uno per ciascuna periferica), programmi che consentono al SO di scambiare informazioni con i dispositivi hardware collegati

I driver rendono uniforme la gestione di ​ogni dispositivo da parte delle applicazioni e del SO

3

Obiettivi dei driver

  • nascondere i dettagli di ciascun dispositivo

  • ​distinguere dispositivi fisici (routine di basso livello) da dispositivi logici (canali -> funzioni di alto livello)

  • associare ​un dispositivo fisico a uno logico​

  • ​consentire ai processi di interagire con i dispositivi logici

4

Dispositivi I/O

  • di ingresso e puntamento​

  • di memorizzazione

  • ​di collegamento

  • multimediali​

5

Caratteristiche Dispositivi I/O

media

6

Problematiche comuni

  • sistema I/O condiviso --> gestione concorrenza

  • equità nell'accesso alla periferica --> ottimizzazione throughput

  • ​gestione delle interruzioni

  • ​verifica permessi di accesso ai singoli dispositivi

  • ​procedure specifiche complesse per gestire le operazioni di basso livello

7

Hardware di I/O

Comunicazione: la porta

media

8

Hardware di I/O

Trasmissione: il bus

media

​Un bus fisico

Tre bus logici:

  • ​ABUS

  • DBUS

  • CBUS​

9

Hardware di I/O

Interfaccia: il controller

​Componenti elettronici che possono operare su una porta, un bus o una periferica --> adattamento logico ed elettrico tra periferiche e calcolatore

Tre registri:

  • SREG

  • CREG

  • DREG​

10

Hardware di I/O

media

11

Indirizzamento I/O

Isolated I/O

Spazio degli indirizzi ​dei registri del controller diverso da quello della memoria centrale

Apposite istruzioni I/O per ​manipolare i registri a cui sono associati specifici indirizzi di 8/16 bit

12

Indirizzamento I/O

media

13

Indirizzamento I/O

Memory-mapped I/O

La CPU esegue le richieste di I/O utilizzando le istruzioni standard di trasferimento dati in memoria centrale

Registri <--> Memoria centrale​

Spazio di indirizzamento ridotto ​per la memoria e possibilità di utilizzare istruzioni e modi di indirizzamento utilizzabili già per la memoria

14

Multiple Choice

Cosa sono i driver?

1

Collegamenti fisici alle periferiche

2

Sistemi di scrittura sulle periferiche

3

Programmi che permettono l’interfacciamento delle periferiche

4

Canali di comunicazione con la CPU

15

Multiple Choice

Cosa si intende con porta?

1

Il dispositivo che permette di accedere all’interno del PC

2

Un sistema di connessione della periferica

3

Un dispositivo per effettuare la trasmissione dei segnali

4

Una interfaccia per le periferiche

16

Multiple Choice

Quale tra i seguenti NON rientra tra i bus standard?

1

ABUS

2

BBUS

3

CBUS

4

DBUS

17

Multiple Choice

Quale tra i seguenti NON rientra tra i registri di un'interfaccia?

1

AREG

2

CREG

3

DBUS

4

SREG

18

Multiple Choice

La porta è un componente del kernel del Sistema Operativo

1

Vero

2

Falso

19

Multiple Choice

Il DBUS è costituito dall'insieme di linee su cui viene indirizzato il dispositivo

1

Vero

2

Falso

20

Multiple Choice

Nell'Isolated I/O lo spazio degli indirizzi è diverso da quello della memoria centrale

1

Vero

2

Falso

21

Multiple Choice

Il sistema Memory-mapped I/O (indicare l'affermazione errata):

1

utilizza le istruzioni standard di trasferimento dati in memoria centrale

2

i registri sono connessi come le normali celle di memoria

3

è utilizzato ad esempio dalla scheda grafica

4

non influisce sullo spazio di indirizzamento per la memoria

22

Protocolli di comunicazione

​Comunicazione tra controller e driver​

​Bilanciare costo/prestazioni

Prestazioni:

  • ​tempo di reazione

  • velocità trasferimento dei dati

  • ​efficienza nell'uso della CPU

23

Attesa attiva: polling

​I/O a controllo di programma: la CPU inizia, dirige e termina le operazioni I/O​

Il processore interroga periodicamente tutte le periferiche per capire se ci sono dati da leggere o se è possibile scrivere su di esse (polling)

Interazione tra protocollo e controller attraverso handshaking

24

Attesa attiva: polling

  1. il computer continu​a a leggere il bit busy del dispositivo finché non è = 0

  2. ​il processore specifica il comando da eseguire sulla periferica nel registro di controllo e setta il bit command-ready su 1

  3. il controller mette a 1 il bit busy ed esegue il comando

  4. ​tutti i dati vengono scambiati tramite una porta di lettura/scrittura

  5. ​terminata l'esecuzione, vengono azzerati entrambi i bit

25

Attesa attiva: polling

Vantaggi: semplicità, flessibilità e basso costo. ​Utilizzabile per sistemi piccoli

Svantaggi: ​scarso sfruttamento della CPU, gestione dispositivi demandata alla CPU --> spreca tantissimo tempo per il polling, tempo di risposta altissimi

​Esempio: processore a 500 MHz e 400 cicli di clock per il polling

Mouse: ​polling 30 volte/secondo --> (30*400)/(500*106)=0.002%

​Hard disk: blocchi di 16 byte a 8 MB/s --> ((8/16)*400)/(500*106) = 40%

26

Interrupt

La procedura di lettura è eseguita solo quando la periferica è pronta --> non si perde tempo con il busy waiting

La periferica avverte il processore ​di essere disponibile inviando un segnale di interrupt

Gestione asincrona delle operazioni di I/O​: la CPU risponde alla richiesta di interruzione sospendendo il processo che stava eseguendo

27

Interrupt con linee di richiesta

Uno dei metodi di rilevazione di interrupt

  1. ​la CPU verifica lo stato delle linee di richiesta dopo l'esecuzione di ogni istruzione

  2. ​se il controller ha mandato un segnale INTREQ, allora salva PC e PSW e passa in modalità kernel

  3. il controllo passa alla specifica ​procedura di gestione dell'interrupt (Interrupt Service Routine) e context switch

  4. eseguite le operazioni di I/O viene ripristinato lo stato precedente all'interrupt ed eseguita l'istruzione contenuta nel Program Counter

28

Interrupt

Problemi

  1. ​identificare la periferica e attivare la specifica ISR

  2. ​stabilire un tempo limite per servire l'ISR

  3. ​se ci sono più richieste, introdurre livelli di priorità

  4. ​che cosa succede se si riceve interrupt mentre si serve un'altra ISR?

Vantaggi​: più efficiente del polling e gestione trasparente

​Svantaggi: overhead CPU dovuto anche ai tempi di context switch

29

Direct Memory Access - DMA

Modalità efficiente per periferiche che scambiano grandi quantità di dati (HD)

​Interfaccia diretta tra periferica e memoria centrale attraverso il DMA Controller (DMAC) che trasferisce direttamente dati tra periferica e memoria centrale usando il bus e invia interrupt a trasferimento completato

​Velocità di trasferimento non più vincolata al tempo di risposta della CPU

​Istruzioni di I/O NON eseguite dalla CPU

30

Struttura del DMAC

  • indirizzo base: ​indirizzo di memoria in cui trasferire dati

  • porta periferica: indirizzo porta dove leggere/scrivere dati

  • lunghezza: del blocco di dati​

  • controllo: campi codici errore​ e di inizio/fine trasferimento

  • dato: registro tampone, opzionale

media

31

Riepilogo

media

32

Altri servizi del sottosistema I/O

I/O Scheduling

​Trovare un ordine efficiente di gestione delle chiamate di I/O migliorando le prestazioni globali del sistema --> una coda per ogni processo e si sceglie quale richiesta soddisfare (in base a priorità e durata operazione)

33

Altri servizi del sottosistema I/O

Buffering

​Alcune aree di memoria (buffer) in cui memorizzare temporaneamente i dati prima di trasferirli ai processi (in caso di input) o ai dispositivi (in caso di output)

Perché?

  1. ​gestire la differenza di velocità tra produttore e consumatore dei dati

  2. ​gestire l'eventuale differenza di dimensione dei blocchi di dati

  3. ​semantica della copia: copia dei dati su dispositivo = copia dei dati presenti in memoria

34

Altri servizi del sottosistema I/O

Caching

Cache = zona di memoria veloce che conserva copie dei dati recentemente utilizzati --> la CPU evita un altro accesso alla memoria secondaria

Cache vs Buffer

Nella cache c'è una copia dell'informazione, nel buffer c'è l'unica istanza dell'informazione​

35

Altri servizi del sottosistema I/O

Spooling (Simultaneous Peripheral Operation On Line)

Spool = buffer su memoria di massa per dispositivi di output non condivisibili

​Assegnare a ogni processo che richiede di usare il dispositivo di I/O un dispositivo virtuale (file su disco)

36

Altri servizi del sottosistema I/O

Spooling (Simultaneous Peripheral Operation On Line)

  1. Ogni processo ottiene subito l'accesso al dispositivo virtuale

  2. I dati vengono trasferiti al dispositivo virtuale e NON al dispositivo fisico

  3. Quando il processo chiude il dispositivo virtuale, il file viene inserito in coda tra quelli che saranno serviti, uno alla volta, dal dispositivo fisico

Lo spooler è un processo di sistema, l'unico programma che ha accesso diretto alla periferica e gestisce la coda di attesa dei processi

37

Multiple Choice

I protocolli di comunicazione con il controller sono

1

polling, scheduling, DMA

2

scheduling, interruzione, DMA

3

polling, interruzione, scheduling

4

polling, interruzione, DMA

38

Multiple Choice

Nell'attesa attiva (indicare l'affermazione errata):

1

avviene l'I/O a controllo di programma

2

avviene l'handshaking

3

abbiamo alta flessibilità e basso costo

4

la velocità è buona perché la effettua la CPU

39

Multiple Choice

Con IRQ si intende

1

Interrupt Request

2

Interrupt Request Query

3

Interrupt Ready Query

4

Internal Request

40

Multiple Choice

Un processore riceve una richiesta di interruzione: quando parte il processo che porta all’attivazione della relativa procedura di servizio dell’interruzione?

1

Immediatamente

2

Al termine del ciclo di clock

3

Al termine del corrente ciclo di bus

4

Al termine dell'istruzione corrente

41

Multiple Choice

Nel polling tra gli svantaggi c'è lo scarso sfruttamento della CPU

1

Vero

2

Falso

42

Multiple Choice

Il polling è sconsigliato per la gestione del mouse

1

Vero

2

Falso

43

Multiple Choice

Con la gestione di un hard disk in polling si sprecherebbe il 40% del tempo CPU

1

Vero

2

Falso

44

Multiple Choice

Le interruzioni consentono una gestione sincrona dell'operazione di I/O

1

Vero

2

Falso

45

Multiple Choice

Nel DMA le istruzioni di I/O sono eseguite velocemente dalla CPU

1

Vero

2

Falso

46

Multiple Choice

L'I/O scheduling utilizza una coda per ogni processo

1

Vero

2

Falso

Sistemi Operativi - Gestione I/O

By Giovanni Pedroncelli

Show answer

Auto Play

Slide 1 / 46

SLIDE