Estratto del documento

Il concetto di I-node nei sistemi UNIX

È un metodo utilizzato nei sistemi UNIX, in cui gli attributi dei file vengono conservati, separatamente dalle directory, in una struttura dati chiamata I-node. Questo concetto è particolarmente importante quando è necessario ripristinare un file system danneggiato. Gli attributi includono la dimensione del file e la sua locazione fisica, il proprietario e il gruppo di appartenenza, le informazioni temporali di modifica, ultimo accesso e cambio di stato e i permessi di accesso.

Ogni I-node ha associato un numero univoco all'interno del dispositivo e ogni file presente è identificato come un collegamento fisico all'I-node tramite il suo numero. Quando un programma cerca di accedere ad un file tramite un nome (es. documento.txt), il sistema operativo cerca l'I-node corrispondente e recupera tutte le informazioni sopra descritte per operare correttamente con il file.

Un I-node occupa un blocco, ma solo una piccola parte contiene gli indirizzi ai blocchi.

dei file. Si usa un approccio multilivello: i primi 12 puntatori puntano direttamente ai blocchi dei file, il tredicesimo punta ad un blocco riempito di riferimenti ai blocchi (blocco a indirezione semplice), il quattordicesimo ad un blocco di indirezione doppia, il quindicesimo a un blocco di indirezione tripla. Così un file può avere dimensione massima di (12+256+256^2+256^3) blocchi.

14. I/O programmato e con interruzioni- I/O gestito da interrupt: al termine di ogni operazione di I/O corrisponde un segnale rilevato dal controllore di interrupt. Il controllore del dispositivo genera un'interruzione della CPU sulla linea di richiesta delle interruzioni. La CPU rileva l'interruzione e la recapita al gestore delle interruzioni, che a sua volta gestisce l'interruzione corrispondente servendo il dispositivo. Se non ci sono altre interruzioni in corso, la richiesta viene gestita immediatamente, altrimenti viene momentaneamente ignorata e le interruzioni vengono

Gestite secondo un'eventuale priorità. Ergo, il servizio di I/O è richiesto dalla periferica stessa in modo asincrono con il flusso del programma, quindi il trasferimento avviene tramite un interrupt. L'istruzione che provoca lo scambio di dati è contenuta nella routine di servizio dell'interrupt. La CPU controlla lo stato del suo vettore delle eccezioni dopo l'esecuzione di ogni istruzione.

I/O programmato: si verifica quando il processore, usando un opportuno sw, accede allo spazio di indirizzi della periferica in esame per eseguire trasferimenti di dati in entrata o in uscita. L'I/O programmato avviene secondo una sequenza prevista, i cui tempi possono essere decisi dalla CPU. La CPU rimane in attesa attiva sul bit di "ready" del dispositivo fino a quando il dato non è pronto; quando lo è viene prelevato. In pratica, la CPU continua a chiedere al controllore se il dato è arrivato.

I/O tramite DMA: è

usato per evitare l'I/O programmato e per fare grandi trasferimenti di dati. Il DMA permette di scrivere i dati nel registro del controllore un byte alla volta, mentre quello programmato occuperebbe la CPU per troppo tempo perdendo di efficienza. Questa tecnica richiede un controllo di DMA (Direct Memory Access) che si trova concettualmente tra la CPU e la memoria, collegato tramite bus (il controllore deve essere dotato di un buffer dunque, per poter fare ciò). Per dare avvio a un trasferimento DMA, la CPU scrive in memoria un blocco di comando per il DMA. Esso contiene un puntatore alla locazione dei dati da trasferire, un altro puntatore alla destinazione dei dati e il numero di byte da trasferire. La CPU scrive l'indirizzo di questo blocco di comando nel controllore del DMA e prosegue con altre attività. Il controllore DMA agisce quindi direttamente sul bus della memoria, presentando al bus gli indirizzi di memoria necessari per eseguire il trasferimento senza

L'aiuto della CPU. Quindi il DMA consente di scaricare la CPU dal compito di trasferire dati tra il dispositivo di I/O e la memoria. Una volta terminata l'operazione di I/O il DMA interrompe la CPU avvisando della terminazione.

Soft-link e Hard-link

I link sono scorciatoie per accedere a file o directory. Permettono di avere più di un punto di accesso per lo stesso file o directory, ma le informazioni rimangono in un'unica copia. È possibile un solo livello di collegamento. In Unix ci sono due tipi di link:

  • SOFT LINK: simili ai collegamenti Windows, in cui il file creato contiene solo il nome del riferimento. Quindi, se "nuovo" è un soft link a "vecchio", posso usare indifferentemente nuovo o vecchio per modificare i miei dati. Se però cancello vecchio perdo i miei dati, nuovo rimane, ma nel momento in cui lo uso avrò un errore. Se invece cancello nuovo perdo solo un modo di accedere ai dati.
  • HARD LINK: non viene

creato alcun file, ma si fa riferimento agli stessi dati fisici (cioè i nomi dei due file sono equivalenti). Quindi, se nuovo è un hard linka vecchio posso usare indifferentemente nuovo o vecchio per modificare i dati e se cancello vecchio posso ancora accedere ai dati tramite nuovo (e viceversa).

Se cancello vecchio e poi lo ricreo allora ho due insiemi di dati diversi.

Anteprima
Vedrai una selezione di 1 pagina su 5
Sistemi operativi: I-node, input output programmato, Soft Link e Hard Link Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Dododoro48 di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Pavia o del prof Lombardi Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community