CI-0122

Universidad de Costa Rica

Escuela de Ciencias de la Computación e Informática

CI-0122 Sistemas operativos

Curso teórico/práctico


CI0122  / Temas

Fecha Temas
  • Semana 1: Mar/09 a Mar/13 del 2026
    • Grupo 2: martes 10
    • Grupo 3: viernes 13
  • Semana 2: Mar/16 a Mar/20 del 2026
    • Grupo 2: martes 17
    • Grupo 3: viernes 20
  • Semana 3: Mar/23 a Mar/27 del 2026
    • Grupo 2: martes 24
    • Grupo 3: viernes 27
  • Revisión de dudas: capítulo I
  • Lectura designada del Cap. II
  • Teoría Cap. XVII [G2:Fin; G3:Fin]
  • Quiz: capítulo I
  • Primera tarea programada: rotonda de circunvalación (5% del 30% de proyectos prácticos)
    • Fecha de entrega: 2026/Abr/10
    • Completar la clase "Buzon" para envio de mensajes por medio de buzones
    • Enunciado
  • Semana 4: Mar/30 a Abr/03 del 2026
    • Grupo 2: martes 17
    • Grupo 3: viernes 20
  • Semana Santa
  • Semana 5: Abr/06 a Abr/10 del 2026
    • Grupo 2: martes 07
    • Grupo 3: viernes 10
  • Teoría Cap. III Procesos [G2:??; G3:Fin]
  • Teoría Cap. IV Hilos [G2:??; G3:20]
  • Quiz: capítulo II
  • Semana 6: Abr/13 a Abr/17 del 2026
    • Grupo 2: martes 14
    • Grupo 3: viernes 17
  • Teoría Cap. III Procesos [G2:Fin; G3:Fin]
  • Teoría Cap. IV Hilos [G2:Fin; G3:20]
  • Teoría Cap. V CPU Scheduling [G2:25; G3:44]
    • Ejemplo de los filósofos
  • Semana 7: Abr/20 a Abr/24 del 2026
    • Grupo 2: martes 21
    • Grupo 3: viernes 24
  • Teoría Cap. VI Synchronization tools [G2:??; G3:??]
  • Teoría Cap. VII Synchronization examples [G2:??; G3:??]
    • Lectores/Escritores, Buffer acotado
    • H2O
    • Otros (barbería, caníbales/misioneros, puente, supersticioso, fumadores, Santa, baduinos, etc. )
  • Otros ejemplos de sincronización
  • NachOS
    • NachOS Threads/Synchronization tools
      • Dining philosophers (monitors and condition variables)
      • H2O
    • Tarea corta: resolver el problema del agua en NachOS
      • Completar la clase "synch" y lograr que funcionen "Lock" y "Condition"
      • Hacer correr el código de los filósofos en el método "ThreadTest" del archivo "threadtest.cc"
      • Recuerden que deben solicitar el código al profesor, descompactarlo, cambiarse al directorio "NachOSx64/code/threads", correr "make depend" y "make"; para correrlo "./nachos"
      • Entrega: 2026/Abr/30
  • Anuncio: quiz del Cap. XVI para la próxima clase
  • Semana 8: Abr/27 a May/01 del 2026
    • Grupo 2: martes 21
    • Grupo 3: viernes 01
  • Proyecto programado (15% del 30% de proyectos programados)
    • Revisión del proyecto del programas de usuario de NachOS
      • Lograr que varios programas puedan estar cargados en memoria
      • Agregar llamados al sistema, entre ellos los relacionados a sockets
      • Administrar recursos: tabla de recursos (archivos) abiertos
      • Lograr que varios programas de usuario funcionen correctamente
        • todos, addrspacetest, agua
        • shell
        • Entre otros
    • Entrega: 2026/May/29 EOD
  • Ejercicios prácticos de sincronización de tareas
  • Quiz del capítulo XVI para grupo 2
  • Semana 9: May/04 a May/08 del 2026
    • Grupo 2: martes 05
    • Grupo 3: martes 05
  • Primer examen parcial (Aula 302-IF):
    • Grupo 2 y 3: martes 05 de mayo de 4 a 7 p.m.
  • Semana 10: May/11 a May/15 del 2026
    • Grupo 2: martes 12
    • Grupo 3: viernes 15
  • Teoría Cap. V CPU Scheduling [G2:??; G3:??]
  • Semana 11: May/18 a May/22 del 2026
    • Grupo 2: martes 19
    • Grupo 3: viernes 22
  • Teoría Cap. IX Main Memory [G2:50; G3:50]
  • Detalles del proyecto programado
    • Revisión de código de NachOS
      • Proceso de simulación de instrucciones MIPS de NachOS (Machine->OneInstruction)
      • Proceso de atención de llamados al sistemas desde MIPS con "syscall"
      • Revisión de un programa MIPS (hexdump)
      • Detalles de la tabla de páginas (tamaño de la página, protección)
      • Declaración de variables del sistema (mapa de bits para los marcos libres en "system.h" y "system.cc")
      • Manejo de las páginas libres de memoria (bitmap)
      • Revisión del proceso de carga de programas a memoria
      • Estrategia de versionamiento con "#ifdef"
    • Asistencias para el proyecto (entrega 2026/May/22 EOD)
  • Semana 12: May/25 a May/29 del 2026
    • Grupo 2: martes 26
    • Grupo 3: viernes 29
  • NachOS
    • Revisión de tareas por hacer en NachOS
    • MIPS ISA
    • Llamados al sistema de NachOS
      • Llamados al sistema sin relativos en Linux (obligatorios)
        • Halt, Exit, Exec, Fork, Join, Yield
      • Llamados al sistema con similares en Linux (obligatorios)
        • Create, Open, Close, Read, Write
        • Ocupan una tabla de archivos abiertos
      • Llamados al sistema de sincronización (opcionales)
        • SC_SemCreate, SC_SemDestroy, SC_SemWait, SC_SemSignal
        • SC_LckCreate, SC_LckDestroy, SC_LckAcquire, SC_LckRelease
        • SC_CondCreate, SC_CondDestroy, SC_CondWait, SC_CondSignal, SC_CondBroadcast
        • Utilizan los recursos de NachOS (en synch.h)
        • Ocupan una tabla de recursos abiertos
      • Llamados al sistema para Sockets (obligatorios para el cliente)
        • SC_Socket, SC_Connect, Read, Write (client)
        • SC_Bind, SC_Listen, SC_Accept, SC_Shutdown (server)
        • Ocupan una tabla de recursos abiertos
  • Clases
    • Semana 13: Jun/01 a Jun/05 del 2026
      • Grupo 2: martes 02
      • Grupo 3: viernes 05
    • Teoría Cap. X Virtual Memory [G2:??; G3:??]
    • Ejemplos en el sistema operativo NachOS
    • Entrega del proyecto de "Programas de Usuario" de NachOS
    • Semana 14: Jun/08 a Jun/12 del 2026
      • Grupo 2: martes 09
      • Grupo 3: viernes 12
    • Inicio del proyecto de memoria virtual de NachOS (10% del 30% de proyectos programados)
      • Fecha de entrega: Martes 2026/Jul/03 (eod)
    • Teoría Cap. X Virtual memory [G2:??; G3:??]
    • Revisión de NachOS para el proyecto de memoria virtual
    • Semana 15: Jun/15 a Jun/19 del 2026
      • Grupo 2: martes 16
      • Grupo 3: viernes 19
    • Teoría Cap. XI Mass Storage Systems [G2:??; G3:??]
    • Algoritmos de atención de solicitudes de disco
      • FCFS
      • SSTF
      • SCAN y CSCAN
      • LOOK y CLOOK
    • Semana 16: Jun/22 a Jun/26 del 2026
      • Grupo 2: martes 23
      • Grupo 3: viernes 26
    • Semana 17: Jun/29 a Jul/03 del 2026
      • Grupo 2: martes 30
      • Grupo 3: viernes 03
    • Teoría Cap. XI Mass=storage systems [G2:??; G3:??]
    • Teoría Cap. XIII File system interface [G2:??; G3:??]
    • Teoría Cap. XIV File system implementation [G2:??; G3:??]
        
      (°v°)  Linux
     <(   )>     
       w w      
               
    
        
                \|||/
                (O O)
          --ooO--(o)------
        / UCR/ECCI         \
       |                    |
       |      CI0122        |
       |                    |
        \                  /
          ------------ooO--
              |   | y |
              |___|___|
               ||   ||
              (d]   [b)