Chi gestisce l'hardware? - Unicas

Pagina creata da Francesca Monti
 
CONTINUA A LEGGERE
Chi gestisce l'hardware? - Unicas
Chi gestisce l’hardware?

                                            Bus di sistema

                            CPU          Memoria     Interfaccia     Interfaccia
                                         Centrale
                                                     Periferica      Periferica
                                                          1              N

• Il computer è formato da un insieme di
  dispositivi complessi, che interagiscono in
  maniera complessa                                           Unità esterne
• A chi è affidata la gestione?
• Come può l’utente interagire efficacemente
  con il sistema?
                                                       Università degli Studi di
   C. Marrocco                                         Cassino e del Lazio Meridionale
Chi gestisce l'hardware? - Unicas
Ci serve il software

• L’utente di un computer non può interagire direttamente con
  l’hardware perché:
   è troppo complesso da gestire
   offre dei servizi di livello estremamente basso
   richiede conoscenze estremamente specialistiche
   l’architettura hardware può essere estremamente diversa da
    computer a computer
• Il Sistema Operativo (Operating System, OS) è un software apposito
  che offre all’utente gli strumenti per svolgere le operazioni necessarie
  e gestire le risorse a disposizione.

                                                Università degli Studi di
 C. Marrocco                                    Cassino e del Lazio Meridionale
Chi gestisce l'hardware? - Unicas
Sistema Operativo
 Il Sistema Operativo è uno strato software che:
 • opera direttamente sull’hardware;
 • isola dai dettagli dell’architettura hardware;
 • fornisce un insieme di funzionalità di alto livello;

 Obiettivi
 • Convenienza
      Rende l’utilizzo del computer più semplice ed intuitivo
 • Efficienza
      Permette di impiegare le risorse del sistema in maniera più efficiente
 • Capacità di evoluzione
      Permette l’introduzione di nuove funzionalità e/o il miglioramento delle
      risorse hardware senza interferire con il servizio svolto

                                                      Università degli Studi di
C. Marrocco                                           Cassino e del Lazio Meridionale
Chi gestisce l'hardware? - Unicas
Sistema Operativo

• Il sistema operativo è oggigiorno un software indispensabile,
  è il primo ad essere eseguito all’accensione del computer e
  resta sempre in RAM
• Esempi di S.O.:
  MS Windows 95, 98, NT, 2000, XP, 7, 8, 10
  Mac OS
  Unix
  Linux Debian, Ubuntu, RedHat, CentOS, Suse, ecc.
• I programmi sono realizzati per essere eseguiti su un certo
  sistema operativo

                                           Università degli Studi di
 C. Marrocco                               Cassino e del Lazio Meridionale
Chi gestisce l'hardware? - Unicas
Servizi del Sistema Operativo

• Esecuzione dei programmi
  Gestione del multitasking
• Accesso ai dispositivi di I/O e di memoria di massa
• Accesso controllato ai file
  Organizzazione logica dei dischi
• Accesso al sistema
  Criteri di protezione
• Il sistema operativo fornisce tutti i suoi servizi solo attraverso le
  chiamate di sistema, un insieme di istruzioni che costituiscono
  l’interfaccia del sistema operativo verso l’esterno.

                                               Università degli Studi di
  C. Marrocco                                  Cassino e del Lazio Meridionale
Chi gestisce l'hardware? - Unicas
Struttura del Sistema Operativo

• A causa della loro complessità, i sistemi operativi sono di solito strutturati
  come una serie di livelli (architettura a buccia di cipolla).
• Ogni livello realizza un sottoinsieme di funzioni attraverso una macchina
  virtuale che nasconde i meccanismi implementativi e offre un insieme ben
  definito di funzionalità ai livelli superiori.

                                                     Università degli Studi di
  C. Marrocco                                        Cassino e del Lazio Meridionale
Struttura del Sistema Operativo

                     Hardware

                      Nucleo

                  Gestione memoria
                                                    Programmi
                                                    utente
                 Gestione periferiche

                     File system

                 Interprete comandi     Università degli Studi di
C. Marrocco                             Cassino e del Lazio Meridionale
La struttura della famiglia Unix

                                   Università degli Studi di
C. Marrocco                        Cassino e del Lazio Meridionale
La struttura di Windows NT/2000

                              Università degli Studi di
C. Marrocco                   Cassino e del Lazio Meridionale
L’interprete dei comandi

• L’interprete dei comandi (o shell) è la parte più esterna del sistema operativo
  con la quale l’utente interagisce.
• Attraverso l’interprete, l’utente richiede un servizio al sistema operativo
  (esecuzione di un programma, copia di un file, ecc.)
   – l’utente inserisce un comando in accordo ad una certa sintassi;
   – l’interprete riconosce il comando ed attiva una serie di funzioni dei livelli
     interni;
   – l’esecuzione di tali funzioni porta al compimento del comando richiesto.

• L’interprete si presenta
   con un’interfaccia di tipo alfanumerico.
   con un’interfaccia di tipo grafico (Graphical User Interface, GUI).

                                                     Università degli Studi di
 C. Marrocco                                         Cassino e del Lazio Meridionale
L’interprete dei comandi
                                                 comandi
Interfaccia alfanumerica (finestra DOS)

        uscite
                                          Università degli Studi di
C. Marrocco                               Cassino e del Lazio Meridionale
L’interprete dei comandi

Interfaccia
GUI

                            Università degli Studi di
   C. Marrocco              Cassino e del Lazio Meridionale
Files e File system

• Il File System offre una visione logica uniforme della memorizzazione
  permanente dei dati basata su un’unità di memoria logica, il file, definita
  indipendentemente dalle caratteristiche fisiche delle particolari unità.
• Il file è un insieme di informazioni correlate e registrate nella memoria di
  massa ed è identificato da un nome, che può essere formato da più
  sottoparti.
   nome: si riferisce ai contenuti del file.
   estensione: si riferisce al tipo del file.
• Dal punto di vista dell’utente, un file è la più piccola porzione (logica) di
  memoria secondaria: i dati, cioè, possono essere scritti nella memoria
  secondaria solo all’interno di un file.

                                                    Università degli Studi di
 C. Marrocco                                        Cassino e del Lazio Meridionale
Contenuto dei files
• Le informazioni registrate all’interno di un file sono di due tipi:
   dati veri e propri
           programmi eseguibili
           testi
           immagini
           dati numerici
           …
   attributi di interesse per l’utente
           dimensione del file
           data di creazione e/o ultima modifica
           permessi di accesso

                                                      Università degli Studi di
 C. Marrocco                                          Cassino e del Lazio Meridionale
Organizzazione logica dei files
• L’insieme dei files presenti in memoria di massa è organizzato secondo una
  struttura gerarchica ad albero, in cui i nodi intermedi costituiscono le
  directories (che raggruppano altri files e directories secondo un criterio di
  omogeneità), mentre le foglie rappresentano i files.

• All’interno di tale struttura, un
  particolare file è univocamente
  identificato dal path (o percorso) che
  localizza la directory in cui il file è
  memorizzato.
• Files nella stessa directory non
  possono avere lo stesso nome.

                                                     Università degli Studi di
   C. Marrocco                                       Cassino e del Lazio Meridionale
Tree-Structured Directories
Linux file system

                              Università degli Studi di
 C. Marrocco                  Cassino e del Lazio Meridionale
Dal file system alla memoria di massa

                                Università degli Studi di
C. Marrocco                     Cassino e del Lazio Meridionale
Le memorie di massa

• Le unità di memoria di massa forniscono il supporto fisico per la
  memorizzazione non volatile di grosse moli di dati e presentano
  caratteristiche estremamente diverse a seconda della casa
  costruttrice e del tipo di unità..
• Rispetto alla memoria principale
  ha una capacità molto maggiore;
  ha una minore velocità di accesso
• La tecnologia utilizzata per la memorizzazione può essere di tipo
  magnetico, elettronico o ottico.
• Il supporto è tipicamente un disco (magnetico, ottico) oppure una
  memoria allo stato solido (SSD) ma sono memorie di massa anche
  nastri, CD, DVD, memorie FLASH (Pendrive), ecc.
                                            Università degli Studi di
 C. Marrocco                                Cassino e del Lazio Meridionale
Hard disk tradizionale (HDD)

                               Università degli Studi di
 C. Marrocco                   Cassino e del Lazio Meridionale
Struttura di un Hard Disk

       braccio       testine

                                                                           dischi
attuatore

• L’unità è in realtà costituita da diversi dischi. Entrambe le superfici di ogni
  disco sono rivestite di materiale magnetico sul quale vengono memorizzate le
  informazioni.
• Le operazioni di lettura e scrittura sono realizzate da testine, poste su bracci e
  mosse da un attuatore.

                                                         Università degli Studi di
C. Marrocco                                              Cassino e del Lazio Meridionale
Università degli Studi di
C. Marrocco   Cassino e del Lazio Meridionale
Organizzazione di un hard disk
                           • Tutte le informazioni memorizzate sul disco sono
                             organizzate in tracce (corone circolari concentriche
                             disposte sulla superficie del disco).
                           • Le tracce sono numerate a partire da zero dal bordo
                             del disco e procedendo verso l’interno.
                           • Ogni traccia è divisa in più blocchi (da 512 byte)
                             denominati settori, che sono le più piccole unità di
                             memorizzazione sul disco.

 • Siccome l’unità è formata da più dischi, ad
   ogni traccia su un disco corrispondono
   tracce omologhe sugli altri dischi, che,
   nell’insieme, formano un cilindro.

                                                     Università degli Studi di
 C. Marrocco                                         Cassino e del Lazio Meridionale
Operazioni su un hard disk
• Le informazioni memorizzate sul disco sono codificate sotto forma di stati di
  memorizzazione di zone del materiale magnetico disposto sulla superficie del
  disco.
• Le operazioni di lettura/scrittura sono realizzate dalle testine tramite le seguenti
  fasi:
  1. Posizionamento della testina sulla traccia (cilindro) di interesse;
  2. Attesa del passaggio del settore di interesse;
  3. Lettura o scrittura del dato.                          Accesso ai dati di tipo
                                                            random

• Date le alte velocità di rotazione, le
  testine non toccano la superficie del
  disco, ma “planano” su di essa,
  mantenendosi        ad  una   distanza
  dell’ordine di 10-4 mm.

                                                            Università degli Studi di
  C. Marrocco                                               Cassino e del Lazio Meridionale
Solid State Drive (SSD)
• Un’unità a stato solido è una tipologia di memoria di massa che
  utilizza una memoria flash a stato solido.
• La memoria SSD è costituita unicamente da componenti elettronici.
  La totale assenza di parti meccaniche in movimento porta diversi
  vantaggi:
  Rumorosità assente
  Minore probabilità di rottura e quindi maggiore durata
  Minori consumi energetici
  Tempo di accesso ridotto (decimi di millisecondo)
  Maggiore resistenza agli urti
  Minore surriscaldamento

                                                    Università degli Studi di
  C. Marrocco                                       Cassino e del Lazio Meridionale
Organizzazione fisica dei files

• Un file è quindi composto da un insieme di settori distribuiti sul disco.
• In una zona speciale risiedono i metadati del singolo file (nome, ecc.)
  insieme con l’elenco dei settori che lo formano.
• Da un punto di vista fisico, la registrazione del file sul disco viene
  realizzata dal sistema operativo disponendo il contenuto del file su un
  insieme di cluster possibilmente contigui.
• La registrazione dei dati è organizzata in maniera sequenziale, per
  cui le operazioni di lettura e scrittura possono avvenire solo a partire
  dall’inizio e procedendo verso la fine.

                                                  Università degli Studi di
  C. Marrocco                                     Cassino e del Lazio Meridionale
Organizzazione fisica dei files

• Un cluster è la quantità minima di disco che può essere allocata per un
  file ed è formata da un certo numero di settori consecutivi.
• La gestione e l’organizzazione dei cluster cambia a seconda del
  sistema operativo.
• La successione dei blocchi nei quali sono memorizzati i bytes che lo
  compongono può essere strutturata come:

                                                Università degli Studi di
  C. Marrocco                                   Cassino e del Lazio Meridionale
Gestione delle periferiche

• Le periferiche vengono gestite tramite meccanismi software chiamati
  driver cui è affidato il compito di comunicare dati da e verso le periferiche.
• I driver garantiscono una visione di alto livello ai programmi che li usano
  e permettono l'accesso alla periferica in ogni istante ad un solo processo
  per volta.
• In particolare, si distingue fra:
   Driver fisici (hardware): vengono attivati direttamente dal gestore delle
    interruzioni per eseguire trasferimento e manipolazione dei dati.
   Driver logici (software): fanno parte del sistema operativo e forniscono
    una gerarchia di operazioni con un’organizzazione a strati.

                                                     Università degli Studi di
 C. Marrocco                                         Cassino e del Lazio Meridionale
Gestione della memoria

• La parte del sistema operativo che si occupa della gestione della
  memoria principale è il gestore della memoria (memory manager).
• I suoi principali compiti sono:
   Sapere, in ogni istante, quali parti della memoria sono in uso e quali no.
   Allocare memoria ai programmi che devono essere eseguiti.
   Deallocare la memoria dei programmi che sono terminati.
   Implementare il meccanismo della memoria virtuale.
   Implementare un meccanismo di protezione sulla memoria allocata per
    impedire che un programma possa accedere ad uno spazio di memoria
    esterno a quello che gli è stato assegnato.

                                                    Università degli Studi di
 C. Marrocco                                        Cassino e del Lazio Meridionale
Gestione dei processi

• Il compito principale del nucleo (kernel) o gestore dei processi è di
  ottimizzare il tempo macchina ovvero l'utilizzo della risorsa CPU.

• Un processo è un programma in esecuzione caratterizzato da una
  coppia di elementi: il codice eseguibile e lo stato del processo (ovvero
  l’insieme dei valori contenuti nella memoria centrale, nell’insieme di
  registri del processore, i thread, i descrittori dei file, ecc.)

• La macchina deve eseguire più processi “contemporaneamente”
  (multiprogrammazione) ma generalmente si ha a disposizione un’unica
  CPU che lavora in maniera sequenziale.

• L’unico modo è quello di simulare il parallelismo attraverso lo scheduling
  e la parte del sistema operativo che si occupa della scheduling è lo
  scheduler.

                                                   Università degli Studi di
 C. Marrocco                                       Cassino e del Lazio Meridionale
Scheduling e interruzioni

• Lo scheduler gestisce una particolare struttura dati chiamata tabella dei processi
  dove sono memorizzati tutti i dati relativi ai processi.
• La transizione tra i processi è possibile tramite un meccanismo hardware chiamato
  interruzione (interrupt).
• Quando arriva un’interruzione lo scheduler salva in maniera automatica tutti i dati
  relativi al processo e manda in esecuzione un altro processo.
• La sospensione deve avvenire in modo che il processo possa ripristinare il
  contesto in cui si era interrotto in modo da non accorgersi dell’interruzione.
• Le interruzioni possono essere:
     interne: viene generata internamente al processore in maniera sincrona (ad
      es. se un processo richiede l’esecuzione di un’operazione di I/O).

     esterne: è un evento asincrono in cui una periferica esterna comunica alla
      CPUche ha terminato l’operazione richiesta (ad es. il processo ha terminato
      l'operazione di I/O) oppure per segnalare errori software o guasti hardware.

                                                       Università degli Studi di
 C. Marrocco                                           Cassino e del Lazio Meridionale
Gli stati di un processo
                 Fine esecuzione

                                PROCESSO IN ESECUZIONE                       Inizio esecuzione
                      2                                          3

                                                   1

            PROCESSO IN ATTESA                           PROCESSO PRONTO

                                            4

1. Il processo viene scelto dalla tabella dei
   processi.
2. Interruzione interna (ad es. operazioni di          Se non ci sono processi in esecuzione il
   I/O).                                               sistema operativo esegue un processo
3. Fine quanto di tempo o interruzione esterna.        chiamato IDLE, il quale ha il solo
4. Il processo in attesa ha terminato le               compito di tenere impegnata la CPU.
   operazioni richieste ed è di nuovo pronto per
   essere eseguito.
                                                               Università degli Studi di
  C. Marrocco                                                  Cassino e del Lazio Meridionale
Puoi anche leggere