Cátedras del martes 4 y jueves 6 de abril
81
Luis Mateu B. 3 Abr 202303/04/23 a las 21:12 hrs.2023-04-03 21:12:03 Cátedras presenciales
Ambas clases serán presenciales.
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 (corregido)
Video de un semestre previo
Errata 1: 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.
Errata 2: en el video, en la misma función de la Errata 1, digo que el mutex lo hereda el thread que estoy retomando (el consumidor). Eso es incorrecto. El código corregido en el nuevo pdf es:
if (emptyQueue(buf->consq))
sem_post(&buf->mutex); // unlock
else {
sem_t *pw= get(buf->consq);
sem_post(&buf->mutex); // faltaba este unlock
sem_post(pw); // cond signal
}
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: sem2mutex.pdf (corregido)
Martes 4
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 (corregido)
Video de un semestre previo
Errata 1: 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.
Errata 2: en el video, en la misma función de la Errata 1, digo que el mutex lo hereda el thread que estoy retomando (el consumidor). Eso es incorrecto. El código corregido en el nuevo pdf es:
if (emptyQueue(buf->consq))
sem_post(&buf->mutex); // unlock
else {
sem_t *pw= get(buf->consq);
sem_post(&buf->mutex); // faltaba este unlock
sem_post(pw); // cond signal
}
Jueves 6
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: sem2mutex.pdf (corregido)
Video de un semestre previo
Auxiliar #3 Patrón Request
66
Pablo Jaramillo V. 28 Mar 202328/03/23 a las 12:13 hrs.2023-03-28 12:13:28 Auxiliares
Hola! La auxiliar #3 de mañana a las 16:15 será en la sala B112, pero es posible que haya un cambio, de ser así lo anunciaré en el foro antes de almuerzo. Vamos a ver el Patrón Request usando pthreads resolviendo un problema de paralelización inspirado en el transporte de contenedores con camiones.
Material:
Existe el vídeo del año pasado que cubre el mismo problema para quienes no puedan asistir presencialmente.
Edit (28/03 - 19:40):
Acorde al comunicado FCFM recientemente publicado actualizo este post para confirmar que en efecto voy a hacer el auxiliar en formato online, misma hora. Si desean posterior a este podemos continuar en una sesión de consultas para resolver dudas adicionales que tengan sobre el aux y/o la tarea.
Adicionalmente añadí aparte de la solución del auxiliar una versión plantilla por si les parece útil para mañana (mismo archivo pero sin la respuesta, como para seguir el aux).
Edit (29/03 - 18:02):
Hice una pequeña corrección en los archivos de código que me indicaron durante el aux donde había un error ortográfico en la llamada a mutex_lock. Cosa pequeña pero igual lo hago para evitar confusiones al futuro.
Material:
Existe el vídeo del año pasado que cubre el mismo problema para quienes no puedan asistir presencialmente.
Edit (28/03 - 19:40):
Acorde al comunicado FCFM recientemente publicado actualizo este post para confirmar que en efecto voy a hacer el auxiliar en formato online, misma hora. Si desean posterior a este podemos continuar en una sesión de consultas para resolver dudas adicionales que tengan sobre el aux y/o la tarea.
Adicionalmente añadí aparte de la solución del auxiliar una versión plantilla por si les parece útil para mañana (mismo archivo pero sin la respuesta, como para seguir el aux).
Edit (29/03 - 18:02):
Hice una pequeña corrección en los archivos de código que me indicaron durante el aux donde había un error ortográfico en la llamada a mutex_lock. Cosa pequeña pero igual lo hago para evitar confusiones al futuro.
Cátedras presenciales del martes 28 y jueves 30 de marzo
70
Luis Mateu B. 27 Mar 202327/03/23 a las 13:03 hrs.2023-03-27 13:03:27 Cátedras presenciales
Esta semana volvemos al formato presencial para las cátedras.
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.
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.
Martes 28
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 30
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.
Auxiliar #2
75
José Astorga Tobar 21 Mar 202321/03/23 a las 16:05 hrs.2023-03-21 16:05:21 Auxiliares
La auxiliar #2 se desarrollará de manera presencial mañana a las 16:15 en la sala B112. Veremos pthreads y sincronización de threads usando mutex y condiciones, resolveremos dos problemas:
Material:
Existen videos de semestres anteriores para quienes no puedan asistir presencialmente:
- Resolución de Quicksort en paralelo.
- Sincronización de threads (problema de la colecta).
Material:
Existen videos de semestres anteriores para quienes no puedan asistir presencialmente:
- Para ver la resolución de quicksort en N cores, pueden ver este video desde el minuto 21:18 hasta el minuto 53:00
- Para ver la resolución del problema de la colecta, pueden ver este video desde el minuto 29:06 hasta el minuto 53:00
Cátedras del martes 21 y jueves 23 de marzo
59
Luis Mateu B. 20 Mar 202320/03/23 a las 15:02 hrs.2023-03-20 15:02:20 Cátedras con el relator
Les recuerdo que las 2 cátedras de esta semana son asíncronas, sobre pthreads. El material se publicó en esta noticia.
Abriré la sesión de zoom para que puedan hacer consultas sobre la materia o cualquier tema relacionado con el curso. Por ejemplo problemas de instalación de Debian 11.
Abriré la sesión de zoom para que puedan hacer consultas sobre la materia o cualquier tema relacionado con el curso. Por ejemplo problemas de instalación de Debian 11.
Clase de cátedra del jueves 16 de marzo (con el relator)
113
Luis Mateu B. 15 Mar 202315/03/23 a las 14:31 hrs.2023-03-15 14:31:15 Cátedras con el relator
Iniciaremos el curso estudiando el tema de la paralelización con threads y su sincronización. Este es el calendario recomendado de estudio para las cátedras grabadas de mañana jueves hasta el jueves 23 de marzo (3 cátedras). El material está grabado con el relator, conocido ya por la mayoría.
Para ver las clases 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.
Recomiendo este calendario para estudiar los threads:
Jueves 11: paralelización con threads. Desde el comienzo hasta el minuto 35.
Martes 16: secciones críticas, sincronización con mutex y condiciones, el problema del productor/consumidor. Desde el minuto 35 hasta el minuto 95.
Jueves 18: la cena de filósofos y lectores/escritores. Desde el minuto 95 hasta el final.
A partir del martes 28 continuaremos profundizando sobre los threads con clases presenciales.
Para ver las clases 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.
Recomiendo este calendario para estudiar los threads:
Jueves 11: paralelización con threads. Desde el comienzo hasta el minuto 35.
Martes 16: secciones críticas, sincronización con mutex y condiciones, el problema del productor/consumidor. Desde el minuto 35 hasta el minuto 95.
Jueves 18: la cena de filósofos y lectores/escritores. Desde el minuto 95 hasta el final.
A partir del martes 28 continuaremos profundizando sobre los threads con clases presenciales.
Auxiliar #1
92
José Astorga Tobar 14 Mar 202314/03/23 a las 19:27 hrs.2023-03-14 19:27:14 Auxiliares
Mañana a las 16:15 en la sala B112 tendremos la primera auxiliar del semestre. Veremos una introducción a pthreads.
Disapositivas (85 kb)
Códigos
Hay un video disponible de un semestre anterior para quienes no puedan asistir: video
Disapositivas (85 kb)
Códigos
Hay un video disponible de un semestre anterior para quienes no puedan asistir: video
Primera clase presencial: mañana martes 14 de marzo a las 12:00
95
Luis Mateu B. 13 Mar 202313/03/23 a las 12:59 hrs.2023-03-13 12:59:13 Cátedras presenciales
Bienvenidos al curso CC4302 Sistemas Operativos. Publicaré en novedades las noticias más relevantes del curso. Mañana martes tendremos la primera clase presencial.
Hablaré de los siguientes temas:
El curso será muy similar al del semestre pasado. Si no puede asistir a la clase de mañana, vea el Video y pdf de la clase del semestre pasado.
En la sección presentación de U-cursos escribí una breve introducción a CC4302.
Hablaré de los siguientes temas:
- Resultados de aprendizaje
- Nuevo programa de curso
- Bibliografía
- Evaluación
- Historia de los sistemas operativos
El curso será muy similar al del semestre pasado. Si no puede asistir a la clase de mañana, vea el Video y pdf de la clase del semestre pasado.
En la sección presentación de U-cursos escribí una breve introducción a CC4302.