| 
 
 |  |  |  |  |  | Conectados: Actualmente hay 6 invitados, 1 miembro(s) conectado(s).
 
 Es un usuario anónimo. Puede registrarse aquí
 |  |  |  |  |  | 
 
 |  | 
    |  |  |  |  
    |  | Patiperros del DCCCC71A Seminario:  Dis.  e Imp.  de Leng.  de Prog.
                           Recoleccion de Basura
                                   10 UD
1 Vigencia
desde Oton~o 1994
2 Requisitos
CC41A (Lenguajes de Programacion) y CC41B (Sistemas Operativos)
3 Objetivos
Este curso busca estudiar el disen~o  y la implementacion de los sistemas  de
recuperacion automatica de memoria,  conocidos como sistemas de  recoleccion
de basura (o GC: Garbage Collector).
  Se revisaran los principales algoritmos  en uso hoy en dia, su utilidad  y
eficiencia, y se analizara en detalle  el problema de recoleccion de  basura
en sistemas distribuidos.
  Al finalizar el curso, se espera que el estudiante comprenda  el problema,
sus principales soluciones, y la aplicabilidad de la tecnologia a  lenguajes
conocidos.
4 Evaluacion
Se realizaran  clases  expositivas, unas  12  sesiones  en que  el  profesor
expondra los principales sistemas  de recoleccion de basura  conocidos.   Al
mismo tiempo, se utilizaran algunas  sesiones para que los alumnos  expongan
papers asignados por el profesor.   La exposicion lleva una nota (NC), y  al
final del semestre  se tomara un  examen sobre toda  la materia  (incluyendo
las exposiciones) que llevara una nota (NE).   Ademas se asignara una  tarea
computacional durante el semestre, que llevara una nota (NT).
  El promedio final sera igual a 0:8* ((NC+NE)=2) +0:2 *NT, y las tres notas
deben ser superiores o iguales a 4.0.
5 Programa
Estos son los temas que se espera tratar, tanto mediante clases  expositivas
del profesor como mediante  trabajos expuestos por los  alumnos que se  iran
alternando durante el semestre.
5.1 Introduccion (6 horas)
 o  Memoria dinamica
                                     1
    Diferencia  entre   datos   estaticos,   en  el   stack   y   dinamicos.
    Implementacion de  malloc/free,  implicancias  de  la  memoria  virtual.
    Relacion  con   el  lenguaje   de   programacion,   su  runtime   y   su
    implementacion.
 o  Recolector de Basura (GC)
    Recuperacion  automatica  de  la   memoria,  dificultades  y   desafios.
    Duracion de  vida  de  los  objetos,  estructuras  de  datos  complejas,
    utilidad y desempen~o.
 o  Ejemplos
    Lisp, C++,  Sistemas  Distribuidos.   Requerimientos  de un  GC:  tipaje
    dimamico (type-of), relacion con el programa en ejecucion.
5.2 Algoritmos de Base (1.5 horas)
 o  Contadores de Referencias
 o  Mark and Sweep
  Evaluacion comparativa, ventajas y desventajas.
5.3 Algoritmos Avanzados (6 horas)
Implementacion de  Contadores  de  Referencias en  pocos  bits,  manejo  del
overflow.  Implementacion de Mark and Sweep, detencion del programa,  manejo
de la lista libre, bits de marcas, relacion con la memoria virtual.
  GC copiadores y sus ventajas.  Generaciones.
5.4 Paralelismo (4.5 horas)
Mark and Sweep paralelo, incremental y otras implementaciones.  Concepto  de
mutador, multiples GC's paralelos.
5.5 Distribucion (4.5 horas)
Modelo de Memoria Compartida en un Sistema Distribuido:  punteros distantes,
objetos replicados, operaciones sobre  los punteros y los  objetos.   Envios
de objetos y punteros en mensajes.   Ordenamiento de mensajes, tolerancia  a
fallas.
5.6 Contadores de Referencias Distribuidos (4.5 horas)
Algoritmo Naif, sincronismo de Lermer, Goldberg, WRC e IRC, Duncan.
                                     2
5.7 Mark and Sweep distribuido (6 horas)
Algoritmo Naif,  referencias en  transito,  migraciones, uso  de  broadcast,
Indirect Mark and Sweep.
5.8 Tolerancia a Fallas (6 horas)
El problema y las fallas posibles.   Stub-Scion-Pair.  Algoritmos  Hibridos,
Recolectando la Basura del Mundo.
                                     3   |  |  
    |  |  |  | 
 
 |