SOMA.resourceManagement
Class FileAlarmsHandler

java.lang.Object
  extended bySOMA.resourceManagement.FileAlarmsHandler
All Implemented Interfaces:
java.util.EventListener, MonitoringManagerListener

public class FileAlarmsHandler
extends java.lang.Object
implements MonitoringManagerListener

Classe che implementa un gestore per le situazioni di allarme relative all'accesso a file (in lettura o scrittura). Interviene con livelli diversi di gravità: se è il primo allarme provocato dall'agente, viene deschedulato e vengono abbassate le priorità dell'agente stesso e di tutto il suo threadGroup; se è il secondo allarme provocato dallo stesso agente sulla stessa risorsa, l'agente viene ucciso (con tutti i thread che lo compongono)

Author:
Silvia Vecchi
See Also:
CpuAlarmsHandler, MemAlarmsHandler, NetAlarmsHandler

Field Summary
(package private)  int alarmsNum
           
(package private)  java.util.Hashtable alarmsTab
           
(package private)  java.util.HashSet badAgents
           
(package private)  PlaceResourceManager prm
           
 
Constructor Summary
FileAlarmsHandler(PlaceResourceManager prm)
          Costruttore: assegna il riferimento a resourceManager e registra il listener presso monitoringManager
 
Method Summary
 void alarm(MonitoringManagerEvent ev)
          Recupera il worker dell'agente che ha prodotto l'allarme e invoca firstAlarm o secondAlarm a seconda che l'agente abbia già provocato o meno un altro allarme (sempre sulla stessa risorsa)
 void firstAlarm(EventInfo info, AgentWorker agW)
          Inserisce l'agente in badAgents, per segnalare in futuro il fatto che ha già prodotto un allarme, invoca yield() sul thread che ha superato la soglia, abbassa di 1 la sua priorità e quella massima di tutto il threadGroup dell'agente
 void secondAlarm(EventInfo info, AgentWorker agW)
          Se l'agente non è già stato eliminato, uccide tutti i thread del suo gruppo e lo inserisce in killedAgents, in modo da segnalarne l'avvenuta eliminazione, altrimenti non fa nulla
 java.lang.String toString()
          Restituisce la rappresentazione in stringa
 void update(AgentInfo[] info)
           
 void update(NetworkInfo info)
           
 void update(ProcessInfo[] info)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

prm

PlaceResourceManager prm

badAgents

java.util.HashSet badAgents

alarmsTab

java.util.Hashtable alarmsTab

alarmsNum

int alarmsNum
Constructor Detail

FileAlarmsHandler

public FileAlarmsHandler(PlaceResourceManager prm)
Costruttore: assegna il riferimento a resourceManager e registra il listener presso monitoringManager

Method Detail

alarm

public void alarm(MonitoringManagerEvent ev)
Recupera il worker dell'agente che ha prodotto l'allarme e invoca firstAlarm o secondAlarm a seconda che l'agente abbia già provocato o meno un altro allarme (sempre sulla stessa risorsa)

Specified by:
alarm in interface MonitoringManagerListener

firstAlarm

public void firstAlarm(EventInfo info,
                       AgentWorker agW)
Inserisce l'agente in badAgents, per segnalare in futuro il fatto che ha già prodotto un allarme, invoca yield() sul thread che ha superato la soglia, abbassa di 1 la sua priorità e quella massima di tutto il threadGroup dell'agente


secondAlarm

public void secondAlarm(EventInfo info,
                        AgentWorker agW)
Se l'agente non è già stato eliminato, uccide tutti i thread del suo gruppo e lo inserisce in killedAgents, in modo da segnalarne l'avvenuta eliminazione, altrimenti non fa nulla


toString

public java.lang.String toString()
Restituisce la rappresentazione in stringa


update

public void update(AgentInfo[] info)
Specified by:
update in interface MonitoringManagerListener

update

public void update(ProcessInfo[] info)
Specified by:
update in interface MonitoringManagerListener

update

public void update(NetworkInfo info)
Specified by:
update in interface MonitoringManagerListener


Copyright © 2004 Luca Foschini