Eliminazione e controllo scavenging
RDBSS fornisce una serie di routine per eliminare e scavengere le strutture FOBX quando non sono più necessarie.
In fase di pulizia, non sono presenti più handle utente associati all'oggetto file. In questi casi, l'intervallo di tempo tra chiusura e pulizia è determinato dai riferimenti aggiuntivi gestiti da Memory Manager e Cache Manager. RDBSS usa un processo scavenger che viene eseguito su un thread separato per scavengere ed eliminare FOBX e altre strutture non necessarie.
Attualmente, la scavenging è stata implementata per SRV_CALL, NET_ROOT e V_NET_ROOT strutture. Lo scavenging FCB viene gestito separatamente. FoBX può e deve essere sempre finalizzato in modo sincrono. L'unica struttura di dati che dovrà essere abilitata per la finalizzazione scavenged è SRV_OPEN strutture.
Il processo di scavenger che viene implementato in RDBSS attualmente non utilizzerà alcuna risorsa di sistema fino a quando non c'è bisogno di finalizzazione scavenged. La prima voce da contrassegnare per la finalizzazione scavenged comporta la pubblicazione di una richiesta timer per lo scavenger. Nell'implementazione corrente, le richieste timer vengono pubblicate come richieste timer one-shot. Ciò implica che non vi sono garanzie relative all'intervallo di tempo entro il quale verranno finalizzate le voci. Il meccanismo di attivazione scavenger è un potenziale candidato per l'ottimizzazione in una fase successiva.
Le routine di eliminazione e scavenging rdBSS includono quanto segue:
Routine | Descrizione |
---|---|
Questa routine elimina tutte le strutture FOBX associate a un mini-reindirizzamento di rete. |
|
Questa routine elimina tutte le strutture FOBX associate a una struttura NET_ROOT. |
|
Questa routine scavenge tutte le strutture FOBX associate a un determinato oggetto dispositivo di mini-reindirizzamento di rete. |
|
Questa routine scavenge tutte le strutture FOBX associate a una determinata struttura NET_ROOT. |