ANNUNCI Ricevimento Poesio Normalmente: lunedi 16-18, a Povo, SOLO SU APPUNTAMENTO Fino a Maggio: lunedi e venerdi dopo lezione RICORDATEVI: La prossima settimana lezione solo lunedi RICORDATEVI: laboratori, modulo C Riprese sincronizzate con lucidi dellanno scorso disponibili in mediateca
INFORMATICA UMANISTICA B CIRCUITI LOGICI SOFTWARE DI SISTEMA
CONCETTI PRINCIPALI DI QUESTA LEZIONE Circuiti logici Esempio: addizione Struttura a cipolla di un sistema ed astrazione Sistemi operativi: Gestione processi Gestione memoria Gestione interfaccia Storia dei sistemi operativi
UNITA CENTRALE: LA MEMORIA PRINCIPALE
ALU E CIRCUITI LOGICI I CIRCUITI LOGICI sono la base dellhardware di un calcolatore L Unita aritmetico / logica (ALU), e prevalentemente composta di circuiti di questo tipo Questi circuiti sono costituiti da un gran numero di componenti piu semplici
CIRCUITI LOGICI E FUNZIONI Ogni circuito logico calcola una FUNZIONE od OPERAZIONE: +(2,4) = 4 Le operazioni piu semplice sono quelle BINARIE
OPERAZIONI BINARIE Useremo il termine OPERAZIONE BINARIA in modo generico per riferirsi ad ogni funzione che specifica un valore di OUTPUT 0 od 1 sulla base di 1 o piu valori di INPUT Queste operazioni binarie possono essere specificate da TABELLE Esempio piu noto di operazione binaria: OPERAZIONI LOGICHE
LALGEBRA BOOLEANA Una forma molto semplice di LOGICA Che codifica le condizioni sotto le quali espressioni complesse come A e B o non A o A o B sono vere mediante TABELLE DI VERITA
ANDORNOT A BA AND B falso falso vero falso vero falso falso vero A BA OR B falso falso vero vero vero falso vero ANOT A falsovero falso RA B RA B RA OPERAZIONI LOGICHE ELEMENTARI: AND, OR, NOT
ANDORNOT RA B RA B RA CIRCUITI ELEMENTARI: AND, OR, NOT
DALLE TABELLE DI VERITA AI CIRCUITI Tanti input quante sono le dimensioni della tabella Un solo output Un or alloutput Tanti and quanti sono gli 1 della tabella Input degli and: 1 se diretto, 0 se negato A B
NAND E NOR Per realizzare tutte le operazioni binarie non servono tre operazioni (and, or, not) Basta una tra : nand (not and) e nor (not or)
NANDNOR A BA NAND B falso vero falso vero vero vero falso vero falso A BA NOR B falso vero falso vero falso vero falso falso vero falso RA B RA B
CIRCUITI ARITMETICI Riporto: = Somma: Colonna per colonna, da destra a sinistra Riporto se la somma su una colonna supera la base Tre cifre binarie (prima riga, seconda riga, riporto), somma =1 se una o tre sono 1, riporto = 1 se almeno due sono =
SOMMA BINARIA 1 11 riporti = Si vuole costruire un circuito per sommare due numeri binari Iniziamo con un circuito che faccia la somma su di una colonna
1-add 1-add 0 riporto iniziale Riporto finale risultato SOMMA DI NUMERI DI 4 BITS
Vogliamo un circuito che con input due bit corrispondenti ed il riporto precedente calcola la loro somma ed il nuovo riporto. yx S R R' 1-ADD
2 bit da sommare riporto riporto per la prossima colonna risultato su questa colonna 1-ADD 3 input 2 output
Il circuito comprende due sottocircuiti: riportosomma 1-ADD
La somma S è 1 se tutti e tre i bit in input sono 1, oppure solo uno di essi è 1. Questo si esprime con la formula logica: S = {[(X AND Y) AND R] OR [X AND (Y NOR R)]} OR {[Y AND (X NOR R)] OR [R AND (X NOR Y)]} ESPRESSIONE LOGICA PER 1-ADD
Il nuovo riporto R' è 1 se almeno due bit in input sono 1. Questo si esprime con la formula logica: R' = [(X AND Y) OR (X AND R)] OR (Y AND R)
TABELLE DI VERITÁ Somma S Riporto R riporto bit da sommare
SOMME COME CIRCUITI
1-add 1-add 0 riporto iniziale Riporto finale risultato Somma di numeri di 4 bits
Componendo 6 circuiti ADD si ottiene il circuito x0x0 0 ADD R y0y0 s0s0 x1x1 R y1y1 s1s1 x2x2 R y2y2 s2s2 x3x3 R y3y3 s3s3 x4x4 R y4y4 s4s4 x5x5 R y5y5 s5s5 Che calcola la somma di due numeri di 6 bit
HARDWARE E SOFTWARE Fino a qui, abbiamo parlato soprattutto di componenti fisiche del computer, il cosiddetto hardware Sappiamo però che il funzionamento di un computer non dipende solo dall hardware ma anche, e in maniera determinante, dai programmi che il computer è in grado di eseguire, il cosiddetto software
CHE COSA IL SOFTWARE FA PER VOI
TRE TIPI DI SOFTWARE Software APPLICATIVO: programmi che permettono di svolgere funzioni VIDEOGIOCHI, WORD PROCESSING, DATABASE, POSTA ELETTRONICA PROGRAMMI UTENTE veri e propri Software DI SISTEMA: controlla lhardware, gestisce linterfaccia con utente, coordina le applicazioni SISTEMA OPERATIVO, INTERFACCIA RETE
IL SOFTWARE DI SISTEMA Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà
Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà Lutente dovrebbe conoscere lorganizzazione fisica dellelaboratore e il suo linguaggio macchina LOAD 32 R2 ADD R1 84 IL SOFTWARE DI SISTEMA
Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà Lutente dovrebbe conoscere lorganizzazione fisica dellelaboratore e il suo linguaggio macchina Ogni programma dovrebbe essere scritto utilizzando delle sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso
IL SOFTWARE DI SISTEMA È necessario fornire un meccanismo per astrarre dallorganizzazione fisica della macchina Lutente deve: usare nello stesso modo (o comunque in un modo molto simile) macchine diverse dal punto di vista hardware avere un semplice linguaggio di interazione con la macchina avere un insieme di programmi applicativi per svolgere compiti diversi
LA MACCHINA VIRTUALE Nei moderni sistemi di elaborazione questi obiettivi vengono raggiunti grazie alla definizione di macchine virtuali che vengono realizzate al di sopra della macchina hardware reale Hardware Macchina virtuale (software) Utente
LA MACCHINA VIRTUALE Questa macchina si dice virtuale in quanto essa non esiste fisicamente Il SOFTWARE DI SISTEMA opera unASTRAZIONE mettendo a disposizione dellutente (programmatore) un set di operazioni PIU RICCO di quello definito dallhardware (o dai livelli di software di sistema inferiori) Questoperazione di astrazione puo essere ripetuta piu volte
ESEMPI DI ISTRUZIONI VIRTUALI STAMPA CARATTERE A Eseguire questa istruzione richiede mettere carattere A in unarea speciale (print buffer), inviare un segnale alla stampante che ce dellinput, aspettare che la stampante abbia finito e controllare che tutto abbia funzionato OK APRI DOCUMENTO B Un `documento é semplicemente una lista di blocchi su tracce possibilmente diverese del disco
DAI LINGUAGGI DI PROGRAMMAZIONE AL LINGUAGGIO MACCHINA Ogni computer ha un linguaggio macchina … le cui istruzioni sono direttamente eseguibili dalla macchina hardware Al di sopra di questo linguaggio è possibile definire altri linguaggi … e fornire delle regole per tradurne le istruzioni in opportune sequenze di istruzioni in linguaggio macchina
STRUTTURA A CIPOLLA Hardware + software formano un insieme di livelli, che formano la cosi detta struttura a cipolla Idealmente lutente ad un livello è ignaro di tutti i dettagli delle operazioni svolte dai livelli inferiori della gerarchia e conosce solo le operazioni del livello più alto
SISTEMA OPERATIVO Il sistema operativo e il software che gestisce ed interagisce direttamente con il computer, presentando a tutti gli altri tipi di software uninterfaccia che astrae dalle caratteristiche dellhardware specifico. Esempi: Windows XP, Unix (Linux, Sistem X Apple), etc.
Funzioni principali del sistema operativo Avvio del computer Gestione del processore e dei programmi in esecuzione (detti processi) Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria Gestione dei dispositivi di input/output Interazione con lutente
LA STRUTTURA A CIPOLLA DEL SISTEMA OPERATIVO Hardware Utente Avvio Gestione: i processi, la memoria, i disp. di input/output Interfaccia utente
Funzioni principali del sistema operativo Avvio del computer Gestione del processore e dei programmi in esecuzione (detti processi) Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria Gestione dei dispositivi di input/output Interazione con lutente
Avvio dellelaboratore Il sistema operativo viene mandato in esecuzione al momento dellaccensione del computer Questa fase prende il nome di bootstrap In questa fase una parte del sistema operativo viene caricata nella memoria principale
Avvio dellelaboratore In genere questa parte del sistema operativo comprende: I programmi per la gestione del processore I programmi per la gestione della memoria I programmi per la gestione dellinput/output I programmi per la gestione delle risorse hardware I programma per la gestione del file system Un programma che crea linterfaccia verso lutente
Avvio dellelaboratore Una parte del sistema operativo deve essere sempre mantenuta in memoria principale e deve essere sempre pronta per lesecuzione N S.O. spazio utente
Avvio dellelaboratore (i virus) Spesso durante questa fase sono eseguiti anche dei programmi che verificano leventuale presenza di virus sul disco dellelaboratore I virus può danneggiare il funzionamento dellelaboratore Possono essere trasmessi da un elaboratore ad un altro quando si copiano dei programmi oppure quando si salvano degli allegati dalla casella di posta elettronica
ESEMPIO: WINDOWS XP BIOS esegue PowerOnSelfTest (POST) Controlla che video card funzioni Controlla se reboot o cold boot. Se cold boot, controlla RAM, bus, tastiera, mouse Carica i drivers speciali Fa partire BOOSTRAP LOADER BOOTSTRAP LOADER: Carica sistema operativo in memoria Lo fa partire
IL COMPUTER MANAGER DI WINDOWS XP
Funzioni principali del sistema operativo Avvio del computer Gestione del processore e dei programmi in esecuzione (detti processi) Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria Gestione dei dispositivi di input/output Interazione con lutente
Esecuzione dei programmi Quando si scrive un comando (oppure si clicca sullicona di un programma) …. C:> print foo1.doc C:> oppure
Esecuzione dei programmi Quando si scrive un comando (oppure si clicca sullicona di un programma), il sistema operativo: Cerca il programma corrispondente sulla memoria secondaria Copia il programma in memoria principale … Processore Stampante Memoria secondaria Memoria principale
Esecuzione dei programmi Quando si scrive un comando (oppure si clicca sullicona di un programma), il sistema operativo: Cerca il programma corrispondente sulla memoria secondaria Copia il programma in memoria principale Imposta il registro Program Counter con lindirizzo in memoria principale della prima istruzione del programma
Sistemi mono-utente, mono- programmati Un solo utente può eseguire un solo programma alla volta È forzato a sequenzializzare i programmi Il programma viene lanciato, eseguito e quindi terminato Ma il processore viene sfruttato al meglio?
Sistemi mono-utente, mono- programmati No, il processore non viene sfruttato al meglio: si spreca molto tempo Il processore è molto più veloce dei supporti di memoria secondaria e delle altre periferiche Passa la maggior parte del suo tempo in attesa Durante lattesa si dice che il processore è un uno stato inattivo (idle)
Esempio 1 Un processo è costituito da 1000=10 3 istruzioni Ogni istruzione richiede secondi per essere eseguita dal processore Tempo totale di esecuzione: 10 3 * = = 1 millisecondo A metà esecuzione è richiesta la lettura di un dato dal disco. Il tempo di lettura è 1 millisecondo Tempo totale di esecuzione = 2 millisecondi Idle time = 1 millisecondo: 50% del tempo totale di esecuzione è tempo sprecato
Esempio 2 Un processo è costituito da 1000=10 3 istruzioni Ogni istruzione richiede secondi per essere eseguita dal processore Tempo totale di esecuzione: 10 3 * = = 1 millisecondo A metà esecuzione è richiesta un dato alutente. Il tempo di reazione è 1 secondo Tempo totale dellesecuzione = 1001 millisecondi Idle time = 1 secondo: 99,9% del tempo totale di esecuzione è tempo sprecato
Esecuzione sequenziale Processo P1 Processo P2 Processore iniziofineiniziofine esecuzione in attesa attivo idle
Esecuzione sequenziale Supponiamo che il nostro sistema sia un bar in cui il barista serve diversi clienti Il barista è corrispondente del processore, i clienti sono lequivalente dei processi da eseguire Esecuzione mono-programmati: OrdinarePreparare il caffé Consumare Pagare OrdinarePreparare il caffé Consumare Pagare Client 1Client 2
Soluzione In realtà: Ordinare (C1) Preparare il caffé (C1) Pagare (C1) Ordinare (C2) Preparare il caffé (C2) Pagare (C2) Client 1 Client 2
Soluzione: sistemi multiprogrammati Quando il processore è nello stato di idle può eseguire (parte di) un altro processo Quando un processo si ferma (per esempio in attesa di un dato dallutente) il processore può passare ad eseguire le istruzione di un altro processo Il sistema operativo si occupa dellalternanza tra i processi in esecuzione
IL TASK MANAGER
Funzioni principali del sistema operativo Avvio del computer Gestione del processore e dei processi Gestione della memoria principale Gestione della memoria virtuale Gestione della memoria secondaria Gestione dei dispositivi di input/output Interazione con lutente
IL FILE SYSTEM
Gestione della memoria secondaria La memoria secondaria serve per memorizzare programmi e dati in modo permanente Il file system: quella parte del sistema operativo che si occupa di gestire e strutturare le informazioni memorizzate sulla memoria secondaria Processore Stampante Memoria secondaria Memoria principale
Il file system Mediante il file system il sistema operativo fornisce una visione astratta dei file su disco Hardware Utente Avvio Gestione: i processi, la memoria, i disp. di input/output Interfaccia utente
Il file system Il file system permette allutente di: Identificare ogni file mediante il suo nome Operare sui file mediante opportune operazioni Effettuare laccesso alle informazioni grazie ad operazione di alto livello, che non tengono conto del tipo di memorizzazione Per esempio, si deve accedere allo stesso modo ad un file memorizzato sul disco rigido oppure su un CD-ROM …
Il file system Il file system permette allutente di: … Strutturare i file, organizzandoli in sottoinsiemi secondo le loro caratteristiche, per avere una visione ordinata e strutturata delle informazioni sul disco Proteggere i propri file in un sistema multi- utente, ossia per impedire ad altri utenti di leggerli, scriverli o cancellarli
Il file system Un insieme di operazioni minimale: Creazione di un file Cancellazione di un file Copia o spostamento di un file Visualizzazione del contenuto di un file Stampa di un file Modifica del contenuto di un file Rinomina di un file Visualizzazione delle caratteristiche di un file
ORGANIZZAZIONE DEI FILES SU DISCO Ogni sistema operativo ha il suo modo per utilizzare i dischi Divide ogni solco in BLOCCHI o CLUSTER Registra informazioni sulla locazione dei files Windows: DOS: FAT Windows 98: FAT 32 Windows 2000 / XP: VFAT; info nei clusters
BLOCCHI SU DISCO I dischi sono suddivisi in tracce concentriche e settori, ogni settore è una fetta di disco I settori suddividono ogni traccia in porzioni dette blocchi Testina Traccia Blocco Settore
Organizzazione gerarchica dei file Il numero di file che devono essere memorizzati su un disco può essere molto elevato Si ha quindi la necessità di mantenere i file in una forma ordinata Un unico spazio (contenitore) di file è scomodo La scelta dei nomi diventa difficile perché non è possibile avere due file con lo stesso nome nella stessa contenitore Le operazioni di ricerca dei file diventano onerose
Organizzazione gerarchica dei file Lidea è quella di raggruppare i file in sottoinsiemi Questi sottoinsiemi di file vengono memorizzati allinterno di contenitori dette cartelle (directory) I nomi dei file sono locali alle directory Si possono avere due file con lo stesso nome perché siano in due directory diverse
Organizzazione gerarchica dei file I computer sono dotati di più unità di memoria secondaria, per esempio: Unità per floppy disk: A Unità per disco fisso: C Unità per CD-ROM: D DOS e Windows usano dei nomi per distinguere le unità
Organizzazione gerarchica dei file Applicazioni Biblioteca Utenti Indice Elab_imm Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi … Rossi … Pautasso … Photoshop.exe Winword.exe libro1.pdf libro2.pdf libro1.pdf libro2.pdf Premiere.exe A: Questa struttura viene chiamata albero foglie radice dellalbero
Organizzazione gerarchica dei file Per organizzare gerarchicamente i file, il sistema operativo deve fornire all'utente un insieme di operazioni per: creare una nuova directory rimuovere una directory rinominare una directory elencare il contenuto di una directory copiare o spostare i file da una directory ad un'altra
FUNZIONI DEL SISTEMA OPERATIVO, III: INTERFACCIA UTENTE
INTERFACCE TESTUALI MS-DOS, Unix shell, Linux shell Lavorando con una interfaccia testuale i comandi vengono impartiti mediante la tastiera Ogni comando ha un suo nome e una sintassi ben precisa C:> print foo1.doc Cant find file foo1.doc C:> prompt
ESEMPI DI COMANDI MS-DOS Date Dir Copy Del Help … UNIX-Linux Date Ls Cp Rm Man …
Linguaggio di comandi (interfaccia testuale) Dai il messaggio di prompt allutente Quando arriva il comando, riconoscilo Se è errato, dai un messaggio di errore Se è corretto, esegui lazione corrispondente Al termine delloperazione, torna allinizio C:> print foo1.doc Cant find file foo1.doc C:>
INTERFACCE GRAFICHE Nei calcolatori con interfaccia grafica molti comandi sono impartiti mediante linterazione attraverso il mouse Cioè il clic (il doppia clic, …) del mouse su unicona viene tradotto in una opportuna sequenza di istruzioni che il computer esegue per soddisfare la richiesta dellutente
COMPILATORI ED INTERPRETI Linguaggi: Di basso livello Di alto livello I linguaggi ad alto livello devono essere trasformati in un linguaggio comprensibile alla macchina: Interpretati: ogni istruzione viene eseguita da un programma interprete a richiesta dellutente (basic) Compilati: le istruzioni vengono tradotte tutte insieme da un programma compilatore che genera un codice eseguibile che il computer processa direttamente (c, cobol, ecc.)
STORIA DEI SISTEMI OPERATIVI Prima generazione: valvole Seconda generazione: transistors, sistemi batch Terza generazione: 1965 – 1980 Circuiti integrati, multiprogramming Quarta generazione: 1980 – oggi personal computers, interfacce grafiche
SISTEMI BATCH Early batch system bring cards to 1401 read cards to tape put tape on 7094 which does computing put tape on 1401 which prints output
SISTEMI BATCH Struttura di un tipico Fortran Monitor System job
PRIMI SISTEMI OPERATIVI MULTI-TASKING CTSS (Compatible Time Sharing System ) MULTICS (MULTIplexed Information and Computing Service ) UNIX (1969)
SISTEMI OPERATIVI PER PC MS-DOS (MicroSoft Disk Operating System ) Apple Mac: primo sistema operativo ad utilizzare il nuovo tipo di interfaccia a finestre sviluppato da Xerox Windows (1985) Windows 95, Windows 98, Windows Me Windows NT, Windows 2000 (5 th version of NT), Windows XP UNIX per PC: Minix (1987) Linux (1994)
INTERFACCE SU RETE E WEB A partire dal 1980 una componente essenziale del sistema operativo Lezione 6
LETTURE Ciotti & Roncaglia cap. 3