Unidad de Aprendizaje
"Sistemas Operativos II"

10-11/01 Agosto - Diciembre 2010
ESCOM IPN  -  ISC Plan 2003


Documentos Utiles

Tarjeta de Referencia ANSI C
Formato de referencias IEEE

Practicas

Practica 01 "Procesamiento de imágenes con hilos bajo UNIX"

Programas de apoyo: hilos.c, medir_tiempo.c, tiempo.h, filtros.c. Imagenes BMP de 24 bits: Imagenes_de_prueba.rar.

En esta sesión se presentan los requerimientos de la practica 01, la cual empleará el concepto de procesos ligeros (hilos), para aplicarlo en el procesamiento de imágenes con el objetivo de verificar los beneficios en tiempo de procesamiento y eficiencia. Los hilos que trabajan bajo el principio de la memoria compartida de un hilo padre, permiten eficientar y paralelizar muchas tareas computacionales de alto costo como el procesamiento de imágenes, procesamiento de video, reconocimiento de patrones, simulación de métodos heurísticos y grandes simulaciones de otras ciencias.

Practica 02 "Clustering de datos con hilos bajo UNIX"

Programas de apoyo: hilos.c, tiempo.h, kmedias.c. Datos de prueba: datos.txt, iris_data.txt.

Un algoritmo de agrupamiento (clustering) es un procedimiento de agrupación de una serie de vectores de acuerdo con un criterio de cercanía. Generalmente, los vectores de un mismo grupo (o clústers) comparten propiedades comunes. El conocimiento de los grupos puede permitir una descripción sintética de un conjunto de datos multidimensional complejo. De ahí su uso en minería de datos. Esta descripción sintética se consigue sustituyendo la descripción de todos los elementos de un grupo por la de un representante característico del mismo. Los algoritmos de clustering llegan a requerir de un número amplio de iteraciones, que reflejados en operaciones computacionalesrequieren de altos tiempos de procesamiento. Nuevamente se tiene como objetivo paralelizar un método de clustering con la ayuda de hilos, para documentar las ventajas del procesamiento paralelo en los equipos actuales multinucleo.

Practica 03 "Sistema de Registro basado en RPC bajo UNIX"

Mediante el uso de procedimientos remotos en UNIX, construir un sistema de registro de alumnos que permita a varios sistemas (Clientes) registrar, modificar, consultar y realizar cambios a una base de datos localizada en un equipo (Servidor) capaz de ejecutar todas las operaciones con base en procedimientos implementados bajo el modelo de RPC.

REQUERIMIENTOS DEL PROYECTO FINAL


Clases


Clase 01 "Presentación del curso y Tarea 01"

Presentación del curso de Sistemas Operativos II (Unidades tematicas, evaluaciónes parciales, formato de tareas y practicas así como acuerdos del grupo) y requisitos de la Tarea 01.

Clase 02 y 03 "Revisión de conceptos"

Antes de comenzar en materia, es necesario reafirmar conocimientos básicos de sistemas opertativos y recordar la historia de los mismos.

Clase 04 y 05 "Repaso de programación de sistemas basados en UNIX"

Programas de clase: Repaso_UNIX.rar.

Revisaremos algunos ejemplos de programación básicos para reafirmar conceptos de programación bajo ambientes UNIX.

Clase 06 "Introducción al procesamiento de imágenes BMP con ANSI C"

Programa de la clase: BMP.c

En esta clase se revisan los conceptos básicos necesarios para el procesamiento de imagenes BMP con ANSI C, esto debido a que como ya se ha planteado en clase, el trabajo práctico se realizará sobre el procesamiento paralelo de imágenes en UNIX, empleando la teoría de Hilos (Treads).

Clase 07 y 08 "Sistemas distribuidos y paralelos y Tarea 02"

Los sistemas distribuidos y paralelos permiten compartir recursos de gran valor, en la actualidad son muy empleados gracias al incremento de las comunicaciones a alta velocidad, al internet y a los equipos modernos de altas prestaciones, mientras los sistemas paralelos son empleados reducir el tiempo al buscar la solución de un problema, los sistemas distribuidos permiten a varios usuarios compartir recursos y aplicaciones de manera transparente.

Clase 09 "Sistemas Distribuidos"

Un sistema distribuido es aquel en el que los componentes localizados en computadoras, conectadas en una red, comunican y coordinan sus acciones únicamente mediante el paso de mensajes. El diseño de un sistema distribuido presenta una gran cantidad de retos y aspectos que deben de ser considerados para su correcto funcionamiento.

Clase 10 "Tarea 03"

En esta clase se establecerá la fecha, temas y presentación del examen, así como la Tarea 03 a entregar y ultimos detalles de la practica 02.

Clase 11, 12 y 13 "Tipos de sistemas distribuidos e Investigación 01"

En estas clases se revisará la teoría sobre los tipos de sistemas distribuidos y tipos de sistemas distribuidos, se conocieron ejemplos de estos y se solicita investigar aún más sobre ello (Investigación 01).

Clase 14, 15, 16 y 17 "Arquitecturas de Sistemas Distribuidos y Tarea 04"

Durante estas cuatro sesiones se revisará la teoria relacionada con los modelos arquitectonicos de los sistemas distribuidos y con base en los tipos y arquitecturas se deberá de construir un mapa conceptual que abarque los principales conceptos desde la clase 11.

Serie de Exposiciones "TCP/IP, Cliente-Servidor, Sockets en UNIX & Llamadas a Procedimiento Remoto (RPC) en UNIX"

Presentaciones: 5CV2, 5CV3.

Durante estas sesiones se realizó la exposición de temas por parte de los alumnos.

Clase 18 y 19 "Sistemas de archivos distribuidos y Tarea 05"

Un sistema de archivos distribuidos permite a los procesos el acceso transparente y eficiente de archivos que permanecen en servidores remotos. Son útiles en Intranets, redes locales y sistemas distribuidos.

Clase 20, 21 y 22 "Seguridad y Tarea 06"

En todo sistema distribuido es necesario garantizar la privacidad, integridad y disponibilidad de recursos. Los ataques contra la seguridad toman las formas de escuchas, suplantación, modificación y denegación de servicio. Los diseñadores de sistemas distribuidos seguros deben de tratar con interfaces de servicio desprotegidas y redes inseguras en un entorno donde se supone que los atacantes tienen conocimiento sobre los algoritmos empleados para desplegar los recursos computacionales.