Fondamenti di Informatica 1 IL SISTEMA OPERATIVO Sistema operativo 2 z È il programma (o l’insieme di programmi) che media e coordina l’utilizzo del calcolatore z z z da parte degli utenti da parte dei singoli programmi applicativi Ha il compito di: z z z z z Regolare l’utilizzo del computer da parte dei suoi utenti Organizzare dati e programmi sul disco Gestire accensione e spegnimento Trasferire i programmi in memoria ed iniziarne l’esecuzione Regolare l’accesso alle periferiche Fondamenti di Informatica 1 Il sistema operativo 3 z Con il termine sistema operativo si intende l’insieme di programmi e librerie che opera direttamente sulla macchina fisica … z z z … mascherandone le caratteristiche specifiche … … e fornendo agli utenti un insieme di funzionalità di alto livello In sintesi, il sistema operativo: z z fornisce all’utente una interfaccia per usare e gestire il calcolatore in modo semplice è responsabile della gestione delle risorse del calcolatore, e in particolare di come le risorse vengono allocate alle applicazioni e dell’ottimizzazione del loro uso Fondamenti di Informatica Funzionalità del sistema operativo 4 z z Si consideri, ad esempio, un utente che vuole avviare l’esecuzione di un programma z la richiesta di esecuzione di un programma può avvenire facendo un doppio click sull’icona del programma sul desktop del calcolatore z il desktop del calcolatore fa parte dell’interfaccia grafica del sistema operativo per avviare l’esecuzione del programma, il sistema operativo svolge le seguenti attività z individua il codice eseguibile del programma (memorizzato sul disco) z alloca al programma le risorse necessarie per la sua esecuzione (ad esempio, una certa quantità di memoria centrale) z carica il codice eseguibile del programma in memoria centrale z avvia il programma Fondamenti di Informatica 2 SO: funzionalità 5 z SO come GESTORE DELLE RISORSE, controlla tutte le risorse del calcolatore e le gestisce in modo efficiente: z z z z tiene traccia di chi utilizza la risorse accetta e soddisfa le richieste di utilizzo di una risorsa fa da mediatore fra le risorse che risultano in conflitto. SO come MACCHINA ESTESA: z z costituisce la base su cui è possibile scrivere i programmi applicativi. presenta all’utente una macchina estesa più facile da programmare dell’HW sottostante. Fondamenti di Informatica Funzioni di servizio del SO 6 z Esecuzione di applicazioni z z z z z Accesso ai dispositivi di ingresso/uscita z z z gestione dei segnali necessari per il trasferimento dei dati, consente all’utente di ragionare in termini di operazioni astratte di lettura e scrittura; Archiviazione di dati e programmi z z z caricamento del programma (istruzioni e dati) nella memoria centrale, inizializzazione dei dispositivi di ingresso/uscita, preparazione e gestione di altre risorse come la rete di comunicazione, …; fornire un’organizzazione logica dei dati sotto forma di cartelle (directory) e file, gestire le operazioni di basso livello per il relativo ingresso/uscita; Controllo di accesso z z condivisione di risorse da parte di più utenti o applicazioni, meccanismi di protezione e politiche di risoluzione degli eventuali conflitti d’uso; z Contabilizzazione z Gestione dei malfunzionamenti z z z ottimizzare il tempo di risposta dei programmi interattivi, fatturare agli utenti i costi dell’impiego del sistema; rilevare e, se possibile, di risolvere eventuali malfunzionamenti provocati da guasti hardware, o da operazioni scorrette compiute dal software applicativo. Fondamenti di Informatica 3 Vantaggi di un SO 7 z Sono legati alla possibilità di definire modalità standard di interfaccia con i dispositivi fisici, cosicché sia possibile: z z sviluppare programmi in modo semplice, modulare ed indipendente dallo specifico calcolatore su cui viene fatto funzionare il sistema operativo; aggiornare il software di base e l'hardware in modo trasparente ai programmi applicativi e all'utente, ossia senza che vengano influenzati dall'operazione. Fondamenti di Informatica Visioni fornite da un SO 8 z z Dall'alto: il sistema operativo fornisce all'utente un'interfaccia conveniente. Dal basso: gestisce tutti le parti di un sistema complesso, allocando in modo ordinato le diverse risorse della macchina: processori, memorie, dischi, interfacce di rete, stampanti e altre periferiche. Fondamenti di Informatica 4 Il software SW Applicativo 9 Sistema Operativo HW z SW= Sistema Operativo + SW applicativo z Il S.O. come necessario intermediario Fondamenti di Informatica Organizzazione a “strati” 10 z z z Ogni macchina virtuale è un insieme di programmi che realizza delle funzionalità che utilizzano i servizi forniti a livello inferiore. Ogni macchina virtuale ha il compito di gestire risorse specifiche di sistema regolandone l’uso e mascherandone i limiti. I meccanismi che garantiscono la correttezza logica sono separati dalle politiche di gestione (maggiore flessibilità). ogni “strato” risolve un problema specifico Fondamenti di Informatica 5 Elementi di un SO 11 z Sistema di gestione del processore, z z z Sistema di gestione della memoria, z z z garantisce l’accesso ai dispositivi di ingresso/uscita, maschera i dettagli di basso livello e gli eventuali conflitti che possono insorgere nel caso che diverse richieste arrivino contemporaneamente a uno stesso dispositivo; Sistema di gestione dei file (file system) z z controlla l’allocazione della memoria di lavoro ai diversi programmi che possono essere contemporaneamente in esecuzione; Sistema di gestione delle periferiche, z z controlla l’unità centrale di elaborazione (CPU); definisce quali programmi sono da eseguire e quali compiti sono da assegnare alla CPU; consente l’archiviazione e il reperimento dei dati sfruttando le periferiche che costituiscono la memoria di massa; Sistema di gestione degli utenti e dei relativi comandi (interprete comandi), z z interfaccia diretta con gli utenti, permette agli utenti di accedere in maniera semplice e intuitiva alle funzionalità disponibili. Fondamenti di Informatica Elementi di un SO 12 Utente Sistema Operativo Interprete comandi Gestione memoria Software applicativo Gestione processore Gestione periferiche Hardware File system Fondamenti di Informatica 6 SO vs applicazioni 13 z Programmi applicativi z z z z hanno accesso a un insieme ridotto di risorse; possono utilizzare solo un sottoinsieme delle istruzioni del processore (esecuzione in modalità utente); non possono decidere autonomamente quando e come avere accesso alle risorse del sistema (richiedono al sistema operativo l’esecuzione di alcuni servizi); … z Sistema operativo z z z z ha accesso a tutte le risorse; può utilizzare tutte le istruzioni del processore (esecuzione in modalità supervisore); stabilisce in che ordine e come le richieste che riceve devono essere soddisfatte; … Fondamenti di Informatica Architettura di un Sistema Operativo 14 Programmi applicativi / Utenti Gestore della memoria Interfaccia grafica Gestore delle periferiche Gestore dei file Nucleo (kernel) Sistema operativo Interprete comandi hardware Fondamenti di Informatica 7 Tipi di sistemi operativi: z z z monoutente o multiutente: sistemi operativi realizzati per gestire un unico utente o più utenti contemporaneamente mono o multi programmati: in grado di eseguire un unico programma alla volta oppure in grado di eseguire più comandi contemporaneamente locali o di rete: gestiscono le risorse di una macchina o di una rete di calcolatori 15 Processo vs programma 16 z z Programma: entità statica composta dal codice eseguibile dal processore. Processo: entità dinamica che corrisponde al programma in esecuzione, composto da: z z z codice (il programma); dati (quelli che servono per l’esecuzione del programma); stato (a che punto dell’esecuzione ci si trova, cosa c’è nei registri, …). Fondamenti di Informatica 8 Una (possibile) classificazione dei S.O. 17 z I moderni sistemi operativi possono essere classificati in: z Sistemi monotask z z Permettono l’esecuzione di un solo programma utente per volta (es. DOS) Sistemi multitask z Permettono l’esecuzione di più programmi utente contemporaneamente z Classificazione ulteriore Multitasking cooperativo (windows 3.1, MacOS prime versioni) Multitasking preemptive (Unix, Windows 95/98/NT/2000/XP, MacOS ultime versioni) Fondamenti di Informatica Multiprogrammazione 18 z z Nel sistema sono presenti diversi programmi, ognuno con un proprio tempo di elaborazione e propri tempi di attesa per le operazioni di ingresso/uscita. Per evitare che la CPU venga utilizzata in modo esclusivo (o per troppo tempo) da parte di un solo programma, il tempo viene idealmente suddiviso in unità elementari, dette quanti, da assegnare secondo opportune politiche a tutti i programmi. Fondamenti di Informatica 9 Multiprogrammazione 19 z z Politica di avvicendamento: z Round-robin: assegnare a rotazione la disponibilità di un quanto di tempo della CPU ai vari programmi presenti contemporaneamente in memoria. Durata del quanto di tempo z incide significativamente sia sulle prestazioni del sistema che sull’efficacia del quasi parallelismo z tende a scomparire se la durata diviene eccessiva e degrada nella sequenzializzazione dei programmi. z un valore molto piccolo può comportare un degrado delle prestazioni complessive del sistema, qualora il tempo di commutazione fra programmi sia dello stesso ordine della durata del quanto di tempo (un valore tipico per il sistema operativo Unix è 100 ms). Fondamenti di Informatica Multiprogrammazione 20 elaborazione attesa per operazioni di I/O Tempo Progr. 1 Progr. 2 Progr. 3 Tempo elaborazione attesa per operazioni di I/O Fondamenti di Informatica 10 Nucleo (kernel) 21 z Il nucleo del sistema operativo (o kernel) è il componente del sistema operativo più complesso, che in particolare è responsabile della gestione della risorsa unità di elaborazione (processore) e dei processi (ovvero, dei programmi in esecuzione) z al di sotto il nucleo esiste fisicamente un solo processore z z il nucleo ha (tra l’altro) lo scopo di definire tanti processori virtuali, uno per ciascun programma che si vuole eseguire z z z quindi il calcolatore potrebbe svolgere un solo programma alla volta ciascun processo in esecuzione ha l’impressione di essere l’unico processo eseguito dal calcolatore il nucleo ripartisce la capacità di elaborazione dell’unico processore reale tra i tanti processori virtuali Inoltre, il nucleo fornisce un insieme di servizi di base di supporto agli altri componenti del sistema operativo Fondamenti di Informatica Concetti di base: i processi 22 z z Un processo è un programma in esecuzione È costituito da: z z z La relazione tra programma e processo non è necessariamente biunivoca z z Codice: il programma vero e proprio Stato: i dati contenuti in memoria e nei registri in un dato istante Un programma può dar luogo a più processi (programmazione concorrente) Un sistema multitasking consente quindi di gestire più processi in parallelo z È più corretto parlare di processi che di programmi in questo contesto Fondamenti di Informatica 11 Il gestore dei processi 23 Il gestore dei processi z Si appoggia direttamente sulla macchina fisica z Si occupa di eseguire i vari processi z In un sistema multitasking realizza una macchina virtuale in cui ad ogni processo è assegnato un processore virtuale z Comprende i principali programmi di risposta ad interrupt z Realizza le primitive di sincronizzazione e scambio messaggi tra processi z Memorizza i dati di ciascun processo in una struttura dati chiamata descrittore di processo Fondamenti di Informatica Stati di un processo 24 z In esecuzione (running) z Al processo è assegnato il processore z Il processo esegue fino a quando: z z z z Non si verifica un evento esterno (interruzione esterna) O fino a quando il processo richiede l’esecuzione di una operazione di I/O (interruzione interna) In attesa (waiting) z Il processo giunge in questo stato a seguito di una interruzione interna z Andrà in uno stato di pronto non appena l’operazione richiesta sia completata Pronto (ready) z Il processo giunge in questo stato dallo stato di attesa a seguito del completamento della operazione di I/O richiesta z o dallo stato di esecuzione, z z al verificarsi di una interruzione esterna O allo scadere del quanto di tempo assegnato al processo (nel caso di S.O. preemptive time-sharing) Fondamenti di Informatica 12 Ciclo di vita di un processo 25 Fine esecuzione In esecuzione Interruzione interna Primo processo pronto Interruzione esterna, Fine quanto di tempo Pronto Inizio esecuzione In attesa Evento esterno atteso Fondamenti di Informatica Scheduling dei processi 26 z Per dare l’illusione dell’esecuzione contemporanea di processi viene utilizzato un meccanismo di scheduling del processi z Una possibilità è il time-sharing: z Ad ogni processo attivo è assegnato un quanto di tempo … z … allo scadere del quale il processo viene spostato in stato di pronto ed il processore viene assegnato ad un altro processo z Dimensioni tipiche del quanto di tempo sono di qualche decina di millisecondi Fondamenti di Informatica 13 Lo scheduler 27 z Lo scheduler è quella parte del sistema operativo che si occupa di gestire i processi. Esso deve: z z z z z z essere efficiente minimizzare il tempo di risposta minimizzare il tempo d’attesa dei processi batch massimizzare il throughput (numero di processi per ora) garantire che ogni processo abbia la sua giusta parte di tempo di CPU Algoritmi di scheduling z z z z z First Come First Served Algoritmo Round Robin Priorità Code multiple Il più breve prima (shortest job first) Fondamenti di Informatica La concorrenza 28 z z z z Starvation: Starvation avviene quando più processi richiedono una risorsa ma solo alcuni riescono ad ottenela Deadlock: Deadlock avviene quando un gruppo di processi rimane permanentemente bloccato in attesa di una risorsa Cooperazione fra processi: memoria condivisa, scambio di messaggi Sezione critica Fondamenti di Informatica 14 Gestore della memoria 29 z Il gestore della memoria è responsabile dell’allocazione dinamica della memoria centrale ai programmi in esecuzione z Per ciascun processo viene allocata una area di memoria virtuale sufficiente per la sua esecuzione z Supera i limiti della memoria fisica, mostrando ai processi uno spazio di memoria virtuale z Partiziona la memoria tra i vari processi che la richiedono z Garantendo la protezione delle diverse zone di memoria Fondamenti di Informatica Il gestore della memoria 30 È responsabile di: z Suddividere la memoria tra i vari processi in esecuzione z Rilocare i programmi affinchè possano eseguire indipendentemente dalla loro effettiva posizione fisica z Gestire la politica di assegnamento della memoria ai processi z z Tale politica deve essere coordinata con la politica di gestione dei processi svolta dal nucleo Fornire l’astrazione della memoria virtuale z Ciascun processo ha a sua disposizione una quantità di memoria superiore a quella fisicamente disponibile Fondamenti di Informatica 15 Il gestore della memoria 31 z z z z z Rilocabilità del codice Swapping Paginazione Memoria virtuale Segmentazione Fondamenti di Informatica Strategie di gestione z z z consentire il caricamento del programma a partire da un qualunque indirizzo di memoria tenere in memoria solo una porzione dei dati e dei programmi condividere insiemi di istruzioni da parte di processi facenti parte di uno stesso programma Il gestore della memoria garantisce ai processi un spazio di indirizzamento virtuale che può essere superiore alle dimensioni della memoria fisica Fondamenti di Informatica 32 16 Rilocabilità del Codice Sorgente Compilazione e Link Programma Eseguibile 4096 Programma Eseguibile Registri di rilocazione Altro Programma Eseguibile 2048 0 Tutti i nomi simbolici sono risolti. Le istruzioni sono in formato macchina e quindi tutti i riferimenti sia alle istruzioni che ai dati sono in forma di indirizzi Fondamenti di Informatica 33 Rilocabilità ... z Statica z z Dinamica z z z z z il calcolo degli indirizzi è effettuata dal linker a cui il valore di spiazzamento è fornito dal programmatore. il calcolo viene effettuato nel momento stesso in cui necessità sapere l’indirizzo i programmi sono caricati in memoria con gli indirizzi calcolati a partire dal valore 0 deve essere presente un registro base che fornisce lo spiazzamento Perché sia possibile creare del codice rilocabile è necessaria la presenza di opportuni registri hardware Per permettere una maggiore efficienza spesso il programma viene diviso nella sezione del codice e in quella dei dati che vengono copiati in memoria in aree separate Fondamenti di Informatica 34 17 Partizioni Variabili Partizioni Fisse Ogni processo viene accodato in attesa che una partizione di dimensioni più adeguate è libera 4 C 3 B 2 D 1 A D Sist. Operat. Sist. Operat. Fondamenti di Informatica 35 Paginazione La memoria centrale viene divisa in sezioni di dimensione fissa dette paginelogiche Questa tecnica 1 ha i seguenti vantaggi: 2 z z alloca la memoria ad un processo utilizzando zone di memoria non contigue permette di estendere la memoria allocata ad ogni processo Fondamenti di Informatica 3 1 2 3 4 1 2 2 5 3 6 1 2 3 4 4 8 7 1 4 1 1 2 3 1 4 3 5 2 6 3 7 2 8 36 18 Segmentazione z z Quando i programmi condividono elementi, come nel caso di processi che sono istanze dello stesso programma è vantaggioso non creare copie dello stesso codice. Il programma viene diviso in segmenti: z z z codice: contiene solo le istruzioni dati: contiene la parte allocata sia staticamente che dinamicamente stack (pila): contiene i dati necessari alla gestione delle “chiamate di procedura” Fondamenti di Informatica 37 Memoria Virtuale z z z z z Overloaded: lo sviluppare creava un codice composto di diversi elementi e gestiva all’interno del programma quale sezione debba essere caricata Swapping in and out: un intero segmento (contenente un processo) viene eliminato dalla memoria e trasferito sul file Con la paginazione è possibile scaricare solo alcune pagine in memoria di massa (quelle memo utilizzate) Quando viene indirizzata una pagina che non è in memoria (paging fault) il sistema operativo si occupa di reperirla in memoria di massa e renderla di nuovo disponibile Problemi connessi alla scelta delle pagine da scaricare.38 Fondamenti di Informatica 19 Memoria virtuale: lo swap z z z Nei sistemi multiprogrammati di uso comune la memoria non è sufficiente a caricare tutti i programmi ! Il gestore della memoria può usare una parte della memoria di massa come area di memoria di appoggio z Quando un processo è sospeso i suoi segmenti dati, codice e stack possono essere spostati su disco per liberare memoria centrale z Ciò consente di mostrare ai processi una memoria virtuale di dimensione superiore alla memoria centrale swapping: il sistema operativo è abilitato a trasferire il contenuto di un’area di memoria centrale in memoria di massa (area di swap) z z generalmente vengono trasferiti i processi in stato di wait il sistema mette in stato di run solo i processi presenti in memoria Fondamenti di Informatica 39 Gestore delle periferiche z Il gestore delle periferiche adatta la modalità d’uso delle singole periferiche (che possono essere estremamente diverse) a quello di poche tipologie di periferiche virtuali z Maschera le caratteristiche fisiche delle periferiche z Fornisce agli strati superiori un insieme di procedure di alto livello per l’accesso alle diverse periferiche z Offre ad ogni processo la visibilità di un insieme di periferiche virtuali dedicate z z Consente a più processi di condividere la stessa periferica Gestisce, almeno in parte, i malfunzionamenti delle periferiche Fondamenti di Informatica 40 20 Gestore dei file z Il gestore dei file (o file system) è responsabile della gestione della memoria secondaria (dischi) z z i dischi sono fisicamente organizzati in superfici, cilindri e settori il gestore dei file consente l’uso della memoria secondaria mediante una organizzazione logica in volumi, cartelle e file z z z z un file è una sequenza di dati di dimensioni variabili, con accesso sequenziale oppure casuale una cartella (o direttorio) è un contenitore di un insieme di file e cartelle un volume è un contenitore di file e cartelle, solitamente corrispondente ad una unità a disco Inoltre, il gestore dei file permette di mostrare anche le periferiche come dei file, da cui è possibile leggere e/o su cui Fondamenti didi Informatica 41 è possibile scrivere sequenze dati Il file system: dettagli z z Il sistema operativo gestisce la corrispondenza tra l’organizzazione logica e l’organizzazione fisica dei dati z i dati nelle memorie secondarie sono organizzati logicamente in volumi, cartelle e file z i dati nelle memorie secondarie sono organizzati fisicamente in dischi, superfici, cilindri e settori Fornisce agli strati superiori un insieme di procedure per l’accesso a tali dati Fondamenti di Informatica 42 21 Il file system: dettagli z Un file è un contenitore logico di informazioni, caratterizzato da: z z z un contenuto: una sequenza di byte, da interpretare opportunamente un nome: z che ne consente l’identificazione z il nome è composto dal nome del file e da un percorso, che ne precisa il posizionamento all’interno delle directory I file sono un meccanismo di astrazione: z offrono il modo di memorizzare le informazioni su disco e ritrovarle in un secondo momento, indipendentemente da come funziona realmente il disco. Fondamenti di Informatica 43 La denominazione dei file z z z quando un processo crea un file esso da un nome al file; quando il processo termina, tale file continua ad esistere ed altri processi possono accedere alle stesse informazioni usando lo stesso nome del file regole precise per la denominazione dei file variano da sistema a sistema: z z ad esempio i file system di Linux e Unix distinguono fra le maiuscole e le minuscole, quindi tre file diversi possono chiamarsi maria o Maria o MARIA i file system di MS-DOS (e dei vari Windows) non fanno tale distinzione 44 22 La denominazione dei file: l’estensione z In alcuni file system (quello di Unix e Linux ad esempio) l’estensione è solo una convenzione tra utenti che non ha alcun valore per il sistema: z z un file chiamato pippo.txt è molto probabilmente un file di testo, ma non è detto che lo sia Al contrario Windows fa caso alle estensioni e dà loro un significato: z fare doppio click su un file chiamato pippo.doc fa sicuramente partire Microsoft Word. 45 Formato dei file z z z Da un punto di vista logico, i file possono contenere molti tipi di informazioni: z Testi, immagini, suoni, programmi, filmati, … Da un punto di vista fisico, un file è costituito da una sequenza di bit Per poter essere utilizzato un file ha bisogno di un programma che lo “capisca” ed interpreti 011 opportunamente i bit 110011 000 0 0100110 Fondamenti di Informatica 46 23 La denominazione dei file z Solitamente i nomi dei file sono divisi in due parti, separate da un punto z Il nome: z aiuta l’utente a ricordare il contenuto z in DOS, è formato da 1 ad 8 caratteri: lettere (A-Z), cifre (0-9), alcuni caratteri speciali ( ! $ % & @ # _ - ^ ( ) ‘ ) z z Maiuscole e minuscole sono considerate uguali L’estensione z aiuta ad associare al file il relativo programma che lo “capisce” e lo sa trattare z in DOS, è formata da 0 a 3 caratteri (stesse regole del nome) Nome ed estensione vengono separati da “.” nome base del file . estensione 47 La denominazione dei file: l’estensione .txt .html .zip .gif .jpg .mpg .mp3 .c .cpp .pdf file di testo generico documento HTML archivio di file compresso formato per immagini GIF formato di codifica per immagini JPEG video codificato con lo standard MPEG musica codificata in MPEG livello 3, formato audio programma scritto in linguaggio C programma scritto in linguaggio C++ documento formato portabile (Portable Document Format) 48 24 La denominazione dei file: l’estensione formati proprietari .doc .ppt documento di testo elaborato con Word .xls .psp documento di tipo foglio elettronico documento di testo elaborato con Power Point (presentaizioni) formato proprietario per PaintShop Pro 49 Tipi di file z Diversi file system hanno tipi di file diversi. Il file system di Windows ha: z z file regolari contengono dati utenti directory conservano la struttura del file system (vedi oltre...) 50 25 Tipi di file z Generalmente i file regolari sono di tipo ASCII o di tipo binario: z z z z i file ASCII sono formati da linee di testo i file ASCII possono essere visualizzati da un qualunque programma editore di testo (anche se non hanno l’estensione .txt) I file binari non sono formattati internamente in un modo leggibile se cerco di visualizzarli con un editore di testo ottengo una sequenza illeggibile di caratteri ASCII 51 casuali Attributi dei file z Oltre al nome e i suoi dati z z i sistemi operativi associano informazioni aggiuntive; queste informazioni in più vengono chiamate attributi dei file. la lista degli attributi varia considerevolmente da sistema a sistema. 52 26 Attributi dei file: esempi protezione creatore flag sola lettura chi può accedere al file e in che modo ID dell’utente che ha creato il file 0 per lettura e scrittura, 1 per flag ASCI/bin lettura 0 per file normali, 1 per file di sistema 0 per file ASCII, 1 per binari tempo di creazione data e ora ... tempo ultimo accesso data e ora ... flag di sistema tempo ultima modifica data e ora ... Dimensione numero di byte del file su Windows queste info sono raccolte nel menu proprietà del file 53 Operazioni sui file ed effetto sul file system z Analizziamo alcune importanti operazioni che possiamo fare sui file (vedremo in seguito, in particolare in laboratorio, come eseguirle) z z z creazione: il file è creato senza dati. Il file system nota questa operazione e annota degli attributi di default (di base). cancellazione: il file non serve più, quindi decidiamo di cancellarlo. apertura: vogliamo modificare un file esistente. Lo apriamo con un applicativo opportuno (e il file system viene informato di questa operazione e si segna che il file è stato aperto e lo “carica” in 54 memoria principale 27 Operazioni sui file ed effetto sul file system z z z chiusura: quando abbiamo finito le nostre modifiche chiudiamo il file. Il file system viene informato, aggiorna gli attributi (tipo la data dell’ultima modifica), lo toglie dalla memoria principale. salvataggio: mentre sto modificando un file posso decidere di salvare le modifiche fatte senza chiudere il file stesso. In questo modo chiedo al sistema operativo di salvare la versione corrente del file su disco fisso, anche se questa rimane anche in memoria principale in attesa di ulteriori modifiche. ridenominazione: cambiamo il nome del file. 55 Operazioni sui file ed effetto sul file system z Operazioni molto simili possono essere eseguite da un programma invece che dall’utente z ad esempio un programma che elabora in modo automatico una lista di numeri, ne calcola la media e la salva su un file, esegue molte operazioni di creazione, apertura e chiusura di file. 56 28 Il file system: le directory z da queste esigenze è nata l’idea di organizzare i file in “contenitori” gerarchici chiamati directory. z z I nomi dei file sono locali alle directory. Nel mondo di Windows viene usato un nome diverso per un concetto molto simile. In quel caso si parla di cartelle o folder. 57 Il file system: le directory z z z z z il numero di file che devono essere memorizzati su un disco può essere estremamente elevato è quindi necessario mantenere i file in una forma ordinata se i file fossero tutti riuniti nel disco fisso senza struttura, le operazioni di ricerca di un file e creazione di un file (in particolare scegliere il nome del file) diventerebbero estremamente difficili le cose si complicano ancora di più nei sistemi multiutente occorre una struttura che distingua i miei file da quelli di qualcun altro e che protegga il mio lavoro da eventuali errori o azioni altrui 58 29 Il file system: le directory una prima idea può essere quella di raggruppare i file in sottoinsiemi, ad esempio un sottoinsieme per ogni utente z questo può non bastare ancora perché anche i dati di un singolo utente possono crescere a dismisura z Una cartella può contenere altre sottocartelle (subdirectory, subfolder) Si forma una struttura ad “albero rovesciato” z 59 I dischi z z z z Ad un calcolatore possono essere collegati più dischi Nel caso del DOS, ogni disco ha un nome, costituito da una lettera seguita da ‘:’ Esempio z A: floppy disk z C: hard disk z D: CD-ROM Ogni disco contiene almeno una cartella, detta di Informatica dal carattere “\” 60 cartella radice edFondamenti identificata 30 Struttura ad albero (1) Cartella radice A:\ ESEMPI DISEGNI TESTI sotto-cartelle (1° livello) LETTERE sotto-cartelle (2° livello) ESAMI ANALISI FISICA Fondamenti di Informatica 61 Struttura ad albero (2) C:\ CASA SPESE giugno.xls luglio.xls agosto.xls ricorda.txt ENTRATE file ESAMI elenco.doc voti.xls ANALISI tesina.doc FISICA VARIE testi.doc tesina.doc testi.doc telefono.xls amici.txt Fondamenti di Informatica 62 31 Il file system: i cammini o path z z quando il file system è organizzato come un albero di directory è necessario essere capaci di specificare i nomi dei file in relazione alla loro posizione nell’albero. questo può essere fatto in due modi diversi: z z utilizzando il cammino o path assoluto utilizzando il cammino o path relativo 63 Percorsi (path) z z Si identifica un file particolare in base alla posizione in cui è memorizzato La posizione può essere specificata z in modo assoluto z in modo relativo rispetto ad una data cartella ssi Ro rio rdi, 3 a M Ve V i a i no Tor Fondamenti di Informatica 64 32 Percorsi assoluti C:\varie\amici.txt nome ssi Ro rio rdi, 3 a M Ve V i a i no Tor via nome (sotto-)cartella città disco Fondamenti di Informatica Esempi 65 C:\CASA\SPESE\luglio.xls C:\ disco radice CASA SPESE giugno.xls luglio.xls agosto.xls ricorda.txt C:\ESAMI\elenco.doc ENTRATE ESAMI elenco.doc voti.xls C:\VARIE\amici.txt ANALISI tesina.doc FISICA VARIE testi.doc tesina.doc testi.doc telefono.xls amici.txt C:\ESAMI\FISICA\tesina.doc 66 C:\ESAMI\ANALISI\tesina.doc Fondamenti di Informatica 33 Percorsi relativi z z z Data una cartella di riferimento, è possibile specificare la posizione di un file in modo relativo Si specifica il percorso in termini di sequenza di sottocartelle che devono essere attraversate per giungere al file Si possono utilizzare alcuni “nomi” predefiniti z “.” indica la cartella di attualmente individuata z “..” indica la cartella “genitrice” (ovvero quella che contiene la cartella attualmente individuata) Fondamenti di Informatica 67 Esempi ..\CASA\SPESE\luglio.xls C:\ cartella di riferimento CASA SPESE giugno.xls luglio.xls agosto.xls ricorda.txt elenco.doc (ma anche ENTRATE .\elenco.doc) ESAMI ANALISI tesina.doc elenco.doc voti.xls ..\VARIE\amici.txt FISICA testi.doc tesina.doc testi.doc VARIE telefono.xls amici.txt Fondamenti di Informatica FISICA\tesina.doc 68 ANALISI\tesina.doc 34 Operazioni sulle directory z Per organizzare gerarchicamente i file, il sistema operativo deve fornire all'utente un insieme di operazioni per z z z z z creare una nuova directory rimuovere una directory ridenominare una directory elencare il contenuto di una directory copiare o spostare i file da una directory ad un'altra 69 Programmi di utilità z z Il sistema operativo è corredato da un insieme di programmi di utilità, per la configurazione, l’ottimizzazione e la gestione ordinaria del sistema: gestione degli utenti z z per definire gli utenti, i gruppi di utenti e i diritti di accesso alle varie risorse gestione delle periferiche z ad esempio, programmi per l’installazione e la configurazione delle periferiche, nonché programmi di utilità per la gestione dei dischi (come l’utilità di formattazione e l’utilità di deframmentazione) z gestione delle applicazioni z altri accessori z z per l’installazione e la disinstallazione di programmi dall’editor di testi alla gestione dei servizi Internet Fondamenti di Informatica 70 35 Interprete comandi e interfaccia grafica L’interprete comandi è l’interfaccia utente del sistema operativo z definisce le operazioni che possono essere utilizzate direttamente dall’utente finale, chiamate comandi z esempi di comandi sono z esecuzione di una applicazione z apertura di un documento (eseguendo l’applicazione responsabile della manipolazione di quel tipo di documento) z Nel caso di un sistema multiutente fornisce ai diversi utenti la visione di una macchina virtuale dedicata z L’interprete comandi può essere z basato su una interfaccia a caratteri z z come nei sistemi operativi Unix, ma anche nel “prompt dei comandi” di Windows basato su una interfaccia grafica z come nei sistemi operativi Windows e nell’ambiente X Window di Unix Fondamenti di Informatica 71 Interfaccia del sistema operativo z z Permette all’utente di interagire con il calcolatore consentendogli di impartire singoli comandi Due modalità: z Grafica, basata sul concetti di “finestra” e di puntatore (mouse) z Testuale, basata sullo scambio di messaggi costituiti da righe di testoFondamenti di Informatica 72 36 Interfaccia grafica (1) z z z Il sistema operativo visualizza un ambiente virtuale costituito da finestre, menu, bottoni, icone, … L’utente impartisce comandi interagendo con l’ambiente virtuale tramite il puntatore e la tastiera Il risultato dell’esecuzione del comando si riflette sull’ambiente virtuale, modificandolo Fondamenti di Informatica 73 Interfaccia grafica Pregi ¾ Immediatezza comunicativa ¾ Intuitività ¾ Supporto multimediale z Difetti ¾ Difficoltà nell’automatizzazione dei compiti ripetitivi ¾ Richiede molte risorse elaborative ¾ Può limitare la produttività individuale Fondamenti di Informatica 74 37 Interfaccia testuale (1) z La comunicazione tra utente e s.o. segue la py c:\*.txt mmand done metafora > _ richiesta/risposta: z L’utente impartisce comandi al s.o. tramite la tastiera z Il sistema risponde visualizzando eventuali messaggi testuali, poi si pone in attesa di ulteriori Fondamenti di Informatica comandi 75 Interfaccia testuale Pregi ¾ Richiede poche risorse elaborative ¾ Facilita l’automazione di compiti ripetitivi z Difetti ¾ Richiede la conoscenza di linguaggi specifici la cui sintassi/semantica può essere complessa ¾ Scarsa intuitività ¾ Comunicazione limitata dello stato del sistema Fondamenti di Informatica 76 38 Sistemi operativi Di fatto, nei sistemi operativi attuali convivono le due modalità di interfaccia Nel caso dei sistemi operativi Microsoft (Windows 95, 98, ME, NT, 2000, …), accanto alla modalità grafica, è disponibile l’interfaccia testuale attraverso le finestre MS-DOS z All’interno di tali finestre viene emulato il vecchio sistema operativo Microsoft Fondamenti di Informatica 77 MS-DOS z z z z z MicroSoft Disk Operating System Nato come sistema operativo per i PC IBM Progettato per computer molto meno potenti di quelli attuali Monoutente z Si ipotizza che un’unica persona lo utilizzi z Non viene verificata l’identità dell’utente z Chiunque utilizzi una macchina equipaggiata con MSDOS può eseguire qualsiasi operazione Monotask z Può essere eseguito un solo programma per volta Fondamenti di Informatica 78 39 Organizzazione dei dischi z z z z Un disco può contenere da 1’000’000 a più di 10’000’000’000 di caratteri Fisicamente i dati sono scritti in celle di uguale dimensione (blocchi) Per poter trovare le informazioni che servono all’interno dei dischi occorre organizzarle in modo logico Le informazioni sono raggruppate all’interno di file Fondamenti di Informatica 79 Caratteri Jolly (1) z z z A volte è utile indicare un gruppo di file, piuttosto che un file singolo Il DOS permette di indicare in modo parziale il nome/estensione di un file utilizzando i caratteri jolly (‘?’ e ‘*’) Quando si utilizzano questi caratteri, il DOS confronta il nome parziale indicato con i nomi di tutti i file presenti nella directory e seleziona quelli che soddisfano i criteri indicati Fondamenti di Informatica 80 40 Caratteri Jolly (2) z z z Il confronto avviene carattere per carattere, da sinistra verso destra, separatamente per nome e per estensione Il carattere jolly ‘?’ può corrispondere a qualsiasi carattere presente nel nome del file, nella medesima posizione Il carattere jolly ‘*’ può corrispondere a qualsiasi sequenza di caratteri, anche di lunghezza nulla, a partire dalla sua posizione Fondamenti di Informatica 81 Esempi z z z z Prova?.txt identifica i file prova1.txt, prova2.txt, prova3.txt ma non il file prova.txt prova*.txt identifica i file prova.txt, prova1.txt, prova2.txt, prova3.txt tesina.* identifica i file tesina.doc, tesina.xls *.* identifica tutti i file della cartella Fondamenti di Informatica 82 41 Parametri z z z Indicano il cosa, il dove, … , dell’azione richiesta Per lo più sono costituiti da nomi di file e di cartelle (con i relativi percorsi) Esempio: Il Il volume volume nell'unità nell'unità AA èè BACKUP BACKUP 001 001 z DIR a:\analisi Directory Directory di di A:\analisi A:\analisi .. <DIR> 06/07/93 <DIR> 06/07/93 14.42 14.42 .. <DIR> 06/07/93 .. <DIR> 06/07/93 14.42 14.42 ESERCIZ1 88.226 ESERCIZ1 TXT TXT 88.226 29/06/93 29/06/93 11.11 11.11 RELAZION 92.807 RELAZION DOC DOC 92.807 29/06/93 29/06/93 11.11 11.11 22 file 181.033 file 181.033 byte byte 22 dir 758.784 dir 758.784 byte byte disponibili disponibili Fondamenti di Informatica 83 Opzioni z z z Permettono di specificare eventuali modalità particolari di esecuzione del comando Di solito consistono in nomi brevi, preceduti dal carattere ‘/’ Esempio: z DIR a:\analisi /w Il Il volume volume nell'unità nell'unità AA èè BACKUP BACKUP 001 001 Directory Directory di di A:\analisi A:\analisi [.] [..] ESERCIZ1.TXT [.] [..] ESERCIZ1.TXT RELAZION.DOC RELAZION.DOC 22 file 181.033 file 181.033 byte byte 22 dir 758.784 dir 758.784 byte byte disponibili disponibili Fondamenti di Informatica 84 42 I comandi: sintassi z z z z Vengono espressi sotto forma di singole righe di testo Sintassi: z NOME_COMANDO [parametri] [opzioni] Nome_comando indica l’azione che deve essere eseguita e determina il numero ed il tipo di parametri ed opzioni disponibili Il nome del comando, i singoli parametri e le opzioni sono separati da spazi (“ ”) Fondamenti di Informatica 85 Parametri di default z z z In alcuni casi, è possibile invocare comandi senza indicare esplicitamente dei parametri: Quando ciò succede, il sistema utilizza, al posto dei parametri mancanti, alcuni parametri interni che riflettono lo stato del sistema (valori di default) Alcuni comandi richiedono l’indicazione esplicita di uno o più parametri Fondamenti di Informatica 86 43 Disco corrente (1) z z z Quando si nomina un file è necessario indicarne z Disco, directory e sottodirectory, nome ed estensione Il sistema operativo mantiene al proprio interno una variabile che indica su quale drive si sta operando (disco corrente) Se, nell’indicare un file, si omette il nome del disco, il sistema provvede a completare il cammino anteponendo il nome del disco Fondamenti di Informatica 87 corrente Disco corrente (2) DIR \analisi Disco corrente Il Il volume volume nell'unità nell'unità AA èè BACKUP BACKUP 001 001 Directory di A:\analisi Directory di A:\analisi .. <DIR> 06/07/93 <DIR> 06/07/93 14.42 14.42 .. <DIR> 06/07/93 .. <DIR> 06/07/93 14.42 14.42 ESERCIZ1 88.226 ESERCIZ1 TXT TXT 88.226 29/06/93 29/06/93 11.11 11.11 RELAZION 92.807 RELAZION DOC DOC 92.807 29/06/93 29/06/93 11.11 11.11 22 file 181.033 file 181.033 byte byte 22 dir 758.784 dir 758.784 byte byte disponibili disponibili Fondamenti di Informatica 88 44 Disco corrente (3) z z È possibile cambiare il disco corrente con il comando “X:”, dove X deve essere sostituito dalla lettera che identifica il disco su cui si intende operare Il prompt di sistema (se non viene modificato da altri comandi) indica quale sia il disco correnteC> C> a: a: A> A> f: f: Unità Unità specificata specificata non non valida valida A> _ A> _ Fondamenti di Informatica 89 Cartella corrente (1) z z z Per ogni disco collegato al calcolatore, il sistema identifica una cartella che considera come cartella di lavoro (o cartella corrente) Se, nell’indicare un file, si utilizza un percorso relativo, il sistema utilizza come cartella di riferimento la cartella corrente del disco indicato Se si omette il nome del disco e si usa un percorso relativo, il sistema usa come cartella di riferimento la cartella corrente del disco corrente Fondamenti di Informatica 90 45 Cartella corrente (2) Disco Disco corrente: corrente: A: A: Cartella Cartella corrente corrente disco disco A: A: Cartella corrente disco C: Cartella corrente disco C: Cartella Cartella corrente corrente disco disco D: D: z \analisi\ \analisi\ \varie\amici\ \varie\amici\ \\ Stato del sistema Il comando z COPY relazion.doc c:..\..\esami\ copia il file a:\analisi\relazion.doc nella cartella c:\esami\ Fondamenti di Informatica 91 Cartella corrente (3) z z z z z Alla partenza, la cartella corrente di tutti i dischi è la cartella radice Il comando “CD”, se utilizzato senza parametri, stampa la cartella corrente del disco corrente Il comando “CD x:” stampa la cartella corrente del disco x: Il comando “CD <nome_cartella>” modifica la cartella corrente del disco corrente Il comando “CD x:<nome_cartella>” modifica la cartella corrente Fondamenti del disco x: di Informatica 92 46 Le categorie di comandi z z z Comandi “interni” z Caricati, all’atto del bootstrap, nella memoria centrale per renderne immediata l’esecuzione z DIR, COPY, DEL, REN, MD, CD, RD, TYPE, PROMPT Comandi “esterni” z Si trovano sul disco e vengono caricati in RAM solo all’atto della loro invocazione z Sviluppati dal produttore del sistema operativo Programmi applicativi z Come i comandi “esterni”, si trovano sul disco e vengono caricati quando necessario z Sviluppati da terze parti Fondamenti di Informatica 93 I comandi principali z z z z z z z z z z z z z DIR – elenca i file presenti in una data cartella COPY – copia un file da una cartella ad un’altra DEL – cancella un file REN – cambia il nome ad un file MD – crea una cartella CD – cambia la cartella corrente RD – elimina una cartella PROMPT – cambia il prompt di sistema FORMAT – inizializza un disco DISKCOPY – copia un disco EDIT – crea/modifica un file di testo TYPE – visualizza un file di testo PRINT – invia un file di testo alla stampante Fondamenti di Informatica 94 47 Path (1) z z z z I comandi esterni ed i programmi applicativi si trovano sul disco Per poterli eseguire il sistema deve conoscerne l’ubicazione Quando si digita un comando, se non si tratta di un comando interno, il sistema operativo cerca sul disco il relativo codice Per default, il programma viene cercato nella cartella corrente del disco corrente Fondamenti di Informatica 95 Path (2) z z Per poter accedere ai comandi esterni quando la cartella corrente non è quella in cui sono memorizzati, è possibile indicare al DOS quali sono le cartelle ulteriori in cui cercare i comandi da eseguire Il comando PATH <percorso_cartella> indica che la ricerca deve essere estesa anche alla cartella indicata (il cui percorso deve essere espresso 96 in modo assoluto)Fondamenti di Informatica 48 Path (3) z z È possibile indicare più cartelle in cui effettuare la ricerca, separandole con il carattere “;” Esempio: il comando z PATH c:\dos;c:\programs indica che la ricerca dovrà essere effettuata dapprima nella cartella corrente del disco corrente, poi nella cartella c:\dos ed infine nella cartrella c:\programs Fondamenti di Informatica 97 Prompt (1) z z z Per invitare l’utente ad introdurre una riga di comando, il sistema stampa un messaggio di invito (prompt) Per default, essa consiste della lettera che identifica il disco corrente seguita dal simbolo “>” Il comando PROMPT permette di modificare tale messaggio Fondamenti di Informatica 98 49 Prompt (2) z z z PROMPT <messaggio> indica al sistema di utilizzare <messaggio> come prompt <messaggio> può contenere alcune variabili che, nel testo stampato, vengono sostituite dal relativo valore. Queste comprendono z $n: il disco corrente z $p: il percorso corrente (disco e cartella) z $d: la data corrente z $t: l’ora corrente z $g: il carattere “>” z $l: il carattere “<” z $b: il carattere “|” Fondamenti di Informatica 99 Prompt (3) C> prompt $p$g C:\> cd esami C:\esami> prompt $d$b Mer 04/10/2000| prompt $n$g C> cd .. C> prompt $p$l C:\< _ Fondamenti di Informatica 100 50 Input e output dei programmi z z z Se, durante l’esecuzione di un comando, vengono generati messaggi in uscita, per default, questi vengono stampati sullo schermo Alcuni comandi operano alcune trasformazioni sui dati mandati loro in ingresso: per default, l’ingresso coincide con i tasti premuti sulla tastiera durante l’esecuzione dl comando È possibile modificare queste impostazioni di base mediante la redirezione dei flussi di ingresso e uscita Fondamenti di Informatica 101 Redirezione dei flussi di I/O z Per inviare i messaggi stampati da un comando ad un dato file, si scrive: COMANDO [parametri][opzioni] > nome_file Per aggiungere i messaggi stampati da un comando in coda ad un dato file, si scrive: COMANDO [parametri][opzioni] >> nome_file Per indicare ad un comando di ricevere i propri dati da un file, invece che dalla tastiera, si scrive: COMANDO [parametri][opzioni] < nome_file Fondamenti di Informatica 102 51 Catene di comandi z z È possibile concatenare due o più comandi, indicando che quanto stampato dal primo venga posto in ingresso al secondo, e così via… Si scrive: CMD1 [par][opz] | CMD2 [par][opz] 103 www.disi.unige.it/person/OdoneF/didattica/FdI/lucidi/lezione1.ppt I filtri z z Sono comandi che operano trasformazioni sul flusso di ingresso e inviano il risultato sul flusso di uscita Esempi z MORE: suddivide il flusso di ingresso in pagine, formate da un numero opportuno di righe; invia le pagine in uscita attendendo, tra una pagina e l’altra, la pressione di un carattere sulla tastiera z SORT: ordina le righe in ingresso e le invia in uscita z FIND: identifica, tra le righe in ingresso, tutte quelle che soddisfano una data condizione Fondamenti di Informatica 104 52 Il file system: esempio struttura delle directory rispetto all’interfaccia grafica di Windows 105 Il file system: esempio struttura delle directory rispetto all’interfaccia grafica di Windows tramite il programma explorer di Windows è possibile visualizzare in forma riassuntiva la struttura gerarchica 106 53 Il file system: i cammini o path z Come faccio a cambiare la directory corrente? z In pratica questo corrisponde a muoversi lungo la struttura ad albero. In Windows è tutto gestito in modo trasparente tramite i concetti di cliccare su icone … z Il comando DOS (e Unix) che permette di cambiare la propria posizione è cd (Change Directory) z 107 Il file system: i cammini o path z se il sistema ha un’interfaccia grafica quest’idea dei cammini sembra meno importante, ma c’è! 108 54 Esecuzione di programmi z Quando si manda in esecuzione un programma, il sistema operativo: z z z z cerca il programma sull’hard disk copia il programma in memoria centrale imposta uno dei registri dell’unità centrale di elaborazione con l’indirizzo in memoria centrale della prima istruzione del programma Un programma in esecuzione si chiama processo. 109 Esecuzione di programmi z z Dal punto di vista dell’utente un programma è un file che si trova sul disco fisso e che noi possiamo identificare tramite un nome Ad esempio notepad.exe è un file eseguibile di Windows, che corrisponde al programma Notepad, un editor di testi. 110 55 Esecuzione di programmi z In Windows esistono vari modi per eseguire (“lanciare”) un programma: z z il modo più “antico” è usare la finestra di comandi a carattere (command prompt), andare nella directory giusta (con il comando CD) digitare notepad e premere invio. un modo simile è andare sul menu di avvio di Windows, scegliere “esegui” e scrivere notepad (e dare invio) 111 Esecuzione di programmi z z utilizzando le icone, possiamo aprire la cartella opportuna (sul mi PC è C:\Windows.NT) e cliccare due volte sull’icona di notepad. Il modo più comodo è accedere al menù applicazioni dal menù di avvio e scegliere l’opzione notepad 112 56 La finestra dei processi di Windows z Premere contemporaneamente CTRL ALT CANC e scegliere task manager 113 La finestra dei processi di Windows 114 57