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.

Slides:



Advertisements
Presentazioni simili
Windows Per questa parte: Elementi dell'interfaccia grafica.
Advertisements

File Linguaggio C.
Puntatori Linguaggio C.
CUDA & OpenMP parallel programming.
File system: system call e strutture dati a run-time.
Uso avanzato di C.
I file system.
Services For Unix 3.5 Lintegrazione di piattaforme e applicazioni UNIX con Windows Server 2003 Lintegrazione di piattaforme e applicazioni UNIX con Windows.
File System Cos’è un File System File e Directory
1 Casi di studio ISO 9660 FAT-12, FAT-16, FAT-32 NTFS.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 System Call per Comunicazione tra Processi Pipe.
Mappare file in memoria
SC che operano su file (1)
Realizzazione del file system
Realizzazione del file system
Un DataBase Management System (DBMS) relazionale client/server.
Windows 2000 supporta i seguenti file system:
JAVA C import java.util.*; #include <stdio.h>
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
Lettura e scrittura - Stream
Citrix Metaframe. Metaframe è la soluzione client-server prodotta dalla Citrix in grado di rendere disponibili applicazioni e desktop a qualsiasi dispositivo.
I Thread.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
HARD DISK Concetti di Base.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME … Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
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.
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
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.
FILE TESTO INPUT PROGRAMMA + DATI OUTPUT FILE DATI PROGRAMMA OUTPUT
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Componenti dell’architettura Oracle
Modulo 13: System call relative al File System
Un esempio: Registrazione e lettura di dati in un file
C aso di Studio Gruppo9: DAvino,Vetrano,Monda,Papa, Berardini,Schettino.
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Realizzazione Grammatica non contestuale –no ricorsioni sinistre –LL(1) produzione individuata dal primo token Ogni non-terminale -> funzione –rappresenta.
(1) Sistemi Operativi Prof. P. Cattaneo ufficio: L Ricevimento: Martedì14.00 –
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Processi e Thread Job: Insieme di processi che condividono quote e limiti. Processo: Contenitore di risorse (una lista di thread, una lista di handle e.
Controllo remoto di dispositivi tecnologici via TCP/IP.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
2000 Prentice Hall, Inc. All rights reserved. I file Apertura e chiusura I file ad accesso sequenziale I file ad accesso casuale Apre un file già esistente.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
SQL Developer Lanciare sqldeveloper (alias sul desktop) / c:\Oracle\sqldeveloper Associare tutti i tipi di file, se volete Tasto destro sulla spina “connection”
Dynamic SQL.
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Esempio di un volume RAID-5
Livello di trasporto Protocolli TCP e UDP.
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
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 File System Concetti e tecniche generali. 2 Il file system Il file system è la parte del SO che si occupa di mantenere i dati/programmi in modo persistente.
1 File system Casi di studio. 2 Esempi di File System Il file system di un CD-ROM Rappresentazione di un elemento di una directory nel file system ISO.
I FILES AD ACCESSO SEQUENZIALE
Claudio Rocchini - Interfacce
I FILE di dati in C#.
Programmazione e Laboratorio di Programmazione
File System ed Input/Output
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

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 di I/O

Il File System MS-DOS Rappresentazione di una directory in MS-DOS Attributi : file nascosto, file di sistema, ecc.

Il File System DOS in Windows 95/98 massima ampiezza delle partizioni per diverse ampiezze dei blocchi FAT32 utilizza in realtà 28 bit e permette una minore frammentazione Si ha una File Allocation Table mantenuta in memoria (solo in parte per FAT32).

Il File System di Windows 98 (FAT32) La rappresentazione estesa di una directory MS-DOS utilizzata in Windows 98 Bytes

Il File System di Windows 98 (2) La rappresentazione di (parte di) un nome di file lungo in Windows 98 Bytes Checksum

NTFS (Windows NT/2000) Indirizzi a 64 bit Nomi dei file in codifica Unicode Case-sensitive Stream multipli e attibuti associati ad un file I blocchi vanno da 512 bytes a 64K (standard 4 Kb) Supporta compressione e crittografia dei file

Struttura del File System NTFS La master file table di NTFS (1024 record da 1K)

Struttura del File System NTFS Gli attributi usati nei record MFT partizioni

Struttura del File System NTFS Un record MFT per un file di 3 run e 9 blocchi

Struttura del File System NTFS Un file che richiede 3 MFT record per memorizzare i suoi run

File System API in Windows 2000 Principali chiamate della Win32 API relative ai file con il loro equivalente Unix più vicino

Creazione di un File CreateFile ( nome, // nome del file accesso, // modo accesso (lettura, scrittura o entrambi) condivisione, // condivisione del file (0 nessuna condivisione) security, // attributi di sicurezza creazione, // creare il file o no se non esiste Attributi, // attributi vari (compressione, nascosto, ecc..) oldFile // handle di un file da cui copiare gli attributi (NULL indica nessun file) );

System Call per la gestione dei file accesso: GENERIC_READ GENERIC_WRITE condivis.: FILE_SHARE_READ FILE_SHARE_WRITE 0 creazione: CREATE_NEW CREATE_ALWAYS OPEN_EXISTING OPEN_ALWAYS INVALID_HANDLE_VALUE indica fallimento nella create Esempio: Handle hfile; hfile = CreateFile (pippo, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); If (hfile==INVALID_HANDLE_VALUE) printf (errore nella creazione file \n);

System Call per la gestione dei file S= WriteFile (handle, buffer, lung, &bytescritti,NULL); S= ReadFile (handle, buffer, lung, &byteletti,NULL); S vale 1 in caso di successo Esempio: { HANDLE hfile; DWORD bytescritti; int s; char buffer[]=buonasera; hfile = CreateFile (pippo, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL); s = WriteFile (hfile, buffer, 9,&bytescritti,NULL); CloseHandle (hfile); }

System Call per la gestione dei file pos=SetFilePointer (handle, offset, offsetAlto, puntoPartenza); puntoPartenza: FILE_BEGIN inizio file FILE_CURRENT posizione corrente FILE_END fine file pos = posizione dallinizio del file. Esempio: hfile=CreateFile(topo,…); pos=SetFilePointer(hfile, 12, NULL,FILE_BEGIN); /* si sposta nella posizione 12 del file topo */

System Call per la gestione dei file s=LockFile (handle, offset, offsetAlto, lung, lungAlto); s=UnLockFile (handle, offset, offsetAlto, lung, lungAlto); Lock non permette a nessun altro processo di accedere alla porzione di file a partire dalla posizione offset fino alla posizione offset+lung. Unlock rilascia laccesso.

Scriviamo 5 interi su file e li leggiamo HANDLE hfile; DWORD bytescritti,byteletti; int s,i; int buffer[]={5,7,12,8,9}; int bufferLett[5]; hfile = CreateFile ("pippo", GENERIC_WRITE|GENERIC_READ, 0, NULL, CREATE_ALWAYS, 0, NULL); s = WriteFile (hfile, buffer, 5*sizeof(int),&bytescritti,NULL); SetFilePointer(hfile,0,NULL,FILE_BEGIN); s = ReadFile (hfile, bufferLett, 5*sizeof(int),&byteletti,NULL); for (i=0;i<5;i++) printf ("%d\n",bufferLett[i]); CloseHandle (hfile);

Driver dei dispositivi di I/O Un driver deve essere conforme al Windows Driver Model, cioè deve, fra laltro: Gestire le richieste di I/O standard (I/O Request Packet) Essere basato su oggetti Essere rientrante nel caso di sistemi multiprocessore Essere compatibile fra Windows 98 e 2000

Gestione dellI/O (es. di utilizzo di porta seriale) #include int main() { HANDLE handle; char buffer[40] = …………….."; DWORD bytescritti; handle = CreateFile("COM1", GENERIC_READ, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); SetCommState(….); // setta alcuni parametri della porta SetCommTimeouts (…); / setta i timeout della porta WriteFile(handle, buffer, 40, &bytescritti, 0); CloseHandle (handle); }// fine main