MODELLO A MEMORIA COMUNE. Aspetti caratterizzanti

Documenti analoghi
Modelli di interazione tra processi

Modelli di interazione tra processi

Modelli di interazione tra processi

Le risorse. Alcune definizioni

Modello a scambio di messaggi

Processi non sequenziali e tipi di interazione

Il Modello a scambio di messaggi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Sistemi Operativi. Lez. 6: Problemi classici della programmazione concorrente

Funzioni, Stack e Visibilità delle Variabili in C

Il Sistema Operativo. Informatica Sistema Operativo 1

Sistemi Operativi. Lezione 7-bis Esercizi

Corso di Linguaggi di Programmazione

Linguaggi, Traduttori e le Basi della Programmazione

Java Virtual Machine. Indipendenza di java dalla macchina ospite. I threads in Java

Monitor [Hoare 74] Costrutto sintattico che associa un insieme di procedure/funzioni (entry) ad una struttura dati comune a più processi.

Caratteristiche di un linguaggio ad alto livello

Modello a memoria comune

Esercizi di utilizzo del semaforo semplice di competizione per l'uso di una risorsa comune

Scope, Memoria e Tabella dei Simboli

Interazione tra Processi. Sistemi Operativi T AA

La Gestione della Memoria. Carla Binucci e Walter Didimo

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Principles of Concurrent Programming

SEMAFORI SEMAFORI. Sul semaforo sono ammesse solo due operazioni (primitive)

Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri

PROGRAMMA DISCIPLINARE SVOLTO a. s / 2016

Il Software programmabili programma algoritmo

Organizzazione di un SO monolitico

Transcript:

MODELLO A MEMORIA COMUNE Aspetti caratterizzanti 1

Ogni applicazione viene strutturata come un insieme di componenti, suddiviso in due sottoinsiemi disgiunti: processi (componenti attivi) e risorse (componenti passivi). Risorsa. Qualunque oggetto, fisico o logico, di cui un processo necessita per portare a termine il suo compito. Le risorse sono raggruppate in classi; una classe identifica l insieme di tutte e sole le operazioni che un processo può eseguire per operare su risorse di quella classe. Il termine si identifica con quello di struttura dati allocata nella memoria. Risorsa privata di un processo P (o locale a P). P è il solo processo che può eseguire operazioni sulla. Risorsa (o globale) è una su cui più processi possono operare. In un modello a memoria i processi interagiscono esclusivamente operando su risorse comuni (competizione e cooperazione). Meccanismo di controllo degli accessi: è necessario definire quali processi ed in quali istanti possono correttamente accedere alla. Allocatore o gestore di una R: entità che ha il compito di definire in ogni istante t l insieme SR(t) dei processi che possono accedere ad R in quell istante. 2

Risorsa allocata staticamente. Il gestore di R definisce l insieme SR all istante To (istante iniziale dell elaborazione) senza modificarlo durante l elaborazione. Il gestore della è il programmatore che in base alle scope rules del linguaggio stabilisce quale processo possa vedere e quindi elaborare la. Il compito di controllare gli accessi è svolto dal compilatore che, secondo le regole di visibilità, assicura che soltanto i processi ai quali la è stata allocata possano accedervi. Risorsa allocata dinamicamente L insieme SR è variabile nel tempo. a)risorsa dedicata. Sr(t) contiene al più un processo b)risorsa condivisa. Sr(t) contiene più processi contemporaneamente Il gestore della opera a tempo di esecuzione. Nel modello a memoria il gestore è una (nel modello a scambio di messaggi è un processo). Sr(t) è inizialmente vuoto. Per operare sulla il processo deve chiedere il permesso al gestore. Il gestore può accettare, ritardare o rifiutare la richiesta. Schema logico seguito dal processo: richiesta della, uso e rilascio del diritto di accedere. 3

dedicata condivisa allocata staticamente allocata dinamicamente privata ai processi cui la è allocata Una allocata staticamente e dedicata ad un solo processo è una privata. In tutti gli altri casi le risorse sono comuni, o perché condivise tra più processi o perché dedicate, ma dinamicamente, a processi diversi in tempi diversi. Ogni gestore viene programmato come una astratta. E costituito da: una struttura dati usata per mantenere aggiornato lo stato della gestita; alcune procedure che costituiscono le operazioni utilizzate dai processi per richiedere o rilasciare il diritto di operare sulla gestita La struttura dati e le procedure sono programmate in modo da soddisfare la strategia di allocazione della. Il gestore è una condivisa e allocata staticamente 4

Cooperazione tra processi Sono necessari costrutti che consentano la sincronizzazione degli accessi ad una tramite la quale i processi si scambiano informazioni. Tali costrutti verranno usati nella programmazione delle procedure di accesso alla struttura dati della. Competizione tra processi Si presenta solo nel caso di risorse condivise. Sono necessari costrutti per programmare le procedure di accesso in modo che il loro comportamento coincida con quello di operazioni primitive( da eseguirsi cioè in mutua esclusione) Per presentare alcuni meccanismi linguistici usati nella programmazione di interazioni tra processi si seguirà il seguente schema: - Presentazione del meccanismo - Esempi di uso del meccanismo - Traduzione del meccanismo linguistico in termini di un meccanismo primitivo di sincronizzazione fornito dal supporto a tempo di esecuzione (nucleo) Il meccanismo primitivo di riferimento è quello semaforico con le due operazioni wait e signal (Dijkstra). 5