La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Anno accademico 2010-2011 1 La struttura del calcolatore.

Presentazioni simili


Presentazione sul tema: "Anno accademico 2010-2011 1 La struttura del calcolatore."— Transcript della presentazione:

1 Anno accademico 2010-2011 1 La struttura del calcolatore

2 Anno accademico 2010-2011 2 Sommario La struttura del calcolatoreLa struttura del calcolatore  L’architettura a BUS  La CPU  La gerarchia di memorie  La memoria centrale  La memoria secondaria  I dispositivi di I/O Linguaggio macchina e assemblerLinguaggio macchina e assembler Il sistema operativoIl sistema operativo  Scopo del sistema operativo  Architettura e servizi

3 Anno accademico 2010-2011 3 La struttura del calcolatore IBM S/360 Mod 40 (1964) 1.6 MHz 32KB  256KB 225.000$ IBM S/360 Mod 50 (1964) 2.0 MHz 128KB  256KB 550.000$ IBM S/360 Mod 65 (1964) 5.0 MHz 256KB  1MB 1.200.000$

4 Anno accademico 2010-2011 4 Si possono considerare diversi livelli di astrazione:  Circuiti elettronici (hardware)  Architettura e linguaggio macchina  Sistema operativo (software di sistema)  Linguaggi di programmazione  Programmi applicativi Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con l’algebra di Boole; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, di effettuare calcoli, etc. Silicon Graphics La struttura del calcolatore

5 Anno accademico 2010-2011 5 Tutti i calcolatori attuali si rifanno all’architettura di Von Neumann, costituita dalle quattro componenti:  CPU (Central Processing Unit)  Memoria centrale  Bus di sistema  Periferiche BUS di sistema CPU tastiera mouse memoria di massa monitor Memoria centrale Periferiche La macchina di Von Neumann  1

6 Anno accademico 2010-2011 6 La macchina di Von Neumann  2 Carratteristiche del modello di Von NeumannCarratteristiche del modello di Von Neumann  Proceduralità:  Proceduralità: possibilità di eseguire differenti programmi memorizzati  Il modello è basato sul paradigma di programmazione procedurale: il programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad una data classe di problemi  Sequenzialità:  Sequenzialità: regola della selezione dell’istruzione da eseguire rigidamente fissata architettura a BUS  Connessione tra le unità funzionali con singolo flusso di informazione tra memoria e processore: architettura a BUS

7 Anno accademico 2010-2011 7 busL’architettura più consolidata per il calcolatore prevede quindi unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il bus Il bus è fisicamente realizzato mediante un insieme di connettori elettrici Memoria principale CPU I/O BUS Indirizzi Dati Controllo Dispositivi di Input/Output Architettura a BUS

8 Anno accademico 2010-2011 8 Il bus è utilizzato per trasferire dati fra le unità funzionali bus indirizzibus di controllo  L’unità che inizia il trasferimento (in genere la CPU) fornisce l’indirizzo, che individua univocamente il dato, sulle linee del bus indirizzi, e configura le linee del bus di controllo, inviando un comando al dispositivo che contiene il dato (es. READ, alla memoria principale) bus dati  Il dato da trasferire è reso disponibile sul bus dati e viene ricopiato nel dispositivo destinatario Il BUS  1

9 Anno accademico 2010-2011 9 Memoriaprincipale CPU READ  1 MEM  1 0008AB38 0008AB38 0008AB38 Indirizzo a 32 bit (32 fili) 5F66B102 Dato a 32 bit (32 fili) trasferito dalla memoria principale alla CPU READ  1 MEM  1MemoriaprincipaleCPU 0008AB38 5F66B102 5F66B102 5F66B102 Il BUS  2 EsempioEsempio  Un bus indirizzi composto da 32 connettori indirizza 4 GB di memoria  Per una CPU a 32 bit, anche il bus dati è composto da 32 connettori

10 Anno accademico 2010-2011 10 orologio del sistema l’orologio del sistema che fornisce al computer un battito regolare La CPU lavora a N GHz: segue un ritmo di N miliardi di impulsi al secondo (es., una CPU con un clock a 3 GHz è temporizzata da tre miliardi di impulsi al secondo) Intel Pentium Central Processing UnitLa Central Processing Unit è l’unità centrale di elaborazione: esegue le istruzioni dei programmi e ne regola il flusso, esegue i calcoli sincrono clockLa CPU è un dispositivo sincrono, cioè può cambiare stato solo quando riceve un impulso di clock, La CPU  1

11 Anno accademico 2010-2011 11 La frequenza di clock determina la velocità di elaborazione del computer: più alta è la frequenza di clock, maggiore è la velocità di elaborazione La velocità e la potenza di un computer dipendono però anche dalla larghezza del bus, ovvero dal numero di bit (ampiezza del singolo dato) che il processore è in grado di ricevere e di elaborare simultaneamente  Attualmente, i processori sono in grado di elaborare dati rappresentati con 64 bit La CPU  2

12 Anno accademico 2010-2011 12 La CPU è costituita da tre elementi fondamentali:  Unità Aritmetico  Logica (ALU)  Registri  Unità di Controllo (CU) EU Execution Unit } ALU CU PC IR registri Contatore di programma Program Counter (Program Counter) Registro Istruzione Instruction Register (Instruction Register) BUS BIU Bus Interface Unit La CPU  3

13 Anno accademico 2010-2011 13 A livello “macroscopico”, ad ogni impulso di clock, la CPU:  “legge” il suo stato interno (determinato dal contenuto dei registri di stato) e la sequenza di ingresso (determinata dal contenuto dei registri istruzione e dati)  produce un nuovo stato “dipendente” dallo stato in cui si trovava originariamente In pratica, la CPU realizza una complessa funzione logica, con decine di ingressi e di uscite  la corrispondente tabella di verità avrebbe un numero enorme di righe (miliardi di miliardi) La CPU  4

14 Anno accademico 2010-2011 14 Lo stato della CPU è costituito da informazioni (memorizzate negli opportuni registri) su: registri dati  dati da elaborare (contenuti nei registri dati) registro istruzioni  istruzione da eseguire (nel registro istruzioni) program counter  indirizzo in memoria della prossima istruzione da eseguire (nel program counter) registri flag  eventuali anomalie o eventi verificatisi durante l’elaborazione (nei registri flag) La CPU  5

15 Anno accademico 2010-2011 15 Set di istruzioni di base:  somma (da cui sottrazione)  scorrimento (shift)  operazioni logiche  operazioni di accesso alla memoria  trasferimento di un dato da una locazione di memoria ad un’altra  trasferimento da memoria a un registro della CPU  trasferimento da un registro della CPU a memoria  operazioni di confronto (sufficiente confronto con zero) Le operazioni (eccetto quelle di accesso alla memoria) sono eseguite all’interno della ALU e “coordinate” dall’unità di controllo } ( da cui moltiplicazione e divisione) La CPU  6

16 Anno accademico 2010-2011 16 Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CU Le operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandi FPUEsiste una unità specializzata per le operazioni in virgola mobile (FPU) ALUArithmetic  Logic UnitL’ALU (Arithmetic  Logic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su 2 operandi, rappresentati su n bit (es. 32/64 bit); oltre al risultato dell’operazione può produrre informazioni ulteriori su linee specifiche (il risultato è zero, si è verificato un overflow, etc.) L’Unità Aritmetico  Logica ALU Result Zero Overflow a b ALU operation CarryOut

17 Anno accademico 2010-2011 17 I registri sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati che contengono; hanno dimensioni prefissate (es. 32/64 bit) Alcuni registri hanno funzioni specifiche (es. contatore di programma) Nella maggior parte delle architetture, le operazioni della ALU si possono effettuare solo fra dati presenti nei registri ed anche il risultato viene momentaneamente memorizzato in un registro EIPInstructionpointer(PC) EFLAGSConditioncodes Codesegmentpointer CS Stacksegmentpointer(topofstack) SS Datasegmentpointer0 DS Datasegmentpointer1ES Datasegmentpointer2 FS Datasegmentpointer3 GS 031 GPR0EAX GPR3EBX GPR1ECX GPR2EDX GPR6ESI GPR7EDI GPR5EBP GPR4ESP Name Use Registri del Pentium I registri

18 Anno accademico 2010-2011 18 Registro puntatore allo stack: SPStack Pointer push popRegistro puntatore allo stack: SP (Stack Pointer), lo stack è un insieme di celle di memoria che può essere acceduto in modalità LIFO (Last  In  First  Out 0 ); la posizione in cui si trova l’elemento inserito per ultimo è la testa dello stack, che viene puntata dal registro SP; lo stack è organizzato in modo da crescere verso indirizzi decrescenti: SP viene decrementato ad ogni nuova immissione (push) ed incrementato ad ogni prelievo (pop) Registri accumulatori:Registri accumulatori: sono integrati alla ALU, che vi può operare direttamente; mantengono risultati temporanei Registro di stato: PSW Program Status WordRegistro di stato: PSW (Program Status Word), contiene i flag di stato, bit impostati dall’HW della CPU dopo un’operazione, per indicare particolari condizioni circa l’esito dell’esecuzione (es. segno, risultato nullo, overflow, carry,…) 2100 SP 2000 Registri e loro funzioni

19 Anno accademico 2010-2011 19 fetchEsegue le istruzioni prelevandole dalla memoria nella fase di fetch registro contatore di programmaLa prossima istruzione da eseguire è individuata dall’indirizzo presente nel registro contatore di programma (PC) registro istruzioneL’istruzione in esecuzione è memorizzata nel registro istruzione (IR) decodificatoL’istruzione è un codice binario che deve essere decodificato dalla CU; specifica il tipo di operazione, gli eventuali operandi, etc. PC viene incrementatoNormalmente le istruzioni sono eseguite in sequenza: dopo il fetch, il PC viene incrementato, per fare riferimento all’istruzione successiva CU IR PCPC memoria BUS Istruzione 1 Istruzione 2 Istruzione 3 02AD77F2 Segnali di controllo (ALU, Registri, etc.) L’unità di controllo

20 Anno accademico 2010-2011 20 una alla voltaIl processore esegue le istruzioni di un programma una alla volta in sequenza: estrae le istruzioni dalla memoria, le interpreta e le esegue una dopo l’altra  Un programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad un data classe di problemi ciclo di istruzioneciclo macchinaIl processore esegue ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di istruzione o ciclo macchina fase di fetch  Estrazione di una istruzione: fase di fetch fase di execute  Esecuzione dell’istruzione: fase di execute Come si eseguono i programmi  1

21 Anno accademico 2010-2011 21 Fase di fetchFase di fetch  L’unità di controllo preleva dalla memoria centrale l’istruzione, utilizzando l’indirizzo conservato nel PC  L’ istruzione prelevata viene memorizzata nel registro IR Fase di ExecuteFase di Execute  L’unità di controllo interpreta l’istruzione e determina le operazioni da eseguire  L’unità di controllo sovrintende all’esecuzione delle operazioni  Il PC viene incrementato per puntare all’istruzione successiva Come si eseguono i programmi  2

22 Anno accademico 2010-2011 22 Le memorie sono dispositivi per “lo stoccaggio” delle informazioni Ogni memoria è costituita da celle, a cui si accede tramite un indirizzo In ogni elaboratore vi sono tre tipi di memorie:  Registri:  Registri: contengono informazioni necessarie alla elaborazione della singola istruzione  Memoria centrale:  Memoria centrale: contiene dati e istruzioni attualmente elaborati dal processore  Memorie di massa:  Memorie di massa: contengono dati e programmi che non sono oggetto di elaborazione immediata Le memorie  1

23 Anno accademico 2010-2011 23 I parametri fondamentali che definiscono una memoria sono:  Dimensione della parola  Dimensione della parola (locazione di memoria)  Modalità di accesso  Modalità di accesso (diretto o sequenziale)  Permanenza o volatilità dei dati  Capacità  Capacità (numero di locazioni disponibili), espressa in KB, MB, GB, etc.  Tempo di accesso  Tempo di accesso, necessario per accedere ad una locazione di memoria per un’operazione di lettura o scrittura, espresso in nanosec, millisec, sec In base agli ultimi due parametri, le memorie si collocano a diversi livelli di una gerarchia, che va da memorie più capaci ma più lente (memorie di massa) a memorie piccole e veloci (registri) Le memorie  2

24 Anno accademico 2010-2011 24 Gerarchia di memorie Tbyte Gbyte

25 Anno accademico 2010-2011 25 RAMRandom Access MemoryLa memoria centrale o memoria principale, detta anche RAM (Random Access Memory, ovvero memoria ad accesso casuale, perché qualsiasi cella può essere letta/scritta in un tempo, mediamente, costante), è la memoria in linea con il processore, che contiene i dati e i programmi che sono attualmente utilizzati/in esecuzione Un programma, quando non è oggetto di elaborazione, è memorizzato su memoria di massa (dischi) Quando deve essere eseguito, viene caricato tutto o in parte, in memoria centrale (memoria virtuale) La memoria centrale  1

26 Anno accademico 2010-2011 26 Le caratteristiche fondamentali della memoria centrale sono:  accesso diretto alle informazioni  velocità elevata  volatilità  volatilità: quando il computer viene spento, i dati e i programmi presenti in memoria vengono cancellati La tecnologia utilizzata per la memoria centrale è quella dei dispositivi a semiconduttori, che la fanno apparire come una matrice di bit  Ogni bit è presente come stato (alto o basso) di tensione La memoria centrale  2

27 Anno accademico 2010-2011 27 La memoria principale è un insieme di locazioni o celle L’unità di memorizzazione, la dimensione della singola cella, è il byte indirizzoCiascun byte nella memoria è individuato da un indirizzo che lo distingue da tutti gli altri, costituito da un numero variabile da 0 a 2 N  1, dove N è la dimensione in bit dell’indirizzo (es. numero di bit/fili sul bus indirizzi) La memoria centrale  3

28 Anno accademico 2010-2011 28 128 MB  2 7  2 20 byte   137438953472 byte 2 27 00000xxxxxxxxxxxxxxxxxxxxxxxxxxx 27 bit  indirizzo all’interno del blocco 07FFFFFF 00000000 32 bit 128 MB La memoria centrale  4 Esempio:Esempio: memoria con capacità di 4 GB

29 Anno accademico 2010-2011 29 registro indirizziIl registro indirizzi contiene l’indirizzo della cella che deve essere acceduta; la sua dimensione deve essere tale da permettere che tutte le celle di memoria possano essere indirizzate Esempio:Esempio: un registro a 16 bit indirizza 65536 posizioni di memoria decodificatore di indirizziIl decodificatore di indirizzi è un dispositivo in grado di selezionare la cella il cui indirizzo corrisponde a quello contenuto nel registro indirizzi registro datiIl registro dati contiene l’informazione da scrivere/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle di memoria BUS Registro dati Registro dati Memoria centrale Memoria centrale Registro indirizzi Registro indirizzi Decodificatore indirizzi Decodificatore indirizzi Architettura della memoria centrale

30 Anno accademico 2010-2011 30 La connessione tra memoria e processore rappresenta un limite degli elaboratori di Von Neumann  Limite architetturale: il bus permette l’accesso ad una sola informazione per volta (“collo di bottiglia”)  Limite tecnologico: la velocità con cui il processore ottiene le informazioni dalla memoria centrale (velocità di accesso della RAM) è inferiore alla velocità con cui è in grado di elaborarle SoluzioniSoluzioni  Allargamento del bus dati, in modo da poter estrarre più istruzioni e/o dati per volta introduzione di una memoria intermedia tra memoria centrale e processore che approssimi la velocità del processore  Superamento del limite tecnologico mediante introduzione di una memoria intermedia tra memoria centrale e processore che approssimi la velocità del processore Processore e RAM

31 Anno accademico 2010-2011 31 Piccola RAM molto veloce, interposta tra CPU e memoria principale, per migliorare le prestazioni del sistema principio di località spazio  temporale del software  Quando viene indirizzata una parola, quella parola e alcune di quelle vicine vengono trasferite dalla lenta memoria centrale nella più piccola e veloce memoria cache, in modo che la parola successiva sia accessibile più velocemente (principio di località spazio  temporale del software) La memoria cache

32 Anno accademico 2010-2011 32 ROMRead Only MemoryUna parte della memoria centrale è la ROM (Read Only Memory ), una memoria a sola lettura, destinata a contenere informazioni non variabili Caratteristiche delle memorie ROM:  accesso casuale alle informazioni  velocità elevata  velocità elevata (inferiore alle RAM) La ROM viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette, ma mai riscritte Viene usata per memorizzare programmi di sistema La memoria ROM

33 Anno accademico 2010-2011 33 La ROM contiene il software e i dati necessari ad inizializzare il computer ed a far funzionare i dispositivi periferici routine di avviamento caricatore di boot  strapROM BIOSIl nucleo del software della ROM è costituito dalle routine di avviamento che comprendono il caricatore di boot  strap ed il ROM BIOS routine di avviamentoLe routine di avviamento realizzano l’inizializzazione del calcolatore:  Ne effettuano un rapido controllo di affidabilità, per accertare che tutte le componenti hardware siano perfettamente funzionanti  Caricano il sistema operativo dal disco (caricatore di boot  strap) Il software della ROM  1

34 Anno accademico 2010-2011 34 Il software della ROM  2 caricatore di boot  strap bootstrapIl caricatore di boot  strap ha la funzione di leggere un programma di lancio dal disco, detto bootstrap, e di trasferire ad esso il controllo: il boostrap carica il nucleo del sistema operativo e lo manda in esecuzione ROM BIOS Binary Input  Output SystemIl ROM BIOS  Binary Input  Output System  è la parte della ROM attiva quando il computer è al lavoro: il suo ruolo è quello di fornire un insieme di servizi di base richiesti per il funzionamento delle periferiche

35 Anno accademico 2010-2011 35 lettura scritturaLe operazioni che si effettuano sulla memoria sono operazioni di lettura e scrittura Entrambe presuppongono l’utilizzo di un indirizzo che identifica univocamente la cella interessata all’operazione distruttivaL’operazione di scrittura è distruttiva, cioè cancella l’informazione precedentemente contenuta nella cella L’operazione di lettura preserva il contenuto della cella indirizzata: all’esterno della memoria centrale viene trasferita copia dell’informazione Operazioni sulla memoria centrale

36 Anno accademico 2010-2011 36  Il disco fisso è costituito da uno o più piatti metallici ricoperti di materiale magnetico su entrambe le facce  Ciascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere/ scrivere l’informazione organizzata in tracce concentriche Dischi magnetici Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk), dischi ottici (CD, DVD), dispositivi USB, memorie flash Memoria non volatile ad alta capacità La memoria secondaria

37 Anno accademico 2010-2011 37 dischi magnetici I dischi magnetici rappresentano il mezzo fondamentale per la memorizzazione di massa  I dischi ruotano ad una velocità (costante) compresa tra i 60 e i 200 giri al secondo I dischi magnetici  1

38 Anno accademico 2010-2011 38 tracceL’informazione è disposta sul disco in tracce, ovvero in cerchi concentrici La densità dei bit decresce dalle tracce interne alle più esterne per mantenere costante la quantità di dati che passano sotto le testine nell’unità di tempo settoriLe tracce sono divise in settori La capacità di memorizzazione dei dischi cresce in conseguenza allo sviluppo tecnologico Platter Track Platters Sectors Tracks I dischi magnetici  2

39 Anno accademico 2010-2011 39 Il numero di bit contenuti in una traccia è dell’ordine delle centinaia di migliaia (512/4096 byte a settore) Centinaia di settori (512/1024 per traccia) Decine di migliaia di cilindri (tracce concentriche disposte sulle diverse facce dei diversi dischi) Per leggere (o scrivere) sul disco, la testina si deve posizionare sulla traccia che contiene il dato ed attendere che il dato passi sotto di essa  Le operazioni di lettura/scrittura si basano sulla proprietà del campo magnetico di indurre/essere indotto il/dal passaggio di corrente in una bobina I dischi magnetici  3

40 Anno accademico 2010-2011 40 testina magnetica traferroLa magnetizzazione avviene infatti mediante la testina magnetica (una piccola bobina racchiusa in un involucro di metallo dotato di una minuscola fessura, il traferro) Facendo passare corrente nella bobina si induce un campo magnetico nel traferro (invertendo la corrente si inverte anche il campo) scrittura su discoQuando si fa passare corrente attraverso la testina alternandone la direzione, le aree del disco al di sotto della testina si magnetizzano in una delle due direzioni: questo procedimento rappresenta la scrittura su disco I dischi magnetici  4

41 Anno accademico 2010-2011 41 I dati binari che l’unità scrive sul disco sono tradotti in un formato costituito da una serie di aree magnetizzate in un senso o nell'altroI dati binari che l’unità scrive sul disco sono tradotti in un formato costituito da una serie di aree magnetizzate in un senso o nell'altro Lettura da discoLettura da disco: poiché le particelle magnetizzate sono circondate da un campo magnetico, quando il traferro passa sul disco le variazioni del campo inducono sulla testina una corrente che si manifesta con variazioni di voltaggio alle estremità della bobina; i circuiti di lettura decodificano le variazioni nell’andamento dell’intensità di corrente riconducendole a 0/1 I dischi magnetici  5

42 Anno accademico 2010-2011 42 Il tempo medio di accesso all’informazione memorizzata su disco è dato da tempo di ricerca  t seek è il tempo di ricerca, necessario per posizionare la testina sulla traccia che contiene l’informazione; dipende dall’ampiezza dello spostamento tempo di latenza  t lat è il tempo di latenza, necessario perché l’informazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischi tempo di trasferimento  t tr è il tempo di trasferimento ; dipende dalla velocità di rotazione, dalla densità di registrazione e dalla quantità di informazione da trasferire T  t seek  t lat  t tr Accesso al disco

43 Anno accademico 2010-2011 43 dischi otticiSui dischi ottici si utilizza la tecnologia laser per realizzare le operazioni di lettura/scrittura Densità dei bit uniforme  Un’unica traccia elicoidale o…  …tracce più lontane dal centro del disco sono più lunghe e contengono un maggior numero di settori (fino al 40% in più rispetto alle tracce vicine al centro di rotazione) I dischi ottici  1

44 Anno accademico 2010-2011 44 dischi a cambio di faseSui dischi di lettura/scrittura i dati possono essere modificati più e più volte (dischi a cambio di fase) WORMWrite Once  Read ManyI dischi WORM, Write Once  Read Many, si possono scrivere una sola volta La tecnologia originale per dischi WORM consiste nell’inserire una pellicola di alluminio tra due piatti di plastica o di vetro (o un pigmento polimerico) Per scrivere un bit, l’unità usa un raggio laser per praticare un piccolo foro nell’alluminio (o opacizzare il pigmento): l’informazione può venir distrutta ma non alterata I dischi ottici  2

45 Anno accademico 2010-2011 45  Comportamento:  Comportamento: Input (read once), output (write only), memoria (rilettura/riscrittura)  Partner:  Partner: uomo o macchina  Velocità del flusso dei dati:  Velocità del flusso dei dati: quantità di dati trasferiti nell’unità di tempo da o verso la CPU o la memoria centrale input storage outputInsieme di dispositivi che consentono l’acquisizione di dati (input), la loro archiviazione (storage) e la loro presentazione verso il mondo esterno (output) Si possono classificare in base a tre diverse caratteristiche: Tastierainputuomo Mouseinputuomo Reteinput/outputmacchina Hard Diskstoragemacchina velocità +   10 4 KB/s  10  2 KB/s I dispositivi di Input  Output

46 Anno accademico 2010-2011 46 Linguaggio macchina e assembler

47 Anno accademico 2010-2011 47 Quando il programma è in esecuzione, è memorizzato nella memoria principale; esso è rappresentato da una serie di numeri binari che codificano le istruzioni eseguibili dall’unità centrale Il programma non è quindi distinguibile dai dati osservando il contenuto della memoria; le istruzioni sono individuate dai valori assunti dal registro PC durante l’esecuzione del programma Ogni codice binario codifica il tipo di istruzione (OPCODE) ed eventuali parametri (es. registri, indirizzi in memoria) I primi calcolatori si programmavano direttamente in linguaggio macchina! 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 PC Il linguaggio macchina

48 Anno accademico 2010-2011 48 L’insieme delle istruzioni eseguibili, e la relativa codifica, sono generalmente diverse per modelli diversi di processore Le istruzioni possono essere codificate con un numero variabile di bit (es. Pentium) o con un numero fisso (es. MIPS  32 bit) Le categorie di istruzioni normalmente disponibili sono: Trasferimento dati: Trasferimento dati: spostano dati (byte, word) tra registri, memoria principale e dispositivi di ingresso/uscita (I/O) Aritmetico  logiche: Aritmetico  logiche: eseguono i calcoli nella ALU Salti (condizionati e incondizionati): Salti (condizionati e incondizionati): prendono decisioni e alterano la normale esecuzione sequenziale delle istruzioni Il set di istruzioni macchina

49 Anno accademico 2010-2011 49 0100000000010000leggi un valore in ingresso e ponilo nella cella numero 16 (variabile x) 0100000000010001leggi un valore e ponilo nella cella numero 17 (variabile y) 0100000000010010leggi un valore e ponilo nella cella numero 18 (variabile z) 0100000000010011leggi un valore e ponilo nella cella numero 19 (variabile r) 0000000000010000carica il registro A con il contenuto della cella 16 0001000000010001carica il registro B con il contenuto della cella 17 0110000000000000somma i contenuti dei dei registri A e B 0010000000010100copia il contenuto del registro A nella cella 20 (risultato, variabile s) 0000000000010010carica il registro A con il contenuto della cella 18 0001000000010011carica il registro B con il contenuto della cella 19 0110000000000000somma i contenuti dei registi A e B 0001000000010100carica il registro B con il contenuto della cella 20 1000000000000000moltiplica i contenuti dei registri A e B 0010000000010100copia il contenuto del registro A nella cella numero 20 0101000000010100scrivi in output il contenuto della cella numero 20 1101000000000000arresta l’esecuzione (HALT) ………………………spazio per la variabile x (cella 16) ………………………spazio per la variabile y (cella 17) ………………………spazio per la variabile z (cella 18) ………………………spazio per la variabile r (cella 19) ………………………spazio per la variabile s (cella 20) Esempio di programma in linguaggio macchina

50 Anno accademico 2010-2011 50 assemblyPer facilitare la programmazione è stato definito il linguaggio assembly assemblerL’assembly impiega una notazione simbolica che è in stretta relazione con i codici in linguaggio macchina; il programma scritto in assembly è convertito automaticamente in linguaggio macchina per mezzo del programma traduttore, l’assembler LOAD R1, MEM1 CMP R1, R2 BREQ RISZERO STORE R1, MEM1 RISZERO: LOAD R2, MEM2 Assembler 10001000110110101101010101010100 01001000100100000000000000000000 11000000000000000000000000001000 10011000110110101101010101010100 10001001010110101101001000001100 OPCODE (LOAD) registro indirizzo di memoriaAssembler

51 Anno accademico 2010-2011 51 Le istruzioni di trasferimento dati permettono di copiare il valore di un dato fra registri o fra un registro e la memoria assemblySi fa riferimento ad un assembly generico LOAD REG1, MEM LOAD REG1, [REG2] STORE REG1, MEM STORE REG1, [REG2] MOVE REG1, REG2 REG1 MEM REG1 REG2 memoria registro registro memoria registro Indirizzamento diretto Indirizzamento indiretto Trasferimento dei dati

52 Anno accademico 2010-2011 52 Permettono di eseguire operazioni aritmetiche o logiche su due operandi ADD REG1, REG2 ALU ADD REG1 REG2 OR REG1, REG2 0010 1100 1100 0101 1100 1111 0101 0000 1010 1110 0000 0000 0010 0001 1000 0001 1010 1110 1100 0101 1110 1111 1101 0001 REG1 REG2 REG1 Operazioni aritmetico  logiche

53 Anno accademico 2010-2011 53 Modificano il flusso di esecuzione del programma condizionato  Il salto è condizionato se viene effettuato solo quando si verifica una certa condizione CMP REG1, REG2 BREQ UGUALI LOAD REG1, MEM1 UGUALI: STORE REG2, MEM1 Confronta il contenuto dei registri REG1 e REG2 BRanch EQual Istruzioni di salto  1

54 Anno accademico 2010-2011 54 CMPL’istruzione CMP confronta i due argomenti, assegnando valori particolari a bit di condizione che si trovano nel registro PSW (zero, segno) BRNE BRLEL’istruzione di salto condizionato può essere basata su diverse condizioni: BRNE (branch not equal), BRLE (branch less equal), etc. BRANCHL’istruzione di salto incondizionato, BRANCH, effettua sempre il salto Istruzioni di salto  2

55 Anno accademico 2010-2011 55 Il programma in assembler… LOAD REG1, a LOAD REG2, b ADD REG1, REG2 LOAD REG3, c LOAD REG4, d ADD REG3, REG4 MULT REG1, REG3 STORE REG1, e e  (a  b)  (c  d); …corrisponde all’unica istruzione C: Assembler e linguaggi di alto livello

56 Anno accademico 2010-2011 56 Il sistema operativo

57 Anno accademico 2010-2011 57 Il software può essere diviso in due grandi classi: programmi di sistema  i programmi di sistema, che gestiscono le funzionalità del sistema di calcolo programmi applicativi  i programmi applicativi, che risolvono i problemi degli utenti programmi di sistema Sistema Operativo (SO)L’insieme dei programmi di sistema viene comunemente identificato con il nome di Sistema Operativo (SO) Definizione: Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del calcolatoreDefinizione: Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del calcolatore Cos’è un sistema operativo  1

58 Anno accademico 2010-2011 58 Tutte le piattaforme hardware/software richiedono un sistema operativo Quando si accende un elaboratore, occorre attendere alcuni istanti per poter iniziare a lavorare: durante questa pausa il computer carica il SO Cos’è un sistema operativo  2

59 Anno accademico 2010-2011 59 EFFICIENTEGestione EFFICIENTE delle risorse del sistema di elaborazione AGEVOLERendere AGEVOLE l’interfaccia tra l’uomo e la macchina Scopo del sistema operativo

60 Anno accademico 2010-2011 60 Per l’utente, la percezione del calcolatore dipende dall’interfaccia del SO  SO progettato pensando alla facilità d’uso  Qualche attenzione alle prestazioni  Scarsa attenzione all’utilizzo delle risorse Dal punto di vista del sistema di calcolo…  Il SO viene percepito come un gestore di risorse (CPU, RAM, I/O) e come un programma di controllo  Arbitra l’esecuzione dei programmi utente Non c’è uniformità nel definire cosa fa parte/non compete del/al SO Percezione del sistema operativo

61 Anno accademico 2010-2011 61 Si consideri un ristorante con un capo  cuoco (che dirige la cucina) ed i suoi aiutanti, camerieri e clienti:  I clienti scelgono un piatto dal menù  Un cameriere prende l’ordine e lo consegna al capo  cuoco  Il capo  cuoco riceve l’ordine e assegna uno o più aiutanti alla preparazione del piatto  Ogni aiutante si dedicherà alla preparazione di un piatto, il che potrà richiedere più attività diverse  Il capo  cuoco supervisiona la preparazione dei piatti e gestisce le risorse (limitate) disponibili Esempio: il SO come gestore di risorse  1

62 Anno accademico 2010-2011 62 Il capo  cuoco è il sistema operativo!Il capo  cuoco è il sistema operativo!  I clienti sono gli utenti  Le ricette associate ai piatti sono i programmi  Il menù ed il cameriere costituiscono l’interfaccia verso il sistema operativo (grafica e non)  Gli aiutanti sono i processi  La cucina è il computer; pentole, fornelli, etc. sono le componenti hardware Esempio: il SO come gestore di risorse  2

63 Anno accademico 2010-2011 63 Problemi del capo  cuoco:  Esecuzione fedele delle ricette  Allocazione efficiente delle risorse esistenti (aiutanti, fornelli, etc.)  Coordinamento efficiente degli aiutanti  Licenziamento degli aiutanti che non si comportano secondo le regole Problemi del sistema operativo:  Esecuzione dei programmi utente  Efficienza nell’uso delle risorse (processori, memoria, dischi, etc.)  Coordinamento dei processi  Protezione nell’uso delle risorse e abort dei processi che se appropriano indebitamente Esempio: il SO come gestore di risorse  3

64 Anno accademico 2010-2011 64 Visione a strati delle componenti hardware/software che compongo un sistema di elaborazione Il SO come macchina estesa  1

65 Anno accademico 2010-2011 65 virtualizza macchina astrattaIl SO può essere inteso come uno strumento che virtualizza le caratteristiche dell’hardware sottostante, offrendo all’utente la visione di una macchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile In questa visione, un SO…  …nasconde a programmatori/utenti i dettagli dell’hardware e fornisce un’interfaccia conveniente e facile da usare  …agisce come intermediario tra programmatore/utente e hardware Parole chiave  Indipendenza dall’hardware  Comodità d’uso  Programmabilità Il SO come macchina estesa  2

66 Anno accademico 2010-2011 66 L’utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento 1.Hardware 1.Hardware — fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O) 2.Sistema Operativo 2.Sistema Operativo — controlla e coordina l’utilizzo delle risorse hardware da parte dei programmi applicativi dell’utente 3.Programmi Applicativi 3.Programmi Applicativi — definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali) 4.Utenti 4.Utenti — persone, altri macchinari, altri elaboratori Visione “a cipolla” del sistema di calcolo Il SO come macchina estesa  3

67 Anno accademico 2010-2011 67 I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione I vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina KERNEL Gestore dei Processi Gestore della Memoria Centrale Gestore dell’I/O Gestore del File System Interfaccia utente kernelL’insieme dei moduli per la gestione della CPU e della memoria centrale è il kernel Architettura del sistema operativo

68 Anno accademico 2010-2011 68 convenienteefficienteRiassumendo: Il sistema operativo fornisce un ambiente per eseguire programmi in modo conveniente ed efficiente; funge infatti da… Allocatore di risorse Allocatore di risorse — controlla, distribuisce ed alloca le risorse (in modo equo ed efficiente) Programma di controllo Programma di controllo — controlla l’esecuzione dei programmi utente e le operazioni sui dispositivi di I/O Esempio:filesystem Esempio: il filesystem Si ha a che fare con file, directory, etc., e non ci si deve preoccupare di come i dati sono memorizzati sul disco Ancora sul sistema operativo

69 Anno accademico 2010-2011 69 Gestione dei processi Gestione della memoria principale Gestione della memoria di massa (file system) Realizzazione dell’interfaccia utente Protezione e sicurezza Compiti del sistema operativo

70 Anno accademico 2010-2011 70 processoUn processo è un programma in esecuzione  Un processo utilizza le risorse fornite dal sistema di elaborazione per assolvere ai propri compiti  La terminazione di un processo prevede il recupero di tutte le risorse riutilizzabili ad esso precedentemente allocate Normalmente, in un sistema vi sono molti processi, di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU multiplexingLa concorrenza è ottenuta effettuando il multiplexing delle CPU fra i vari processi La gestione dei processi  1

71 Anno accademico 2010-2011 71 Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi:  creazione e terminazione dei processi  sospensione e riattivazione dei processi deadlock  gestione dei deadlock  comunicazione tra processi  sincronizzazione tra processi Il gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione un’unità di elaborazione dedicataIl gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione un’unità di elaborazione dedicata La gestione dei processi  2

72 Anno accademico 2010-2011 72 gestore dei processiIl gestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell’interruzione e della riattivazione dei programmi in esecuzione cui viene assegnato un processore La gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivolto schedulerIl programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato scheduler Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema (bilanciandone il carico) La gestione dei processi  3

73 Anno accademico 2010-2011 73 running ready wait nascita attesa evento (es. I/O) evento tempo scaduto top nella coda di scheduling termine Ciclo di vita dei processi

74 Anno accademico 2010-2011 74 Le politiche di scheduling sono raggruppabili in due grandi categorie:  Preemptive:  Preemptive: l’uso della CPU da parte di un processo può essere interrotto in un qualsiasi momento, e la risorsa concessa ad altro processo  Non preemptive:  Non preemptive: una volta che un processo ha ottenuto l’uso della CPU, è unico proprietario della risorsa finché non ne decide il rilascio Politiche di scheduling

75 Anno accademico 2010-2011 75 mono  taskingI SO che gestiscono l’esecuzione di un solo programma per volta (un solo processo) sono detti mono  tasking Non è possibile sospendere un processo per assegnare la CPU ad un altro Sono storicamente i primi SO (es. MS  DOS) t A B C T Tempo di utilizzo della CPU Tempo di attesa di eventi esterni Sistemi mono  tasking

76 Anno accademico 2010-2011 76 multi  tasking multi  programmatiI SO che permettono l’esecuzione contemporanea di più programmi sono detti multi  tasking o multi  programmati Un programma può essere interrotto e la CPU passata a un altro programma T multi-tasking t A B C T mono-tasking Tempo di utilizzo della CPU Tempo di attesa di eventi esterni Sistemi multi  tasking

77 Anno accademico 2010-2011 77 time  sharingUn’evoluzione dei sistemi multi  tasking sono i sistemi time  sharing quanti di tempoOgni processo viene eseguito ciclicamente per piccoli quanti di tempo Se la velocità del processore è sufficientemente elevata si ha l’impressione di un’evoluzione parallela dei processi EsempioEsempio  Ipotesi: 1 MIPS, 4 processi, 0.25 s/utente  Conseguenze: 0.25 MIPS/utente, T ELA  4  T CPU CB AD 0.00” 0.25” 0.75” 0.50” Sistemi time  sharing

78 Anno accademico 2010-2011 78 t A B C D Processo CPU burst A3 B2 C4 D3 Time  sharing: diagramma temporale

79 Anno accademico 2010-2011 79 La memoria principale…  …è un “array” di byte indirizzabili singolarmente  …è un deposito di dati facilmente accessibile e condiviso tra la CPU ed i dispositivi di I/O Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria principale:  Tenere traccia di quali parti della memoria sono usate e da chi  Decidere quali processi caricare quando diventa disponibile spazio in memoria  Allocare e deallocare lo spazio di memoria quando necessario Il gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione una memoria dedicataIl gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione una memoria dedicata La gestione della memoria principale  1

80 Anno accademico 2010-2011 80 L’organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SO gestore della memoria Il gestore della memoria è quel modulo del SO incaricato di assegnare la memoria ai task (per eseguire un task è necessario che il suo codice sia caricato in memoria) La complessità del gestore della memoria dipende dal tipo di SO Nei SO multi  tasking, più programmi possono essere caricati contemporaneamente in memoria Problema: Problema: come allocare lo spazio in maniera ottimale? La gestione della memoria principale  2

81 Anno accademico 2010-2011 81 Programma A Programma B Programma C Memoria 0000x Programma D PROBLEMA !!!! FRAMMENTAZIONE Allocazione lineare

82 Anno accademico 2010-2011 82 Programma D Programma A Programma B Paginazione Memoria 0000x Programma E Programma F

83 Anno accademico 2010-2011 83 Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processi simulareSi può simulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momento memoria virtualeSi usa il concetto di memoria virtuale area di swapI dati e le parti di codice relativi a programmi non in esecuzione possono essere tolti dalla memoria centrale e “parcheggiati” su disco nella cosiddetta area di swap I processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale La memoria virtuale  1

84 Anno accademico 2010-2011 84 Programma D Memoria 0000x Programma A-1 Programma B-1 Programma A-2 Programma A-3 Programma B-2 Swap La memoria virtuale  2

85 Anno accademico 2010-2011 85 Programma D Memoria Programma A-2 Programma B-1 Programma A-1 Programma A-3 Programma B-2 Swap La memoria virtuale  2 0000x

86 Anno accademico 2010-2011 86 memoria secondariaPoiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, il computer è dotato di memoria secondaria  In generale, la memoria secondaria è data da hard disk e dischi ottici Il SO garantisce una visione logica uniforme del processo di memorizzazione: file  Astrae dalle caratteristiche fisiche dei dispositivi per definire un’unità di memorizzazione logica  il file  Ciascuna periferica viene controllata dal relativo device driver, che nasconde all’utente le caratteristiche fisiche variabili dell’hardware: modalità e velocità di accesso, capacità, velocità di trasferimento La gestione della memoria secondaria  1

87 Anno accademico 2010-2011 87 Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:  Allocazione dello spazio  Gestione dello spazio libero disk scheduling  Ordinamento efficiente delle richieste di accesso al disco (disk scheduling) La gestione della memoria secondaria  2

88 Anno accademico 2010-2011 88 Il file è l’astrazione informatica di un archivio di dati  Il concetto di file è indipendente dal mezzo sul quale viene memorizzato (che ha caratteristiche proprie e propria organizzazione fisica) Un file system è composto da un insieme di file Il SO è responsabile delle seguenti attività riguardanti la gestione del file system:  Creazione e cancellazione di file  Creazione e cancellazione di directory  Manipolazione di file e directory  Codifica del file system sulla memoria secondaria La gestione del file system  1

89 Anno accademico 2010-2011 89 gestore del file systemIl gestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massa Il gestore del file system deve garantire la correttezza e la coerenza delle informazioni Nei sistemi multi  utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall’accesso di altri utenti non autorizzati Le funzioni tipiche del gestore del file system sono:  Fornire un meccanismo per l’identificazione dei file  Fornire metodi opportuni di accesso ai dati  Rendere trasparente la struttura fisica del supporto di memorizzazione  Implementare meccanismi di protezione dei dati La gestione del file system  2

90 Anno accademico 2010-2011 90 L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory gerarchicaQuasi tutti i SO utilizzano un’organizzazione gerarchica del file system directoryL’elemento utilizzato per raggruppare più file insieme è la directory Directory File Grafo delle directory Organizzazione del file system

91 Anno accademico 2010-2011 91 La gestione dell’I/O richiede: device driver  Un’interfaccia comune per la gestione dei device driver  Un insieme di driver per dispositivi hardware specifici  Un sistema di gestione di buffer per il caching delle informazioni gestore dei dispositivi di I/OIl gestore dei dispositivi di I/O è il modulo del SO incaricato di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema Il gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica che “percepisce” come dedicataIl gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica che “percepisce” come dedicata La gestione dei dispositivi di I/O

92 Anno accademico 2010-2011 92 device driverIl controllo dei dispositivi di I/O avviene attraverso speciali moduli software, detti device driver I device driver sono spesso realizzati dai produttori dei dispositivi stessi, che ne conoscono le caratteristiche fisiche in maniera approfondita I device driver implementano le seguenti funzioni:  Rendono trasparenti le caratteristiche fisiche tipiche di ogni dispositivo  Gestiscono la comunicazione dei segnali verso i dispositivi  Gestiscono i conflitti, nel caso in cui due o più task vogliano accedere contemporaneamente allo stesso dispositivo Device driver

93 Anno accademico 2010-2011 93 Tutti i SO implementano meccanismi per facilitare l’utilizzo del sistema di calcolo da parte degli utenti interfaccia utenteL’insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utente Serve per…  …attivare un programma, terminare un programma, etc.  …interagire con le componenti del sistema operativo (gestore dei processi, file system, etc.) L’interfaccia utente  1

94 Anno accademico 2010-2011 94 Interfaccia testuale:Interfaccia testuale: shell  Interprete dei comandi (shell) MS  DOS/UNIX  Esempio: MS  DOS/UNIX Interfaccia graficaInterfaccia grafica (a finestre):  L’output dei vari programmi viene visualizzato in maniera grafica all’interno di finestre  L’utilizzo di grafica rende più intuitivo l’uso del calcolatore WINDOWS/Linux  Esempio: WINDOWS/Linux Differenze:  Cambia il “linguaggio” utilizzato, ma il concetto è lo stesso  Vi sono però differenze a livello di espressività L’interfaccia utente  2

95 Anno accademico 2010-2011 95 desktopRealizza la metafora della scrivania  desktop  Interazione semplice via mouse icone  Le icone rappresentano file, directory, programmi, azioni, etc. foldercartelle, GUI Graphical User Interface  I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull’oggetto in questione, eseguono funzioni tipiche dell’oggetto, aprono directory  folder, o cartelle, nel gergo GUI (Graphical User Interface) L’interfaccia grafica

96 Anno accademico 2010-2011 96 ProtezioneProtezione  è il meccanismo usato per controllare l’accesso da parte di processi e/o utenti a risorse del sistema di calcolo SicurezzaSicurezza  è il meccanismo di difesa implementato dal sistema per proteggersi da attacchi interni ed esterni  Denial  of  service, worm, virus, hacker In prima istanza, il sistema distingue gli utenti, per determinare chi può fare cosa user ID  L’identità utente (user ID) include nome dell’utente e numero associato  uno per ciascun utente  L’user ID garantisce l’associazione corretta di file e processi all’utente e ne regola la manipolazione  L’identificativo di gruppo permette inoltre ad un insieme di utenti di accedere correttamente ad un gruppo di risorse comuni (file e processi) Protezione e sicurezza  1

97 Anno accademico 2010-2011 97 Linux…In Linux… $ ls  l Protezione e sicurezza  2

98 Anno accademico 2010-2011 98 In commercio sono presenti una grande quantità di sistemi operativi diversi In passato, la tendenza delle case costruttrici di sistemi di elaborazione era di sviluppare sistemi operativi proprietari per le loro architetture portabiliLa tendenza attuale è quella dello sviluppo di sistemi operativi portabili su piattaforme hardware diverse Sistemi operativi commerciali

99 Anno accademico 2010-2011 99 CPU Intel (da 80386), ma anche per DEC  AXP, MIPS  R4000, etc. Multitask Monoutente/Multiutente NTFS (NT File System) Microkernel, thread Sistema a 32/64 bit Windows

100 Anno accademico 2010-2011 100 Nato nel ‘91, grazie a Linus Torvalds, studente finlandese dell’Università di Helsinki  “ Sei fortunato che non sei un mio studente. Non prenderesti un buon voto per un tale progetto.” (Andrew S. Tanenbaum, Università di Amsterdam, creatore del sistema operativo MINIX e professore di SO, dal quale Torvalds prese spunto per Linux) free e open  sourceSviluppato su piattaforma Intel 80386, fu distribuito da subito su Internet (free e open  source) Multitask Multiutente L'architettura del sistema è Unix  like: un kernel molto “piccolo” che contiene solo funzioni fondamentali per la gestione delle risorse del computer (CPU, memoria, dischi, rete, I/O) ed una larga collezione di programmi di sistema che l’utente usa per richiedere servizi al SO Linux

101 Anno accademico 2010-2011 101 Sistemi complessi che presentano miriadi di problemi e milioni di linee di codice (100  1000 programmatori per anno) Interazioni complesse  Universali (eseguiti su piattaforme diverse)  Differenti classi di utenti hanno necessità diverse  La performance è cruciale! Poco compresi:  Il SO tipicamente “dura” più di chi lo ha programmato ed è troppo grande per essere compreso da una singola persona  Mai completamente privi di errori (OS/360 rilasciato con 1000 bug); comportamenti difficili da prevedere; aggiustamenti spesso eseguiti per tentativi Conclusioni: i SO oggi


Scaricare ppt "Anno accademico 2010-2011 1 La struttura del calcolatore."

Presentazioni simili


Annunci Google