I sistemi operativi

Materie:Appunti
Categoria:Informatica
Download:141
Data:22.10.2001
Numero di pagine:4
Formato di file:.doc (Microsoft Word)
Download   Anteprima
sistemi-operativi_6.zip (Dimensione: 4.3 Kb)
trucheck.it_i-sistemi-operativi.doc     16.5 Kb
readme.txt     59 Bytes


Testo

I sistemi operativi
1.
Il sistema operativo и un’insieme di programmi che governa e controlla l’uso delle componenti dell’elaboratore in modo che funga da interfaccia fra l’utente e l’hardware della macchina per non farlo interagire direttamente con l’elaboratore e in modo da ottenere la massima efficacia delle risorse (elemento hardware o software) disponibili. Questo avviene perchй una delle principali funzioni и proprio la ripartizione delle risorse fisicamente limitate fra le richieste disponibili e prende il nome di “Politiche di gestione”.

2.
Come abbiamo accennato prima l’utente non lavora direttamente con la parte fisica dell’elaboratore, ma usufruisce del sistema operativo che insieme all’ hardware forma la Macchina Virtuale. Essa rende piщ semplice il lavoro in quanto fornisce un’immagine astratta di tutte le risorse disponibili indipendentemente dal modo in cui esse lavorano.
I programmi che compongono un sistema operativo sono suddivisi in livelli gerarchici. I moduli del livello piщ basso si appoggiano direttamente sull’ hardware dell’elaboratore, quindi significa che macchine costruite su unitа centrali diverse non possono avere gli stessi moduli nel livello piщ basso; questo comporta che per spostare un sistema operativo da una macchina all’altra bisogna sostenere dei costi che variano a secondo della quantitа di sistema operativo da modificare; questo prende il nome di grado di portabilitа che aumenta quando и minore il costo delle modifiche necessarie.

Per classificare i sistemi operativi abbiamo vari metodi, fra questi se consideriamo il modo in cui un sistema operativo si presenta all’utente li possiamo distinguere in elaborazione a lotti oppure in elaborazione interattiva.
Invece per quanto riguarda il modo di operare, possiamo distinguere i sistemi di monoprogrammazione, multiprogrammazione o time sharing.

I. Elaborazione a lotti: I dati necessari all’elaborazione vengono accumulati in memoria ausiliaria durante un certo periodo di tempo e poi vengono elaborati tutti insieme senza dare all’utente la possibilitа di interagire.
II. Elaborazione interattiva: I dati necessari all’elaborazione vengono forniti e non appena vengono resi disponibili vengono elaborati producendo subito i risultati.
III. Sistemi in monoprogrammazione: Sono quei sistemi operativi che permettono l’esecuzione di un solo programma utente per volta. Questo sistema comporta risorse in’utilizzate per alcuni perodi di tempo (come la CPU in fase di attesa di I/O).
IV. Sistemi in multiprogrammazione: Sono quei sistemi operativi che permettono di far utilizzare all’utente piщ programmi per volta gestendo al meglio le risorse di sistema. Questo sistema comporta una riduzione del tempo di attesa della CPU nelle fasi di I/O ma rischia di monopolizzare la CPU se un programma non ha richieste di I/O a discapito degli altri che rimangono in attesa.
V. Sistemi in time sharing: Sono quei sistemi che utilizzano un metodo di tipo “temporale”. Questo sistema и stato inventato per cercare di evitare il problema dei sistemi in multiprogrammazione gestendo la CPU in modo tale da farla lavorare ad un programma per un determinato periodo di tempo, quando o il programma termina, o c’и una richiesta di I/O o scade il time slice (intervallo di tempo dato a disposizione del programma) la CPU passa all’elaborazione di un altro programma.

Le prestazioni di un sistema operativo sono date dal numero di programmi elaborati in un determinato periodo di tempo. Per valutare ciт ci occorre sapere alcuni parametri fondamentali che consistono nel tempo di lavoro della CPU (tcpu), tempo I/O e il numero dei programmi utente (N) che ci permetteranno di calcolare il %CPU (Attivitа della CPU), throughput (produttivitа del sistema), Ttotale (tempo totale )

Ttotale = Tempo I/O + Tcpu

Tcpu
%CPU = ______
Ttotale

N
throughput = ______
Ttotale

Questi valori appena calcolati ci consentiranno di valutare un sistema operativo e capire se cade in system overhead (situazione in cui un sistema operativo gestisce piщ programmi di sistema che programmi utente).

L’Interrupt и un meccanismo mediante il quale vengono comunicati alla CPU alcuni eventi ben precisi che influenzano lo stato di esecuzione di programmi. La CPU termina il ciclo di esecuzione di un’istruzione e quindi salva il registro di stato (registro contenente informazioni relative al programma) del programma corrente, esegue la routine di gestione e ritorna all’esecuzione del programma precedente riattivando il suo registro di stato. Le operazioni di gestione dell’interrupt vengono effettuate dall’interrupt handler.
Abbiamo vari tipi di interrupt:
I. Interni: I/O, errori di programma
II. Esterni: fine I/O, scadenza del quanto temporale, malfunzionamenti hardware
Ogni interrupt ha un livello di prioritа che determina quale interrupt deve essere risolto prima.

3.

Il nucleo del sistema operativo (kernel) и quell’insieme di moduli del sistema operativo che consentono la gestione dei processi e si trovano sempre in memoria principale. Fanno parte del nucleo lo schedulatore processi e lavoro, controllore del traffico, gestione delle interruzioni e procedura di sincronizzazione e comunicazione tra piщ processi per lo scambio dati.

Ogni processo puт trovarsi in vari stati:
I. Hold (attesa di esecuzione)
II. Ready (pronto per l’esecuzione)
III. Run (in esecuzione)
IV. Wait (in attesa)
V. End (terminato)
Vediamo l’esempio di un’esecuzione di un programma distinto in varie fasi:

1. Proponiamo un lavoro al sistema
2. Il sistema attraverso lo schedulatore dei lavori deve scegliere fra i programmi che si trovano nello stesso stato di attesa esecuzione.
3. Al momento in cui sceglie il nostro lo porta in memoria centrale e cambia il suo stato, da hold passa a ready. Questo avviene grazie al fatto che un lo schedulatore puт accedere alla lista di hold la quale contiene un JCB per ogni programma il quale contiene a sua volta informazioni utili a tale scopo (identificativo programma, occupazione in Kb, indirizzo di caricamento su memoria di massa.. etc..).
4. Il controllore del traffico cancella la lista JBC del nostro programma nella lista degli hold e ne inserisce una nuova PBC (stato processo, identificatore, registro di salvataggio, indirizzo di caricamento in memoria centrale, identificatori periferiche e files aperti) nella lista di ready.
5. Quando la CPU si libera e lo schedulatore di processi sceglie di eseguire fra tutti i processi in stato ready il nostro, passa da stato ready a stato run e avviene una modifica nel PBC sotto il campo che identifica lo stato.
6. Se non vi sono interruzioni il programma termina e passa dallo stato run allo stato end, quindi bisogna eliminare il PBC e dichiarare libera la memoriacentrale che occupava.

Esempio