Sistemi operativi: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 1: Riga 1:
{{wikiversità|facoltà=Ingegneria|corso=Sistemi operativi}}
{{wikiversità|facoltà=Ingegneria|corso=Ingegneria informatica}}


==I Sistemi Operativi==
==I Sistemi Operativi==

Versione delle 13:30, 14 giu 2007

Wikiversità
Questo libro può essere utile per
il corso di Ingegneria informatica dell'area di Ingegneria

I Sistemi Operativi

Un sistema operativo è il programma che agisce da intermediario fra utente e macchina. Fornisce infatti all'utente vari strumenti, quale un ambiente per l'esecuzione di altri programmi e una visione astratta del hardware.

Evoluzione

I sistemi operativi nascono e si sviluppano di pari passo con la complessità delle macchine su cui nascono. La prima generazione dei computer, attorno agli anni '50, non prevedeva un sistema operativo, ma bensì un operatore umano che gestisse tutti gli aspetti delle operazioni di controllo. Con la seconda generazione, a cavallo degli anni '60, le operazioni dovevano essere automatizzate. Ma è solo con la terza generazione che si assiste alla nascita dei veri e propri sistemi operativi moderni. Un sistema operativo può essere di vari tipi, cioè multi/monoutente e multi/monoprocesso. Storicamente, si tende a suddividere così i sistemi operativi:

  • monoutente, monoprocesso: esempi MS DOS, Mac System 1-5
  • monoutente, multiprocesso: esempi Windows 1.0, 2.0, 3.0, 3.1, 3.11, 95, 98, Me, Mac System 6-7, Mac OS 8
  • "multiutente", multiprocesso: esempi Windows NT, 2000, XP, 2003, Mac OS 9
  • multiutente, multiprocesso: esempi Unix, GNU/Linux, Mac OS X, BSD

Un sistema multiprocesso ha ovviamente un maggior numero di vincoli imposti su memoria e risorse, che un sistema monoprocesso. Infatti, mentre in origine il problema non si poneva (non esistendo nemmeno un sistema operativo), già con la seconda generazione di processori il problema delle risorse era di primissimo piano.

Famiglie di sistemi operativi

I primi sistemi operativi erano, per loro natura, sistemi monolitici, data la bassissima necessità di uso di interfacce particolari, in quanto tutto veniva fatto apposta sull'hardware che si utilizzava. Erano semplicemente delle applicazioni che gestivano e monitoravano i processi che venivano eseguiti sulla macchina.

Presto arrivò il paradigma di programmazione ad oggetti. Con esso arrivarono i cosiddetti sistemi modulari con i loro vantaggi e i loro svantaggi. Fondamentalmente, nel kernel monolitico era necessario avere tutti i driver caricati nel sistema, il che garantiva una grande velocità, ma nel contempo aumentava le risorse necessarie. Al contrario un kernel modulare è generalmente molto leggero, ma aumenta il suo tempo di accesso ai driver che sono salvati in moduli esterni.

Esiste una ulteriore famiglia di sistemi modulari, detti a microkernel, che godono di una ulteriore leggerezza del processo. In questo caso anche alcune funzioni tipiche del kernel vengono eseguite da elementi esterni al kernel in senso stretto. Questo modello viene spesso associato al modello client-server. In effetti ogni servizio è garantito da una particolare applicazione.

È infine necessario notare un ulteriore paradigma: il modello a livelli gerarchici. Questo, realizzato nel sistema THE, riprende in alcuni aspetti l'idea dei layer tipica del mondo delle comunicazioni.

I Processi

Libri correlati

Altri progetti

Collegamenti esterni

  • [1] - Sito ufficiale di Minix, il sistema di A. Tanenbaum
  • [2] - L4
  • [3] - Appunti di Sistemi Operativi