Caricare documenti e articoli online 
INFtub.com è un sito progettato per cercare i documenti in vari tipi di file e il caricamento di articoli online.


 
Non ricordi la password?  ››  Iscriviti gratis
 

La struttura modulare di un sistema operativo - Il Nucleo, Gestione della Memoria

informatica



La struttura modulare di un sistema operativo


In generale, un sistema operativo è organizzato a diversi livelli, ognuno con compiti specifici.

Ogni livello vede quelli sotto stanti come una macchina che svolge determinate funzioni.

Il centro è rappresentato dall'hardware, su cui agisce solamente il nucleo. Tale modello prende il nome di struttura a buccia di cipolla, che indica chiaramente che ogni livello sfrutta solo le funzioni di quello immediatamente sottostante; se un livello richiama funzioni di livelli più bassi di quello sottostante, si hanno complicazioni progettuali nel momento in cui si devono rivedere alcuni moduli.



SISTEMA OPERATIVO









In un'azienda le funzioni di un ruolo vengono controllate dalla persona di livello imme­diatamente superiore; il dirigente andrà a verificare eventuali problemi con i suoi colla­boratori e non direttamente con i dipendenti, se non in casi eccezionali: così anche nei sistemi operativi, gli ac 313g67d cessi ai livelli più bassi sono rari e dettati da ragioni di efficienza.





1.1 Il Nucleo


Il nucleo, chiamato anche kernel (nocciolo), è la parte del sistema operativo più vicina alla macchina, ed è strettamente dipendente dall'hardware. I microprogrammi che lo compongono sono chiamati primitive del nucleo, e sono scritte in linguaggio macchina, specifico di un determinato microprocessore.

Le funzioni del nucleo sono:

creazione e terminazione dei processi,

assegnazione della CPU ai diversi processi,

sincronizzazione tra i processi,

sincronizzazione dei processi con l'ambiente esterno.


Quando si richiede l'esecuzione di un programma al calcolatore, è necessario che questo provveda a mettere a disposizione del programma le risorse di cui ha bisogno.

Le risorse principali delle quali il programma necessita sono:

il tempo di utilizzo del processore,

la memoria.


Per quanto riguarda il primo, occorre dire che il computer deve essere in grado di garan­tire che ogni programma del quale si chiede l'esecuzione possa terminare, e quindi deve dedicare del tempo alla sua esecuzione, eventualmente dividendo il tempo complessiva­mente disponibile tra più programmi in esecuzione. Questo obiettivo può essere ottenuto in modi diversi, in particolare:

assegnando tutto il tempo macchina disponibile ad un singolo programma finché que­sto termina e passando poi al successivo;

assegnando un quanto di tempo a tutti i programmi in successione, durante la loro esecuzione.

Il primo criterio di assegnazione è tipico dei sistemi detti uniprogrammati, mentre il secondo caratterizza il funzionamento dei sistemi multiprogrammati.


1.2 Gestione della Memoria


Per quanto concerne la gestione della memoria, in quasi tutti i sistemi essa viene divisa in blocchi logici che vengono chiamati pagine o segmenti a seconda del modo in cui vengono costruiti ed usati.

Una pagina di memoria è un blocco di dimensione fissa, che viene assegnato tutto insieme ad un programma che ne faccia richiesta: in altre parole, quando un programma necessita di nuova memoria per la sua prosecuzione, ad esso viene assegnata una pagina intera indipendentemente da quanta ne servirebbe in effetti. Se un programma ha biso­gno di spazio dove mettere pochi o molti dati non fa differenza: comunque gli verrà assegnata una nuova pagina intera.

Un segmento, viceversa, non ha una dimensione predeterminata, ma variabile a seconda delle richieste del programma: il sistema risponde alle richieste di memoria dei program­mi fornendo a ciascuno solo quella necessaria.

Il vantaggio della gestione a pagine è soprattutto la semplicità: per tenere nota della situazione di ciascun programma attivo è sufficiente una tabella che metta in corrispon­denza ciascuna pagina con il programma cui è assegnata.

Con la gestione a segmenti, la tabella si complica, perché i segmenti non sono messi in posizioni fisse della memoria, e quindi per ciascun segmento occorre tenere nota anche di dove si trova e di quanto spazio occupa, oltre che del programma cui è assegnato.


I vantaggi della gestione a segmenti rispetto a quella a pagine sono almeno due:

non si spreca memoria perché a ciascun programma si assegna solo quella necessaria;

si possono scrivere programmi già divisi in segmenti, in modo che non sia necessario ricorrere frequentemente alla lettura di segmenti nuovi.


I segmenti vanno visti come tecnici specializzati: ogni segmento va costruito in modo che si possa occupare in modo il più possibile completo di un problema, con un minimo bisogno di interventi da parte di altri segmenti. In tal modo, quando il programma ne richiede l'intervento si può prevedere che esso non avrà bisogno di altri segmenti per un certo periodo di tempo.

Viceversa, con la gestione a pagine questo non si verifica, perché il programma viene diviso in modo arbitrario e può succedere che le istruzioni contenute in una pagina facciano riferimento a dati contenuti in un'altra, e così diventa necessario continuare a cambiare le pagine assegnate.

In sintesi, la gestione a segmenti ha caratteristiche di maggiore efficienza dal punto di vista della frequenza con cui occorre aggiornare la tabella: ogni volta che il sistema deve intervenire per rispondere ad una richiesta sottrae tempo ai programmi, e questo può rallentare sensibilmente la loro esecuzione.


1.3 Gestione delle periferiche


Il modulo di gestione delle periferiche consente l'utilizzo delle periferiche da parte degli utenti a livello superiore, lasciando al sistema operativo tutti gli aspetti di gestione riguardanti le loro caratteristiche fisiche.


Mette a disposizione le periferiche virtuali, gestendo in modo non visibile agli utenti i problemi di utilizzo concorrente, rendendo più efficace e ottimizzato l'uso delle periferi­che reali con tecniche quali lo SPOOL: l'utente ha quindi l'impressione di avere a dispo­sizione comunque la risorsa richiesta, anche se in realtà questo avviene solo a livello virtuale, in quanto i moduli del sistema operativo assegnano la stessa risorsa a più utenti in tempi diversi.


Nel sistema operativo mono-utente (nei personal computer) lo schema è più semplice, perché essendoci un solo processo principale le risorse (per esempio, la memoria centra­le) sono a disposizione di quell'unico processo. Funzioni di spooling vengono rese dispo­nibili in vista dell'inserimento del sistema mono-utente in ambienti di rete dove è neces­sario condividere alcune risorse.

1.4 File System


Il File System è il modulo del sistema operativo che gestisce i dati relativamente alla loro organizzazione nelle memorie di massa.

Le sue funzioni principali sono:

rendere trasparente all'utente l'utilizzo degli archivi su disco, nascondendo i problemi relativi alla memorizzazione fisica e creando una struttura logica;

consentire l'accesso ai file in lettura e scrittura, risolvendo i problemi di concorrenza che potrebbero verificarsi in regime di multiprogrammazione;

predisporre funzioni di utilità quali la lista dei file, la loro cancellazione, duplicazione,

disposizione nella struttura logica;

protezione delle informazioni sia per quanto riguarda la loro integrità che la loro

riservatezza.


Il File System organizza quindi i file nelle memorie di massa, di solito con directory (struttura gerarchica ad albero) e consente all'utente di organizzare le applicazioni sulle stesse, rendendo disponibili le proprie funzioni al livello superiore che deve interfacciarsi con l'utente.

1.5 L'interprete dei comandi


Le prestazioni del sistema operativo vengono attivate dall'utente o dalle applicazioni con modalità differenziate a seconda del grado di sviluppo del sistema operativo stesso, in particolare del livello di interprete dei comandi, ossia quel livello direttamente a contat­to con l'utente finale. Una possibilità è quella di fornire da tastiera il comando, con i parametri necessari, corrispondente alla funzione richiesta. Il comando viene letto dall' interprete di comandi del sistema operativo. che controlla la correttezza sintattica, e in caso positivo ne attiva la funzione. Se il sistema operativo ha un'interfaccia grafica, le varie funzioni e i vari comandi possono essere attivati attraverso la selezione di menu a tendina o attraverso l'uso di apposite icone.


L'interprete di comandi viene spesso indicato con il termine inglese shell.

L'interprete di comandi consente all'utente di specificare le funzioni richieste attraverso un'interfaccia utente, che ha subito negli anni una continua evoluzione per rendere sempre più amichevole l'utilizzo delle risorse di un sistema di elaborazione soprattutto da parte di utenti non specialisti:

a linea di comando: sono di questo tipo sistemi operativi come UNlX e DOS: l'utente scrive sulla tastiera il comando, che generalmente appare a video (il quale svolge la funzione di eco alla battitura).

a menu: è presente in una parte dello schermo un elenco di comandi, azionabili con la pressione di un tasto, per mezzo dei quali si può accedere a funzioni o a sottomenu.

grafica o WIMP (Windows, Icons, Mouse, Pointer): le funzioni di sistema operativo, il software di base, i file, i programmi applicativi vengono rappresentati graficamente sullo schermo nella forma di icone autoesplicative, che vengono selezionate da un puntatore comandato da un mouse. Gli oggetti citati (finestre, icone, mouse e puntatore) costitui­scono gli strumenti di base della cosiddetta interfaccia grafica o GUI (Graphical User Interface), che viene utilizzata soprattutto nei sistemi operativi per personal computer.








Privacy




Articolo informazione


Hits: 34570
Apprezzato: scheda appunto

Commentare questo articolo:

Non sei registrato
Devi essere registrato per commentare

ISCRIVITI



Copiare il codice

nella pagina web del tuo sito.


Copyright InfTub.com 2024