|
Appunti informatica |
|
Visite: 1251 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Programma che mette in ordine un vettorePROGRAMMA CHE METTE IN ORDINE UN VETTORE Program uno; uses crt; const Architettura 8086dArchitettura 8086d Le operazioni aritmetiche e di comparazione si applicano HardwareHARDWARE UNITA' CENTRALE DI ELABORAZIONE Definita con la sigla CPU, l'unità |
MECCANISMI DI SINCRONIZZAZIONE TRA PROCESSI
Le macchine concorrenti seguono due modelli fondamentali: i modelli a MEMORIA COMUNE e i modelli a SCAMBIO DI MESSAGGI. Nel modello a memoria comune, che prenderemo ora in considerazione, la macchina è costituita da un certo insieme di unità di elaborazione (processori), le quali però fanno tutte uso di un'unica memoria condivisa.
Definiamo come RISORSA un qualunque componente passivo del sistema; una risorsa può essere quindi sia hardware che software ed è uno strumento utilizzato dai processi perché i loro flussi di controllo possano essere proseguiti.
Un processo è un'attività posta in essere dal SO. Dal punto di vista computazionale, esso non è altro che un programma in esecuzione e come tale è costituito da una sequenza di istruzioni. Un'istruzione come è noto è formata da codici operativi e (eventualmente) da operandi. Poiché è senz'altro vero che un processo ha bisogno degli operandi 'per andare avanti', in base alla generica definizione che abbiamo dato di risorsa, si può affermare che le risorse del processo sono i suoi operandi. Un operando dal canto suo può appartenere ad un tipo elementare (integer, byte etc.) o, più spesso, può far parte di una struttura dati (array, record, stack etc.). In generale le risorse di un processo sono l'insieme delle strutture dati sulle quali esso può operare.
La definizione di risorsa come di dato strutturato può sembrare limitativa o troppo legata ad un discorso teorico. Ma in realtà essa si adatta perfettamente alla realtà; si pensi alla specie più 'familiare' di risorsa, quella delle risorse fisiche, e in particolare dei dispositivi di I/O (dischi fissi, monitor, scanner, stampanti etc.). Un programma utente non può inviare direttive ad una stampante se non scrivendo (indirettamente, come vedremo) specifiche informazioni nei registri dell'interfaccia parallela. Questo pone evidentemente dei problemi di appartenenza a determinati tipi, di compatibilità fra tipi etc.. D'altro canto per un processo ogni risorsa, indipendentemente dalla sua natura, è sempre una STRUTTURA DATI ALLOCATA NELLA MEMORIA comune. Le operazioni definite sulle risorse sono espresse mediante procedure[1].
Una risorsa può essere utilizzata solo rispettando degli opportuni metodi di accesso. L'insieme di una struttura dati e dei metodi di accesso stabiliti per la sua gestione costituisce un OGGETTO. In questo caso si parlerà dunque dell'"oggetto" risorsa.
Se il modello adottato è quella della memoria comune, chiaramente anche le risorse saranno comuni, visto che le strutture dati ad esse associate risiedono su di una memoria che può essere acceduta da qualunque processo. Nel modello a scambio di messaggi si hanno invece più memorie locali e di conseguenza risorse private. Altra importante distinzione riguarda la modalità di allocazione delle risorse. Quando una risorsa è allocata STATICAMENTE, il processo che la usa ne ha visibilità durante tutta la propria esecuzione. Quando una risorsa è allocata DINAMICAMENTE, un processo ne ha visibilità solo durante determinati intervalli di tempo. In presenza di risorse comuni, è conveniente allocare le risorse dinamicamente ai processi. In questo modo infatti si possono agevolmente risolvere i conflitti fra i processi, sottraendo secondo necessità la visibilità delle risorse a determinati processi e concedendola ad altri.
Lo schema che segue classifica le risorse in private e comuni in base al modello di macchina e al tipo di allocazione che si scelgono.
RISORSE DEDICATE (visibili in ogni RISORSE CONDIVISE (visibili in ogni istante
istante da un solo processo) anche da più processi contemporaneamente)
ALLOCAZIONE PRIVATA COMUNE (a più processi nello stesso
STATICA tempo)
ALLOCAZIONE COMUNE (dedicata, ma a più
DINAMICA processi in tempi diversi) COMUNE
Appunti su: |
|