CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 William Fornaciari Architetture di calcolo e sistemi operativi Introduzione Docente: William Fornaciari Politecnico di Milano
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 2 - Sistema informatico I sistemi informatici sono gli esecutori degli algoritmi (programmi)
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 3 - Sistema di elaborazione Hardware per elaborazione sistemi embedded workstation/PC main-frame reti di calcolatori Sistema Operativo dedicato alla gestione dell’elaboratore e all’esecuzione dei programmi Software applicativo dedicato alla realizzazione di specifiche esigenze applicative
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 4 - I vari livelli di astrazione Il SW introduce livelli di astrazione dell’hardware Tramite il sistema operativo il calcolatore diventa un sistema in grado di eseguire programmi Tramite le applicazioni il calcolatore diventa un sistema in grado di svolgere un compito specifico SW applicativo Sistama Operativo Hardware
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 5 - Organizzazione del software Software Applicativo Sistema Operativo Strumenti di Produttività Software Personale Ambiente di Programmaz.
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 6 - Architettura di un calcolatore Modello di Von Neumann (anni ‘50) Quattro elementi fondamentali Unità di Elaborazione Memoria Centrale Interfacce delle Periferiche Bus di sistema
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 7 - Elementi Von Neumann Memoria Centrale Informazioni necessarie all’esecuzione di un programma: istruzioni e dati Unità di Elaborazione (CPU) Acquisisce, interpreta ed esegue le istruzioni di un programma Interfacce delle Periferiche Le periferiche consentono l’interazione con il mondo esterno Fanno parte della macchina di Von Neumann solo le interfacce verso le periferiche Bus di sistema Opera il collegamento fra i vari elementi
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 8 - Memoria centrale La memoria centrale accoglie il “materiale di lavoro” su cui opera l’elaboratore: dati e programmi Le informazioni sono memorizzate in forma binaria: sequenze di “zeri” e “uni” La memoria centrale è una sequenza di celle di memoria, ognuna delle quali contiene una insieme di bit (8 o 16 o 32 o 64 o...) Tipi di memoria RAM (Random Access Memory) ROM (Read Only Memory)....
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari- 9 - Componenti di una CPU ALU Registro Indirizzi Clock Program Counter Program Counter Registro dati Unità di Controllo Unità di Controllo Reg. Istruz. Corrente Reg. Istruz. Corrente Registro Interruz. Registro Interruz. A A B B
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Componenti di una CPU Unità di controllo preleva, decodifica ed esegue le istruzioni Clock sincronizza tutte le operazioni ALU - Arithmetic Logic Unit esegue operazioni aritmetiche Registri elementi di memoria interni alla CPU
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Componenti di una CPU Registro istruzione corrente Contiene l’istruzione in esecuzione Program Counter Contiene l’indirizzo della prossima istruzione Registro Indirizzi e Dati Trasferimento dati da/verso memoria o perif. Registro interruzioni Colloquio con le periferiche
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Interfacce verso le periferiche Elementi circuitali per collegare l’elaboratore alle periferiche Contengono i registri per inviare comandi alla periferica registro comando scambiare dati registro dati periferica controllo funzionamento registro informazioni
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Il bus di sistema Collega tutte le unità del sistema In ogni istante collega 2 unità una trasmette una riceve Il bus è sempre sotto il controllo della CPU che seleziona le unità che devono collaborare (master e slave) Tre categorie bus dati Trasporta i dati bus indirizzi Specifica una cella di memoria o una periferica per trasferimento di dati bus controllo Specifica l’operazione da eseguire (lettura o scrittura)
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Le periferiche Le periferiche sono esterne all’elaboratore, ma sono un componente fondamentale Analizzeremo due tipi di periferiche I terminali Le stampanti
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Terminali Un terminale è costituito da una tastiera e un (eventuale) mouse (input) un video e scheda grafica relativa (output) Caratteristiche importanti video: numero colori risoluzione (pixel - picture element) dimensione (pollici) capacità grafica (immagini o solo testo)
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Stampanti Parametri caratteristici: velocità risoluzione (dpi) set di caratteri (font) rumorosità Tecnologie ad aghi a getto d’inchiostro laser
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Estensioni all’architettura Principale limite di Von Neumann sequenzialità delle operazioni Tutte le estensioni tendono a superare questo limite o, in generale, a migliorare le prestazioni uso di processori dedicati processore intrinsecamente parallelo architetture multi-processore gerarchie di memoria
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Architettura di un ambiente PC Concepito per applicazioni generiche e uso personale
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Architettura di un PC (1) Tradizionalmente il PC è il Personal Computer IBM compatibile stesso sistema operativo stessa famiglia di CPU (o compatibili) Oggi il termine PC si riferisce a svariati tipi di macchine diversi sistemi operativi (DOS, Windows 98/NT, OS/2, MacOS, Linux?,...) diversi tipi di CPU (Pentium, PowerPC,…)
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Architettura di un PC (2) Gli elementi che costituiscono un PC sono: RAM CPU Motherboard Schede di espansione scheda video scheda audio... Memorie di massa
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Central Process Unit - CPU Le CPU tipiche di un PC sono prodotte da Intel e hanno la caratteristica di mantenere la compatibilità con il loro antenato 8086 (inizio anni ‘80) In ordine di potenza 80x86 (286, 386, 486) Pentium Pentium Pro Pentium MMX Pentium II (Pentium Pro + MMX) Pentium III Potenza di calcolo
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Caratteristiche delle CPU Le CPU si differenziano innanzitutto per l’architettura interna Esempio: possibilità di eseguire più istruzioni in parallelo Un’altra importante distinzione è la frequenza di funzionamento Attualmente si va da 500 Mhz a 1.2 GHz
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari RAM E’ la memoria centrale del sistema Valori tipici minimo: 32 MB massimo: 256x3 MB La RAM si differenzia per la velocità SIMM: tempi di accesso dell’ordine di 60 ns DIMM: tempi di accesso di 10 ns
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Motherboard La motherboard è una scheda su cui sono montati tutti i componenti del sistema
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Caratteristiche Motherboard Alloggiamento della CPU Esempi: Socket 7 (Pentium), Slot 1 (Pentium II) Alloggiamento della RAM SIMM o DIMM Slot di espansione Differenti standard: ISA, EISA, VESA, PCI Si differenziano per le prestazioni e il tipo di connessione (novita’: USB) Esempi di schede di espansione: Scheda video, Scheda audio, Controller memorie di massa
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Memorie di Massa Le memorie di massa di un PC comprendono: Dischetti removibili Dischi da 1,44 Mega o dischi ZIP da oltre 100 MB Hard Disk Drive: Si differenziano per prestazioni e capacità, GB sono tipici Unità nastro Elevata capacità. Es. Unità DAT da 2 GB CD-ROM Drive Si differenziano prestazioni. Esempio: 52x CD-R e CD-RW Drive Consentono la scrittura e riscrittura di un CD Prezzi: meno di mezzo milione di lire
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Schede video Lo standard video di base per i PC è denominato VGA (Video Graphics Array) Nella versione base consente risoluzioni di 640x480 a 16 colori Le schede video si diferenziano per: Memoria video (legato al parametro precedente) Tipo di connessione (ISA, VESA, PCI, AGP) Risoluzioni e numero di colori supportati Velocità (eventuale presenza di processori dedicati)
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Il Sistema Operativo Il sistema operativo è un insieme di programmi che operano direttamente sulla macchina fisica, mascherandone le caratteristiche e fornendo agli utenti un insieme di funzionalità di alto livello Protezione delle risorse Condivisione Gestione del sistema e sviluppo applicazioni in maniera modulare e flessibile
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Il Sistema Operativo Il sistema operativo migliora le caratteristiche della macchina realizzando una macchina virtuale Il SO operativo può, per esempio, rendere lo stesso hardware Monoutente e monoprocesso Monoutente e multiprocesso Multiutente e multiprocesso
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Architettura di un SO (1) Architettura a buccia di cipolla Facilita la concezione Garantisce la modularità del sistema Ciascun strato realizza una macchina virtuale ovvero rende disponibili al livello superiore funzionalità non presenti nel livello sottostante
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Architettura di un SO (2) MACCHINA FISICA PROGRAMMI UTENTE Interprete Comandi File System Gestione delle periferiche Gestione della memoria Gestione dei processi (nucleo) Sistema Operativo
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Gestione dei processi (1) Il Nucleo è responsabile dell’esecuzione dei programmi da parte della CPU Processo unità di esecuzione, ad ogni programma è associato un processo che evolve con i suoi dati Esecuzione di un programma mandare in esecuzione il corrispondente processo In un sistema esistono in genere più processi in esecuzione quasi-parallela
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Gestione dei processi (2) Compiti del nucleo Gestione della CPU (anche fra molti utenti e/o processi) Segnalazione e gestione di eventi provenienti da unità periferiche Macchina virtuale a strati superiori Ciascun programma opera come se avesse a disposizione un’unità di elaborazione dedicata
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Gestione della memoria Il Gestore della memoria ha il compito di allocare la memoria e partizionarla fra i processi che la richiedono Maschero condivisione regolando accesso Fornisco spazio di indirizzamento superiore alla capacità fisica della memoria centrale Macchina virtuale a strati superiori Ciascun programma opera come se avesse disponibile una memoria dedicata
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Gestione delle periferiche Il Gestore delle periferiche è responsabile delle operazioni di I/O che coinvolgono le periferiche Tutto il software di gestione delle periferiche è detto driver e deve essere “caricato” nel sistema operativo Macchina virtuale a strati superiori Ciascun programma opera come se avesse a disposizione una periferica dedicata
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Gestione dei file Il file system è responsabile della gestione dei file in memoria di massa Consente una strutturazione dei dati tramite file e contenitori di file Consente operazioni di alto livello per leggere e scrivere dati Consente di definire dei diritti di uso/visibilità per vari utenti Macchina virtuale a strati superiori Gestione strutturata delle memorie di massa
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Interprete dei comandi (1) Consente all’utente di attivare i programmi Consente di accedere al programma tramite il file system alloca memoria e carica il programma attiva il processo L’interprete sfrutta tutti gli strati del Sistema Operativo
Architetture Informatiche e sistemi operativi© 2001 William Fornaciari Interprete dei comandi (2) L’interprete è quello che ha il maggior impatto sull’utente finale poichè costituisce ciò che l’utente vede Esempi DOS: interprete dei comandi a carattere C:\> Windows: interprete dei comandi a finestre grafiche