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
Miércoles 2026/Ago/12
(Semana 1)
Miércoles 2026/Ago/19
(Semana 2)
Miércoles 2026/Ago/26
(Semana 3)
  • Revisión de dudas: capítulo II
  • Teoría Cap. XVI [G2:Fin, G5:Fin]
  • Teoría Cap. XVII [G2:10, G5:06]
  • Quiz: capítulo II
  • Primera tarea programada: papa caliente (5% del 30% de proyectos prácticos)
    • Fecha de entrega: 2026/Set/16
    • Completar la clase "Buzon" para envio de mensajes por medio de buzones
    • Enunciado
  • Anuncio: quiz del Cap. XVI el próximo miércoles 02/Set
  • Quiz: capítulo II
Miércoles 2026/Set/02
(Semana 4)
  • Teoría Cap. XVII [G2:Fin, G5:??]
  • Teoría Cap. III Procesos [G2:29, G5:10]
  • Anuncio: quiz del Cap. XVII el próximo miércoles 09/Set
Miércoles 2026/Set/09
(Semana 5)
  • Teoría Cap. III Procesos [G2:fin, G5:fin]
  • Teoría Cap. IV Hilos [G2:49, G5:08]
  • Teoría Cap V pendiente, lo vemos luego
  • Teoría Cap. VI Synchronization tools [G2:??, G5:??]
  • Teoría Cap. VII Synchronization examples [G2:??, G5:??]
    • Ejemplo de los filósofos
  • Anuncio: quiz del Cap. III el próximo miércoles 16/Set
  • Quiz: capítulo XVII
Miércoles 2026/Set/16
(Semana 6)
  • Teoría Cap. IV Hilos [G2:fin, G5:fin]
  • Teoría Cap. VI Synchronization tools [G2:fin, G5:fin]
  • Teoría Cap. VII Synchronization examples [G2:29, G5:??]
    • Lectores/Escritores, Buffer acotado
    • H2O
    • Otros (barbería, caníbales/misioneros, puente, supersticioso, fumadores, Santa, baduinos, etc. )
  • Anuncio: quiz del Cap. IV el próximo miércoles
  • Quiz del capítulo III
Miércoles 2026/Set/23
(Semana 7)
  • Teoría Cap. V CPU Scheduling [G2:??, G5:??]
  • Ejercicios prácticos de sincronización de tareas
  • Otros ejemplos de sincronización
  • NachOS Threads/Synchronization
    • 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 bajar el código, descompactarlo, cambiarse al directorio "NachOSx64/code/threads",
      correr "make depend" y "make"; para correrlo "./nachos"
    • Entrega: 2026/Oct/03
  • Anuncio: quiz del Cap. VI el próximo miércoles
  • Quiz del capítulo IV
Miércoles 2026/Set/30
(Semana 8)
  • 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/Oct/24 EOD
  • Realización de ejercicios en clases
Miércoles 2026/Oct/07
(Semana 9)
  • Teoría Cap. IX Main Memory [G2:??, G5:??]
  • 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/Oct/24 EOD)
Miércoles 2026/Oct/14
(Semana 10)
  • 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
  • Miércoles 2026/Oct/21
    (Semana 11)
    • Teoría Cap. X Virtual Memory [G2:??, G5:??]
    • Ejemplos en el sistema operativo NachOS
    • Entrega del proyecto de "Programas de Usuario" de NachOS
    Miércoles 2026/Oct/28
    (Semana 12)
    • Inicio del proyecto de memoria virtual de NachOS (10% del 30% de proyectos programados)
      • Fecha de entrega: Miércoles 2026/Nov/28 (eod)
    • Teoría Cap. X Virtual memory [G2:??, G5:??]
    • Revisión de NachOS para el proyecto de memoria virtual
    Miércoles 2026/Nov/04
    (Semana 13)
    • Teoría Cap. XI Mass Storage Systems [G2:??, G5:??]
    • Algoritmos de atención de solicitudes de disco
      • FCFS
      • SSTF
      • SCAN y CSCAN
      • LOOK y CLOOK
    Miércoles 2026/Nov/11
    (Semana 14)
    Miércoles 2026/Nov/18
    (Semana 15)
    • Teoría Cap. XI Mass=storage systems [G2:??, G5:??]
    • Teoría Cap. XIII File system interface [G2:??, G5:??]
    • Teoría Cap. XIV File system implementation [G2:??, G5:??]
    Miércoles 2026/Nov/25
    (Semana 16)
    • Teoría Cap. XIV File system implementation [G2:??, G5:??]
    • Teoría Cap. VIII Deadlocks [G2:??, G5:??]
    • Quiz del capítulo V (Alg. de asignación de CPU)
    • Quiz del capítulo X (Alg. de reemplazo de páginas)
    Miércoles 2026/Dic/02
    (Semana 17 - exámenes)
    • Examen parcial: 9-12 a.m. Aula IF205
      • Teoría (cap. del libro): IV, V, VIII, IX, X, XI, XII , XIII, XIV
        
      (°v°)  Linux
     <(   )>     
       w w      
               
    
        
                \|||/
                (O O)
          --ooO--(o)------
        / UCR/ECCI         \
       |                    |
       |      CI0122        |
       |                    |
        \                  /
          ------------ooO--
              |   | y |
              |___|___|
               ||   ||
              (d]   [b)