Nuove metodologie di conoscenza distribuita PON- mis.1.2 2003/2004—2004/2005 con stage pr. “MARS” (Microgravity Advanced Research and Support Center) Via E. Gianturco, 31 – 80146 Napoli attività di orientamento introduzione ai DATA BASE Prof.ssa Cutugno Annamaria ATTIVITA’ • Introduzione ai S.O.—File system— S.O.Microsoft—Archivi di dati • Modello dei dati e progetto software • Le basi di dati • Ambienti software per data base • Il linguaggio SQL e Access Un Sistema Operativo (S.O.) viene definito come “un programma o un insieme di programmi, che garantisce agli utenti una visione astratta delle risorse ed una loro gestione corretta, sicura ed efficiente”. sistemi dedicati multiprogrammazione real-time sistemi distribuiti elaborazione a lotti time-sharing multielaborazione Per sfruttare al meglio i tempi della CPU è necessario che in memoria siano contemporaneamente presenti diversi programmi in modo tale che se uno di essi non può continuare l’esecuzione (in attesa del completamento di un trasferimento di I/O) sia possibile proseguire subito quella di un altro programma. Tale concetto è noto come multiprogrammazione ed ha determinato la vera e propria nascita dei SO come disciplina di studio. Il S.O. deve gestire la condivisione delle risorse sia software che hardware e tale capacità esprime il grado di multiprogrammabilità di un sistema, ovvero il numero dei processi contemporaneamente attivi sulla stessa C.P.U. Nasce così la multiprogrammazione che prevede l’esistenza di un S.O. che tenga conto che più processi possono avanzare contemporaneamente, in parallelismo apparente, su una stessa C.P.U. I vantaggi della multiprogrammazione sono evidenti quando ci sono operazioni di I/O di una certa lunghezza, oppure quando vengono elaborati una serie di processi con diversi tempi di esecuzione La multiutenza, invece, è la modalità in base alla quale più utenti collegati possono contemporaneamente contendersi l’uso delle risorse del sistema. Quando uno dei processi attivi richiede un’operazione di I/O, la C.P.U. si dedica ad un altro processo in attesa. In altri termini le esecuzioni di più programmi possono ‘inserirsi’ nel tempo (interleaving) le une nelle altre in modo che la C.P.U. non debba mai aspettare che i dispositivi di I/O abbiano ultimato un’operazione di trasferimento Tempo C.P.U. I/O A B pronto esecuzione attesa (o blocco) Un SO in cui il processore viene assegnato “a turno” e per un certo tempo (quanto di tempo o time slice) a più utilizzatori, collegati all’unità centrale tramite terminali. Si ottiene così un sistema multiprogrammato, caratterizzato dalla presenza simultanea di diversi programmi nella memoria centrale e dalla loro esecuzione basata sui quanti di tempo ed operazioni di I/O. Inoltre i sistemi a partizione di tempo sono la risposta alla necessità di permettere un rapporto utente-calcolatore di tipo interattivo. pronto esecuzione attesa (o blocco) Lo sviluppo di sistemi operativi multiprogrammati e del time sharing, ha spinto lo sviluppo dei sistemi hardware, rendendoli sempre più veloci, efficienti e poco costosi, sino alla generazione dei PC, utilizzati nelle case come un comune elettrodomestico. Oggi, riferito alla generazione dei PC con S.O. Windows , si parla di multitasking. Bisogna dunque dare la seguente definizione: Con il termine multitasking definiamo la capacità di un elaboratore di servire più processi dando a ciascuno l’impressione di utilizzare la macchina reale e mettendo invece a loro disposizione solo il servizio di una macchina virtuale. Il multitasking simula quindi la presenza di più elaboratori all’interno di uno stesso sistema, servendo più processi e gestendo adeguatamente le diverse risorse di cui dispone L’evoluzione dei S.O. ha indotto i ricercatori a studiare i problemi legati all’esecuzione di diverse attività parallele gettando le basi teoriche di quella importante disciplina dei S.O. oggi nota come Programmazione Concorrente contrapposta alla Programmazione Sequenziale comunemente intesa. La multielaborazione è la modalità secondo la quale più processi avanzano, in un parallelismo reale, su un sistema costituito da due o più C.P.U. autonome, ma interconnesse, che condividono l’utilizzo dalla memoria centrale, e delle periferiche. Secondo M.J.Flynn fu fatta una classificazione delle possibili architetture di un sistema di calcolo, tra queste viene introdotto il concetto di sistema a più processori (multiprocessor). Ad una di queste classi appartengono quei sistemi multiprocessor in cui i vari processori eseguono simultananeamente istruzioni diverse su dati diversi Un esempio di macchine MIMD (Multiple Istruction Stream—Multiple Data Stream) è rappresentato dai sistemi ad architettura distribuita, in cui tra i vari processori vengono distribuite non solo le risorse di calcolo e di memorie, come i sistemi paralleli, ma anche risorse di tipo più generali, come le Basi di Dati. Le architetture distribuite sono costituite da un insieme di sistemi, collocati anche a grande distanza, che possono comunicare tra loro mediante un sottosistema di comunicazione. Naturalmente un tale sistema richiede la presenza di un S.O. che consenta di integrare le funzioni dei singoli sottoinsiemi. Tale integrazione può essere ottenuta mediante una rete di calcolatori. In generale, per l’organizzazione di sistemi di questo tipo, possono essere utilizzati due tipi di schemi: •strettamente accoppiato (tightly coupled), in cui i processori condividono clock di sistema e memoria e la comunicazione avviene attraverso quest’ultima; •debolmente accoppiato (slighty coupled) dove ogni processore dispone di una memoria locale e i singoli processori comunicano attraverso bus ad alta velocità o linee telefoniche •condivisione delle risorse: se più nodi con diverse potenzialità sono collegati tra loro, l’utente ha la possibilità di usufruire delle risorse di un’altro; •accelerazione del calcolo: quando un calcolo può essere suddiviso in diverse sottoelaborazioni, è possibile pensare ad un’esecuzione concorrente distribuendo le varie sottofunzioni su diverse postazioni di un sistema distribuito. Inoltre, se in un certo istante una postazione è sovraccarica, il processo può essere inviato ad un’altra postazione che risulti temporaneamente libera, diminuendo così i tempi d’attesa; •affidabilità: se una postazione di un sistema distribuito improvvisamente si guasta, le restanti postazioni possono assumere anche il carico di quella malfunzionanate; •comunicazione: più postazioni sono collegate tra loro, è possibile scambiare messaggi e dati da un nodo all’altro. Concetti di base si definisce PROCESSO la sequenza di transizioni compiute dal sistema durante l’esecuzione di un programma si definisce RISORSA qualsiasi elemento hardware o software che viene usato da un processo e che ne condiziona l’avanzamento Il ruolo principale di un S.O. è la gestione e il coordinamento delle risorse di cui il sistema dispone. Le risorse sono dette riusabili quando possono essere date in uso ripetutamente a diversi processi. Il numero massimo di processi che possono usare contemporaneamente la risorsa R è detta molteplicità di R. Se la molteplicità di R è unitaria essa è detta seriale, ad esempio la C.P.U., la stampante, un file con operazioni di lettura/scrittura. Sono risorse non seriali, anzi a molteplicità infinita, ad esempio, le aree di memoria accessibili per la sola lettura. Se R è una risorsa a molteplicità finita, ogni processo deve svolgere la seguente sequenza di azioni: 1. Richiesta e ottenimento di R; 2. Uso di R; 3. Rilascio di R. Possiamo affermare che il S.O. costituisce l’interfaccia tra la macchina e l’uomo elaboratore Permette una visione astratta delle risorse, basata non sul dettaglio tecnico del loro funzionamento, ma sullo scopo che perseguono C.P.U. ALU input output U.C. Dischi/nas. tastiera scanner Dischi/nas. R.A.M. video stampante La classica struttura a “cipolla” favorisce tale visione, in quanto viene istituita una gerarchia di livelli di astrazione tale da consentire che ciascun livello ignori i dettagli di ciò che accade ai livelli inferiori, ma nel contempo ne utilizzi le funzionalità. Lo strato n-esimo Utilità e applicativi dipende solo dagli n-1 strati inferiori, dove lo Gestore informazioni strato 0 è l’hardware, Gestore periferiche ovvero la macchina fisica. Grazie a tutti i Gestore memoria Nucleo livelli sovrastanti si arriva alla macchina Hardware virtuale. Gli strati prevedono le seguenti funzioni che mostra la figura Ogni S.O. prevede un componente noto come File System che consente al programmatore un discreto livello di astrazione sull’uso della memoria secondaria e mette a disposizione degli utenti adeguati meccanismi di protezione. Il F.S di ogni S.O. deve assolvere i seguenti compiti: Rendere disponibili alcuni tipi di files implementati secondo la filosofia dei tipi astratti di dato. Prevedere un sistema di identificazione che consenta agli utenti di riferirsi agevolmente ad uno specifico file e che rende efficiente lo stesso processo di identificazione. Consentire la condivisione di files. Rendere disponibili dei meccanismi di protezione dei files. Rendere disponibili alcune operazioni di utilità. Gestire le aree di memoria secondaria in modo efficiente raggiungendo un soddisfacente compromesso fra efficienza in spazio ed efficienza in tempo. Memoria di massa serve per gestire grandi quantità di dati Persistentenza Sicurezza Classificazione Soluzione I dati vengono organizzati logicamente in file e gestiti dal sistema operativo E’ un file di tipo speciale che mantiene informazioni su altri file permette di strutturare insiemi di file (dati) in maniera gerarchica contiene la lista dei nomi e attributi dei file e directory al suo interno Quindi: il file system ha una struttura ad albero Radice = radice dell’intero file system Nodi interni = directory Foglie = documenti/programmi In un’organizzazione ad albero i nomi devono contenere informazioni sui cammini sui quali si trovano i corrispondenti file Nomi relativi: relativi ad una particolare directory Nomi assoluti: specificano il cammino a partire dalla radice (root) del file system (mai ambigui) File possono venire memorizzati con Allocazione continua di blocchi di byte Allocazione collegata (un blocco contiene l’indirizzo del prossimo) Allocazione con indice (si mantiene una tabella in memoria per recuperare i blocchi) – DOS I-node: tabella con puntatori ad altre tabelle (combina le ultime due) – UNIX – Il device controller controlla i meccanismi fisici dell’apparecchiatura (es. unità di lettura di floppy disk) Il device controller dialoga con la CPU attraverso registri e attraverso una memoria dedicata alle operazioni I/O chiamata DMA (Memoria ad accesso diretto) La DMA memorizza informazioni che il device controller puo usare per scrivere in memoria direttamente senza passare attraverso la CPU Software che maschera i device fisici Gestisce gli errori in lettura/scrittura Gestisce i nomi del device driver Gestisce i demoni per code di attesa per l’utilizzo di device •ad es code di stampa Memoria persistente e di accesso lento Hard disk = disco fisso Floppy disk = dischetto CD Rom Vari piatti sovrapposti, ogni piatto ha 2 superfici magnetiche sulle quali vengono memorizzati i dati Superfice suddivisa in tracce e settori Cilindro=tracce dei diversi dischi nella stessa posizione Indirizzo dei dati memorizzati: sup-traccia-settore Driver fisico piatti+testine (una per sup.) Driver logico software di sistema che gestisce disco fisso (C: in DOS) Unico disco con 2 superfici magnetiche Vanno formattati cioè il sistema operativo determina numero settori, densità bit sul dischetto Driver fisico unità di lettura con 2 testine una per ogni superficie Driver logico software che gestisce trasferimento dati da/su floppy (driver A: in DOS) Caratteristiche principali dell'architettura dei S.O.Win. Configurazione dinamica dell'ambiente e dei componenti hardware. Plug and Play Miglioramento delle prestazioni globali e della pulizia del sistema dopo errori di applicazioni o di driver. Supporto del modello di driver Win32 (WDM). Un componente kernel a 32 bit che permette la gestione della memoria. Modalità avanzata. Driver a 32 bit installati per il supporto dei file system FAT16, FAT32, ISO 9660, ISO 13346, per il reindirizzamento di rete e per prestazioni più elevate. Partizionamento del disco rigido. Gestione dei File •File System •Storage File System Windows XP supporta tre tipi di File System – FAT (FAT16) – fino a 4GB • Per compatibilità verso il basso con altri S.O. • Semplifica l’upgrade da un altro S.O. • Consente ai sistemi multi boot di condividere i dischi – FAT32 – fino a 32GB • Usato per dischi di grande capacità, • Consente la condivisione dei dischi con Windows 95/98 nel caso di multi boot – NTFS (Il File System proprietario) – fino a 4TB • Usato per dischi di capacità superiore • Offre servizi di compressione e di crittografia • Offre servizi di Sicurezza File System • Qualunque sia il File System implementato, esso è organizzato in maniera gerarchica – Cartelle – File Windows rappresenta tutti gli oggetti, file e cartelle, con icone Cartelle cartella reale directory vera e • Una Le cartelle di corrisponde Windowsad XPunapossono propria sul disco essere reali o virtuali C:\WIN C:\Program Files Una cartella virtuale corrisponde ad una organizzazione logica degli oggetti di Windows XP Risorse del Computer (Consente l’accesso a differenti drive) Risorse di rete (Visualizza le risorse connesse in rete) Nomi dei File • Possono essere lunghi 255 caratteri • Possono contenere: – Tutte le lettere (A-Z), maiuscole e minuscole – Tutte le cifre (0-9) – Molti segni di punteggiatura e caratteri speciali come la virgola, il punto, il punto e virgola, lo spazio, etc. Nomi dei File • Quando si salva un file con un nome lungo, Windows XP crea anche un nome breve detto alias. • Questo è necessario per compatibilità verso il basso con altri sistemi operativi • Esempio: – My First C Program.c – alias MYFIRS~1.C Nomi dei File • I nomi dei file devono essere unici in ogni cartella • Windows è case insensitive – Lettere maiuscole e minuscole possono essere usate per migliorare l’impatto visivo, ma Windows non le distingue Protezione dei File • Ai file e alle cartelle possono essere assegnati differenti attributi per controllarne l’accesso • Attributi “RASH” – – – – Read only (sola lettura) Archive (archivio) System (sistema) Hidden (nascosto) Associazione File - Applicazione • Windows XP permette di mantenere un elenco di associazioni tra tipi di file e applicazioni – Esempio: File.txt è associato a Notepad • L’ associazione tra programma e file può essere modificata dall’utente – Esempio: File.txt può essere associato a Word Storage • Windows XP supporta due tipi di memorizzazione su disco fisso Basic Storage – compatibile con altri S.O. Consente la configurazione di partizioni primarie e di partizioni estese Consente fino a quattro partizioni per hard disk I P.C. portatili usano solo la basic storage Windows XP può essere installato solo in partizioni di tipo basic storage Dynamic Storage – supportata da Windows 2000/XP Configurata come dischi dinamici Due o più dischi fisici possono appartenere ad un unico disco dinamico I dischi dinamici sono divisi in volumi Dynamic Storage • Volume – una porzione di disco dinamico che funziona come un disco separato – A ogni volume è assegnata una lettera identificativa – Solo Windows 2000 e XP possono accedere ai dati sul volume • Vi sono tre tipi di volumi – Simple volume – Spanned volume – Striped volumes Simple Volume • E’ contenuto in un solo disco fisico Spanned Volume • E’ contenuto su due o più dischi fisici Striped Volume • Memorizza i dati in strisce uguali distribuite su due o più (fino a 32) dischi fisici