Sistemi operativi: differenze tra le versioni
Nessun oggetto della modifica |
|||
Riga 1: | Riga 1: | ||
{{wikiversità|facoltà=Ingegneria|corso= |
{{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
- Wikipedia contiene una voce su Sistemi operativi
- Wikiversità contiene lezioni su sistema operativo
- Wikinotizie contiene notizie di attualità su sistema operativo
- Wikimedia Commons contiene immagini o altri file su sistema operativo
Collegamenti esterni
- [1] - Sito ufficiale di Minix, il sistema di A. Tanenbaum
- [2] - L4
- [3] - Appunti di Sistemi Operativi