File System ed Input/Output

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

File system Casi di studio (3).
1 Directory Il formato delle directory varia nei vari FS utilizzati in ambito Unix Quando una directory viene aperta viene restituito un puntatore a un.
1 System Call per Comunicazione tra Processi Pipe.
SC che operano su file (1)
Giuseppe Fabio Fortugno.
Interfaccia del file system
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Esercizio: Copiare un file in un nuovo file mediante le funzioni read e write.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
I File.
Modulo 13: System call relative al File System
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persi-stenza dei dati) è necessario poterli archi-viare.
Il file system.
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
1 Implementazione del File System nel Sistema Operativo Unix (Bach: the Design of the Unix Operating System (cap: 4, da 5.1 a 5.7, 5.12)
1 Esempio di ADT e make Operazioni bit a bit su piu’ file.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
1 File System ed Input/Output UNIX Caratteristiche del FS Unix Implementazione Il file system di Linux Organizzazione dell’ I/O.
1 Chiamate di sistema Chiamate che lavorano su file.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
1.1 Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2010/2011 Prof. Luca Ferrari.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 6 Marzo 2016.
1 Alberto Pollastro, !#/bin/bash Novara, GalLUG - Gruppo Utenti Linux Galliate - #!/bin/bash Alberto Pollastro.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Orientamento. Il Kernel Il Kernel è un programma scritto in linguaggio vicino all'hardware che ha il compito di fornire ai processi in esecuzione sul.
1 © F. Pedullà, M. VerolaAA Pipe e FIFO LSO1 Modulo 9 Pipe e FIFO Laboratorio di Sistemi Operativi I Anno Accademico Francesco.
1 Amministrazione di base del sistema Cristina Moretto Corso Base LinuxTrent
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
Corso di Elementi di Informatica
A cura dell’Ing. Buttolo Marco
I comandi principali di Linux
Comparazione File System Domenico Chiefali a.k.a. JDaemon
Sistemi Operativi Modulo 9: File System Renzo Davoli Alberto Montresor
dCache Test effettuati al CNAF
Sistemi operativi.
I/O redirection AND PIPES
Terza Lezione → Navigare nel file System → parte 2
SC per IPC Pipe.
I PERMESSI IN LINUX.
Seconda lezione → Navigare nel File System
Organizzazione fisica
I FILES AD ACCESSO SEQUENZIALE
I FILE di dati in C#.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C Memoria secondaria: File
LINUX: struttura generale
APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Metacaratteri Il carattere * indica un tipo ed un numero qualsiasi di caratteri Per copiare tutti i file che iniziano per “hemo” nella directory dir %
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
File system Casi di studio (3).
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

File System ed Input/Output UNIX File System ed Input/Output Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System L’input/output

Implementazione del File System di UNIX (generico)

Implementazione del File System di UNIX Boot block: informazioni per il boot del sistema Super Block: info sulla disposizione dei blocchi (inizio lista blocchi liberi, numero blocchi, numero i-node) Organizzazione del disco nei sistemi UNIX

Implementazione del File System di UNIX Struttura di un i-node (es. 4 byte, 1k blocchi) 10 diretti + 256 indiretti + 256* 256 double indirect + ........

Implementazione del File System di UNIX Directory entry fields. Informazioni contenute in un i-node

Implementazione del File System di UNIX I passi necessari per leggere /usr/ast/mbox

Implementazione del Vecchio File System di Linux (ext2) Super Block: numero blocchi, numero i-node Group Descriptor: numero di blocchi liberi e directory Bitmaps: posizione i-node e blocchi liberi. Organizzazione del file system Ext2 (fino a 16GB)

Il file system di LINUX (1) Gerarchico / è la root directory ed il separatore /usr/bal/file.c Case sensitive Ammette link hard e simbolici Permette di integrare file system diversi in un unico albero (mounting)

Il file system di LINUX (2) Before linking. After linking. prima del linking. (b) dopo il linking (esempio di link simbolico) ln –s /home/folino/simulazione/data1 data Crea un link simbolico alla dir. /home… con nome data

Il file system di LINUX (3) Separate file systems After mounting (a) (b) prima del mounting. (b) dopo il mounting L’ìstruzione mount della shell effettua il mounting di un dispositivo mount /dev/fd0 /mnt/floppy

Protezione dei file in UNIX utente gruppo altri Esempi di modi di protezione dei file

Gestione dei file in Linux Per poter accedere al contenuto di un file occorre creare un canale di comunicazione con il kernel che renda possibile operare su di esso. Questo si fa aprendo il file con la funzione open che provvederà a localizzare l’inode del file e inizializzare i puntatori che rendono disponibili le funzioni che il VFS (Virtual File System) mette a disposizione. Una volta terminate le operazioni, il file dovrà essere chiuso, e questo chiuderà il canale di comunicazione impedendo ogni ulteriore operazione. All’interno di ogni processo i file aperti sono identificati da un numero intero non negativo, che viene chiamato appunto file descriptor. Quando un file viene aperto la funzione open restituisce questo numero, tutte le ulteriori operazioni dovranno essere compiute specificando questo stesso numero come argomento alle varie funzioni dell’interfaccia.

System Call per la gestione dei file s è un codice di errore fd è un descrittore di file position è un offset all’interno del file

System Call per la gestione dei file #include <fcntl.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> {int fd; fd = creat (“ciao.txt”,0777); /* rwx for all */ } Valori di fd 0 standard input Standard output Standard error 3, 4, ecc. altri file, pipe

System Call per la gestione dei file {int fd, bytescritti; char buffer[]=“buonasera”; fd = open (“pippo.c”,O_WRONLY | O_CREAT,0777); bytescritti = write (fd, buffer, 9); close (fd); } O_WRONLY solo scrittura O_RDONLY solo lettura O_RDWR lettura e scrittura O_CREAT se il file non esiste lo crea O_APPEND scrive alla fine del file write e read funzionano come per le pipe

System Call per la gestione dei file pos=lseek (fd, offset, punto_partenza); punto_partenza: SEEK_SET inizio file SEEK_CUR posizione corrente SEEK_END fine file pos = posizione dall’inizio del file. Esempio: open (“ciao”,WR_ONLY); pos=lseek (fd, 12, SEEK_SET); /* si sposta nella posizione 12 del file ciao */

La System Call stat int s; struct stat buffer; s=stat (“pippo.c”,&buffer); printf (“Dim. File=%d\n”, buffer.st_size);

I/O in UNIX I dispositivi sono file speciali L’accesso ai dispositivi viene effettuato con gli stessi comandi e le stesse chiamate di sistema utilizzate per operare sui file open, close, read, write cp file /dev/lp // la stampante /dev/tty // tastiera e schermo Pipe e socket Si dividono in: Block (indirizzabili in modo random) Character (flusso di caratteri)