informatica per statistica riassunto della lezione del 28...
TRANSCRIPT
Informatica per Statistica
Riassunto della lezione del 28/09/2011
Seconda parte
Igor Melatti
L’Hardware di un computer: parti immancabili
• i computer sono tipicamente costruiti piu o meno tutti nella stessamaniera, perche seguono l’architettura di Von Neumann
– esistono alcune eccezioni per compiti speciali, ma sorvoliamo
– questo concetto risale agli anni 40, e stato in seguito resopiu efficiente (architetture di Harvard) ma non superato
• si immagini di dover svolgere un qualche compito complicato, per il qualevengano date delle istruzioni ben precise
• ad esempio, trovare una particolare sequenza (sonda) di nucleotidi in ungenoma umano
– genoma: ...TCGTTCCGAAAGTT...
– sonda: GTT
– risultato: 2 corrispondenze, al posto 3 e al posto 12
• le istruzioni (algoritmo) saranno una cosa di questo tipo
1. comincia dal primo nucleotide del genoma
2. considera il primo nucleotide della sonda
3. se il nucleotide attuale della sonda e uguale a quello attuale delgenoma
(a) confronta tutti i seguenti nucleotidi della sonda con quelliseguenti del genoma
(b) se c’e corrispondenza, memorizza la posizione di inizio
4. passa al nucleotide successivo del genoma, e torna al passo 2, altri-menti prosegui col passo 5
5. restituisci in uscita le posizioni memorizzate al passo 3b
1
Figure 1: Cosa c’e dentro un computer
• per eseguire tali istruzioni, la cosa migliore e mettersi su un grande tavolo,con un foglio recante le istruzioni stesse e altri fogli per appunti intermedi(memoria)
• prendere il genoma e la sonda che vengono forniti dall’esterno (input)
• eseguire di volta in volta le istruzioni di cui sopra, eventualmente serven-dosi di una calcolatrice per qualche conto (controllo e unita aritmetico-logica)
– in questo esempio al massimo si somma 1, ma per altri problemi lasituazione potrebbe essere piu complicata...
• dare il risultato all’esterno (output)
• da notare che cio implica la capacita di accedere a proprio piacimento allamemoria, ai dati in input o in output (bus di comunicazione, unico nonesplicitamente indicato in Fig. 2)
Controllo ed unita aritmetico-logica: la CPU
• Grazie al bus, preleva le istruzioni dalla memoria e le esegue, eventual-mente usando la ALU (Arithmetic-Logic Unit)
• detta anche microprocessore per le piccole dimensioni (come un fran-cobollo)
– volendo essere pedanti, il microprocessore e l’implementazionepiu frequente della CPU
2
Figure 4: Alcune memorie RAM
– per la precisione e l’implementazione che mette tutto su una piatta-forma di silicio
– ovvero, la CPU e un concetto piu astratto, il microprocessore e ilblocchetto concreto
• sono microprocessori quelli prodotti dalla Intel (i famosi Pentium), dallaAMD (compatibile con l’Intel) e dalla Apple (con IBM e Motorola, maoramai usano i Pentium pure loro)
• la potenza di un processore e tipicamente misurata col suo ciclo di clock
– l’unita di misura e il GHz (GigaHertz), i processori moderni sono sui3 GHz
• fino a qualche anno fa, grazie a continue migliorie tecnologiche si rad-doppiavano i GHz ogni 2 anni (Legge di Moore)
• oggi si preferisce costruire computer con almeno 2 microprocessori e dis-tribuire tra di loro le computazioni
Memoria
• Ci sono 2 tipi di memoria in un computer di cui l’utente si accorge
– quella secondaria o di massa, ovvero la memoria su disco (hard disk)
– quella primaria o centrale, ovvero RAM (Random Access Memory)
– a voler essere precisi, solo la RAM fa parte della memoria com’e intesanell’architettura di Von Neumann
– il disco e a tutti gli effetti input/output, quindi ci ritorneremo dopo
– e importante sottolineare tuttavia la differenza fondamentale traquesti due tipi di memoria
4
Figure 5: Un hard disk
– la RAM e volatile: spegnere il computer vuol dire perdere il con-tenuto della RAM
– il disco e permanente: i dati restano lı anche dopo lo spegnimentodel computer
– inoltre, la RAM ha una capacita di memorizzazione di pochi GB, ildisco di centinaia di GB
– ma leggere e scrivere sulla RAM e molto piu veloce
Input/output
• Sono di solo output: monitor, stampante, masterizzatore CD/DVD
• sono di solo input: tastiera, mouse, lettore CD/DVD, scanner
• sono sia di input che di output: hard disk (Fig. 5), scheda di rete, lettore-masterizzatore CD/DVD
– il disco (detto hard per distinguerlo dagli ormai obsoleti floppy disk)e di output nel momento in cui vi si memorizzano dati di interessepermanente
– e di input nel momento in cui vi si prelevano dati precedentementememorizzati
– un disco fisso puo tipicamente memorizzare 100 GB di informazione,diciamo l’equivalente di 100 film
– giocano lo stesso ruolo dell’hard disk :
∗ i floppy disk (Fig. 6), oramai obsoleti, pero i desktop hanno tut-tora il lettore/scrittore di floppy disk
∗ avevano una dimensione di 1.5 MB circa
∗ oggi ci sono i CD (700 MB circa, Fig. 7)
∗ i DVD (7 GB circa, Fig. 8)
∗ le chiavette USB (tra 1 GB e 8 GB, di solito; Fig. 9); moltocomode perche usabili senza particolari dispositivi
∗ invece, per CD e DVD servono lettori (e scrittori, o masterizza-tori) particolari (Fig. 8)
∗ d’altronde, CD e DVD sono piu economici di una chiavettaUSB...
5
Figure 6: Un floppy disk (dischetto o disquette)
Figure 7: Un DVD
Figure 8: Un lettore CD interno
Figure 9: Una chiavetta USB
6
Figure 10: Una scheda di rete interna
– infine, e di input/output la scheda di rete (Fig. 10), quella che per-mette di usare Internet
Il BUS: la scheda madre
• la scheda madre e una piattaforma grande quanto un foglio di giornalesulla quale si posizionano:
– il microprocessore
– la RAM
– i connettori con le varie unita di input/output
∗ alcune unita di input/output possono essere connesse diretta-mente alla scheda madre “da dentro”
∗ sono i cosiddetti apparecchi “interni” (ad esempio un lettorefloppy o un lettore CD/DVD)
∗ se invece vengono comprati a parte e poi connessi al computer,sono apparecchi “esterni”
∗ la connessione avviene tramite questi connettori (com’era preve-dibile)
∗ i connettori USB si sono diffusi negli ultimi 7-8 anni,e un’unificazione dei tipi di connettori
∗ esistono mouse USB, tastiere USB, stampanti USB...
– un canale che permetta a tutte queste cose di comunicare tra loro (ilbus dell’architettura di Von Neumann)
– o meglio, un canale che permette alla CPU di controllare il tutto
Il sistema operativo
• Abbiamo gia accennato che tutto l’hardware del mondo e inutile senzasoftware
7
Figure 11: Una scheda madre
Figure 12: Sin: una porta parallela (tipicamente per stampanti); Dx: una portaseriale (tipicamente per monitor)
Figure 13: Sin: porta PS2 (per tastiera e mouse); Dx: connettore USB (qualsiasidispositivo USB)
8
Figure 14: Architettura di un sistema operativo
– nella Fig. 14 si vede che tra l’utente (che usa il computer) e l’hardwareci sono 2 strati
– quello piu vicino all’hardware e il sistema operativo (Windows,Linux, MacOS-X, ...)
– quello piu vicino all’utente sono i programmi applicativi (semplice-mente applicazioni o programmi) che l’utente usa direttamente
∗ programmi per scrivere (Word)
∗ fogli di calcolo (Excel)
∗ programmi multimediale (Windows Media Player)
∗ questi sono per Windows, sia chiaro che esistono i corrispettiviprogrammi per Linux e MacOS-X
∗ altro (videogiochi, programmazione, ...)
– per far sı che un software possa essere usato, occorre installarlo
∗ semplificando, vuol dire copiarlo su disco fisso in modo che possaessere propriamente eseguito quando serve
∗ tipica sorgente per l’installazione e un file preso da un qualchesupporto di input (rete, CD, DVD, chiave USB...)
∗ vale sia per l’intero sistema operativo che per i singoli applicativi
∗ a seconda della complessita del programma stesso, puo essereun’operazione facile o difficile
∗ un sistema operativo e tra le cose piu difficili da installare
– usare un software vuol dire eseguirlo (o anche avviarlo, o aprirlo,talvolta lanciarlo)
∗ semplificando, vuol dire prenderlo dal disco fisso e copiarlo (al-meno in parte) in RAM
∗ dalla RAM puo essere eseguito (almeno secondo il modello diVon Neumann)
9
∗ se va tutto bene, un software si installa una sola volta, e lo sisolitamente puo eseguire molteplici volte
– il sistema operativo non viene mai modificato dall’utente “normale”
– e invece abbastanza frequente che un utente crei nuovi programmiapplicativi, per se o anche per altri
∗ per farlo, usa un qualche linguaggio di programmazione
∗ per farlo, occorre usare comunque degli appositi programmi ap-plicativi
∗ si tratta di programmi che creano altri programmi e si chiamanocompilatori
• vediamo ora piu da vicino i sistemi operativi
• tipicamente, si acquista il sistema operativo insieme col computer (sistemaoperativo preinstallato)
– nel caso dei Mac di Apple, praticamente ci puo essere solo una delleversioni di MacOS-X
– nel caso degli IBM-compatibili, nel 99% dei casi (fino a 2 anni faquasi il 100%) c’e Windows
– al giorno d’oggi ci sono anche computer con Linux come sistemaoperativo
∗ costano una 50ina di euro in meno, perche Linux e gratuito
– si possono acquistare IBM-compatibili anche senza sistema operativo
– in questo caso, una volta che lo si accende, lui fa qualche controllo epoi si blocca con una schermata nera lamentandosi di non avere unsistema operativo
• di solito, l’utente normale si limita ad aggiornare il sistema operativo
– di solito per correggere qualche problema di sicurezza riscontrato direcente
– anche cambiare il sistema operativo alla versione successiva (upgrade,ad esempio da Windows XP a Windows Vista) e sostanzialmente unaggiornamento
– qualche volta capita di dover riavviare il computer, ma e comunqueuna cosa semplice da fare
• tuttavia, e possibile anche disinstallare il sistema operativo (pre)installatoe installarne un altro
– operazione non semplicissima, ma neanche impossibile
– con i Mac, lo fanno solo i superhacker
10
– sugli IBM-compatibili ci si puo sbizzarrire a volonta
– la cosa tipica che fa chi si intende un po’ di informatica e fare unsistema dual-boot
∗ quando lo si accende, viene chiesto se far partire Windows oLinux
∗ con il termine “boot” si intende quello che fa il computer nonappena lo si accende
∗ in pratica e la fase in cui viene “caricato” il sistema operativo
∗ ovvero, la fase il sistema operativo fa alcune cose iniziali che glipermetteranno poi di funzionare
∗ puo durare da pochi secondi e un paio di minuti
– aggiornare un sistema operativo (passare da una versione precedentead una piu recente) e facile
– cambiare totalmente un sistema operativo (da Windows a Linux oviceversa) e piu complicato
∗ se non si sta attenti, si perdono tutti i dati
• vediamo che succede quando si accende un computer
1. bootstrap (o solo boot): una parte di software indipendente dal sis-tema operativo fa alcuni controlli sul funzionamente di alcune partidell’hardware
– ad esempio, vede quanta RAM c’e e controlla che funzioninotastiera e monitor
– questa parte di software si trova su una memoria RAM chepero non e volatile, e neanche modificabile
– per questo motivo viene chiamata ROM (Read Only Memory)
– nei sistemi IBM-compatibili, questa procedura software si chiamaBIOS (Basic Input Output System)
2. l’ultima parte del boot fa partire il sistema operativo, da disco, daCD o da floppy
– e possibile scegliere la sequenza di boot all’inizio
– infatti, alcune parti del BIOS sono modificabili
– in pratica, occorre premere un qualche tasto (ad esempio F9) neiprimi 2-3 secondi di accensione del computer
3. dopodiche le istruzioni da eseguire vengono tratte dal disco, da CDo da floppy a seconda della scelta precedente
– il sistema operativo vero e proprio parte praticamente sempre dadisco
– negli altri casi:
11
∗ si e su un sistema piccolo o senza hard disk, e quindi il dis-chetto o il CD contengono il sistema operativo
∗ oppure si vuole installare un nuovo sistema operativo che sitrova si dischetto (difficile) o su CD
∗ in questo caso, si verra avviati ad una serie di passi che cos-tituiscono il programma d’installazione
∗ oppure e successo qualcosa di grave e il dischetto o il CDcontengono programmi di recovery
4. seguendo tali istruzioni (supponendo che non si tratti di installazioneo di recovery), il sistema operativo comincia pian piano a posizionarele sue parti vitali in RAM
5. quando e tutto pronto, si arriva alla schermata di login
– occorre immettere username e password
– sui PC (soprattutto Windows), questa parte viene spesso saltata
– in pratica, si accede come utente generico (user o guest) senzapassword
– sui PC non personali (quelli dei laboratori), chi amministra ilsistema (dei tecnici pagati per questo) vi devono aver rilasciatoun account, ovvero il vostro username e la vostra password
– di solito, vi chiedono di modificare subito la vostra password
– a meno che non siate amici dell’amministratore, non potete cam-biare lo username
– c’e sempre uno user onnipotente (solitamente chiamato supe-ruser, root o administrator)
– e l’unico che puo modificare il sistema operativo, installando ap-plicazioni o facendo aggiornamenti
6. poi viene caricata la GUI (Graphical User Interface) e sipuo cominciare ad usare il computer
– alcuni vecchi sistemi operativi non avevano la GUI, oppure occor-reva farla partire come un’applicazione in un secondo momento
– in questi casi, c’era una schermata nera con un prompt che at-tendeva comandi da tastiera
– oggi la situazione e invertita: si parte con la GUI ed eventual-mente si fa partire la schermata nera come un’applicazione
7. quando si finisce si fa logout (ci si disconnette) ed eventualmente sispegne il computer
– fare logout senza spegnere equivale a permettere ad altre personecon un altro account di accedere
– lo spegnimento va fatto da software, chiedendo al sistema oper-ativo di spegnersi
– infatti, per potersi poi riavviare correttamente la prossima volta,occorre che salvi alcune informazioni
12
– per questo motivo, se si preme normalmente sul pulsante di ac-censione, il computer resta accesso
– occorre tener premuto per qualche secondo
• per usare il sistema operativo ci sono sostanzialmente 2 modi
– da interfaccia grafica (quindi con la GUI)
∗ si va avanti a clic, doppi clic e strascinamenti (drag and drop)col mouse
∗ la tastiera viene usata solo quando e indispensabile
· per esempio, per scrivere una lettera con Word, prima si apreWord e poi si scrive la lettera
· per andare su un sito, prima si apre il Browser (es. InternetExplorer o Firefox) e poi si scrive l’indirizzo
∗ ci sono svariati modi per eseguire un programma
· fare doppio clic su un’icona sul Desktop
· fare clic in una barra di avviamento veloce
· selezionare il programma dai menu
∗ all’interno di un programma, si puo usare il mouse o la tastierain tanti modi, dipendentemente dal programma stesso
· esempio, Explorer, il browser, Word
– da interfaccia a linea di comando (CLI, Command Line Interface)
∗ e piu da geek
∗ l’utente “normale” non lo fa mai
∗ in maniera pura e semplice, non lo si fa piu
∗ quello che talvolta qualche utente (non proprio “normale”) fa e dilanciare un programma applicativo che apre uno schermetto nerodove si possono dare comandi direttamente al sistema operativo
∗ per questo corso, potrebbe servire, quindi noi lo vediamo
∗ in Windows, questa applicazione si chiama Prompt dei comandi
o DOS prompt
∗ sotto Linux la cosa e piu naturale, e ci sono svariate applicazioni:konsole e gnome-terminal sono le piu comuni
∗ i tipici comandi che si danno riguardano il file-system (quindi lirivediamo tra poco) e lanciare altri programmi
· e un po’ piu potente della GUI, perche si possono lanciare iprogrammi con i parametri
· non che con la GUI non si possa fare, ma talvolta none altrettanto agevole
∗ con la GUI, si fanno le stesse cose ma per quanto riguarda ilfilesystem occorre prima lanciare qualche altra applicazione (es.Explorer)
13
• tutti i moderni sistemi operativi (almeno quelli che interessano a noi) sonomultitasking
1. lo possono usare contemporaneamente piu utenti
– sia contemporaneamente per finta, cioe uno entra, lascia un pro-gramma in esecuzione e fa logout, e poi entra un altro che lanciaaltri programmi
– sia contemporaneamente per davvero, cioe il computere connesso in rete e piu utenti contemporaneamente ci ac-cedono con programmi appositi
– simile alla situazione precedente sono i vecchi casi dei mainframecon i terminali
2. uno stesso utente puo far eseguire piu applicazioni contemporanea-mente
3. in entrambi i casi, le varie applicazioni si alternano, sotto il comandodel sistema operativo, nell’uso delle risorse della macchina
– prima fra tutte la CPU...
– la parte del sistema operativo che si occupa di cio e chiamatascheduler (piu o meno organizzatore)
• file system
– tutti i vari dispositivi di memorizzazione di massa (dischi fissi e non,chiavi USB, CD e DVD) sono organizzati con un file system
– vuol dire che le informazioni sono memorizzate in archivi (files), adognuno dei quali occorre dare un nome
– e compito dell’utente dare un nome a ciascun file in maniera da ri-cordare poi che informazioni ci sono dentro
∗ fanno eccezione a questa regola i files di sistema
∗ cioe quelli che servono al sistema operativo
∗ lo stesso sistema operativo e inizialmente un file, prima del boot
∗ i files di sistema non possono essere toccati, a meno di non esseresuperuser
– dato che i files sono spesso molti, non e comodo dover dare un nomediverso a ciascuno di essi
– e comunque sarebbe difficile cercare un files tra migliaia di altri simili
– quindi i file systems offrono di organizzare il tutto in cartelle (direc-tories)
∗ sono dei files anche le directories, ma sono files speciali
∗ servono per contenere altri files
– le directory sono organizzate ad albero
14
∗ c’e una directory iniziale che contiene tutte le altre (/ in Linux,C:\ in Windows)
∗ ogni directory puo contenere sia files che altre directories
∗ all’interno di ogni directory, non ci possono essere 2 files con lostesso nome
– operazioni tipiche (per files si intende sia files regolari che directory)
∗ creare un file vuoto (con un nuovo nome)
∗ cancellare un file
· nel caso di una directory si cancella tutto quello chec’e dentro
· tipicamente, il sistema operativo chiede conferma
∗ copiare un file in una diversa directory o nella stessa ma con unaltro nome
∗ spostare un file in una diversa directory o nella stessa ma con unaltro nome
– tipica forma del nome di un file: qualcosa.estensione
∗ l’estensione e tipicamente di 3 lettere, ma non necessariamente
∗ serve per capire con quale applicazione aprire il file relativo
15