Ir al contenido

Etapa final: mapa de temas

Según las indicaciones oficiales (octubre 2026):

SecciónPuntajeFormato
4 preguntas teóricas (libro)5quiz de Canvas; pueden pedir justificar
3 preguntas de análisis9quiz de Canvas
2 preguntas de código6enunciado impreso, se resuelve en el entorno de ejecución del quiz; máximo 60 min
Total20
  • Entran todos los temas vistos después del LC2.
  • Lectura del libro (Stallings): cap. 6, secciones 6.1–6.8; cap. 7 completo; cap. 8, secciones 8.1–8.4.
  • Reglas que cambian la estrategia:
    • El código va primero: empieza 10 min después del inicio de la clase. Si llegas tarde, pierdes esa parte y el máximo baja a 14.
    • El quiz se abre 20 min después de empezar la parte de código, y solo cuando ya la enviaste.
    • Una vez enviado el código, no se puede volver a entrar.

Leyenda: ✅ cubierto (las páginas de la sección final llevan código ejecutado y respuestas verificadas).

0 · Temas posteriores al LC2 que ya entraron al E1

Sección titulada «0 · Temas posteriores al LC2 que ya entraron al E1»

El LC3 evalúa «todo lo visto después del LC2», y estas clases (material del 24/09) llegaron después del LC2 aunque se tomaron en el parcial. No están en la lectura recomendada (monitores es el cap. 5 de Stallings y los registros salen del libro de Herlihy), así que lo más probable es que aparezcan como código: un monitor con pthread_cond_wait.

TemaFuenteEstadoDónde
Monitores y variables de condición (Hoare vs Mesa, while en vez de if)lab 09 · Monitors and Reader-Writer✅Monitores
Lectores–escritores (prioridad a lectores o a escritores, con monitor)lab 09✅Lectores–escritores
Registros safe, regular y atomicteoría 06 · About registers (Herlihy)✅Registros

A · Deadlock y starvation (Stallings cap. 6, §6.1–6.8; lab 11)

Sección titulada «A · Deadlock y starvation (Stallings cap. 6, §6.1–6.8; lab 11)»
TemaFuenteEstadoDónde
Principios: recursos reutilizables y consumibles, grafo de asignación, 4 condicionesStallings §6.1✅Deadlock
Prevención, evitación (banquero), detección y estrategia integradaStallings §6.2–6.5✅Deadlock (simulador del banquero)
Deadlock de un solo hilo (lock dos veces) y por qué trylock lo evitalab 11, diap. 8–10✅Livelock y trylock
Livelock con trylock + «soltar y reintentar»lab 11, diap. 11–14✅Livelock y trylock (con ejecución de prueba)
Filósofos: versión con deadlock y la espera circular que la causalab 11 · deadlock-bug.c✅Filósofos § 1
Filósofos: 5 soluciones del cursolab 11 · sem_central.c, table.c, limit_seats.c, assymetric.c, tanen-sem.c✅Filósofos § 2–5 (medidos y con recorrido de estados)
Filósofos: starvation a pesar de alto paralelismotanen-5-1.c, tanen-4-2.c✅Filósofos § 6 + variante propia sin starvation
Barbero dormilón (1 barbero): sem_trywait, la silla del barbero, ¿es justo?, ¿quién decide terminar?lab 11, diap. 33–41✅Barbero
Barbero con N barberos (panel write_panel/read_panel, tarea: ¿se puede quitar barber_chair?)lab 11, diap. 42–47✅Barbero § N barberos (el código de las diapositivas no funciona tal cual)
Mecanismos de concurrencia de UNIX: pipes, mensajes, memoria compartida, semáforos, señalesStallings §6.7✅Mecanismos de UNIX y Linux
Mecanismos del kernel Linux: atómicas, spinlocks (y de lectores–escritores), semáforos, barreras, RCUStallings §6.8✅Mecanismos de UNIX y Linux
Starvation vs livelock vs deadlock, tipos de recurso, productor–consumidor con los P() invertidos, orden de locks en transferencias, grafo de espera, ejemplo de detección de 5 procesos, recuperación, lockdepteoría 11 · Deadlock✅Clase de teoría sem. 11 (ejemplos verificados)

B · Gestión de memoria (Stallings cap. 7 completo; clase 09)

Sección titulada «B · Gestión de memoria (Stallings cap. 7 completo; clase 09)»
TemaFuenteEstadoDónde
Requisitos: relocalización, protección, compartición, organización lógica y física; overlays§7.1 · clase 09, diap. 4–7✅Particiones
Dirección lógica vs física, MMU y registro de relocalizaciónclase 09, diap. 8, 14–15✅Segmentación
Particiones fijas y dinámicas, placement (best, first, next), fragmentación, compactación§7.2 · diap. 17–27✅Particiones (simulador de placement)
Buddy system§7.2 · diap. 22–24✅Particiones (simulador buddy)
Paginación simple y fragmentación interna (ejemplo 72 766 B con páginas de 2 KB)§7.3 · diap. 48–57✅Paginación
Segmentación: tabla, protección, ejemplo de 4 segmentos de 16 bits, x86 y Linux de 64 bits§7.4 · diap. 30–46✅Segmentación (traductor)
Carga y enlace (apéndice 7A)cap. 7✅Particiones § carga y enlace

C · Memoria virtual (Stallings §8.1–8.4; clase 09, parte final)

Sección titulada «C · Memoria virtual (Stallings §8.1–8.4; clase 09, parte final)»
TemaFuenteEstadoDónde
Localidad, jerarquía (SRAM/DRAM/SSD/HDD), la memoria principal como caché del disco§8.1 · diap. 9–13✅Hardware y fallo de página
Tabla de páginas, PTE (P, M, R, protección), multinivel, hash, invertida§8.1 · diap. 59–73✅Paginación (calculadora)
TLB y tiempo efectivo de acceso§8.1✅Paginación § TLB (simulador EAT)
Tamaño de página y segmentación + paginación combinadas§8.1✅Hardware y fallo de página
Paginación por demanda y page fault paso a paso§8.2 · diap. 74–76✅Hardware y fallo de página (con medición de page faults)
Políticas del SO: fetch (demanda vs prepaging), placement, reemplazo (bloqueo de frames, OPT, LRU, FIFO, Clock), page buffering§8.2✅Reemplazo (simulador paso a paso)
Conjunto residente: asignación fija o variable, alcance local o global, working set, PFF§8.2✅Working set y carga
Política de limpieza (demanda vs precleaning) y control de carga (thrashing, nivel de multiprogramación)§8.2✅Working set y carga
UNIX y Solaris: PTE, descriptor de bloque de disco, tabla de frames, swap-use, reloj de dos manecillas, lazy buddy§8.3✅UNIX, Solaris y Linux
Linux: tablas de varios niveles, buddy para páginas, reemplazo (listas activa/inactiva), slab§8.4✅UNIX, Solaris y Linux

D · Memoria de un proceso en Linux (lab 10 · Memory)

Sección titulada «D · Memoria de un proceso en Linux (lab 10 · Memory)»
TemaFuenteEstadoDónde
Espacio de direcciones virtual: text, data, librerías, heap y stacklab 10, diap. 12–16✅Memoria de un proceso
El stack en acción (stack.c, gdb attach y bt)stack.c✅Memoria de un proceso
Ver el mapa del proceso (mapeos del proceso desde GDB)lab 10, diap. 15–16✅Memoria de un proceso (/proc/PID/maps real)
memcpy y sus bugs: desborde de un buffer de 20 B y escritura en una dirección de kernel (0xffffffffff601000)memcpy1.c, memcpy2.c, main.c✅Memoria de un proceso § memcpy
malloc, size_t, ¿cuánto se puede pedir?, realloc, malloc no siempre usa el heap (mmap para bloques grandes)malloc.c, malloc_limits.c · diap. 18–23✅Memoria de un proceso § malloc
TemaFuenteEstadoDónde
Valgrind memcheck: accesos inválidos, valores sin inicializar, liberación incorrecta, leaksguía Valgrind · mem1.c, mem2.c, mem3.c, hello.c✅Valgrind y perf
helgrind (condiciones de carrera entre hilos)guía Valgrind✅Valgrind y perf
perf para contar page faults al recorrer un arreglo de PAGESIZE × Nguía Valgrind · «Paging y TLB»✅Valgrind y perf, medición
HojaPreguntasEstado
Page ReplacementP1: FIFO, OPT, LRU y Clock con 3 frames (16 referencias) · P2: FIFO con 3 y 4 frames (anomalía de Belady) · P3: memoria virtual de 6 GB, páginas de 8 kB y PTE de 6 B · P4: PTE para Clock en 10-10-12 y simulación con 4 frames✅ resueltos
Virtual MemoryP1: bits de VPN/PFN/PTE · P2: segmentación (5 direcciones, ¿segfault?) · P3: traducción binaria · P4: tabla con bits V/R/M (1052, 2221, 5499) · P5: recorrido por columnas de A[64][64] y page faults · P6: 8 GB, páginas de 8 kB, 46 bits, niveles, TLB y EAT de 61 ns✅ resueltos
TemaFuenteEstadoDónde
Host, hipervisor/VMM, guest y VM; las 5 funciones del hipervisorteoría 13, diap. 4–7✅Virtualización I
VCPU, trap-and-emulate, binary translation (popf), VT-x / AMD-Vteoría 13, diap. 9–15✅Virtualización I (con un detective de popf)
vCPUs, page sharing, ballooning, overcommit, tablas de páginas anidadasteoría 13, diap. 16–21✅Virtualización I
E/S virtualizada: live migration, I/OAT, TOE, LSO, LRO, SR-IOV, VT-dteoría 13, diap. 22–24✅Virtualización I
Tipos de VM, hipervisores tipo 0/1/2 (AWS Nitro), paravirtualización y Xenteoría 13, diap. 26–35✅Virtualización II
Otras variantes, virtual appliance y SVA, contenedoresteoría 13, diap. 32, 36–38✅Virtualización II
ESXi, Xen, Hyper-V, JVM, VServer, VMware, Docker vs LXC e historiateoría 13, diap. 40–51✅Virtualización II
SemanaMaterialEstado
9clase 09 «All About Memory» (78 diap.) · lab 10 Memory (26 diap.) · guía Valgrind · lab 11 Deadlock (50 diap.) · ejercicios de Page Replacement y de Virtual Memory · indicaciones del LC3 · código de sem9/ (memoria, valgrind y deadlock)✅ mapeado y escrito (13 páginas)
10grabación de la clase de laboratorio del 10/10 (paginación + ejercicios en vivo)✅ resumida
11clase de teoría 11 «Deadlock»✅ lo que añade al libro
—libro: lectura recomendada del LC3 (caps. 6–8)✅ Stallings para el LC3
12clase de teoría 12 «Scheduling» y su lab✅ en la sección Lab 4
13clase de teoría 13 «Virtualization» (54 diap.)✅ Virtualización I y II
14 en adelante—⏳ pendiente

Fuente ·sem_9/OSL-Indicaciones-Laboratorio_Calificado_3.pdf · sem_9/Sem9_09-OST-Memory.pdf · sem_9/10-OSL-Memory.pdf · sem_9/10-OSL-Valgrind.pdf · sem_9/11-OSL-Deadlock.pdf · sem_9/11-OSL-Ejercicios_Page_Replacement.pdf · sem_9/11-OSL-Ejercicios_Virtual_Memory.pdf · Código del curso sem9/: deadlock/*.c, valgrind/*.c, stack.c, malloc.c, malloc_limits.c, memcpy1.c, memcpy2.c, main.c · sem_11/Sem11_11-OST-Deadlock.pdf · sem_13/Sema13_13-OST-Virtualization.pdf · for_partial/pending_themes/ (monitores y lectores–escritores, registros) · Stallings 9e, caps. 6–8