Manejo de memoria y Valgrind
Leandro Lucarella (llucare@fi.uba.ar)
Alberto Bertogli (albertito@gmail.com)
LUGFI
11 de Mayo de 2005
(page 1)
De que vamos a hablar
- Memoria fisica
- Memoria virtual (VM)
- MM en aplicaciones
- Valgrind
- Ejemplos
(page 2)
Mini repaso
- Relación entre el procesador y la memoria
Accesos a memoria desde assembler
Sistema operativo y múltiples procesos
(page 3)
Memoria física
- Direcciones físicas
- Problemas y restricciones
(page 4)
VM - Que nos permite I
- Virtualización de recursos
- Aislamiento de la información
- Aislamiento de fallas
- Trucos locos (mas adelante)
(page 5)
VM - Como funciona
- Páginas de memoria
- MMU
- Tablas de traducción (page tables)
- Permisos y controles de acceso
- Flags útiles (Dirty, Accessed, Present, etc.)
- TLB
- Page faults
(page 6)
VM - Que nos permite II
- Multiproceso e hilos
- Control de acceso (r, w, x)
- Swap
- COW
- Overcommit / Demand paging
- mmap()
- Cache de disco
- Shared memory
(page 7)
MM en aplicaciones
- Stack
- malloc()/free()
- Patrones de acceso
- Fragmentación de memoria
- Leaks
- Accesos a memoria no inicializada
(page 8)
Bibliografia y links
- Linux Kernel Development (SAMS/Novell)
- ia-64 Linux Kernel (HP)
- UNIX Systems for Modern Architectures (A-W)
- See MIPS run (Morgan Kaufmann)
(page 9)
Agradecimientos
(page 10)
FIN
(page 11)