Sistemas Operativos (300CIG011)

 

Información Básica

  • Créditos: 3
  • Horas de Clase: 4 / semana
  • Horas de trabajo independiente: 5 / semana
  • Horas de Laboratorio al semestre:
  • Tipo de curso: Núcleo de Formación Fundamental.

Descripción del Curso

Capacitar al estudiante en el conocimiento y utilización eficiente de los Sistemas Operativos
modernos, a través de la presentación, estudio y análisis de sus principales componentes.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Nombrar los principales hitos en la evolución de los sistemas de cómputo.
  2. Entender y escribir programas concurrentes utilizando diferentes constructores.
    1. Definir relaciones de precedencia
    2. Usar constructores implicitos
    3. Usar constructors explicitos (fork, join, quit)
    4. Usar declaraciones de procesos
  3. Entender le diferencia entre competicion (critical section) y cooperacion
  4. Hacer uso de semáforos para resolver problemas de cooperación entre procesos.
    1. Implementar exclusion mutua
    2. Implementar situaciones de productores-consumidores
  5. Resolver problemas de coordinación utilizando constructores de alto nivel
    1. Usar diferentes tipos de monitores
    2. Usar paso de mensajes en sistemas sin memoria compartida
    3. Entender las soluciones a los problemas clásicos de lectura y escritura, dining philosophers y disk-head scheduler.
  6. Entender el concepto del nucleo (kernel) de sistemas operativos
    1. Entender la diferencia entre procesos y hilos
    2. Implementar los descriptores de procesos y recursos, así como sus operaciones.
    3. Identificar las diferentes implementaciones de las primitivas de semáforos y monitores.
  7. Entender los principios de scheduling
    1. Entender la organizacion de schedulers
    2. Describir los principales métodos de scheduling (FIFO, SJF, SJN, RR, MLF, RM, EDF)
    3. Entender sus ventajas y desventajas principales
  8. Entender el concepto deadlock
    1. Aplicar la reducción de grafos para detectar deadlocks.
    2. Identificar los diferentes métodos de detección y prevención de deadlocks
  9. Entender memoria fisica
    1. Identificar las diferencias entre esquemas de partición fijos y variables.
    2. Aplicar diferentes algoritmos para reservar memoria (first-fit, next-fit, best-fit) y para liberar memoria (coalescing).
  10. Entender los principios de memoria virtual
    1. Entender las diferencias entre paging y segmentation
    2. Entender el uso de page tables frame tables, y segment table para traducir direcciones virtuales (virtual addresses)
    3. Entender el uso de translation look-aside buffers
    4. Identificar las diferencias entre las diferentes estrategias de reemplazo de páginas.
    5. Evaluar le eficiencia de paging
  11. Entender sharing
    1. Entender las limitaciones de sharing en sistemas sin memoria virtual
    2. Diferenciar entre sharing de paginas con codigo y paginas con datos
    3. Diferencias entre sharing estático y dinámico en sistemas con páginas y segmentados.
  12. Entender systemas de archivos
    1. Identificar los diferentes mecanismos de organización de directorios (tree, DAG, general graph, symbolic links)
    2. Entender los principios de archivos abiertos y cerrados.
    3. Identificar las ventajas y desventajas entre las diferentes formas de organización de los archivos físicos (contiguous, linked, indexed)
  13. Entender input/output
    1. Reconocer los requisitos de diferentes dispositivos de I/O
    2. Reconocer las funciones de los controladores de dispositivos utilizando polling e interrupciones.
    3. Describir los mecanismos para implementar buffering, manejo de errores y disk scheduling
  14. Entender problemas y soluciones de proteccion y seguridad
    1. Identificar los posibles ataques de seguridad en un sistema.
    2. Comprender los diferentes mecanismos para realizar autenticación de usuarios.
    3. Aplicar métodos de criptografía de llaves privadas y públicas.
    4. Identificar las diferencias entre listas de acceso y listas de privilegios.
    5. Entender las diferencias entre control de acceso y control de flujo de información.

Contenido

Capítulo 1: Introduction

Sesión Horas de Clase Tópicos Bibliografía
1 1 The Role of Operating Systems [1,cap1]
1 1 Organization of Operating Systems

Total de Horas: 2.

Capítulo 2: Basic Concepts: Processes and Their Interactions

Sesión Horas de Clase Tópicos Bibliografía
2 1 The Process Notion [1,cap2]
2 1 Defining and Instantiating Processes
3 2 Basic Process Interactions
4 2 Semaphores

Total de Horas: 6.

Capítulo 3: Higher-Level Synchronization and Communication

Sesión Horas de Clase Tópicos Bibliografía
5 2 Shared Memory Methods [1,cap3]
6 2 Distributed Synchronization and Communication
7 2 Other Classic Synchronization Problems

Total de Horas: 6.

Capítulo 4: The Operating System Kernel: Implementing Processes and Threads

Sesión Horas de Clase Tópicos Bibliografía
8 1 Kernel Definitions and Objects [1,cap4]
8 1 Threads
9 2 Implementing Processes and Threads
10 2 Implementing Synchronization and Communication Mechanisms

Total de Horas: 6.

Capítulo 5: Process and Thread Scheduling

Sesión Horas de Clase Tópicos Bibliografía
11 2 Organization of Schedulers [1,cap5]
12 2 Scheduling Methods

Total de Horas: 4.

Capítulo 6: Deadlocks

Sesión Horas de Clase Tópicos Bibliografía
13 1 A System Model
13 1 Deadlock Detection
14 1 Dynamic Deadlock Avoidance
14 1 Deadlock Prevention

Total de Horas: 4.

Capítulo 7: Physical Memory

Sesión Horas de Clase Tópicos Bibliografía
15 1 Preparing a Program for Execution [1,cap7]
15 1 Memory Partitioning Schemes
16 2 Allocation Strategies for Variable Partitions

Total de Horas: 4.

Capítulo 8: Virtual Memory

Sesión Horas de Clase Tópicos Bibliografía
17 2 Principles of Virtual Memory [1,cap8]
18 2 Implementations of Virtual Memory
19 2 Memory Allocation in Paged Systems

Total de Horas: 6.

Capítulo 9: Sharing of Data and Code in Main Memory

Sesión Horas de Clase Tópicos Bibliografía
20 1 Single-Copy Sharing [1,cap9]
20 1 Sharing in Systems without Virtual Memory
21 1 Sharing in Paging Systems
21 1 Sharing in Segmented Systems

Total de Horas: 4.

Capítulo 10: File Systems

Sesión Horas de Clase Tópicos Bibliografía
22 1 Basic Functions of File Management [1,cap10]
22 1 Hierarchical Model of a File System
23 1 The User’s View of Files
23 1 File Directories
24 1 Basic File System
24 1 Device Organization Methods

Total de Horas: 6.

Capítulo 11: Input/Output Systems

Sesión Horas de Clase Tópicos Bibliografía
25 2 Basic Issues in Device Management [1,cap11]
25 A Hierarchical Model of the Input/Output System
25 Input/Output Devices
25 Device Drivers
26 2 Device Management

Total de Horas: 4.

Capítulo 12: The Protection and Security Interface

Sesión Horas de Clase Tópicos Bibliografía
27 1 Security Threats [1,cap12]
27 1 Functions of a Protection System
28 1 User Authentication
28 1 Secure Communication

Total de Horas: 4.

Capítulo 13: Internal Protection Mechanisms

Sesión Horas de Clase Tópicos Bibliografía
29 1 The Access Control Environment [1,cap13]
29 1 Instruction-Level Access Control
30 1 High-Level Access Control
30 1 Information Flow Control

Total de Horas: 4.

Matriculación

  1. 2011-1: 20
  2. 2010-2: 20
  3. 2010-1: 20

Recursos

Bibliografía

  1. L. Bic, A. Shaw, Operating Systems Principles, Prentice-Hall, 2003 (ISBN: 0130266116)
  2. Andrew S. Tanenbaum, Sistemas Operativos, Prentice Hall, 1999.
  3. Andrew S. Tanenbaum, Sistemas Operativos Modernos, Prentice Hall, 1993.
  4. Gary Nutt, Operating Systems, tercera edición, Addison Wesley, 2004.
  5. Silberschatz & Galvin, Sistemas Operativos, Pearson, 1999.
  6. Francisco Rueda. Sistemas Operativos. McGraw Hill, 1989.
  7. William Stallings, Operating Systems. MacMillan Publishing Company, New York, USA, 1992.

Instalaciones

Salón de clase con computador y proyector.

Material de este semestre