Un moderno calcolatore è composto da :

  • uno o più processori;
  • memoria centrale;
  • dischi o unità flash;
  • tastiere;
  • stampanti;
  • mouse;
  • display;
  • interfacce di rete;
  • dispositivi I/O;

I dettagli su come interagire con queste componenti sono molto complesse (basso livello), per questa ragione i computer sono dotati di un sistema operativo (OS). Questo layer di astrazione permette di gestire tutte queste componenti.

Molti computer hanno due modalità di eseguire le operazioni :

  • kernel mode (o supervisor) : dove viene eseguito l’OS,
    • accesso completo all’hardware
    • eseguire qualsiasi istruzione
  • user mode

The Operating System as an Extended Machine

Il OS si pone tra l’hardware e le applicazioni :

  • vista top-down : OS fornisce astrazioni ai programmi;
  • vista bottom-up :
    • OS gestisce parti di un sistema complesso
    • OS fornisce allocazione ordinata e controllata delle risorse

OS come gestore delle risorse

Un OS moderno deve gestire :

  • più programmi in esecuzione;
  • più utenti;
  • tenere traccia di quale programma sta usando quale risorsa;

Tra la gestione delle risorse troviamo il multiplexing delle risorse, che può essere :

  • nel tempo : più programmi fanno a turni per usare una risorsa (es. CPU e stampante)
  • nello spazio : ogni programma prende una parte della risorsa (es. memoria principale e disco)

Avvio del sistema - Booting the computer

Nella motherboard del PC in una memoria flash (non volatile) è memorizzato il firmware del BIOS (Basic Input-Output System).

Quando il computer è avviato, il BIOS viene eseguito :

  • inizializza la RAM e le altre risorse
  • esegue una scansione dei bus PCI/PCIe in modo da inizializzare i dispositivi
  • il primo settore dal device di avvio è letto nella memoria ed eseguito : questo settore contiene un programma che esamina una tabella delle partizioni in modo da determinare quale partizione è attiva
  • poi un secondo bootloader è letto dalla partizione scelta (attiva) : questo bootloader legge il OS dalla partizione
  • in fine viene caricato l’OS

ZOO dei OS

OS per Mainframe

I mainframe sono macchine enormi usate in grandi aziende e istituzioni. Le funzioni principali che offrono sono :

  • batch processing : eseguiti i job senza interazione dell’utenze (es. elaborazioni reclami)
  • elaborazioni transazioni : gestire tante piccole richieste simultanee (es. prenotazioni areo o transazioni bancarie)
  • timesharing : permettere a più utenti di eseguire job contemporaneamente (es. query database)

Un esempio di OS per mainframe è il OS/390 (successore del OS/360), utilizzato per applicazioni critiche come banche ed e-commerce. Questi OS stanno per essere gradualmente sostituiti da varianti UNIX (es. Linux).

OS per server

OS utilizzati su server che servono molti utenti contemporaneamente attraverso la rete. Le funzioni principali che offrono sono :

  • file sharing
  • database
  • stampa
  • web hosting

Gli internet service providers hanno molti server per i servizi per i loro clienti e per supportare infrastrutture critiche. Tra gli esempi di OS per srv abbiamo :

  • Solaris
  • FreeBSD
  • Linux (es. Ubuntu e Red Hat Linux )
  • Windows Server

OS per Personal Computer

Gli OS per i PC supportano un singolo utente con la multiprogrammazione e spesso architetture multiprocessore. Tra gli esempi abbiamo Linux, FreeBSD, Win 7 e OS X (Apple).

OS per smartphone e tablet

Il mercato di questi OS è dominato da Google con Android e Apple con iOS. Molti di questi dispositivi supportano CPU multicore, GPU, GPS, camere e altri sensori e numerose app di terze parti (oltre 3 milioni su Google Play Store).

OS per IoT e embedded

Tipicamente questi specifici OS sono leggere, con funzioni specifiche e limitati. Utilizzati per esempio in lavatrici, TV e auto. Una caratteristica principale è che in questi device tutto il software è nella ROM, questo vuol dire che non c’è bisogno di protezione tra le “applicazioni”. Tra gli esempi di OS abbiamo : Embedded Linux, QNX e TinyOS.

OS per Real-Time

Questi OS sono progettati per rispettare scadenze rigide nei processi industriali e militari (tempo come parametro chiave). Abbiamo due tipologie :

  • hard real-time : risposte immediate e precise (es. robotica industriale)
  • soft real-time : occasionali ritardi tollerati (es. streaming multimediale)

Tra gli esempi di questi OS abbiamo : eCos e VxWorks.

OS per Smart Card

I più piccoli OS vengono eseguito nelle carte smart, che sono dispositivi di dimensioni di una carta di credito che contengono un chip CPU.

Un esempio di questi dispositivi sono le SIM card.

Alcune smart card sono java-oriented dove i java applet sono installati nella carta e sono interpretati da un interprete JVM contenuto nella ROM. Alcune carte possono gestire molte java applet contemporaneamente, portando alla multiprogrammazione e alla necessità di schedularle.


Concetti_base