Digita qui sotto quale materiale gratuito cerchi su atuttascuola, oppure mp3 didattici su www.gaudio.org

 

 

Home

Tesine

Relazioni

Riassunti

Temi

Italiano

Latino

Storia

Matematica

Ecdl

Forum maturità

Scienze

Inglese

Economia

Informatica

Università  

Esami stato

Greco

Geografia

Filosofia

Diritto

Fisica

Arte

Elettronica

Elementari

Medie

Professionali

Alternanza scuolalavoro

AltreMaterie

Dirigenti scolastici

Legislazione scolastica

E-mail

Newsletter

 

 

Il sistema operativo

appunti scolastici di informatica di Elena

Il sistema operativo (operating system) è un insieme di programmi che governa e controlla l’uso delle componenti del sistema di elaborazione permettendo all’utente un utilizzo trasparente ed efficace delle risorse disponibili.

Con il termine risorsa si intende un elemento che può essere hardware (cpu, memoria centrale) o software (dati, programmi)

Tramite questi sistemi operativi è stato possibile caricare in memoria centrale il programma da eseguire, attivare la cpu, richiedere la lettura di un dato memorizzato su memoria di massa, effettuare delle stampe.

Un’altra funzione del sistema operativo è quella di ripartire una risorsa che è fisicamente limitata fra le tante richieste possibili. Queste funzioni sono esportate tramite le politiche di gestione che definiscono le norme scelte per una gestione razionale delle risorse.

Possiamo affermare che un sistema operativo:

-funziona come interfaccia tra l’utente e l’hardware della macchina che in modo che l’utente non debba interagire direttamente con l’elaboratore..

-gestisce le risorse del sistema (cpu, memoria centrale, periferiche, informazioni) rispettando le politiche di gestione.

Struttura e funzionamento

Macchine virtuali La presenza del sistema operativo rende più semplice lavorare con il calcolatore in quanto fornisce un’immagine astratta di tutte le risorse disponibili indipendentemente da come queste funzionino. L’utente lavora con una macchina virtuale molto semplice da gestire, formata da hardware più sistema operativo. I programmi che compongono il sistema operativo sono suddivisi il livello di tipo gerarchico. I moduli del livello più basso si appoggiano direttamente all’hardware dell’elaboratore  e costituiscono la più semplice macchina virtuale.

Il grado di portabilità di un sistema operativo indica la possibilità di utilizzare il sistema operativo stesso su macchine con hardware diverso.

Modalità di funzionamento

Esistono molti tipi di sistema operativo: le routine che sono programmi eseguibili dalla cpu e come tali devono essere allocati in memoria centrale (zona dati e zona istruzioni).

Non tutti i programmi che costituiscono il sistema operativo possono risiedere contemporaneamente in memoria centrale solo il cuore del sistema operativo è sempre residente in memoria centrale.

Tipi di sistemi operativi

Il modo in cui il sistema operativo si presenta all’utente, cioè come il sistema operativo utilizza i dati di ingresso per produrre i risultati, possiamo distinguere sistemi che effettuano l’elaborazione a lotti e l’elaborazione interattiva.

Il modo di operare di un sistema operativo relativamente all’uso della cpu e all’elaborazione dei processi abbiamo le seguenti categorie: sistemi in monoprogrammazione, sistemi multiprogrammazione e sistemi in time sharing.

Nell’elaborazione a lotti i fati necessari all’elaborazione sono accumulati in una memoria ausiliaria durante un certo periodo di tempo.

L’elaborazione interattiva permette di colloquiare con il programma in esecuzione. L’uso di terminali consente all’utente di lavorare dal proprio posto di lavoro, come se l’unità centrale fosse solo a sua disposizione: in realtà più utenti vengono serviti ripartendo fra di loro le risorse del sistema.

I sistema in monoprogrammazione sono quei sistemi che permettono l’esecuzione di un solo programma utente alla volta.

Il sistema operativo deve caricare il programma in memoria centrale, inizializzare i registri per l’esecuzione ed è responsabile delle operazioni di ingresso e uscita dei dati. I sistemi di multiprogrammazione sono quei sistema operativo che permettono di allocare più programmi utente in memoria centrale e di ripartire fra questi l’uso delle risorse.

Per rendere indipendente la cpu dell’attività di ingresso e uscita dei dati  sono stati introdotti gli elaboratori di canale che sono piccoli elaboratori in grado di eseguire le operazioni di trasferimento dei dati fra la memoria centrale e le periferiche e viceversa.

Un particolare caso di multiprogrammazione è il multitasking. Particolarmente diffuso nei sistemi dedicati attuali, permette al sistema di elaborare più applicazioni (task) contemporaneamente.

Il time slice è un periodo durante il quale la cpu lavora x un programma.

Quindi se la cpu è gestita in time sharing essa rimane assegnata a un programma finche: -il programma non termini, -il programma richiede un operazione di I/O, -scade il time slice.

Prestazioni di un sistema operativo

Il sistema operativo è costituito da moduli che devono essere eseguiti dalla cpu proprio come i programmi degli utenti.

%CPU indica in percentuale il tempo di utilizzo della cpu in rapporto al tempo di lavoro di tutto il sistema.

Tcpu = tempo di lavoro della cpu

%cpu= tcpu/Ttotale

Ttotale = tempo I/O + Tcpu

È necessario evitare che il sistema cada in system overhead situazione nella quale la percentuale di utilizzo della cpu per eseguire programmi di sistema è troppo alta rispetto a quella dedicata all’elaborazione dei programmi utente.

Gestione del processore

Nucleo del sistema operativo

La componente principale dell’elaboratore a anche la più costosa, è la cpu (central processing unit). Tutti i programmi hanno bisogno della cpu per essere eseguiti. Di particolare importanza è la parte del sistema operativo che si occupa dell’assegnazione della cpu ai singoli lavori che ne richiedono l’uso. Le funzioni che questi moduli devono svolgere sono: -mantenere aggiornato lo stato del processore (libero/occupato), -decidere a quale processo assegnare il processore quando se ne presenti la necessità, -assegnare il processore al processo (quello scelto), -riprendere il controllo del processore quando il processo è terminato o sospeso.

Programma è la descrizione delle istruzioni che devono essere svolte.

Processo è un programma in esecuzione.

La gestione dei processi è affidata a quei moduli del SO che  formano il nucleo (kernel) e che sono sempre residenti in memoria centrale.

Fanno parte del nucleo: schedulatore dei lavori, schedulatore dei processi, controllore del traffico, gestore delle interruzioni, procedure di sincronizzazione e comunicazione tra i più processi necessarie per lo scambio di dati e informazioni

Ogni stato corrisponde a una situazione in cui si trova il programma da eseguire (è in esecuzione, è in attesa della stampante ecc..) il passaggio da uno stato all’altro è deciso dal sistema operativo sulla base delle politiche di schedulazione. A ogni passaggio corrisponde una transazione che è effettuata tramite l’esecuzione di uno specifico programma del sistema operativo

Un lavoro può trovarsi in uno dei seguenti stati:

hold = il lavoro è stato proposto al sistema. Esso è in attesa di esecuzione e di trova in memoria di massa

ready = il programma è diventato processo e si trova in memoria centrale pronto per essere eseguito

run = il processo è in esecuzione

wait = il processo è in attesa

end = il processo è terminato

per poter compiere queste operazioni lo schedulatore accede alla lista di hold che contiene un JCB (job control block) per ogni programma in questo stato.

Generalmente un JCB contiene: l’identificativo del programma, l’occupazione espressa in Kbyte, l’idirizzo di caricamento su memoria di massa, gli identificatori delle periferiche e il puntatore al JCB successivo.

Una volta individuato il programma da caricare un altro modulo del sistema operativo elimina l suo JCB dalla lista di hold e inserisce un nuovo PCB (process control block) nella lista di ready.

Generalmente un PCB contiene: lo stato in cui si trova il processo, l’identificatore del processo, il registro di salvataggio, l’indirizzo di caricamento in memoria centrale, gli identificatori delle periferiche, file aperti,il puntatore al PCB successivo.

Politiche di schedulazione

Lo schedulatore dei lavori deve individuare quale lavoro può avanzare nello stato di ready tra tutti quelli presenti nella lista dei lavori in stato di hold. Tra tutti i lavori che hanno queste caratteristiche bisognerà effettuare una scelta e a questo scopo sono state definite diverse politiche:

FIFO i lavori sono ordinati nella lista in ordine di arrivo. Il primo lavoro inserito nella lista sarà il primo a passare dallo stato di hold allo stato di ready.

PRIORITA’ STATICA a ogni lavoro è assegnato un valore che indica il livello di importanza dal lavoro.

PRIORITA’ DINANICA affichè non ci siano lavori che permangono troppo tempo in coda xkè ce ne sono altri con priorità maggiore, il sistema operativo aumenta il valore della priorità in funzione del tempo di permanenza del lavoro in coda. Lo schedulatore dei processi si occupa di assegnare la cpu a un processo cioè deve decidere a quale processo in stato di ready assegnare il processore; esso è in grado di compiere questa funzione secondo una delle seguenti politiche:

round robin: il processore viene assegnato a turno per un intervallo di tempo stabilito. La coda è gestita con il metodo fifo e quindi tutti gli inserimenti provenienti dalla coda di hold, dalla coda di wait o quelli causati dall’esaurimento di un time slice avvengono al fondo.

Round robin a percentuale di tempo: la tecnica a percentuale di tempo è una variante del round robin, il processo non verrà inserito necessariamente al fondo, ma la posizione di rientro nella coda dipende dalla percentuale di tempo di cpu utilizzata. Round robin limitato : è ancora una variante del round robin. E’ prefissato il numero di time slice che un processo può utilizzare, terminati questi time slice il processo è inserito in una nuova coda che sarà presa in considerazione solo quando la coda del round robin è esaurita.

Priorità statica: a ogni processo viene assegnata una priorità in fase di generazione. Priorità dinamica: il sistema operativo modifica la priorità in base al tempo di utilizzo della cpu.

Procedure di sincronizzazione e comunicazione tra processi

Due processi si dicono concorrenti se sono presenti nel sistema contemporaneamente.

Due o più processi concorrenti si dicono disgiunti se sono completamente indipendenti l’uno dall’altro in quanto utilizzano ciascuno le proprie strutture di dati. Due o più processi si dicono interagenti quando accedono a variabili o a risorse comuni. Per non creare conflitti è necessario applicare il principio della mutua esclusione una risorsa ripartita può essere utilizzata da un solo processo per volta e solo quando il processo ne ha terminato l’uso essa può essere assegnata a un altro processo. Due o più processi sono in situazione di stallo quando sono in attesa di eventi che per vari motivi non potranno mai accadere.

Gestione della memoria

Per zona dati si intende quella parte del programma dove sono state definite le variabili e che dovrà contenere i valori che queste assumeranno durante l’esecuzione. Per zona istruzioni si intende la parte del programma che contiene le istruzioni operative.

Definiamo spazio degli indirizzi di un programma la zona di memoria centrale formata da zone dati più zona istruzioni.

Il gestore della memoria è formato dai moduli del sistema operativo che si occupano di: - tenere aggiornato lo stato di ogni locazione di memoria, - assegnare la memoria centrale ai processi che ne fanno richiesta, - gestire il recupero della memoria centrale quando un processo termina.

Allocazione a singola partizione

Nella memoria centrale viene caricato un solo programma utente che cmq non può occupare tutta la memoria disponibile perché una porzione è sempre riservata al sistema operativo.

Allocazione per partizioni

Se si vogliono avere in memoria centrale più processi in contemporanea allora si deve ricorrere ad altre tecniche, con la tecnica dell’allocazione per partizioni la memoria centrale viene suddivisa in sezioni dette appunto partizioni.

Nella gestione per partizioni fisse la dimensione delle partizioni può essere determinata dal sistema responsabile del centro di calcolo conoscendo l’ampiezza media dei programmi che devono essere eseguiti.

Con la tecnica delle partizioni dinamiche le partizioni non sono fissate a priori ma viene creata una ogni volta che il gestore della memoria deve allocare un programma in memoria centrale.

La tecnica delle partizioni dinamiche può favorire la creazione di aree piccole e distribuite che non possono essere utilizzate perchè la loro dimensione non è idonea al caricamento di programmi. Infatti programmi di una certa dimensione potrebbero non essere caricati perchè non esiste uno spazio sufficiente. In questo caso si parla di frammentazione della memoria. Per assegnare una partizione si utilizza una delle seguenti politiche di assegnazione: first fit: il gestore della memoria scandisce la tabella delle aree libere assegnando al lavoro la partizione libera.

Best fit: il gestore della memoria scandisce tutta la tabella delle aree libere assegnando al lavoro la più piccola partizione che la possa contenere, le aree più grandi non vengono frammentate.

Paginazione

Con la paginazione si risolve il problema della frammentazione: la memoria centrale è suddivisa in blocchi aventi la stessa dimensione e lo spazio degli indirizzi di un programma è suddiviso logicamente in parti chiamate pagine.

I blocchi hanno la stessa dimensione della pagine e l’allocazione del programma avviene quando in memoria centrale esiste un numero di blocchi liberi pari o superiori al numero di pagine da allocare.

Il sistema operativo deve gestire alcune tabelle di abbinamento: la tabelle delle pagine e la tabella dei blocchi.

Con la tecnica della memoria virtuale  si accettano lavori di qualsiasi dimensione e si portano in memoria centrale solo quelle porzioni che devono essere eseguite.

Esistono due tecniche per la gestione della memoria virtuale:

- richiesta di pagine , -  segmentazione.

La gestione della memoria virtuale a richiesta di pagine utilizza le stesse tecniche della paginazione suddividendo il programma in pagine e la memoria centrale in blocchi della stessa dimensione. Per tenere sotto controllo l’occupazione della memoria il sistema operativo deve gestire queste tabelle: tabella delle pagine che contiene informazioni sulle pagine di ciascun programma, tabella dei blocchi che contiene informazioni  sullo stato di ciascun blocco di memoria  centrale, tabella di mappa contiene informazioni per ogni pagina caricate in un blocco.

Segmenti In un sistema a memoria virtuale basato sulla segmentazione il programma viene diviso in porzioni dette segmenti che corrispondono a unità logiche definite dal programmatore come ad esempio un array una tabella e una routine. La segmentazione è di fatto una generalizzazione della gestione a partizione dinamiche in questo caso i segmenti possono essere allocati in un’area di memoria che ha le loro esatte dimensioni.

Si può usare una tecnica combinata fra pagine e segmenti che permette di ridurre alcuni degli inconvenienti presenti nelle due tecniche. Il sistema operativo deve gestire due tipi di interruzione probabili: mancanza del segmento in memoria (segment fault) e mancanza di pagine (page fault).

Libri

Top twentytwo collaboratori attivi

1-Paola Viale (1045 file)

2-Miriam Gaudio (676 file)

3-Carlo Zacco (394 file)

4-Vincenzo Andraous (354 file)

5-Gianni Peteani (294 file)

6- Giovanni Ghiselli (288 file)

7-Enrico Maranzana  (266 file)

8-Piero Torelli (153 file)

9-Luca Manzoni (147 file)

10-Sandro  Borzoni (133 file)

11-Maria Concetta Puglisi (117 file)

12-Irma Lanucara (104 file)

13-Gennaro Capodanno (92 file)

14-Elio Fragassi (85 file)

15-Laura Alberico (70 file)

16-Alissa Peron (63 file)

17-Francesco Avolio (59 file

18-Rosalia Di Nardo (54 file)

19-Silvia Sorrentino (47 file)

20-Vittorio Tornar (46 file)

20-Cristina Rocchetto (46 file)

22-Samuele Gaudio (44 file)

 

 

Pagina facebook Atuttascuola

Pagina facebook Cantastoria

iscriviti al gruppo facebook di Atuttascuola se sei un docente o al gruppo facebook di Maturità 2017 se sei uno studente

 

 

Temi svolti

Tesine

Invalsi

Esami di stato

 

 

 

 

 

 

 

Didattica, Pedagogia, Musica, Ed. fisica, Religione, Software, Corsi online, Francese, Tedesco, Spagnolo, AltreMaterie, Atuttascuola 2.0, Docenti, Studenti, Biblioteca di letteratura italiana, Autopresentazione del webmaster, Hanno scritto di noi, Collabora con noi, Segnala un sito, Note legali, E-mail, Newsletter

Compra i libri di

 

 

Privacy Policy