0 calificaciones0% encontró este documento útil (0 votos)
9 vistas3 páginas
Este documento describe varios patrones de diseño de software, incluyendo el polimorfismo, la fábrica, el singleton, la indirección y el observador. También discute la arquitectura de las computadoras, describiendo las partes clave como la unidad de control, la unidad aritmética y lógica, y la memoria. Finalmente, resume la estructura de un proyecto de simulador de procesador multiprocesador que implementa estas características.
Este documento describe varios patrones de diseño de software, incluyendo el polimorfismo, la fábrica, el singleton, la indirección y el observador. También discute la arquitectura de las computadoras, describiendo las partes clave como la unidad de control, la unidad aritmética y lógica, y la memoria. Finalmente, resume la estructura de un proyecto de simulador de procesador multiprocesador que implementa estas características.
Este documento describe varios patrones de diseño de software, incluyendo el polimorfismo, la fábrica, el singleton, la indirección y el observador. También discute la arquitectura de las computadoras, describiendo las partes clave como la unidad de control, la unidad aritmética y lógica, y la memoria. Finalmente, resume la estructura de un proyecto de simulador de procesador multiprocesador que implementa estas características.
UPIICSA, CIUDAD DE MEXICO, MÉXICO nietomelanie7@gmail.com
I. Introducción computadora, podrían ser USB, Disco extraíble,
HDMI, entre otros, todos con características y usos En 1994, cuatro autores Erich Gamma, Richard Helm, Ralph diferentes pero al final todos son soportados e Johnson y John Vlissides, a los que llamaron Gang of Four implementados por el mismo ordenador. De esta (GoF), publicaron un libro titulado Design Patterns, manera se soportar el formato de cada uno elementos de software orientado a objetos reutilizables. Con individualmente para su uso y manejo mediante la este trabajo se inició el concepto de patrón de diseño en el Fabrica creando nuevos objetivos para cada uno de desarrollo de software y recoge 23 patrones de diseño estos. comunes. Cada uno de ellos define la solución para resolver • Singleton un determinado problema, facilitando además la reutilización Esto nos funciona para cuando hay únicamente un del código fuente. objeto que debe estar en varias instancias, el ejemplo Los patrones de diseño o design patterns, son una solución que nos presenta el documento es un GPS, pues general, reutilizable y aplicable a diferentes problemas de gracias a los permisos que tiene esta aplicación para diseño de software. Se trata de plantillas que identifican con otras podemos acceder a nuestra ubicación problemas en el sistema y proporcionan soluciones apropiadas actual desde otras aplicaciones para su uso como a problemas generales a los que se han enfrentado los podría ser “Ubicación actual” en WhatsApp, “A desarrolladores durante un largo periodo de tiempo, a través dónde voy?” en Uber/Didi e incluso para ver el clima de prueba y error. del área donde estamos dúrate le día. • Indirección II. Desarrollo/Marco teórico Este patrón de diseño sugiere que, se mejore el En el ámbito de la computación, según Larman (2004), un acoplamiento entre dos clases, delegando la patrón de diseño es una descripción de un problema y su responsabilidad de intermediación entre estas clases, solución, a la cual se le da un nombre, y se puede aplicar a a un tercer elemento, que puede ser otra clase. Como nuevos conceptos. A continuación se describen brevemente ejemplo de este patrón de diseño encontramos los los patrones utilizados en la investigación con base en pagos electrónicos, que utilizan una UI (interfaz de Larman: usuario) a través de la cual, se realiza la mediación entre el banco, el cliente y la tienda, de lo anterior se • Polimorfismo generan clases que realizan diferentes métodos de Cuando hay comportamientos que varían según el pago y establecen una conexión entre los tipo de objetivo y se desea que sea entendible a todos involucrados se utiliza el polimorfismo. La ventaja de este patrón • Observador radica en evitar dependencias lógicas condicionales Este se activa cuando el objeto tiene un cambió en su como cadenas de sentencias if-else o switch, las estado y los componentes deben reaccionar en cuales son poco extensibles. respuesta; como ejemplo tenemos las bocinas con Un ejemplo de esto podría ser el encendido de la bluetooth, al activar el bluetooth se conectará con el televisión, en algunos nuevos modelos al encender el dispositivo que reproducirá el audio, al apagarlo esta televisor podemos elegir que nos abra directamente informa al dispositivo que se acabo y deja de la sección de los canales o directamente ir al menú reproducir el audio y se desconecta el bluetooth del para seleccionar a donde se quiere ir, como podrían dispositivo. ser Netflix, YouTube, entre otras, esto simplemente A. Arquitectura de computadoras al activar encendido en el televisor; de esta forma lo que simplemente seria encender televisión puede 1) Partes de un computador variar en sus objetivos dependiendo cada persona y sus necesidades o deseos. John von Neumann dijo que un computador debe tener varias partes para su funcionamiento pero principalmente podríamos • Fabrica o Factoría tener la unidad de cálculos lógicos y aritméticos (ALU), la Consiste en crear un objeto que encapsule y se unida de control y una sección de memoria para el guardado encargue de la creación de objetos. Para ejemplificar esto podemos tomar las entradas de una de los datos, todas conectadas entre ellas como se muestra en Cada hilo debe compartir la misma memoria. Cada la figura 1. núcleo se comunica con la memoria mediante caches, un cache para traer las instrucciones y otro para guardar los datos requeridos. Todos los chaces conectados a la memoria principal mediante un bus que accede un cache a la vez. Una interfaz que muestre al usuario en todo momento el estado actual de los núcleos incluyendo la cantidad de ejecuciones y las instrucciones ejecutadas ➢ Entre otros.
C. Estructura del proyecto
Para su fácil construcción está dividido en lógica del
procesador y simulador de memoria, ambas desarrolladas paralelamente; el procesador está construido por lo más sencillo de la interfaz para implementar la versión MIPPS del procesador solicitado. Podemos observar (fig. 1) como la unidad de control y el ALU se conectan con la memoria mediante buses que llevan y traen El núcleo es el componente que ejecuta los programas en el información mediante procesos para realizar las operaciones simulador y posee únicamente un método llamado correr, necesarias par el sistema. descrito mediante el siguiente pseudocódigo:
La ALU tiene la capacidad de r4ealizar diferentes operaciones etapas.iniciar()
lógicas, operaciones trigonométricas, y matemáticas, sumas y mientras todas las etapas sigan ejecutándose restas; mientras que el CPU le da la información a la ALU y recibe el resultado producido para su interpretación. si todas las etapas terminaron un ciclo Para Neumann, la CPU es la encargada del funcionamiento de avanzar el ciclo todo el sistema, pues se encarga del envió y ejecución de instrucciones, dando y administrando los recursos del sistema, si el número de ciclos es mayor que el número especialmente para el manejo de la memoria. de ciclos máximo Para el guardado de información se requiere una memoria de señalar a las etapas que terminen de ejecutarse datos, en la actualidad esta la llamada RAM, o memoria de acceso aleatorio esto porque es posible acceder directamente etapas.avanzarCiclo() a cualquier dato guardado en ella. etapas.terminarEjecucion() Como se menciono anteriormente el BUS conecta diversas partes del sistema entre sí, llevando o trayendo datos, como puede ser, cuando el CPU le envía una operación o instrucción De esta forma la implementación de las etapas no afecta la a la ALU enviada mediante un bus, a su vez otro bus envía la ejecución del núcleo y el objeto Etapas provee un respuesta a la CPU para su interpretación y ejecución y comportamiento similar al de un adaptador finalmente es enviada mediante un bus más a la memoria. Descripción del simulador D. Trabajo futuro
B. Inicio del proyecto Para incrementar la capacidad de la aplicación a futuro, se
puede aplicar nuevos Patrones en otras áreas del proyecto. Por Para el proyecto a realizar se utilizó un simulador de 32 bits ejemplo, el protocolo de control del bus usado en el proyecto para el manejo de números enteros, también es multinúcleo lo actualmente es el protocolo “Snooping”. Si se deseara que permite ejecutar 3 hilos al mismo tiempo. Se eligió este implementar un nuevo protocolo para mejorar la eficiencia del simulador por los requerimientos necesarios, algunos de ellos bus con múltiples procesadores, se podría aplicar el patrón serian: Estrategia y el patrón Composite para la implementación del protocolo de control de bus. De esta forma se podría Debe tener un sistema operativo capaz de gestionar experimentar con distintos protocolos sin necesidad de la distribución de los núcleos almacenados en la cola. modificar drásticamente el código. Cuando el primero se acabe el hilo será sacado del núcleo y colocado al final de la cola. III. Conclusiones Como nos damos cuenta a lo largo de la lectura del ensayo base, siempre se está usando algún patrón ya sea por sus ventajas, funcionamiento o su simple manejo, todo dependerá del formato en que se esté trabajando y lo que venga menor para el manejo del sistema, aquí se ejemplifican 5 de los patrones del diseño, porque fueron los que sirvieron para el llevado del proyecto, sin embargo puede haber muchos más que servirían también en otros proyectos con diferentes requerimientos, todo basándonos en la problemática base y a donde se quiere llevar ese trabajo