Programa de la Materia
Arquitecturas

1. - Arquitecturas Secuenciales

Introducción y repaso de conocimientos de materias anteriores.
Exoarquitectura - Endoarquitectura - Microarquitectura

2. - Arquitecturas Paralelas Introducción.

Clasificación de Flynn. Clasificación de Feng(Grado de Paralelismo). Arquitecturas Pipeline. Pipeline Estático y Dinámico - Tablas de Reserva - Pipeline en Máquinas SISD - Prebúsqueda de Instrucciones - Manejo de Saltos - Procesadores Vectoriales - Funcionamiento - Componentes - Procesadores “ARRAY” - Paralelismo Espacial. Procesadores Sistólicos - Algunos Algoritmos. Multiprocesadores (MIMD) - Multicomputadoras - Acoplamientos Débiles y Fuertes - Procesadores MP, Duales y Diádicos. SMP. Arquitecturas Distribuídas - Topología de las Redes - Conexiones Totales, Parciales, Jerárquicas, Estrella, Anillo, Bus Multiacceso, Crossbar Switch - Cubos.

3. - Arquitecturas no tradicionales.

Introducción. Flujo de Datos (Data Flow) - Paquetes de Operación - “Data Tokens” - Data Flow Estáticos y Dinámicos - Lenguajes Asociados.

4. - Taxonomías

Clasificación de Skillicorn, Clasificación de Dasgupta, Nuevas Clasificaciones.

El objetivo de los capítulos anteriores es el de presentar el estado actual de las Arquitecturas de Computadoras y sus tendencias. Se pedirá al alumno que compare las distintas Arquitecturas, encuentre ventajas y desventajas y proponga modificaciones. Se le pedirá además que analice artículos de revistas y otras fuentes para comparar sus contenidos con los temas de estudio. El capítulo 3 está destinado a estudiar específicamente las tendencias en los diseños, luego su contenido variará a medida que la tecnología lo haga.

Sistemas Operativos

5. - Introducción a los sistemas operativos.

Concepto de proceso. Sistemas Batch, de Tiempo Compartido, y Tiempo Real. Concepto de interacción y transacciones. Multiprogramación. Multiprocesamiento. Lenguajes de Control y Comandos. Ejecución Condicionada.Diseño en Capas.

6. - Administración de Procesador

Conceptos de Trabajo, Etapa, Programa y Tarea. Multitarea. Threads. Planificadores de Trabajo. Concepto de login. Planificadores de Procesador. Políticas de Asignación de Procesador. Algoritmos. Concepto de ‘Working Set’. Sincronización. Semáforos. Multiprocesamiento. Procesos Concurrentes y Distribuídos.

Los alumnos deberán describir la interacción de las rutinas que atienden las interrupciones, determinar los eventos que provocan las transiciones. Diseñar la base de datos que contenga los bloques de control de los programas. Programar rutinas de atención de interrupciones incluyendo el concepto de semáforos. Determinar planificaciones para distintas arquitecturas.

7. - Administración de Memoria

Simple y Contigua. Particionada Fija. Particionada Variable. Particionada Variable Reubicable (con compactación). Paginación. Swapping - Overlays - Concepto de Memoria Virtual. Paginación por Demanda. Segmentación. Segmentación Paginada.

En cada método de administración se explicarán las necesidades de hardware y software, tablas y algoritmos que cada uno requiera, ventajas y desventajas, tendencias. Se pedirá al alumno que compare los distintos métodos y sus algoritmos, que programe alguno de ellos y diseñe técnicas de ubicación de buffers de entrada/salida. Determinar las administraciones para las distintas arquitecturas.

8. - Administración de Periféricos.

Canales. Programa de Canal. DMA. Unidad de Control de Periféricos. Dispositivos Dedicados y Compartidos. Dispositivos Virtuales(SPOOLING). Planificador de Entrada/Salida. Controlador de Tráfico. Manipulador de Periféricos.

El alumno deberá discutir las técnicas de asignación, estrategias de acceso a periféricos compartidos y técnicas de aprovechamiento de periféricos, diseñar la base de datos de trabajo para el Controlador de Tráfico. Determinar el mejor aprovechamiento de Procesadores Centrales en función de la inclusión de Procesadores de Entrada/Salida.

9. - Administración de Información

Catálogos y Subcatálogos. Catálogos de Usuarios y Archivos. Controles de Acceso. Concurrencia. Listas de Control de Acceso y Listas de Control de Usuarios. Concepto de Directorio y su Contenido. Búsqueda en Catálogos. Algoritmos de Accesos. Cálculo de Dirección Lógica. Cálculo de Dirección Física. Asignación de Espacio. Buffers. Lanzamiento de Entrada/Salida.

Los alumnos deberán diseñar mecanismos de asignación de archivos, catálogos de archivos compartidos (LCA y LCU) y diseñar todas las operaciones de entrada/salida, asociando las funciones de este punto con las del punto 8.-

10. - Diseño de un Sistema

Operativo rudimentario con los administradores vistos en los puntos anteriores.

11. - Rendimiento.

Planificación de Trabajos y Procesos. Planificación Secuencial. Planificación por Prioridades. Planificación por Clases. Planificación por Recursos. Planificación algorítmica.

El alumno deberá comparar el tiempo total de ejecución de un conjunto de trabajos en distintas planificaciones y determinar controles de acceso para usuarios interactivos en función de la utilización de recursos.

12. - Principios de Diseño

Políticas y Mecanismos - Revisión del Diseño en Capas - Otras Alternativas - Máquinas Virtuales - Generación de Sistemas

13. - Tendencias

Historia - Tendencias de los Sistemas Operativos - Casos Reales (VM - UNIX, etc.)

14. - Abrazo Mortal

Definición - Condiciones Necesarias - Grafos de Asignación de Recursos - Prevención - Formas de Evitar el Abrazo Mortal - Algoritmo del Banquero - Detección - Algoritmos de Detección. Recuperación - Selección de Víctimas - Inanición.

Los alumnos deberán resolver, mediante los algoritmos estudiados, situaciones de abrazo mortal.

15. - Protección  y Seguridad.

Protección - Dominios de Protección - Derechos de Acceso - Matriz de Acceso - Tabla Global - Listas de Acceso - Listas de Capacidad - Candado/Llave (Lock/key) - Comparación de las Implementaciones - Estructuras de Protección Dinámicas - Cambios de Contenido en la Matriz de Acceso. Seguridad - Principios de Diseño - Seguridad sobre Sistemas de Información - Seguridad en Comunicaciones - Criptografía - Métodos de Substitución (Palabras Claves - DES - One Time Pad) - Distribución de Claves - Claves Públicas (RSA) - Seguridad en Bases de Datos Públicas (Dependencia de los Datos, del Tiempo y del Contexto).

El objetivo de este capítulo es que los alumnos reconozcan formas de proteger datos y que los mecanismos de protección deben estar íntimamente ligados a los diseños de los sistemas.

16. - Procesos Concurrentes

Sistemas en Tiempo Real - Núcleo de Sistemas en Tiempo Real. Tareas o Procesos - Corrutinas . Grafos de Precedencia - Condiciones de Bernstein. Primitivas Fork y Join - Problemas de Estructuración - Primitivas PARBEGIN y PAREND. Grafos de Procesos - Ejecución - Compartición de Variables - Terminación de Procesos. Problemas de la Concurrencia - Exclusión Mutua. Sección Crítica. Premisas de Dijkstra. Algoritmos de Exclusión y Sincronización. Soluciones Hardware - Soluciones Software. Problemas de Productor/Consumidor. Problemas de Lectores y Escritores. Problema de los Filósofos.

El objetivo de este capítulo es que el alumno comprenda la problemática de la ejecución simultánea de procesos que hacen uso de los mismos recursos. Se le pedirá que encuentre soluciones a situaciones  de concurrencia evitando la destrucción de información, manteniendo su consistencia y evitando abrazos mortales.

17. - Programación Concurrente

Modularización. Región Crítica - Región Crítica Condicional. Monitores, definición, características - Primitivas WAIT y SIGNAL. Ventajas sobre Semáforos. Path Expressions - Ventajas sobre Monitores.

Sistemas Distribuidos

18. - Sistemas Distribuidos

Ventajas Desventajas. Conceptos de Hardware. Arquitecturas Subyacentes. Conceptos de Software. Sistemas Operativos de Red. Sistemas Operativos Realmente Distribuídos . Concepto de Microkernel. Aspectos del Diseño de los Sistemas Distribuídos: Transparencia, Flexibilidad, Confiabilidad, Performance, Escalabilidad.

19. - Comunicacion en los Sistemas Distribuídos

Protocolo en Capas. Protocolos de Comunicación. Tipo de Conexión.

20. - Modelo Cliente Servidor.

Clientes y Servidores. Direccionamiento. Primitivas Bloqueantes y No Bloqueantes. Primitivas con Almacenamiento en Buffer  y sin Almacenamiento. Primitivas Confiables y No Confiables. Implementación.

21. - Llamada a Procedimientos Remotos (RPC)

Operación Básica. Transferencia de Parámetros Conexión Dinámica. Implementación. Semántica. Comunicación en Grupo.

22. - Sincronización en Sistemas Distribuídos

Sincronización de Relojes. Relojes Físicos. Relojes Lógicos. Algoritmos de Sincronización. Exclusión Mutua. Algoritmos Centralizados, Distribuídos, “token ring”. Algoritmos de Elección. Algoritmos Bully. Algoritmo de Anillo.Transacciones Atómicas. Modelo de Transacción. Implementación. Control de Concurrencia. Bloqueos en Sistemas Distribuídos. Detección Distribuída. Prevención Distribuída.

23. - Sincronización entre procesos (IPC)

Repaso de los mecanismos ya estudiados. PIPES y SOCKETS. Intercambio de Mensajes - Primitivas SEND y RECEIVE. Sincronización. Rendez Vous Débil , Rendez Vous Extendido (fuerte), Rendez Vous Asimétrico. Asincronismo - Broadcasting. Canales de Comunicación - Mailbox. Aplicación a los modelos tradicionales.

24. - Procesos. Threads y Procesadores.

Repaso de Threads. Diseño de Threads. Implementación de Threads. Threds y RPC. Asignación de Procesadores. Planificación en Sistemas Distribuídos.

25. - Sistema Distribuído de Archivos.

Interfaz del Servicio de Archivos. Interfaz del Servicio de Directorios. Semántica de Archivos Compartidos. Implementación. Estructura. Ocultamiento. Réplica. NFS - AFS.

26. - Memoria Compartida Distribuída.

Modelos UMA - NUMA - NORMA. Modelos de Consistencia. Memoria Distribuída en Base a Páginas. Memoria Distribuída en Base a Objetos.

27 - Estudio de Casos. Amoeba - Chorus - Mach - DCE.

El objetivo de los capítulos 18 a 27 es el de introducir a los alumnos en los problemas de los sistemas operativos distribuídos y algunas de las soluciones para el manejo de los Sistemas Distribuídos.

Objetivos Generales

Los alumnos, al finalizar el curso, estarán familiarizados con las actuales arquitecturas de computadoras y sus elementos funcionales, las tendencias de diseño y los Sistemas Operativos ligados a ellas . Lo estarán además con los elementos constitutivos de un Sistema Operativo, bajo la óptica de un diseñador de sus componentes. Conocerán alterenativas de software  y sus necesidades de hardware. Conocerán los mecanismos íntimos a través de los cuales un Sistema Operativo realiza la administración de un sistema de computación para brindar servicio a sus usuarios en entornos centralizados y distribuídos. 

 

 
Ultima actualización: Marzo de 2004
Volver a la página de Materias del Departamento de Computación
 
[Home] [Programa] [Régimen ] [Cronograma] [Quienes] [Practicas] [Bibliografia] [Consultas] [Proy.Inv.] [Info Minix]