I seguenti appunti non hanno la pretesa di essere esaustivi, ma hanno l’unico scopo di illustrare in modo schematico i concetti necessari allo sviluppo del programma di Informatica della 1D del Liceo Scientifico Scienze Applicate 2013-2014 partendo dalla preparazione specifica degli studenti. MACCHINA DI VON NEUMANN Il Modello di Von Neumann per la rappresentazione di un elaboratore può essere schematizzato come in fig. 1, dove la CPU (Central Processing Unit) è realizzata come in fig.2: fig 1 fig 2 CPU: esegue le istruzioni per l'elaborazione dei dati e svolge funzioni di controllo o coordinamento delle altre componenti funzionali. E’ a sua volta formata da: • ALU (unità logico aritmetica) può eseguire solo somme, sottrazioni e confronti e contiene un registro - detto accumulatore - che fa da buffer (sala d’attesa) tra input e output. Le operazioni di prodotto, potenza, divisione, radice etc, vengono realizzate mediante iterazioni rispettivamente della somma e della sottrazione. Con il confronto si possono effettuare le operazioni di ricerca, ordinamento di dati, riconoscimento di un bit di fine stringa, etc • REGISTRI DI MEMORIA contengono le istruzioni di funzionamento della ALU, cui dicono come deve effettuare il caricamento degli operatori, le diverse operazioni, etc • UNITA’ DI CONTROLLO regola il flusso di informazioni fra gli altri blocchi verificando lo stato dei blocchi e abilitando la comunicazione fra i blocchi che in quel momento devono colloquiare, tramite enable (abilitazioni). Unità di memoria, memoria di massa (RAM) Unità I/O, interfacce mediante le quali i dati da elaborare vengono inseriti nel calcolatore e i dati elaborati vengono restituiti all'operatore (tastiere, mouse, sensori, stampanti, scheda video, scheda audio, display, attuatori) BUS, canale che collega tutti i componenti fra loro. Due di essi possono dialogare solo quando entrambi abilitati alla comunicazione dei dati. R. Guma – appunti di Informatica destinati a scopo di studio. Non possono essere usati a scopo di lucro o copiati in tutto o in parte. Tutti i diritti riservati. REGISTRI I registri sono delle celle di memoria contenute nell'unita di elaborazione centrale. Nella CPU sono presenti i seguenti registri aventi funzionalità specifiche: • Il registro contatore delle istruzioni (PC), che ha la funzione di memorizzare l'indirizzo della prossima istruzione da eseguire. • Il registro delle istruzioni (IR), che memorizza l'istruzione che deve essere eseguita, opportunamente codificata. • Il registro di indirizzamento della memoria (MAR), che memorizza l'indirizzo della cella di memoria che deve essere acceduta o memorizzata. • Il registro dati di memoria (MDR), che memorizza il dato cui abbiamo acceduto o che deve essere memorizzato. • Il registro parola di stato (PSW) contenente le informazioni, codificate, circa l'esito dell'ultima istruzione che è stata eseguita. MEMORIE 1. RAM (Random Access Memory) memoria ad accesso casuale, si sovrascrive e si cancella quando il sistema si spegne 2. ROM (Read Only Memory) è preprogrammata dal costruttore e non può essere modificata dall’utente. Contiene ad esempio le istruzioni di funzionamento di un dispositivo sul quale è installata 3. PROM (Programmable Read Only Memory) 4. EPROM (Erasable Programmable Read Only Memory) 5. EEPROM (Electrically Erasable Programmable Read Only Memory) Nell'architettura dei calcolatori si distinguono due tipi di memoria: • memoria primaria, che lavora a più diretto contatto con il processore (RAM, ROM e cache) • memoria secondaria o memoria di massa (hard disk, CD, DVD, memorie flash, etc). È detta di massa perché raccoglie tipicamente grandi quantità di dati rispetto alla memoria primaria e in maniera non volatile cioè permanente fino a che non venga cancellata o sovrascritta per volontà dell'utente. REGISTRO DI STACK Dall’inglese, pila, catasta, è un’area di memoria utilizzata secondo il paradigma LIFO (Last In First Out). R. Guma – appunti di Informatica destinati a scopo di studio. Non possono essere usati a scopo di lucro o copiati in tutto o in parte. Tutti i diritti riservati. SISTEMA OPERATIVO Il Sistema Operativo (SO) è un software che fa da intermediario tra l’utente e la macchina gestendo le risorse (hardware e software) della macchina. Rende possibile la gestione, l’elaborazione e l’immagazzinamento dell'INFORMAZIONE. L’hardware fornisce potenza di calcolo, il sistema operativo la rende disponibile agli utenti, gestendo l’hw in modo efficiente. Il SO controlla l’esecuzione di tutti gli altri programmi e dei processi. Si devono distinguere i programmi dai processi: • Un programma presenta soluzioni per classi di problemi simili (ad es. soluzione delle equazioni di primo grado). • Il processo è un programma in esecuzione in risposta ad una specifica istanza (quindi soluzione di quella specifica equazione di primo grado con determinati dati). Un processo incorpora le istruzioni, i dati da elaborare, lo stato dell’elaborazione. Funzioni del Sistema Operativo Tipologie di Sistemi Operativi • • • • • • • • • • • • Gestione dei Processi (multitasking) Gestione della memoria (scheduler) Gestione dei file (file system) Gestione degli utenti (multiutenza) Gestione dell’I/O (stampanti, video, tastiera, etc) Gestione servizi di Rete Protezione del sistema Interprete di comandi Singolo utente / Multi utente Real time Sistemi distribuiti Embedded Si possono avere sistemi multitask e sistemi multicore. I sistemi multicore presentano più nuclei (core) di elaborazione della CPU, quindi riescono ad operare con diversi processi svolti in parallelo ciascuno da un nucleo di elaborazione. R. Guma – appunti di Informatica destinati a scopo di studio. Non possono essere usati a scopo di lucro o copiati in tutto o in parte. Tutti i diritti riservati. Multitasking è una tecnica del SO che consente di dedicare la CPU a più processi. E’ nota anche con il termine di time-sharing. Il multitasking si distingue in: • cooperativo: tecnica in cui viene condivisa la CPU per svolgere più compiti. Le applicazioni al momento opportuno cedono il controllo alla CPU. L'esecuzione di un processo continua fino a quando esso non restituisce il controllo al sistema. Solo allora il sistema operativo può effettuare il cambiamento di contesto. • preemptive: a prelazione, cioè la ripartizione dell'utilizzo della CPU viene gestita completamente dal sistema operativo. Non è più il processo che decide quando rilasciare la CPU ma è lo scheduler (componente del sistema operativo) che effettua lo scheduling della CPU. Nello scheduling ogni processo a rotazione può tenere occupata la CPU per un intervallo di tempo stabilito, misurato generalmente in millisecondi. Lo scheduler è il dispositivo che in un sistema multitask sostituisce un processo - finito o meno - con un altro, poiché il sistema operativo permette di lavorare con un solo processo alla volta. Nel multitasking, il controllo della CPU viene passato, a turno, da un processo ad un altro: poiché questo avviene in modo molto rapido, gli utenti hanno una “illusione” di contemporaneità. Il turno dipende anche dalla priorità assegnata al processo. Nella figura seguente vengono mostrati i due modi in cui si passa da uno stato all’altro. Con le frecce rosse sono indicate le transizioni di stato normalmente generate dallo scheduler (quelle determinate dai passaggi illustrati nella figura precedente), mentre in azzurro sono indicate quelle generate da interruzioni provenienti dai dispositivi di ingresso/uscita: R. Guma – appunti di Informatica destinati a scopo di studio. Non possono essere usati a scopo di lucro o copiati in tutto o in parte. Tutti i diritti riservati. Le transizioni tra lo stato “running” e gli altri stati comportano un “context switch” della CPU. Context switch: L'operazione che porta lo stato di un processo da pronto ad esecuzione ovvero operazione in cui il contesto del processo uscente (stato dei registri del processore e dello stack nella memoria centrale) viene salvato per poter essere ripristinato in un secondo tempo per il suo avanzamento. Un’interrupt (interruzione) comunica al sistema che si è verificato qualcosa di insolito (ad esempio la necessità di salvare lo stato del sistema perché sta per venir meno l’energia elettrica, oppure l’arrivo di una richiesta prioritaria rispetto a quelle che si stanno svolgendo. MODALITA’ OPERATIVE Premesso che: • BIOS è un programma che il microprocessore usa per inizializzare il computer dopo che il bottone di accensione è stato premuto. E' anche responsabile della comunicazione tra l’SO e le periferiche di I/O. E’ parte integrante del PC e viene salvato su una EPROM. Quando il computer si avvia, il processore avvia il BIOS, questi controlla che quanto è collegato al processore sia funzionante e quindi carica l’SO in memoria. • KERNEL è la parte principale del SO. Caricato in memoria subito dopo il BIOS, si occupa del trasferimento dei dati fra le componenti del sistema e della gestione della CPU. Riceve ed inoltra i comandi dell'utente tramite la shell. • SHELL è uno strumento software che permette la comunicazione diretta tra l’utente e il sistema operativo. In genere è un programma separato. Per proteggere l’hardware dal malfunzionamento di applicazioni software (crash) esistono dei modi operativi distinti dalla CPU. - USER MODE (esecuzione di operazioni per un utente. Es. applicativi). La user mode gestisce i vari processi attribuendo ad ognuno di essi un determinato periodo di tempo oltre il quale non possono operare. - KERNEL MODE (esecuzione di operazioni per il sistema operativo). E’ una modalità protetta nella quale il processore non interrompe e non esclude il processo che sta operando. R. Guma – appunti di Informatica destinati a scopo di studio. Non possono essere usati a scopo di lucro o copiati in tutto o in parte. Tutti i diritti riservati. FILE • Per l’utente, un file è un insieme di dati con un nome. • Per la macchina, un file è una sequenza di byte terminata da un carattere di EOF (End Of File) I file risiedono nella memoria secondaria (dischi). Esistono comandi per creare, distruggere, aprire, chiudere, leggere, scrivere file. In un sistema multiutente è necessario proteggere i file ci possono essere più livelli di protezione per diverse tipologie di utenti . Il file system è l’insieme dei file, della loro organizzazione in directory e dei metodi di gestione e di accesso. Possiamo immaginarlo come il classificatore indicato nella figura successiva, contenente delle cartelle contenenti sottocartelle nelle quali ci sono i vari documenti, immagini, fogli di calcolo, etc… Per individuare un file file.doc contenuto in una sottocartella subfolder contenuta in una cartella folder contenuta nella directory principale (root) del sistema si scrive: /cart/sott/a.doc NB: Studiare anche da pag 93 a pag 97 del libro di testo svolgendo i test previsti a fine capitolo. R. Guma – appunti di Informatica destinati a scopo di studio. Non possono essere usati a scopo di lucro o copiati in tutto o in parte. Tutti i diritti riservati.