Subsistema vecino de la pila de protocolos de linux (recuperación de basura siete)

  
 

Recolección de elementos de la basura de la basura Para evitar el desperdicio de espacio de almacenamiento innecesario, el subsistema vecino mantiene un mecanismo de recolección de basura que elimina los elementos vecinos caducados o a largo plazo. Recuerde que hay una estructura de temporizador timer_list gc_timer en la tabla contigua (neigh_table), veamos cómo se inicializa. En neigh_table_init () en {… … .init_timer (&tbl- > gc_timer); tbl- > gc_timer.data = (largo sin signo) TBL; tbl- > gc_timer.function = neigh_periodic_timer; tbl- > gc_timer.expires = ahora + 1; add_timer (&tbl- > gc_timer; …} después de una señal de temporizador expira, el controlador de temporizador se ejecuta neigh_periodic_timer () neigh_periodic_timer vacío estático (sin signo arg largo) {neigh_table struct * TBL = (struct neigh_table *) arg; struct vecino * n, ** np; unsigned long expirar, ahora = jiffies; NEIGH_CACHE_STAT_INC (TBL, periodic_gc_runs); WRITE_LOCK (&tbl- > de bloqueo); /** volver a calcular periódicamente ReachableTime de función aleatoria * ///300Hz cada inicialización aleatorio el tiempo de desbordamiento REACHABLE si (time_after (ahora, tbl- > last_rand + 300 * HZ)) {neigh_parms struct * p; tbl- > last_rand = ahora; para (p = &tbl- > parms; p; p = p- > siguiente) p- > reachable_time = neigh_rand_reach_time (p- > base_reachable_time);} //hash_chain_gc y el final de la transformación en la función de inicialización //por lo tanto, donde Cero np = &tbl- > tiene h_buckets [tbl- > hash_chain_gc]; //crea hash_chain_gc siguiente punto, como peracético supera el máximo hash_mash //volvió al valor inicial tbl- > hash_chain_gc = ((tbl- > hash_chain_gc + 1) &tbl- > hash_mask);! while ((n = * np) = NULL) {unsigned int estado; WRITE_LOCK (&N- > de bloqueo), el estado = N- > nud_state; //si la estática correspondiente Elemento, o está siendo inicializado por el temporizador if (estado &(NUD_PERMANENT

Copyright © Conocimiento de Windows All Rights Reserved