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
Martes 2023/Ago/15
(Semana 1)
Martes 2023/Ago/22
(Semana 2)
Martes 2023/Ago/29
(Semana 3)
  • Revisión de dudas: capítulo I
  • Lectura designada del Cap. II
  • Teoría Cap. XVI [Final]
  • Teoría Cap. XVII [Final]
  • Quiz: capítulo I
  • Primera tarea programada: rotonda de circunvalación (5% del 30% de proyectos prácticos)
    • Fecha de entrega: 2023/Set/15
    • Completar la clase "Buzon" para envio de mensajes por medio de buzones
    • Enunciado
Martes 2023/Set/05
(Semana 4)
Martes 2023/Set/12
(Semana 5)
  • Teoría Cap. IV Hilos [G2-Final]
  • Teoría Cap V pendiente, lo vemos luego
  • Teoría Cap. VI Synchronization tools [G2-50]
  • Teoría Cap. VII Synchronization examples [G2-11-15]
    • Ejemplo de los filósofos
  • Anuncio: quiz del Cap. XVI el próximo martes 19/Set
Martes 2023/Set/19
(Semana 6)
  • Teoría Cap. VII Synchronization examples [G2-Final]
    • Lectores/Escritores, Buffer acotado
    • H2O
    • Otros (barbería, caníbales/misioneros, puente, supersticioso, fumadores, Santa, baduinos, etc. )
  • Teoría Cap. III Process management [G2-10]
  • 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: 2023/Oct/03
  • Quiz del capítulo XVI
Martes 2023/Set/26
(Semana 7)
Martes 2023/Oct/03
(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: 2023/Oct/24 EOD
  • Realización de ejercicios en clases
Viernes 2023/Oct/06
(Semana 8)
  • Primer examen parcial 9a.m. - 12 m.d.
    Aula: 203 IF
  • Atención: es en horario del PI
Martes 2023/Oct/10
(Semana 9)
  • Teoría Cap. IX Main Memory [G2-39]
  • 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 2023/Oct/24 EOD)
Martes 2023/Oct/17
(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
  • Martes 2023/Oct/24
    (Semana 11)
    • Teoría Cap. X Virtual Memory [G2-47]
    • Ejemplos en el sistema operativo NachOS
    • Entrega del proyecto de "Programas de Usuario" de NachOS
    Martes 2023/Oct/31
    (Semana 12)
    • Inicio del proyecto de memoria virtual de NachOS (10% del 30% de proyectos programados)
      • Fecha de entrega: Martes 2023/Nov/28 (eod)
    • Teoría Cap. X Virtual memory [G2-final]
    • Revisión de NachOS para el proyecto de memoria virtual
    Martes 2023/Nov/07
    (Semana 13)
    • Teoría Cap. XI Mass Storage Systems [G2-28]
    • Algoritmos de atención de solicitudes de disco
      • FCFS
      • SSTF
      • SCAN y CSCAN
      • LOOK y CLOOK
    Martes 2023/Nov/14
    (Semana 14)
    Martes 2023/Nov/21
    (Semana 15)
    • Teoría Cap. XI Mass=storage systems [G2-Final]
    • Teoría Cap. XIII File system interface [G2-Final,]
    • Teoría Cap. XIV File system implementation [G2-13]