Risorsa di sistema

In informatica, una risorsa di sistema è un qualsiasi componente fisico o virtuale che offra una certa funzionalità con disponibilità limitata all'interno di un sistema.

Una risorsa è un elemento o componente, sia hardware, come la RAM o le periferiche I/O, sia software, come file, necessario al sistema.

Tali risorse vengono assegnate dal sistema operativo ai singoli processi in esecuzione su di esso, in modo che essi ne possano usufruire. Le risorse possono, però, sembrare insufficienti, in quanto sono di numero limitato rispetto ai processi che le richiedono ed è per questo che si può parlare di risorse “condivise”.[1]

Classificazioni

[modifica | modifica wikitesto]

In informatica, le risorse sono soggette a varie classificazioni che possono riguardare la modalità di assegnazione e la tipologia di utilizzo.

Classificazione per modalità di assegnazione

[modifica | modifica wikitesto]

Le singole richieste possono essere assegnate ai processi tramite due modalità differenti:

  • Modalità statica:
    Questo tipo di assegnazione avviene al momento della creazione del processo interessato e la risorsa rimane assegnata fino alla sua terminazione.
  • Modalità dinamica:
    I processi richiedono una determinata risorsa in un qualunque momento della loro esistenza e si occupano di rilasciarla quando non è più necessaria.

Classificazione in base alla tipologia di risorsa

[modifica | modifica wikitesto]

In base alla mutua esclusività

[modifica | modifica wikitesto]

Questa classificazione include due categorie:

  • Le risorse seriali:
    tutte le risorse che non possono essere assegnate a più di un processo contemporaneamente (per esempio la stampante e il processore). In questo caso, i processi interessati non possono cooperare parallelamente sulla medesima risorsa. Ogni processo che vuole accedere alla specifica risorsa deve attendere che essa venga "rilasciata".
  • Le risorse non seriali:
    Tutte le risorse che ammettono l’accesso a più processi contemporaneamente (per esempio i file di sola lettura).[2]

In base alla modalità di utilizzo

[modifica | modifica wikitesto]

Questa classificazione include due categorie:

  • Risorse prerilasciabili (preemptable resource):
    questa tipologia di risorse può essere sottratta al processo interessato prima che esso abbia terminato di utilizzarle, senza creare effetti dannosi (un esempio è la memoria centrale).
  • Risorse non prerilasciabili (no preemptable resource):
    una volta acquisite da un processo, non possono essere sottratte ad esso prima che l’esecuzione sia terminata (un esempio sono i masterizzatori CD).[3]

Assegnazione delle risorse

[modifica | modifica wikitesto]

Per poter definire conclusa l’assegnazione di una risorsa ad uno specifico processo si devono sviluppare tre eventi:

  1. Richiesta della risorsa: il processo interessato si occupa di richiedere la risorsa di cui ha bisogno; se la richiesta non può essere soddisfatta perché la risorsa è già stata assegnata ad un altro processo, esso deve attendere finché non viene ‘rilasciata’.
  2. Utilizzo della risorsa: Una volta che riesce ad accedere alla risorsa, il processo può operare su di essa.
  3. Rilascio: Quando il processo termina di utilizzare la risorsa esso la rilascia, in modo da garantire l’utilizzo ad altri processi.

Il sistema operativo si occupa di gestire costantemente lo stato in cui si trovano le singole risorse.

Essendo le risorse in numero limitato, in alcuni casi ci troviamo di fronte a situazioni di stallo (deadlock), ovvero quando uno o più processi attendono il rilascio da parte di un altro processo che sta utilizzando la risorsa richiesta.[4]

Essendo le risorse di numero finito, spesso il sistema operativo attiva dei meccanismi di condivisione per i vari processi.

Tramite questi meccanismi, più processi possono operare sulla medesima risorsa ed effettuare uno scambio di informazioni utilizzando la medesima area di memoria, dove vengono inserite delle variabili all’interno delle quali sono memorizzati i risultati delle singole elaborazioni.

Ognuna delle operazioni sopra descritte è monitorata dal sistema operativo, il quale mette a disposizione di ciascuna risorsa un gestore, che ne regola l'utilizzo, e un protocollo che permette l'accesso alla risorsa.[1]

Generalmente le risorse informatiche possono essere classificate in:

  1. ^ a b Paolo Camagni, Riccardo Nikolassy, Tecnologie e progettazione di sistemi informatici e telecomunicazioni, 2016, p. 12.
  2. ^ Paolo Camagni, Riccardo Nikolassy, Tecnologie e progettazione di sistemi informatici e telecomunicazioni, 2016, p. 13-14.
  3. ^ Andrew S. Tanenbaum, I moderni sistemi operativi, 2002, p. 146.
  4. ^ Abraham Silberschatz, Peter Baer Galvin, Sistemi operativi, 1998, p. 198.
  • Andrew S. Tanenbaum, I moderni sistemi operativi, Jackson Università, ISBN 8825618980.
  • Abraham Silberschatz, Peter Baer Galvin, Sistemi operativi, Addison Wesley, 2002, ISBN 8871920643.
  • Paolo Camagni, Riccardo Nikolassy, Tecnologie e progettazione di sistemi informatici e telecomunicazioni, Hoepli.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica