¡Esta es una revisión vieja del documento!


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.

Integración Curricular

Resultados de Programa (ABET)

A. La habilidad para aplicar conocimiento de matemáticas, ciencias e ingeniería.

B. La habilidad para diseñar y conducir experimentos así como para analizar e interpretar datos.

C. La habilidad para diseñar un sistema, componente o proceso para satisfacer necesidades deseadas dentro de restricciones realistas.

D. La habilidad para funcionar en equipos multidisciplinarios.

E. La habilidad para identificar, formular y resolver problemas de ingeniería.

F. El entendimiento de la responsabilidad profesional y ética.

G. La habilidad para comunicarse efectivamente.

H. La educación amplia y necesaria para entender los impactos de las soluciones de ingeniería en contextos globales económicos, ambientales y sociales.

I. El reconocimiento de la necesidad de, y la habilidad para, continuar el aprendizaje a lo largo de la vida.

J. El conocimiento de asuntos contemporáneos.

K. La habilidad para usar las técnicas, destrezas y herramientas modernas de ingeniería necesarias para la práctica de la ingeniería.

Relevancia del curso con los resultados de programa

Resultados de Programa
a b c d e f g h i j k
Relevancia 3 2 2 1 2 0 1 0 3 0 2

1: baja relevancia; 2: media relevancia; 3: alta relevancia.

Relación de objetivos del curso con resultados de programa y estrategia de evaluación

Resultados del Programa Objetivos del Curso Actividades de aprendizaje Instrumentos de medición
A. Conocimiento técnico. Todos Exposiciones del profesor, solución de ejercicios, tareas y lecturas Exámenes, proyectos y tareas
B. Habilidades experimentales. Todos Solución de ejercicios Exámenes, proyectos, tareas
C. Diseño de ingeniería. Todos Solución de ejercicios Exámenes, proyectos
D. Trabajo en equipo Cap 4,7,8 Discusion en Clase Proyectos
E. Solución problemas de ingeniería. Todos Solución ejercicios Exámenes, proyectos
F. Responsabilidad ética. Cap 1 Práctica de las reglas del curso. Reglas para compartir trabajo Tareas, lecturas y observancia de las reglas del curso
G. Comunicación efectiva. Cap 4,7,8 Proyectos en equipo Reportes de los resultadoes de proyectos, decumentos de diseno
H. Amplitud de conocimiento. Cap 12, 13 Lecturas, discusiones Tareas
I. Aprendizaje de por vida. Lecturas Proyectos y Tareas
J. Asuntos contemporáneos. Lecturas Tareas
K. Uso de herramientas de ingeniería. Todos Solución ejercicios Exámenes, proyectos

Recomendaciones del Director del Programa

Reglas del curso

Calificación

Porcentaje
Tareas 25 %
Primer Parcial 20 %
Segundo Parcial 20 %
Tercer Parcial 20 %
Quices 10 %
Exposición 5 %

Uso de material en exámenes

Está permitido el uso de notas de clase, bibliografía y calculadoras. No está permitido el uso de computadores personales ni teléfonos celulares.

Asistencia

Obligatoria

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. Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, 2014
  3. Andrew S. Tanenbaum, Sistemas Operativos, Prentice Hall, 1999.
  4. Andrew S. Tanenbaum, Sistemas Operativos Modernos, Prentice Hall, 1993.
  5. Gary Nutt, Operating Systems, tercera edición, Addison Wesley, 2004.
  6. Silberschatz & Galvin, Sistemas Operativos, Pearson, 1999.
  7. Francisco Rueda. Sistemas Operativos. McGraw Hill, 1989.
  8. William Stallings, Operating Systems. MacMillan Publishing Company, New York, USA, 1992.

Instalaciones

Salón de clase con computador y proyector.

Material de este semestre

 
materias/sistemas_operativos.1406209188.txt.gz · Última modificación: 2014/07/24 08:39 por abecerra
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki