| | | | Conectados: Actualmente hay 6 invitados, 1 miembro(s) conectado(s).
Es un usuario anónimo. Puede registrarse aquí | | | | |
| |
|
|
|
|
Patiperros del DCC
CC71A 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
|
|
|
|
|
|