IIProyectoIIS2024 1
IIProyectoIIS2024 1
IIProyectoIIS2024 1
1. Objetivo
Implementar las diferentes capas necesarias para que una aplicación pueda interactuar con
hardware a través del sistema operativo, ası́ como fomentar el diseño y creatividad de los estu-
diantes en la integración del software y hardware.
Implementar un algoritmo destribuidor de cargas de procesamiento en un sistema distribuido
para optimizar el tiempo de respuesta, utilizando OpenMPI con información cifrada.
2. Atributos a evaluar
Aprendizaje continuo. Se requiere que el estudiante valore las estrategias y el conocimiento
adquirido para alcanzar el objetivo.
3. Elección libre
En este proyecto cada grupo podrá elegir qué desarrollar utilizando alguna aplicación de los
conceptos de SO. Las áreas que debe tener el proyecto son:
1. I/O de datos: El grupo debe crear su propio driver hecho a la medida para controlar
un dispositovo de hardware externo. Cada grupo debe tener autoridad en la defensa. Se
recomienda realizar el módulo de kernel utilizando GPIO.
3. Distribución: Se debe contar con procesamiento distribuido. Al menos debe contar con 3
nodos que procesen. No es permitido compartir archivos directamente desde una directorio.
Cada grupo debe de proponer que es lo que desean desarrollar tomando en cuenta que la
solución de involucrar los 4 aspectos anteriores. La propuesta debe ser aprobada por el
profesor y se debe aportar un documento donde se estipule con detalle lo que se realizará en el
desarrollo del proyecto (similar a la especificación de este documento). Esta propuesta debe ser
validada por el profesor antes del Jueves 24 de octubre 19:00. Cada grupo deberá reunirse
con el profesor para presentar la propuesta del documento y discutir aspectos que no queden
claros.
Cabe destacar que presentar la propuesta y que pueda ser validada tiene un valor de 2 % del
proyecto.
En caso de que el grupo no decida proponer un proyecto se deberá implementar lo que indica
en este documento. En este caso el grupo debe tener un primer diseño con los diagramas y
validarlo con el profesor antes del Jueves 24 de octubre 19:00. De igual manera este diseño
tiene un valor de 2 % .
Es importante resaltar que la idea de este proyecto es fomentar a cada grupo a trabajar en
proyectos con aplicaciones que sean de interés común para los integrantes, por lo que debe de
haber un consenso en lo que se desea desarrollar.
4. Motivación
Con el desarrollo de este proyecto, se implementará un prototipo hardware, el cual deberá de
tener su respectivo device driver y todas las capas de software que este requiere para que puedan
interactuar el hardware y SO por medio del mismo. Se desarrollarán y reforzarán técnicas de
integración del hardware y software por medio del device driver, además se detallará el proceso
de comunicación necesario del sistema operativo hacia el hardware del computador para que la
interacción sea adecuada. También se enfocará en el procesamiento distribuido para equilibrar
cargas dentro de un sistemas con varios nodos.
5. Descripción
El proyecto relaciona 4 áreas de los sistemas operativos: drivers, hardware, seguridad y pro-
cesamiento distribuido.
En general, el proyecto cuenta con las capas que se muestran en la figura 1, las cuales son de
suma importancia por los insumos que necesitan y proporcionan para efectuar de buena manera
el procesamiento.
Capa de Software
Servidor/Cluster
Biblioteca
5.2. Hardware
Se debe crear un prototipo de “mano”que sea capaz de realizar las funciones antes descritas.
El diseño y la manera mecánica de este prototipo quedará directamente ligado a la creatividad del
estudiante. Se requiere los diagramas de los componentes que fueron utilizados para el hardware.
5.4. Biblioteca
Se deberá crear una biblioteca (se espera un .a con los métodos especı́ficos), la cual es la
única que interactuará con el driver desarrollado en el punto anterior. La idea fundamental de
este módulo es proporcionar un conjunto de funciones consumibles al usuario para que pueda
interactuar con el hardware a través del device driver. Se debe generar el .a. Esta biblioteca será
la encargada de proporcionar funciones como Read y Write, MoveRight, entre otras.
5.6. Servidor-Clúster
Será el encargado de controlar el flujo de información, y es quien le brinda ordenes al hardware
utilizando la biblioteca. El servidor será el encargado de orquestar el procesamiento distribuido
entre los 3 nodos, además debe de recibir el resultado final proveniente de los nodos de pro-
cesamiento. El servidor recibirá por parte del cliente un documento texto cifrado caracter por
caracter (el algoritmo de cifrado lo elige cada grupo). La idea es que este servidor divida el pro-
ceso en diferentes nodos para que cada uno decifre parte del documento y encuentren la palabra
que más se repite en todo el documento. La manera en que se encuentre la palabra que más
se repita en el documento quedará a diseño de cada grupo, sin embargo, el algoritmo debe ser
paralelizable de manera distribuida.
Una vez que se encuentre la palabra que más se repita, se debe escribir o digitar en la superficie
de escritura, junto con la cantidad de veces que se decifra.
Es importante destacar que el servidor debe guardar tanto el archivo cifrado como el decifrado.
Se debe prestar especial atención a los errores de acceso a memoria o utilización de recursos.
Es inaceptable el error segmentation fault.
En cada nodo se debe mostrar el monitor del sistema para ver el consumo de recurso.
Atributos: Esta sección deben de describirse cuales atributos fueron reforzados durante el
desarrollo del proyecto. Para el atributo de aprendizaje continuo debe responder las
siguientes preguntas:
Para el atributo de Trabajo individual y en equipo se debe especificar 7 puntos (Se debe
colocar pregunta y respuesta), los cuales son los siguientes:
Detalles del diseño del programa desarrollo, tanto del software como del hardware (en caso
de que aplique): Diagramas UML, diagramas de flujo, imágenes, descripciones entre otros,
todo lo que sea necesario para entender de una mejor manera el diseño y funcionamiento del
proyecto. Es necesario que realice como mı́nimo, el diagrama de arquitectura, componentes,
secuencia y funcionalidades.
Tabla de actividades por cada estudiante: bitácora con el total de horas trabajadas por
estudiante.
Conclusiones
Sugerencias y recomendaciones.
Referencias
7. Entregables
Código fuente con documentación interna.
Documentación.
8. Evaluación
Driver 20 %
Hardware 15 %
Servidor 15 %
Biblioteca 10 %
Clúster 15 %
Documentación 20 %
9. Fecha de entrega
14 de Noviembre. 14:00 por tecdigital.
Es responsabilidad del estudiante proveer los medios para poder revisar la funcionalidad
del software, por ejemplo, si no se realiza la interfaz, se debe de proporcionar otro medio
para la verificación, de lo contrario la nota será cero en los rubros correspondientes a la
funcionalidad faltante.