Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Con l'introduzione dei sistemi multielaboratore (piu di una CPU) la concorrenza tra programmi è diventata reale, e piu programmi

possono essere eseguiti parallelamente. Gli sviluppatori di s.o. di questo tipo devono tener conto che si potrebbe verificare

inconsistenza dei dati se piu programmi accedono alla stessa area di memoria e devono quindi evitare che ciò accada.

Con l'introduzione delle reti di calcolatori, è stato necessario lo sviluppo di nuovi moduli del s.o. , ovvero di quelli necessari per

gestire le interfacce di rete.

I s.o. concepiti per funzionare su computer collegati in rete possono essere classificati in 2 categorie:

- s.o. di rete: dove ogni nodo della rete dispone di un proprio s.o. (non necessariamente uguale). I sistemi cooperano tra loro per

consentire il trasferimento di file tra computer connessi alla rete.

- s.o. distribuiti: dove ogni nodo della rete abbia lo stesso s.o. e funzioni in modo tale che ogni utente della rete veda un sistema

unico nascondendo il fatto che in realtà il sistema è distribuito. Il sistema offre quindi all'utente l'astrazione di condividere un

unico spazio di memoria centrale.

3 - STRUTTURA DEI SISTEMI OPERATIVI

Tutti i s.o. presentano diversità ma anche caratteristiche comuni. Prima fra tutte la tecnica della multiprogrammazione.

Il principale compito di un s.o. multiprogrammato è quello di coordinare l'evoluzione di più programmi applicativi

concorrentemente.

*Componenti principali di un s.o.*

I componenti principali di ogni s.o. sono 6:

- gestione dei processi (scheduler): con il termine processo s'intende l'attività svolta dal processore durante l'esecuzione di un

singolo programma. Questo componente ripartisce l'uso del processore fra i vari programmi caricati in memmoria in modo tale

che lo stesso sviluppi un insieme di processi contemporaneamente, dando la sensazione che ogni processo sia sviluppato da un

diverso processore "virtuale".

Per svolgere questo compito, il s.o. deve mantenere aggiornato lo stato di avanzamento di ciascun processo (sapere se è bloccato o

in esecuzione, etc..). I vari processi sviluppati dal sistema spesso devono interagire tra loro per andare avanti; raramente sono

indipendenti: l'avanzamento di un processo può a volte influenzare l'avanzamento di un altro. Questo accade perchè i processi

condividono lo stesso insieme di risorse, e se una certa risorsa è utilizzata da un processo1, allora un altro processo2 deve

attendere che il processo1 finisca di utilizzare quella risorsa.

- gestione della memoria principale (RAM): per consentire l'evoluzione concorrente dei processi, essi devono essere prima allocati

in RAM affinchè possano essere eseguiti. Una parte della memoria è riservata al s.o. Ma siccome il s.o. ne richiederebbe molta,

allora solo una parte della memoria principale è destinata ad esso. Questa parte è suddivisa in altre 2 parti: la 1° è quella che

contiene tutte le funzioni del sistema necessarie all'avvio e al caricamento (parte residente), la 2° è utilizzata per caricare dalla

memoria di massa le funzioni del s.o. quando sono richieste. Il resto della memoria è invece utilizzata per caricare ed allocare i

programmi da eseguire in multiprogrammazione. Il grado di multiprogrammazione è influenzato anche dalle dimensioni della

memoria, dove i programmi devono contemporaneamente risiedere. Il gestore della memoria deve risolvere tutti i problemi legati

alla multiprogrammazione.

- gestione dei dispositivi periferici: il gestore dei dispositivi periferici ha il compito di garantire un corretto accesso ai dispositivi

stessi da parte dei processi, coordinando tali accessi in modo tale da evitare possibili interferenze legate alla competizione per il

loro uso. Altro compito è quello di mascherare la complessità e la diversità dei vari dispositivi hardware. Tali complessità sono

nascoste all'interno dei driver del dispositivo e l'utente non si deve preoccupare di dover conoscere tutti i dettagli di ogni

dispositivo, ed è anche per questo che si utilizza un'interfaccia grafica del s.o.

- gestione degli archivi (file system): anche questo componente ha il compito di semplificare l'usabilità del s.o. L'utente che usa

l'interfaccia grafica non si deve preoccupare di conoscere le tecniche di memorizzazione dei file su memoria, oppure dei criteri per

individuare un file in memoria etc..

- gestione delle comunicazioni sulla rete: ha il compito di fornire una visione omogenea di un unico sistema formato da tanti nodi

(che sono i vari computer), tra loro eterogenei.

- interprete del linguaggio di controllo: cioè del linguaggio tramite il quale l'utente si interfaccia con il sistema. Viene spesso

chiamato "shell"; il linguaggio di controllo è molto ricco e molto più potente dell'interfaccia grafica usata dall'utente.

*Principali modelli strutturali*

Il s.o. si può anche definire come un programma complesso e di notevole dimensione. Un s.o. è difficile da progettare ed è per

questo che nel tempo ci sono state le evoluzioni.

- sistemi monolitici: sono stati i primi. Costituiti da un unico programma, senza divisione in moduli distinti. Il s.o. consisteva in un

insieme di funzioni di servizio attivabili tramite chiamate di sistema. Le funzioni erano scritte in assembler per avere una

maggiore efficienza sull'accesso alle risorse hardware.

- sistemi modulari: usano le tecniche di programmazione modulare. Viene sviluppato un sistema di moduli, ciascuno con il

compito di svolgere una particolare funzione. Ogni modulo è caratterizzato da un'interfaccia che descrive le funzionalità svolte dal

modulo e da un corpo consistente nel codice. I primi sistemi modulari si ottennero da quelli monolitici. I moduli furono divisi in 2

gruppi. 1° gruppo: le procedure di servizio offerte dal sistema ai programmi applicativi tramite chiamate di sistema ed eseguite in

modalità privilegiata (modalità kernel); 2° gruppo: le procedure d'utilità costituite da applicazioni come compilatori, shell ed

eseguite in modalità non privilegiata (modalità utente). 3


ACQUISTATO

1 volte

PAGINE

4

PESO

36.59 KB

AUTORE

flaviael

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in scienze e tecnologie informatiche (CESENA)
SSD:
Università: Bologna - Unibo
A.A.: 2009-2010

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher flaviael di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Bologna - Unibo o del prof Salomoni Paola.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Sistemi operativi

Reti Peer-to-Peer: Attacchi e Contromisure
Tesi