Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Antonino Mazzeo » 1.Introduzione ai Sistemi Operativi


Sistemi Operativi

Sommario della lezione

  • Introduzione ai Sistemi Operativi
  • Cenni Storici
  • Classificazione

Perché studiare i SO

Non ci sono molti sistemi operativi in corso di sviluppo

E’ molto improbabile che sviluppiate un sistema operativo durante la vostra carriera professionale

… allora, perché si studiano?

Perché studiare i SO

  • I SO sono dovunque – essi hanno la funzione primaria di gestire le risorse di calcolo.
  • Un SO fornisce un’astrazione delle risorse… dando l’”illusione” all’utente di avere una memoria “infinita”, una CPU veloce, dedicata ad ogni utente.
  • I SO forniscono un accesso uniforme (virtualizzato) a risorse estremamente eterogenee.
  • I SO costituiscono il punto di incontro tra hardware e software.
  • La conoscenza della struttura interna e dei principi di funzionamento di SO è indispensabile per la programmazione di sistema e permette di scrivere programmi più efficienti.

I Sistemi Operativi

Un Sistema Operativo (S.O.) è un insieme di programmi che operano sull’hardware di un calcolatore con l’obiettivo di:

  • semplificare lo sviluppo di programmi
  • realizzare politiche di gestione delle risorse hardware

Il Sistema Operativo si pone come interfaccia tra l’utente (o il software) e l’hardware, fornendone un’astrazione

I Sistemi Operativi

Il SO…

  • … definisce una macchina virtuale (o estesa) e quindi un insieme di astrazioni che semplificano lo sviluppo delle applicazioni (ad es. il SO fornisce il concetto di FILE invece di quello di “insieme di byte memorizzati in un disco”)
  • … realizza politiche di gestione delle risorse hardware definendo i criteri con cui assegnare una risorsa a fronte di più richieste concorrenti

Struttura di un Sistema di elaborazione

Struttura di un sistema di elaborazione

Struttura di un sistema di elaborazione


Struttura di un Sistema di elaborazione

Struttura di un sistema di elaborazione

Struttura di un sistema di elaborazione


Evoluzione dei SO …

… guidata dall’evoluzione dell’hardware.

Tabella del Fattore migliorativo

Tabella del Fattore migliorativo


Un po’ di storia …

Prima fase: Hardware costoso, personale economico

  • Utente alla console: sistemi “single-user”
  • Sistemi Batch
  • Sistemi Multiprogrammati

Seconda fase: Hw economico, personale costoso

  • Sistemi Time-sharing (utenti che utilizzano un terminale economico per collegarsi ad un server condiviso)

Un po’ di storia …

Terza fase: Hw molto economico, personale molto costoso

  • Personal Computing: un sistema per utente
  • Distributed Computing: tanti sistemi per utente

Quarta fase: Servizi a maggiore qualità

  • Sistemi Operativi Real-Time
  • Sistemi transazionali

Single User System

  • SO = loader + librerie di procedure comuni
  • Svantaggio: bassa percentuale di utilizzo di risorse hardware (costose)
Stima della percentuale di utilizzo

Stima della percentuale di utilizzo


Batch System (sist. a lotti)

  • Privilegiano lo sfruttamento del sistema a prezzo dell’assenza di interazione da parte dell’utente, che deve fornire in via preliminare il suo lavoro.
  • I lavori sono raggruppati in lotti e memorizzati su supporto magnetico.
  • Il S.O. gestisce l’avanzamento sequenziale dei singoli lavori.
  • Le unità di ingresso/uscita sono virtualizzate (spooling)

Batch System (sist. a lotti)

  • SO = loader + sequenziatore + processore di output.
  • Vantaggi: la macchina è meglio sfruttata grazie alla assenza di interazione con l’utente. Le operazioni di I/O sono più veloci.
  • Svantaggi: l’utente può anche attendere ore o giorni per avere i risultati del proprio lavoro.

Sistemi monoprogrammati

Il processore deve attendere per il completamento delle istruzioni di I/O prima di procedere.

Sistemi monoprogrammati

Sistemi monoprogrammati


Sistemi batch multiprogrammati

  • Diversi job sono caricati in memoria contemporaneamente e la CPU viene alternativamente assegnata a ciascuno di essi.
  • Quando un Job deve attendere un’operazione di I/O, la CPU viene assegnata ad un altro job.
  • Richiede qualche forma di gestione della memoria e di scheduling della CPU.
  • l’hardware deve supportare gli interrupt di I/O e il DMA.
Sistemi batch multiprogrammati

Sistemi batch multiprogrammati


Multiprogrammazione

Quando un lotto ha bisogno di attendere il completamento di un’operazione di I/O, il processore può essere assegnato ad un altro lotto.

Multiprogrammazione a due programmi

Multiprogrammazione a due programmi


Multiprogrammazione

Multiprogrammazione a tre programmi

Multiprogrammazione a tre programmi


Esempio

Schema dell’esempio

Schema dell'esempio


Istogrammi di utilizzo

Utilization hystograms

Utilization hystograms


Effetti della Multiprogrammazione

Tabelli sugli effetti della multiprogrammazione

Tabelli sugli effetti della multiprogrammazione


Time Sharing

  • Utilizza la multiprogrammazione per la gestione di un gruppo di task interattivi.
  • Il tempo del Processore è condiviso tra più utenti.
  • Più utenti accedono al sistema connettendosi simultaneamente da più terminali.
  • Vantaggio: l’utente opera come con un sistema dedicato.
  • Svantaggio: l’overhead introdotto dal S.O.

Sistemi Timesharing

Un “timer interrupt” è utilizzato per la condivisione della CPU.

Schema esplicativo

Schema esplicativo


Batch Multiprogramming versus Time Sharing

Tabella comparativa

Tabella comparativa


Personal Computing

Personal Computing System

  • Tipicamente single user
  • L’utilizzazione delle risorse non è un obiettivo di primaria importanza
  • Enfasi su API e user interface

Evoluzione

  • Inizialmente: il SO era un semplice fornitore di servizi (cfr. DOS che era a tutti gli effetti un gestore di interruzioni)
  • Attualmente: Sistemi multitasking e multiutente

Sistemi Transazionali

  • Trattasi di sistemi interattivi destinati ad eseguire transazioni, ossia sequenze di operazioni elementari che richiedono l’esecuzione ciascuna di un programma o di una sua parte.
  • In un sistema transazionale l’utente interroga ed aggiorna archivi.
  • Tutti gli utenti operano sugli stessi archivi e richiedono l’esecuzione delle stesse operazioni elementari, fornendo i propri dati.

Sistemi in tempo Reale

Il sistema in tempo reale è un sistema la cui correttezza dipende dalla velocità di esecuzione dei task.

Tipicamente sono sistemi che gestiscono programmi che interagiscono con l’ambiente esterno attraverso periferiche e che garantiscono ai dati di ingresso risposte in un tempo utile rispetto alle costanti di tempo proprie dell’ambiente esterno.

Il tempo utile dipende dall’applicazione e quindi dall’ambiente esterno.

Sistemi in tempo Reale

Introducono nuovi concetti e nuove problematiche

  • Sistemi con un “doppio” concetto di correttezza:
  • Logica (” it does the right thing” )
  • Temporale (“it does it on time”)

Tipicamente sono sistemi in cui la proprietà di “predictability” è molto più importante delle “performance”

I Sistemi Operativi


Prossima lezione

Richiami

I materiali di supporto della lezione

P. Ancilotti, M.Boari, A. Ciampolini, G. Lipari, "Sistemi Operativi", Mc-Graw-Hill (Cap.1)

Introduzione ai sistemi operativi

  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93