Cátedras del martes 28 y jueves 30 de mayo 77

Luis Mateu B. 27 MayMay 27 at 18:382024-05-27 18:38:27
Cátedras

Los profesores no estamos en paro.  Ruego respetar la posición de estudiantes que tampoco adhieren al paro.  Por lo tanto voy a seguir publicando los videos de  cátedras correspondientes a esta semana.

Martes 28


Temario: Paginamiento en demanda, propiedades de la estrategia del reloj, thrashing, la estrategia del working set, implementación, ejemplo, optimizaciones para paginamiento en demanda.

Video de un semestre previo, pdf

Jueves 30


Temario la cátedra presencial: localidad de accesos, implementación concreta de la estrategia del reloj.

Temario de la cátedra en video: Optimizaciones para paginamiento en demanda, localidad de accesos, implementación concreta de la estrategia del reloj, tablas de páginas de múltiples niveles.

Video y pdf de un semestre previo.

Cátedra del jueves 23 de mayo (sección 3: miércoles) 58

Luis Mateu B. 20 MayMay 20 at 11:522024-05-20 11:52:20
Cátedras

Temario: paginamiento en demanda, la estrategia del reloj.

pdf de la clase presencial

Video y pdf de un semestre previo.

Sección 3:
Esta cátedra se realizará el miércoles 22 y el viernes 24 no habrá cátedra.

Cátedras del martes 14 y 16 de mayo 61

Luis Mateu B. 12 MayMay 12 at 19:312024-05-12 19:31:12
Cátedras

Martes 14

(sección 3: miércoles 15)

Temario: Núcleo clásico vs. núcleo moderno, núcleo monolítico vs. micro núcleo, el scheduler de Linux, prioridad estática y dinámica, colas de activos y expirados, modelos de consistencia de memoria, consistent locking behavior

Video de un semestre previo, pdf

Jueves 12

(sección 3: viernes 17)

Empezaremos con la tercera unidad: administración de memoria.  Es un buen momento para asistir a las clases presenciales, porque la nueva unidad casi no requiere conocimiento sobre la materia previa.

Temario: administración de memoria, paginamiento, espacios de direcciones virtuales, tabla de páginas, traducción de direcciones virtuales a reales, translation lookaside buffer (TLB), extensión explícita de los datos, extensión implícita de la pila, implementación de fork.

Presentación: pdf (el pdf dice capítulo 5, pero es la unidad 3 en el nuevo programa)
Video de un semestre previo

Cátedras del martes 7 y 9 de mayo 64

Luis Mateu B. 6 MayMay 6 at 19:402024-05-06 19:40:06
Cátedras

Martes 7


Temario: Implementación de un núcleo de Unix, espacio de direcciones virtuales, peers (contrapartes), relación entre Unix y nThreads, núcleo clásico y núcleo moderno, spin-locks

Presentación: pdf
Video de un semestre previo.

Jueves 9


Temario: Uso de spin-locks, implementación básica de spin-locks, el problema de la memoria caché con los spin-locks, protocolo MESI, implementación eficiente de spin-locks

Presentación: pdf
Video de un semestre previo

Cátedras del martes 23 y 25 de abril 109

Luis Mateu B. 22 AprApril 22 at 11:272024-04-22 11:27:22
Cátedras

Martes 23

(sección 3: miércoles 24)

Temario: Implementación de secciones críticas, nSelf, implementación de FCFS para multicore

Presentación: pdf
Video de la clase presencial de este semestre

Jueves 25

(sección 3: viernes 26)

Temario: Implementación de timeouts, nSleepNanos, implementación del scheduling round robin, cómo despertar los cores, implementación de la rutina de atención del timer de tiempo virtual

Presentación: pdf
Video de la clase presencial de este semestre

Cátedras del martes 16 y jueves 18 de abril 60

Luis Mateu B. 15 AprApril 15 at 18:382024-04-15 18:38:15
Cátedras

Martes 16

(sección 3: miércoles 17)

Temario: estrategias de scheduling, first come first served (FCFS), shortest job first (SJF), prioridades, round robin

Presentación: pdf
Video de un semestre previo

Jueves 18

(sección 3: viernes 19)

Temario: Implementación de threads, la pila, threads nivel de núcleo (pthreads) vs. threads nivel usuario (nThreads), compatibilidad de nThreads con pthreads, el cambio de contexto, implementación de un scheduler FCFS para single core, implementación de semáforos, implementación de secciones críticas, caso single core.

Presentación: pdf
Video de la clase presencial de un semestre previo

Cátedras del martes 9 y jueves 11 de abril 100

Luis Mateu B. 9 AprApril 9 at 00:152024-04-09 00:15:09
Cátedras

Martes 9

Sección 1: no hay cátedra
Sección 2: no hay cátedra

Sección 3: La cátedra es el miércoles 10
Se recupera la cátedra no hecha el viernes 29 de marzo.
Temario: equivalencia entre semáforos y mutex/condiciones, mutex y condiciones implementados a partir de semáforos, 3 patrones de paralelización con threads, dividir en subintervalos, divide y conquista en paralelo y productor/consumidor, búsqueda de un factor con patrón productor/consumidor, paralelismo del tipo AND y del tipo OR

Presentación: pdf

Video de un semestre previo

Jueves 11

(viernes 12 para la sección 3)

Comenzamos con la segunda unidad: administración de procesos

Temario: principio de virtualización, procesos livianos vs. procesos pesados, preemptiveness, scheduling de procesos, interrupciones y timer, estados de un proceso, descriptor de proceso, ráfagas de CPU.

Presentación: pdf

Video de un semestre previo

Cátedras del martes 2 y jueves 4 81

Luis Mateu B. 1 AprApril 1 at 19:262024-04-01 19:26:01
Cátedras

Martes 2

(viernes 5 para la sección 3)

Temario: semáforos, cena de filósofos resuelta con semáforos para garantizar la exclusión mutua, productor/consumidor resuelto con semáforos, productor/consumidor resuelto con patrón request usando semáforos en vez de mutex/condiciones, lectores/escritores resuelto con patrón request/semáforos

Presentación: pdf
Video de un semestre previo.

Errata: en el video en la solución de productor/consumidor con patrón request y semáforos las funciones del buffer se llaman put y get, pero también se llaman así las funciones put y get para agregar y extraer en la cola.  Ese es el error.  El problema se resolvió en el nuevo pdf, haciendo que las funciones del buffer se llamen putBuf y getBuf.

Jueves 4

(miércoles 10 para la sección 3)

Temario: equivalencia entre semáforos y mutex/condiciones, mutex y condiciones implementados a partir de semáforos, 3 patrones de paralelización con threads, dividir en subintervalos, divide y conquista en paralelo y productor/consumidor, búsqueda de un factor con patrón productor/consumidor, paralelismo del tipo AND y del tipo OR

Presentación: pdf

Video de un semestre previo

Cátedras del martes 26 y jueves 28 136

Luis Mateu B. 25 MarMarch 25 at 15:162024-03-25 15:16:25
Cátedras


Martes 26

(miércoles 27 para la sección 3)

Temario: orden de atención indefinido, atención por orden de llegada, lectores/escritores sin hambruna (por orden de llegada), patrón request para atender en un orden específico

Presentación: pdf
Video de una clase equivalente de un semestre anterior

Jueves 28

(miércoles 3 para la sección 3)

Temario: continuación de la solución eficiente de los lectores/escritores sin hambruna, semáforos.

Presentación: pdf
Video de una clase equivalente de un semestre anterior.

Cátedra del jueves 14 de marzo 151

Luis Mateu B. 13 MarMarch 13 at 12:582024-03-13 12:58:13
Cátedras

Secciones 2 y 3: La cátedra será presencial y el tema es la paralelización con threads. clase2.pdf (271 kb)

Todavía no hay pdf con la presentación y no habrá video, pero las 3 próximas cátedras están disponibles con el relator como se indica a continuación.

Para la sección 1 las próximas 3 cátedras serán asíncronas, pero abriré una sesión de zoom para que puedan hacer consultas relacionadas con el curso.  Para ver las cátedras en Windows deben descargar el relator y las clases sobre threads.  El relator es un programa en java y por lo tanto deben instalar el java run time environment (jre).  Basta hacer doble click en el archivo relator-v031.jar para ejecutarlo.  Si esto no funciona tiene que lanzarlo manualmente con el intérprete de comandos de Windows ("cmd.com").  Algo así como:
"...ruta de java..."\javaw -jar "...ruta del relator..."\relator-v031.jar

En Linux deben instalar openjdk y ejecutar en un terminal:
java -jar relator-v031.jar

En el relator seleccionen open en el menu File y seleccionen el archivo threads8.rto que descargaron.  Usen la tecla "enter" para iniciar/pausar la reproducción.

También hay java para MacOS, pero cuidado porque MacOS no permite al relator leer archivos desde cualquier carpeta.  Si tienen problemas para encontrar el archivo descargado (threads8.rto,) muévanlo a la carpeta raíz de su cuenta.

Para la sección 1 recomiendo este calendario para estudiar los threads:

Jueves 14: paralelización con threads.  Desde el comienzo hasta el minuto 35. 

Martes 19: secciones críticas, sincronización con mutex y condiciones, el problema del productor/consumidor.  Desde el minuto 35 hasta el minuto 95. clase3.pdf (197 kb)

Jueves 21: la cena de filósofos y lectores/escritores.  Desde el minuto 95 hasta el final.

La sección 1 retomará las clases online a partir del martes 26.