I sistemi operativi

Materie:Riassunto
Categoria:Informatica

Voto:

1 (3)
Download:893
Data:24.04.2007
Numero di pagine:10
Formato di file:.doc (Microsoft Word)
Download   Anteprima
sistemi-operativi_12.zip (Dimensione: 11.94 Kb)
trucheck.it_i-sistemi-operativi.doc     53 Kb
readme.txt     59 Bytes


Testo

I SISTEMI OPERATIVI

Lo sviluppo tecnologico ha compiuto in tempi brevissimi passi tali da consentire miglioramenti enormi nella produzione dei dispositivi elettronici. Ad esempio, oggi è possibile per molti utenti privati e piccole aziende avere accesso a grandi capacità di calcolo a costi ridotti. Aumenta così in misura maggiore il numero di persone usano il computer per i motivi più disparati, per lavoro e per svago. Il mercato del computer si è popolato di molti clienti privi di conoscenze tecniche approfondite, che richiedono programmi user friendly. Per l’utenza privata questa è una necessità che i produttori non possono trascurare, perché il cliente che adopera il computer a casa desidera poterlo fare senza dover ricorrere a consulenze di tecnici per ogni problema. Per l’utenza aziendale, la facilità d’uso è una qualità dei programmi molto desiderabile, che consente di diminuire i costi dell’addestramento dei dipendenti.
Il sistema operativo è un programma, o meglio, un insieme di programmi, scritto allo scopo di rendere disponibili all’uso le risorse di calcolo e i dispositivi collegati al computer. Il sistema operativo è in grado di accedere anche a dispositivi non previsti inizialmente, purchè questi vengano forniti con il loro corredo del software necessario, comunemente chiamato device driver. Sui sistemi operativi moderni questo compito viene svolto spesso in modo automatici, o comunque senza intervento di personale specializzato. I dispositivi realizzati in tecnologia plung and play (inserisci e usa) colloquiano con il sistema in modo tale da farsi riconoscere e richiedere l’istallazione dei driver corretti. Un device driver scritto per uno specifico dispositivo può non funzionare con un altro simile ma non identico. Questo non significa necessariamente che i dispositivi debbano essere identici. È sufficiente che vengano rispettate alcune caratteristiche principali ben note. Di conseguenza, molti dispositivi hardware vengono costruiti secondo standard affermati, che ne regolamentano diversi aspetti come la dimensione, le funzionalità supportate e i comandi che si possono impartire al dispositivo. Il sistema operativo può essere di 2 tipi: aperto e proprietario. Il primo è costruito in modo da poter operare con una molteplicità di dispositivi, che possono essere reperiti sul mercato senza dover fare riferimento ad una ristretta cerchia di produttori. Un sistema operativo aperto permette l’uso di molti dispositivi hardware standard senza imporre particolari condizioni. Il secondo, invece, è scritto per essere eseguito su un insieme ristretto e ben specifico di macchine, corredate o meno di specifici dispositivi. L’esigenza dei sistemi proprietari è giustificata dal fatto che soddisfano ad esigenze specifiche in modo molto efficace. La struttura formale di un sistema operativo è gerarchica: questo significa che i programmi che lo compongono si collocano a livelli diversi, si servono di programmi che stanno a livelli sottostanti e servono i programmi dei livelli superiori. All’interno di ogni livelli i programmi scritti per risolvere un problema vengono raggruppai in moduli. Ogni procedura standard per mezzo della quale il modulo mette a disposizione i servizi è detta primitiva. Questi moduli permettono di richiedere risorse ai dispositivi usando comandi più comprensibile. Si dice che virtualizzando i dispositivi, essi sono in grado di svolgere operazioni complesse come se fossero operazioni elementari. Un operazione logica corrisponde all’esigenza dell’utente di ottenere un risultato; la corrispondente operazione fisica consiste nell’eseguire molte operazioni elementari per ottenere il risultato voluto dall’utente. Quindi possiamo dire che un modulo è una collezione di routine che attivano i meccanismi fisici necessari per risolvere problemi logici di uno stesso tipo. Si parla di grado di portabilità del sistema operativo, intendendo la sua attitudine ad essere eseguito su macchine diverse: tale grado è tanto maggiore quanto è minore il costo delle modifiche da riportare.
I sistemi operativi gestiscono le risorse del sistema in modo diverso a seconda dell’esigenze dell’utente. Proprio per questo bisogna attuare una scelta ben precisa riguardo al sistema operativo che si vuole avere. I sistemi operativi hanno due modalità di funzionamento, monoprogrammato e multiprogrammato. Un sistema viene detto monoprogrammato quando tutti i processi si riferiscono ad un solo programma, e multiprogrammato quando si riferiscono a più programmi e quindi bisogna attuare la politica di gestione che sceglie come fare avanzare i codici dei vari programmi.
I sistemi operativi gestiscono diversi dispositivi, come:
• unità centrali di processo CPU
• memorie centrali MC
• unità di memoria di massa MM
• dispositivi di entrata e/o uscita I/O
• gli elaboratori di canale
• i dispositivi multimediali
Il tempo che passa tra l’inizio e la fine del programma si può dividere in tre intervalli che vengono chiamati tempo utente, tempo sistema e tempo inattivo, tempo totale è la loro somma.
Tempo utente → esecuzioni di istruzioni del programma utente
Tempo sistema → esecuzioni di istruzioni del sistema operativo
Tempo inattivo → quando si attende un’istruzione dall’utente
System overhead→ quando il sistema ha un carico di lavoro
Una tipologia della politica di gestione è il round robin (a rotazione) in cui tutti i programmi si mettono in coda per l’utilizzo della risorsa.
Time sharing (a partizione di tempo) → quando il suo uso viene concesso per un tempo che non può superare una soglia.
Time slice →quando si attribuisce un tempo uguale per tutti quelli che lo utilizzano.
Le tre configurazioni fondamentali con le quali un sistema viene offerto agli utenti sono: sistema dedicato, sistema batch, sistema interattivo multiutente, sistemi transazionali e i sistemi real time.
• I sistemi dedicati sono i sistemi che prevedono l’utilizzo da parte di un solo utente per volta. I sistemi dedicati attuali supportano il multitasking che è un tipo particolare di multiprogrammazione nella quale più applicazioni vengono eseguite contemporaneamente sulla stessa macchina scambiando tra loro dati e risultati.
• In un sistema batch l’utente non interagisce con il calcolatore durante l’esecuzione dei programmi. Al contrario, occorre preparare prima di tutto il lavoro da svolgere, e al termine si ottiene il risultato. Il lavoro batch può quindi essere considerato l’opposto di interattività. Le modalità batch non sempre sono le più convenienti perché non sono in grado di darti simultaneamente dei dati di output quindi non si possono effettuare stampe possono essere effettuate solo ad operazioni ultimate.
• Sistemi interattivi multiutente hanno lo scopo di risolvere i lati negativi dei sistemi batch, ad esempio l’interattività e viene risolto attraverso le periferica interattiva.
• I sistemi transazionali sono strutturati appositamente per gestire le transazioni ossia le operazioni di updating di archivi e basi di dati di dimensioni rilevanti.
• In un sistema real time un’elaborazione può considerarsi corretta non solo quando fornisce risultati esatti, ma soprattutto quando li fornisce in tempo
Il processo definisce un insieme formato da un elenco finito di azioni da eseguire in sequenza e dai dati che vengono elaborati dalle stesse azioni. Viene chiamato processore l’oggetto che causa l’evoluzione del processo. In memoria centrale possiamo trovare processi in esecuzioni, pronti e in attesa di i/o; invece, in memoria di massa possiamo trovare i processi parcheggiati. Il sistema operativo interviene su questa situazione appena termina l’assegnazione dell’unità centrale l processo attuale. Questo può avvenire per 2 motivi:
• Il processo termina
• Il time slice
• Il processo richiede un’operazione di i/o.
Quando un evento avviene in tempi che dipendono da fattori esterni al sistema viene detto asincrono.
L’Asincrono è il controllo dell’attività del computer nelle quali una specifica operazione viene lanciata in esecuzione non appena viene ricevuto il segnale che l’operazione precedente è stata completata e quindi secondo tempi non prevedibili. Siccome i tempi del fenomeno non dipendono da fattori esterni alla macchina, si parla in questo caso di interruzione sincrone. Il Sincrono è il controllo delle attività del computer per il quale gli eventi sequenziali avvengono secondo tempi predefiniti.

Si possono distinguere 3 tipi fondamentali di interruzione:
• Interrupt asincroni, generati solo dall’hardware, che servono a segnalare alla CPU eventi non correlati al suo orologio interno, come la fine di una stampa o di una scrittura su disco;
• Interrupt sincroni generati dall’hardware, che segnalano eventi accaduti in relazioni all’orologio interno;
• Interrupt sincroni provocati via software, usati per accedere a routine particolari.
Per entrare nel dettaglio delle funzioni svolte dal sistema operativo, si utilizza un modello che consente di mettere a fuoco i principali meccanismi di interazione tra le varie parti che lo costituiscono e di queste con l’esterno. La schematizzazione usata è di tipo gerarchico e viene detta a macchine virtuali. Una macchina virtuale è un oggetto costituito da una macchina più semplice, in grado di eseguire un certo insieme di operazioni fisiche, e da un modulo che fornisce un’interpretazione logica di tali operazioni: l’insieme costituisce una nuova macchina in grado di eseguire operazioni logiche. Il modello onion skin (buccia di cipolla) rappresenta il sistema operativo come una successione di strati costruiti sopra un nocciolo costituito dalla macchina hardware, ciascun dei quali rappresenta un livello di macchina virtuale.
Il nucleo è la parte del sistema operativo più vicino all’hardware, ed è strettamente dipendente dall’hardware. Le funzioni fondamentali del nucleo sono:
• Avvio e terminazione dei processi
• Assegnazione della CPU ai diversi processi
• Sincronizzazione tra i processi
• Sincronizzazione dei processi con l’ambiente esterno.
Le norme che regolano queste assegnazioni vengono chiamate politiche di scheduling. Il gestore dei processi (scheduler) come il processo che si occupa delle interruzioni deve avere priorità maggiore a qualunque processo. I processi a priorità più elevata possono essere favoriti in diversi modi:
• Assegnando loro time slice più lunghi
• Scegliendoli più spesso all’interno delle code di priorità.
La gestione della memoria, secondo livello del modello macchine virtuali, simula l’esistenza di una pluralità di unità di memoria centrale, ciascuna associata ad una dei processi virtuali generati dal nucleo, mascherando ai livelli successivi la limitazione fisica della memoria centrale reale. La memoria viene ripartita secondo il metodo partizioni fisse; cioè la memoria viene ripartita in quantità e dimensioni fisse. Ogni partizione può contenere un solo codice alla volta e se il programma è di dimensioni inferiori allo spazio che occupa, lo spazio restante viene considerato inutilizzabile. La scelta della partizione dove caricare un nuovo programma può essere fatta in due modi: first fit, best fit. La seconda soluzione è meno veloce della prima ma più razionale; ma il first fit è più efficace del best fit: infatti si perde meno tempo usando il primo posto libero o creandolo se non si trova. Nel caso in cui un programma è di dimensioni estese viene utilizzato il metodo overlay (sovrapposizione), una parte del programma viene caricata in memoria centrale e la restante in memoria di massa quindi viene virtualizzata. La gestione della memoria virtuale si realizza attraverso due diverse tecniche di suddivisione dei programmi in blocchi:
• Paginazione, ogni programma viene considerato diviso in blocchi di eguali dimensioni detti pagine logiche; analogamente la memoria centrale viene divisa in pagine fisiche. Ad ogni accesso alla memoria si verifica se la pagina richiesta è presente in memoria centrale e se non lo è il sistema operativo provvede a caricarla in una pagina fisica libera. Se tutte le pagine fisiche sono occupate, occorre scaricare una delle pagine presenti in memoria centrale.
• Segmentazione, la suddivisione del programma viene effettuata sulla base di criteri logici e può essere controllata dal programmatore. Ciascun blocco risultante da tale suddivisione ha lunghezza arbitraria e viene detto segmento.
In conclusione va rivelato che le operazioni di gestione della memoria vengono realizzate dalla memory management unit(MMU). La MMU contiene un’area di memoria entro la quale vendono impiantate le tabelle di mapping tra gli indirizzi logici e fisici.
Le periferiche virtuali, terzo livello del modello macchine virtuali, consente di definire i dispositivi virtuali. In questo modo l’utente può utilizzare le periferiche senza preoccuparsi delle caratteristiche fisiche e delle operazioni fisiche che vengono eseguite per svolgere la funzione logica richiesta. Inoltre attraverso questo modulo il sistema operativo offre a diversi utenti la possibilità di aumentare in modo virtuale il numero delle periferiche stesse attraverso lo spooling, cioè sistema in linea di operazione periferica simultanea; esso consente a diversi processi l’uso contemporaneo della stessa periferica. Nei sistemi interattivi multiutente è frequente il caso in cui sono collegate stampanti in numero inferiore a quello dei terminali, perciò se più utenti richiedono contemporaneamente l’esecuzione di comandi che generano output stampato, ci si viene a trovare in una situazione di conflitto. Questa può essere risolta generando gli output dapprima su disco (file output) in aree riservate ai vari utenti e lanciandone successivamente la stampa di uno per volta.
Il file system, quarto livello del modello a macchine virtuali, provvede alla virtualizzazione delle memorie di massa e genera una macchina costituita da una pluralità di dispositivi indipendenti uno dall’altro, ciascuno dei quali ha a disposizione tutte le risorse virtuali che gli possono occorrere. Tutto ciò che viene registrato su memoria di massa prende il nome di file. Il file system consente di riferirsi alle informazioni registrate in termini di identificatori piuttosto che di indirizzi fisici, adoperando allo scopo le direttrici che contengo per ciascun file alcuni dati significativi. La direttrice di livello più elevato è detta root. La struttura ad albero risulta composta da nodi non terminali (le direttrice) e nodi terminali (foglie) che sono i file veri e propri. I movimenti lungo l’albero corrispondono a caricamenti in memoria centrale delle diverse direttrici: quella presente in un certo momento è detta direttrice corrente ed i file in essa descritti possono essere individuati dal loro identificatore. Per individuare file descritti in altre direttrici si dovrà invece indicare il loro pathname. Quando il nome del file viene descritto elencando tutti i nodi che occorre attraversare a partire dalla root fino ad arrivare al fine, si dice che viene usato il pathname assoluto. Quando invece l’attraversamento inizia dalla direttrice corrente, si dice che il nome del file viene descritto con il pathnome relativo.
L’ultimo livello del modello a macchine virtuali è costituito dall’interprete comandi o shell, un programma che riceve in ingresso le richieste di esecuzione di operazioni, espresse usando il linguaggio comandi. Una componente importante degli interpreti è l’analizzatore sintattico, un programma che verifica la correttezza formale delle richieste dell’utente. Ancora più recentemente si è consolidato l’uso di interfacce grafiche per stabile il colloquio con il sistema operativo. A partire dall’accensione del computer, vengono attivati molti processi in successione, ciascuno dei quali è processo figlio rispetto al precedente. Quando il calcolatore viene accesso, occorre che alcune operazioni vengano eseguite per metterlo in condizione di funzionare normalmente. Occorre caricare il sistema operativo in memoria centrale, copiandolo dai supporti di memoria di massa. A ciò provvede un programma registrato su ROM chiamato IPL che assume il controllo della CPU all’accensione. L’IPl realizza il caricamento del sistema operativo in memoria centrale che prende il nome di bootstrap. La procedura di chiusura (shutdown) deve controllare le sessioni di lavoro aperte sui vari terminali e lanciare agli utenti un messaggio invitandoli a scollegarsi entro il tempo prefissato.

Esempio