Sei sulla pagina 1di 82

Universit degli studi di Parma

Facolt di Medicina e Chirurgia

Informatica e Programmazione Architettura di PC e Sistemi Operativi


Introduzione/ripasso (molto) generale allinformatica e ai computer Docente: prof. William FORNACIARI
fornacia@elet.polimi.it www.elet.polimi.it/people/fornacia

Sommario
LInformatica
Definizioni essenziali

Larchitettura di un computer
Elementi essenziali Architettura di un PC

I Sistemi Operativi

Definizione di Informatica
Un po di BRAINSTORMING...

Cosa NON linformatica


La scienza e la tecnica dei calcolatori elettronici
Il calcolatore solo uno strumento

Le molteplici applicazioni del calcolatore


Ognuno rischia di vedere solo ci di cui si occupa: ad esempio, linformatica non la gestione della contabilit

La scienza dellInformazione
Troppo generico (include anche il giornalismo!!!)

Cosa linformatica
La scienza della rappresentazione e dellelaborazione dellinformazione Lo studio sistematico degli algoritmi
(sequenza precisa di operazioni)

che descrivono e trasformano linformazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione
(Association for Computing Machinery)

Considerazioni (1)
E possibile svolgere unattivit concettualmente di tipo informatico anche senza calcolatore Il calcolatore solo uno strumento informatico (pi potente di tanti altri)

Il calcolatore un cretino ad altissima velocit (Anonimo Tedesco)

Considerazioni (2)
Il calcolatore esegue in modo preciso tutto ci che gli viene detto. Siamo certi che il compito affidato verr svolto sempre nello stesso modo e sempre seguendo le nostre istruzioni Il calcolatore si limita a fare solo ci che gli viene detto, non si accorge di eventuali errori nella soluzione di un problema

Il concetto di ALGORITMO
Definizione informale: sequenza di passi che portano alla realizzazione di un compito I calcolatori sono esecutori di algoritmi Gli algoritmi vengono descritti tramite programmi Programma: sequenza di istruzioni scritte in un opportuno linguaggio comprensibile al calcolatore

Esempio Consultazione di una carta geografica


Non tutte le elaborazioni corrispondono ad eseguire un algoritmo
Scelta di un luogo di villeggiatura
Non obbedisce ad un rigido algoritmo: prevalgono le considerazioni soggettive o fattori non presenti sulla carta geografica

Scelta della via pi breve fra due citt


Il problema si presta ad essere risolto tramite un algoritmo perch posto in termini precisi La carta geografica contiene tutti gli elementi per risolvere il problema

Propriet degli algoritmi


Finitezza Numero finito di istruzioni Correttezza Deve portare alla soluzione del compito Completezza e Robustezza Ci devono essere tutti i casi possibili Ci devono essere anche i casi di errore Univocit Una sola interpretazione Efficienza Strada pi veloce possibile

Chi linformatico?
Compito di un informatico :

Produrre algoritmi Capire la sequenza di passi che portano alla soluzione di un problema Codificarli in programmi Rendere gli algoritmi comprensibili al calcolatore

I linguaggi di programmazione
Un linguaggio di programmazione un linguaggio per descrivere algoritmi in modo che possano essere compresi da un calcolatore Ci sono molti linguaggi di programmazione:
vantaggio: posso scegliere svantaggio: come scambio informazioni fra programmi scritti con linguaggi diversi?

Un po di storia dei linguaggi

Inizio: luomo si adegua e usa il linguaggio della macchina Passo avanti: luomo usa la macchina per tradurre da un linguaggio di alto livello al linguaggio della macchina FORTRAN, COBOL ALGOL 60, BASIC, Pascal, C C++, Java

50 anni

Architettura dei sistemi informatici (1)


I sistemi informatici sono gli esecutori degli algoritmi Architettura: parti del sistema e loro funzionamento

Architettura dei sistemi informatici (2)


Prima grande divisione:

Hardware:
componenti fisici del sistema

Software:
programmi che vengono eseguiti dal sistema

Hardware
Processore (CPU) Memoria centrale (RAM) Memoria secondaria (memoria di massa) Unit periferiche Bus di sistema

HW in un PC

Altri sistemi informatici (oltre ai PC)

sistemi embedded workstation main-frame reti di calcolatori

Software
Sistema Operativo: dedicato alla gestione dellelaboratore e allesecuzione dei programmi Software applicativo: dedicato alla realizzazione di specifiche esigenze applicative

SW appl. SO HW

Considerazioni
Il SW introduce livelli di astrazione dellhardware

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: il Sistema Operativo

Gestisce le risorse hardware presenti nellelaboratore svolgendo attivit distinte a seconda della complessit del sistema sotto il suo controllo Esempi
MacOS Windows XP Windows NT UNIX, Linux Symbian, PalmOS

Il SO in un PC
Gestisce linterazione fra i componenti HW Interpreta ed esegue i comandi
esecuzione un programma, stampa o visione di un file, ...

Organizza la struttura della memoria di massa


lettura, scrittura, cancellazione di file

Altre funzioni del SO


In un sistema multi-utente deve far vedere a ciascun utente un sistema apparentemente a lui dedicato In una rete di computer deve consentire laccesso alle risorse indipendentemente dalla loro locazione fisica

SW: i programmi applicativi


Programmi scritti per risolvere specifici problemi utilizzando un linguaggio di programmazione di alto livello. Esempi
Programmi di videoscrittura Programmi di elaborazione delle immagini Programmi di teleconsulto Videogiochi

Ambiente di programmazione (1)

Fra il software applicativo esistono gli ambienti di programmazione Sono insiemi di programmi che facilitano la scrittura dei programmi e la verifica della loro correttezza Per ogni linguaggio di programmazione possono esistere differenti ambienti. Esempio: per il C++ esistono VisualC++, C++ Builder, Gnu C++,

Ambiente di programmazione (2)

Un ambiente di programmazione comprende:


un editor per scrivere i programmi sorgente, ovvero programmi scritti in linguaggio di alto livello un compilatore per tradurre il programma sorgente in un programma oggetto, ovvero in un programma direttamente eseguibile dal calcolatore

Ambiente di programmazione (3)

uno specifico problema pu essere risolto tramite differenti programmi coordinati fra loro: il linker collega i vari programmi oggetto in un unico eseguibile un debugger per eliminare errori che possono essere presenti nel programma

Software personale e di produttivit


sistemi di videoscrittura agende elettroniche ipertesti posta elettronica fogli elettronici sistemi per la gestione di basi di dati

Precisazione

Software Applicativo
Strumenti di Produttivit Software Personale Ambiente di Programmaz.

Sistema Operativo

Applicazioni informatiche

Possiamo distinguere 4 grandi famiglie:


Applicazioni numeriche Applicazioni gestionali Servizi telematici Automazione industriale

Le aree dellinformatica
La ACM ne ha individuate 9:
Algoritmi e strutture dati Linguaggi di programmazione Architetture di calcolatori Sistemi operativi Ingegneria del software Computazione numerica e simbolica Basi di dati e sistemi per il ritrovamento dellinformazione Intelligenza artificiale Visione e robotica

Un caso di studio: Teleconsulto


Ad esempio CAROLIN e unapplicazione multimediale per il teleconsulto in cardiologia, sviluppata nellambito della collaborazione interregionale sponsorizzata dalla Comunit Europea allinterno del progetto TeleRegions SUN. Obiettivo. Lo scopo primario del sistema quello di facilitare e snellire lo scambio a distanza di informazioni cliniche mantenendo inalterate, il pi possibile, le caratteristiche di un consulto reale.

Funzionamento di CAROLIN (1)

Lesame di cui si deve effettuare il consulto viene digitalizzato Lesame viene trasferito fra le due stazioni di lavoro Gli specialisti possono iniziare il teleconsulto

Funzionamento di CAROLIN (2)


Durante il teleconsulto, gli specialisti visionano in tempo reale lo stesso materiale multimediale condividendo le immagini, effettuando delle annotazioni e commentando a voce attraverso un sistema di video-conferenza integrato.

Elementi HW del sistema CAROLIN


HW
Connessione ISDN: permette una conferenza audio/video tra i medici, il teleconsulto, realizzato utilizzando CAROLIN PC multimediali:
Telecamera Cuffia e microfono

Elementi SW del sistema CAROLIN


SW
Digitalizzatore: consente lacquisizione di filmati da apparecchiature emodinamiche Editor Filmati: consente lelaborazione dei filmati acquisiti Trasferimento dati: consente il trasferimento degli esami fra le stazioni di lavoro Moviola Virtuale: permette di navigare lungo le sequenze di immagini digitali Lavagna Collaborativa: consente di manipolare e di annotare le singole immagini con commenti testuali e grafici di varia natura

CAROLIN

Pulsanti gestione collaborazione


Pulsanti per la gestione della moviola

Zona visione filmato

Architettura di un calcolatore

Architettura di un calcolatore
Modello di Von Neumann (anni 50) Quattro elementi fondamentali:

Bus di sistema

Memoria Centrale

Unit di Elaborazione

Interfacce delle Periferiche

Elementi Von Neumann (1)


Memoria Centrale
Informazioni necessarie allesecuzione di un programma: istruzioni e dati

Unit di Elaborazione (CPU)


Acquisisce, interpreta ed esegue le istruzioni di un programma

Elementi Von Neumann (2)


Interfacce delle Periferiche
Le periferiche consentono linterazione con il mondo esterno Fanno parte della macchina di Von Neumann solo le interfacce verso le periferiche

Bus di sistema
Opera il collegamento fra gli altri elementi

Analogia Uomo-Macchina

Uomo Cervello Memoria Sistema nervoso Terminazioni sensitive Libri, TV,...

Macchina CPU Memoria Centrale BUS Interfacce delle periferiche Periferiche

La Memoria Centrale
La memoria centrale accoglie il materiale di lavoro su cui opera lelaboratore: dati e programmi Le informazioni sono memorizzate in forma binaria: sequenze di zero e uno 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)

Unit di Elaborazione (CPU)


Esegue i programmi contenuti nella memoria centrale prelevando, decodificando ed eseguendo una dopo laltra le istruzioni che li costituiscono E composta da vari componenti...

Componenti CPU (1)


Program Program Counter Counter Registro Registro Interruz. Interruz.
Reg. Istruz. Reg. Istruz. Corrente Corrente

A A B B

ALU ALU

Clock Clock

Unit di Unit di Controllo Controllo

Registro dati Registro dati

Registro Indirizzi Registro Indirizzi

Componenti CPU (2)


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

Componenti CPU (3)


Registro istruzione corrente
Contiene listruzione in esecuzione

Program Counter
Contiene lindirizzo della prossima istruzione

Registro Indirizzi e Dati


Trasferimento dati da/verso memoria o perif.

Registro interruzioni
Colloquio con le periferiche

Interfacce verso le periferiche


Elementi circuitali per collegare lelaboratore alle periferiche Contengono i registri per:
inviare comandi alla periferica
registro comando

scambiare dati
registro dati periferica

controllo funzionamento
registro informazioni

Bus di Sistema (1)


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)

Bus di sistema (2)


Tre categorie:

bus dati
Trasporta i dati

bus indirizzi
Specifica una cella di memoria o una periferica per trasferimento di dati

bus controllo
Specifica loperazione da eseguire (lettura o scrittura)

Le Periferiche

Le periferiche sono esterne allelaboratore, ma sono un componente fondamentale Analizzeremo due tipi di periferiche I terminali Le stampanti

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)

Stampanti
Parametri caratteristici:
velocit risoluzione (dpi) set di caratteri (font) rumorosit

Tecnologie
ad aghi a getto dinchiostro laser

Estensioni dellarchitettura di Von Neumann


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

Architettura di un PC

Architettura di un PC (1)
Tradizionalmente il PC il Personal Computer IBM compatibile
stesso sistema operativo stessa CPU

Oggi il termine PC si riferisce a svariati tipi di macchine


diversi sistemi operativi (DOS, Windows MacOS...) diversi tipi di CPU (Pentium, Motorola, ARM,)

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

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 ...n...

Potenza

Caratteristiche delle CPU


Le CPU si differenziano innanzitutto per larchitettura interna
Esempio: possibilit di eseguire pi istruzioni in parallelo

Unaltra importante distinzione la frequenza di funzionamento


Attualmente si va da 100Mhz a oltre 3 Ghz

RAM
E la memoria centrale del sistema Valori tipici:
minimo: 32 Mega massimo: qualche GByte, typ 512 MByte

La RAM si differenzia per la velocit


SIMM: tempi di accesso dellordine di 60 ns DIMM: tempi di accesso di 10 ns

Motherboard
La motherboard una scheda su cui sono montati tutti i componenti del sistema

Caratteristiche Motherboard
Alloggiamento della CPU
Esempi: Socket 7 (Pentium), Slot 1 (Pentium II)

Alloggiamento della RAM


SIMM o DIMM

Slot di espansione
Differenti standard: Si differenziano per le prestazioni e il tipo di connessione Esempi di schede di espansione: Scheda video, Scheda audio, Controller memorie di massa

Memorie di Massa
Le memorie di massa di un PC comprendono: Dischetti removibili
Dischi da 1,44 Mega o dischi ZIP da 100 Mega

Hard Disk Drive:


Si differenziano per prestazioni e capacit

Unit nastro
Elevata capacit. Es. Unit DAT da 2 Giga

CD-ROM/DVD Drive
Si differenziano prestazioni. Esempio: 48x

Masterizzatori CD e DVD
Consentono la scrittura e riscrittura di un CD o DVD

Memorie di massa allo stato solido


Chiavette con connessione USB (memoria elettroniche permanenti con tecnologia FLASH)

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 (PCI, AGP, DVI) Risoluzioni e numero di colori supportati Velocit (eventuale presenza di processori dedicati)

Un PC dal vivo

Esame live di un PC

Il Sistema Operativo

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

Nota sulla definizione


Il sistema operativo aumenta le caratteristiche della macchina realizzando una macchina virtuale Esempio. Il SO operativo pu rendere lo stesso hardware:
Monoutente e monoprocesso Monoutente e multiprocesso Multiutente e multiprocesso

Architettura di un SO (1)
Architettura a lasagna: 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)

Architettura di un SO (2)
PROGRAMMI UTENTE Interprete Comandi File System Gestione delle periferiche Gestione della memoria Gestione dei processi (nucleo) MACCHINA FISICA

Sistema Operativo

Gestione dei processi (1)

Il Nucleo responsabile dellesecuzione dei programmi da parte della CPU Processo = unit di esecuzione A ogni programma associato un processo Eseguire un programma = mandare in esecuzione il corrispondente processo

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 ununit di elaborazione dedicata

Gestione della memoria

Il Gestore della memoria ha il compito di allocare la memoria e partizionarla fra i processi che la richiedono Macchina virtuale a strati superiori

Ciascun programma opera come se avesse disponibile una memoria dedicata

Gestione delle periferiche


Il Gestore delle periferiche responsabile delle operazioni di I/O che coinvolgono le periferiche Macchina virtuale a strati superiori

Ciascun programma opera come se avesse a disposizione una periferica dedicata

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
Macchina virtuale a strati superiori

Gestione strutturata delle memorie di massa

Interprete dei comandi (1)


Consente allutente di attivare i programmi Consente di accedere al programma tramite il file system alloca memoria e carica il programma attiva il processo Linterprete sfrutta tutti gli strati del Sistema Operativo

Interprete dei comandi (2)


Linterprete quello che ha il maggior impatto sullutente finale poich costituisce ci che lutente vede Esempi DOS/unix: interprete dei comandi a carattere C:\> Windows: interprete dei comandi a fineste

Esempio di SO: Windows


Windows un sistema operativo sviluppato da Microsoft Caratteristiche fondamentali: Sistema a finestre Sistema Multiprocesso Standard de facto del mercato

Pro e Contro di Windows


PRO
Interfaccia amichevole Numerosi programmi a disposizione Impone uno standard di qualit alle applicazioni

CONTRO
Elevata richiesta di risorse Instabilit del sistema

Altri Sistemi Operativi (1)


Windows XP, NT
Ha gli stessi vantaggi estetici di Windows 95 E molto pi stabile di delle versioni precedenti di Windows Adatto come server di rete (servizi di sicurezza, )

Unix-Linux
Paragonabile a Windows Elevata stabilit Configurabilit e uso del sistema in costante miglioramente, ormai adatto anche a utenti non tecnici Sistema Operativo adatto anche per la gestione di grosse reti

Uno sguardo al futuro (1)


Sistemi Operativi
Lobiettivo quello di dare una visione omogenea della propria macchina e della rete a cui si collegati Software on demand Nuovi paradigmi di interazione con il PC
esempio: interazione tramite voce, tramite penna, ...

Personal Computer
Network PC: computer collegati alla rete da cui prelevano tutte le risorse software necessarie PC palmari: portatili di dimensione sempre pi portatile

Uno sguardo al futuro (2)


Il futuro della programmazione
Linguaggi di livello sempre pi elevato Linguaggio standard per tutte le piattaforme (Java?) Strumenti di sviluppo che semplifichino larte di programmare:
Ambienti di programmazione sempre pi amichevoli Ambienti di supporto alla collaborazione

Il futuro dellinformatica
Penso che ci sia posto, sul mercato mondiale, per circa 5 computers (Thomas J. Watson, Amministratore Delegato IBM, 1948)

Potrebbero piacerti anche