Il software: cenni sul sistema operativo Carla Guerrini Calcolo Numerico e Programmazione 1 Il software Carla Guerrini Calcolo Numerico e Programmazione 2 1 IL sistema operativo (I) Il sistema operativo e’ un insieme di programmi che controllano le funzioni dei dispositivi hardware disponibili. Isola l’utente dai dettagli dell’architettura e gli fornisce funzionalita’ di alto livello. Il sistema operativo viene caricato ed eseguito automaticamente al momento dell’accensione del computer. Carla Guerrini Calcolo Numerico e Programmazione 3 IL sistema operativo (II) Sistema operativo monoutente: se il computer e’ dedicato ad un singolo utente (tipicamente un PC). Più semplice. Sistema operativo multiutente: se piu’ utenti condividono le stesse risorse hardware (workstation, mainframe, PC). In questo caso il SO nasconde ad ogni utente la presenza degli altri, dando l’impressione che l’intero sistema gli sia interamente dedicato.Più complesso. Carla Guerrini Calcolo Numerico e Programmazione 4 2 Il sistema operativo (III) Monotasking (una sola applicazione per volta ) oppure multitasking (piu’ applicazioni per svolgere più funzioni contemporaneamente). Interfaccia utente a caratteri o grafica Capacita’ di elaborazione (16, 32 o 64 bit) Sicurezza Proprietario (funziona solo con un certo tipo di computer) o aperto (funziona su computer di marca diversa) Carla Guerrini Calcolo Numerico e Programmazione 5 IL sistema operativo (IV) Per desktop: DOS. E’ stato il primo SO per desktop (1980), con interfaccia a caratteri, monotasking, a 8 bit, ormai poco utilizzato. Windows nelle sue diverse versioni: 95, 98, 2000, NT, XP. Interfaccia grafica, multitasking. Apple Macintosh System 8. Sistema proprietario installato sui Macitosh della Apple. Interfaccia grafica, multitasking. Linux: e’ un sistema tipo UNIX. Versioni, a basso costo o gratuite: Red Hat, Debian, Mandrake … Carla Guerrini Calcolo Numerico e Programmazione 6 3 IL sistema operativo (V) Per I server (collegati in rete con altri computer). Devono garantire la sicurezza dei collegamenti fra i computer e dirigere il traffico sulla rete. Windows NT, Windows ME OS/2. Non ha avuto grande diffusione pur essendo potente. UNIX: Linux, Solaris ….Sviluppato nel 1973, inizialmente con interfaccia a caratteri, ora con interfaccia grafica. Sicuro, potente e a basso costo oppure gratis (LINUX); piu’ difficile da installare e gestire di Windows, ma piu’ affidabile. Carla Guerrini Calcolo Numerico e Programmazione 7 IL sistema operativo (VI) Per I mainframe: Sistemi proprietari: VMS (Digital), Open MVS (IBM). Per i computer tascabili: Windows CE Carla Guerrini Calcolo Numerico e Programmazione 8 4 L’interfaccia L’interfaccia permette la comunicazione con l’utente. Ci sono interfacce grafiche (Windows, Linux ….) e a caratteri (DOS , VMS ….) L’interfaccia grafica e’ costituita da un menu di comandi selezionabili mediante mouse attraverso icone disposte su una scrivania (desktop) o “menu a tendina” . Carla Guerrini Calcolo Numerico e Programmazione 9 Il BIOS Il BIOS (Basic Input Output System) e’ un piccolo programma registrato permanentemente sulla memoria ROM. E’ considerata come un livello intermedio fra hardware e software ed e’ detto firmware. Collega il software con l’hardware. E’ il primo programma avviato all’accensione del computer. Funzioni del BIOS: interpreta I dati immessi da tastiera, visualizza I caratteri sullo schermo, gestisce comunicazioni attraverso porte del computer …. Carla Guerrini Calcolo Numerico e Programmazione 10 5 Organizzazione del SO (I) Il SO e’ organizzato per strati funzionali, detti “a buccia di cipolla”. Carla Guerrini Calcolo Numerico e Programmazione 11 Organizzazione del SO (I) Ciascuno strato funzionale realizza una macchina virtuale, cioe’ una macchina che maschera le caratteristiche hardware e offre ai suoi utenti una serie di funzionalita’. Struttura modulare del SO: cisacun modulo esporta le funzionalita’ verso l’esterno e mantiene al suo intenro I propri meccanismi implementativi. La macchina virtuale e’ dedicata al singolo utente, mentre la macchina fisica e’ condivisa fra gli utenti. Carla Guerrini Calcolo Numerico e Programmazione 12 6 NUCLEO (I) Compiti del gestore dei processi ( nucleo) sono: Gestire le eventuali interruzioni esterne (gestore degli interrupt) Gestire i processi facendo eseguire dalla CPU i programmi Offrire agli strati superiori una macchina virtuale in cui ciascun programma opera come se avesse a totale disposizione la CPU Carla Guerrini Calcolo Numerico e Programmazione 13 NUCLEO (II) Il programma in esecuzione è basato su una serie di cicli macchina, accadono degli eventi per cui il ciclo macchina viene interrotto (Interrupt) Interrupt esterni ( operazioni di I/O ) che utilizzano periferiche esterne Interrupt interni, si verificano quando< il programma in esecuzione necessita dell’intervento del S.O. (supervisor call) Carla Guerrini Calcolo Numerico e Programmazione 14 7 Nucleo(III) diagramma stato transazioni Carla Guerrini Calcolo Numerico e Programmazione 15 NUCLEO(IV) Processo: è un concetto dinamico legato all’esecuzione di un programma Processo è una coppia di elementi (E,S) dove E è il codice eseguibile ed S è lo stato del processo, ossia l’insieme di tutti i valori contenuti nella memoria centrale e nei registri della CPU relativi al processo stesso. Uno dei valori più importanti dello stato S è il registro contatore di programma (Program Counter) che contiene l’indirizzo della successiva istruzione da eseguire. Se ad ogni programma fosse associato un unico processo PROCESSO -in esecuzione,– attesa, -pronto Carla Guerrini Calcolo Numerico e Programmazione 16 8 Gestore dei processi (I) Se ci sono piu’ utenti che devono utilizzare la CPU, il gestore dei processi deve stabilire il processo che, istante per istante, utilizza la CPU. Rotazione dei processi (round-robin): ad ogni processo viene assegnato un “quanto” di tempo: quando questo termina il processo viene interrotto e viene messo in coda ai processi in attesa di occupare la CPU. Quando un processo viene interrotto, il nucleo si proeccupa di salvare il suo contesto, cioe’ copiare il contenuto di tutti I registri del processore. Carla Guerrini Calcolo Numerico e Programmazione 17 Gestore della memoria (I) Il gestore della memoria ha la funzione di allocare la memoria dividendola fra i vari programmi che la richiedono. E’ opportuno che piu’ programmi siano presenti in memoria in modo che possano essere velocemente eseguiti quando e’ il loro turno. Questo strato offre a quelli superiori una macchina virtuale in cui ciascun programma opera come se avesse tutta la memoria a sua disposizione. Carla Guerrini Calcolo Numerico e Programmazione 18 9 Gestore della memoria (II) Tecniche di gestione della memoria centrale: Paginazione: la memoria centrale e’ considerata come partizionata in pagine, contigue, di dimensione fissata. Anche I programmi vengono partizionati in pagine e viene fatta una assegnazione dello spazio di memoria sulla bse di esse. Segmentazione: il programma viene suddiviso in parti che svolgono diverse funzioni (segmenti) e vengono caricati in memoria I segmenti in modo indipendente. Carla Guerrini Calcolo Numerico e Programmazione 19 Gestore della memoria (III) Memoria virtuale Con le tecniche di segmentazione e paginazione il gestore della memoria offre al programma una memoria virtuale, che puo’ essere anche maggiore di quella fisica. I segmenti (o pagine) che non stanno nella memoria centrale e non sono al momento necessari vengono caricati nella memoria secondaria e trasferiti nella memoria centrale quando servono. Rallentamento dell’esecuzione. Carla Guerrini Calcolo Numerico e Programmazione 20 10 Gestore delle periferiche (I) I driver sono I programmi del SO che gestiscono le periferiche. Permettono all’utente di utilizzare le periferiche senza conoscerne le caratteristiche hardware specifiche. Danno all’utente l’impressione che le periferiche siano dedicate. Carla Guerrini Calcolo Numerico e Programmazione 21 Gestore dei file (File System) (I) L’informazione nella memoria di massa e’ organizzata in file. Ogni file ha un nome proprio, costituito da due parti: nome.estensione (l’estensione ha al massimo 3 caratteri). Esempio: prova.doc I dati possono essere organizzati in vari modi. Alcuni file possono contenere testi, altri programmi, altri immagini, altri video ecc. Carla Guerrini Calcolo Numerico e Programmazione 22 11 Gestore dei file (File System) (II) Il file system e’ responsabile della gestione dei file. Li organizza in directory o cartelle (folder). Le directory sono contenitori di piu’ files. Fornisce all’utente funzioni di alto livello per operare su di essi. Permette ad ogni utente di organizzarsi una zona della memoria di massa e garantisce che I file siano protetti da accessi esterni. Carla Guerrini Calcolo Numerico e Programmazione 23 Gestore dei file (File System) (III) Le directory sono organizzate in una gerarchia ad albero. Il file system ha directory che contengono file di sistema (cioe’ programmi del SO stesso) e quindi eseguiti dal SO e directory che contengono file degli utenti.(….) A ciascun utente e’ di solito assegnata una directory specifica, detta home directory. I file creati da un utente fanno di solito parte della sua home directory, sotto alla quale puo’ creare altre directory (“sottodirectory”). Home directory in laboratorio: Carla Guerrini Calcolo Numerico e Programmazione 24 12 Gestore dei file (File System) (IV) Gli indicatori delle unita’ di memoria: si distinguono di solito con una lettera (vedi Risorse del Computer). Ciascun file ha un “nome completo” (pathname) che include l’intero cammino dalla radice dell’abero fino al file. Esempi: c:\programmi\winzip\winzip.exe (pathname windows) /home/guerrini/prova.c (pathname unix) Carla Guerrini Calcolo Numerico e Programmazione 25 FILE SYSTEM Carla Guerrini Calcolo Numerico e Programmazione 26 13 Gestore dei file (File System) (V) Il carattere ‘ / ‘ separa I nomi delle directory Il simbolo ‘ . ’ indica la directory corrente. Il simbolo ‘ .. ‘ indica la directory immediatamente superiore alla corrente nell’albero. Carla Guerrini Calcolo Numerico e Programmazione 27 Gestore dei file (File System) (VI) Funzioni disponibili all’utente del file system (fra parentesi comandi Unix): Comandi per la creazione di file o di directory (mkdir); Comandi per l’elencazione di file nella directory (ls); Comandi per spostarsi nelle directory (cd); Comandi per la copia di un file su un altro (cp); Comandi per rinominare un file (mv); Comandi per cancellare dalle unita’ di memoria file (rm) o directory (rmdir); Carla Guerrini Calcolo Numerico e Programmazione 28 14 Interprete dei comandi Consente all’utente di attivare I programmi. 1. Accede al programma, di solito residente in memoria di massa, tramite il file system; 2. Alloca memoria e carica il programma in memoria; 3. Attiva un processo, tramite gestore dei processi. Sfrutta gli strati sottostanti del SO. Carla Guerrini Calcolo Numerico e Programmazione 29 Le utilita’ di sistema (accessories Æ system Æ tools) Formattazione di un disco; Frammentazione del disco; Scanning del disco; Utilita’ multimediali (lettore cd). Carla Guerrini Calcolo Numerico e Programmazione 30 15 Conclusioni Il sistema operativo e’ il software che permette all’utente di utilizzare I dispositivi hardware del calcolatore in modo trasparente. Le caratteristiche del SO sono legate al servizio che deve svolgere nei diversi tipi di computer. E’ organizzato a strati. Ogni strato realizza una macchina virtuale cioe’ una macchina che maschera le caratteristiche hardware e offre ai suoi utenti una serie di funzionalita’ per l’utente. Carla Guerrini Calcolo Numerico e Programmazione 31 Esercizi Provare le diverse operazioni sui file (creare un file, rinominarlo, calcellarlo) Creare una directory di lavoro Creare nella proria home directory una struttura ad albero con sottodirectory. Carla Guerrini Calcolo Numerico e Programmazione 32 16