Sunteți pe pagina 1din 21

2020

Alumno: Enriqueta Martinez Muñoz.


Grupo: DS-DPO3-2002-B2-001.
Matrícula: ES1911001010.
Correo Institucional:
queta19650406@nube.unadmexico.
mx
UnADM
11-10-2020
Cuernavaca Morelos a 11 octubre de 2020.

Actividad 1. Flujo único y flujos múltiples.

Índice

Contenido
Índice ....................................................................................................................... 1
Introducción ............................................................................................................. 2
Desarrollo ................................................................................................................ 3
Código de ética de los estudiantes de la UNADM ............................................... 3
Reglamento escolar vigente ................................................................................. 3
Criterios Generales Para La Recepción Y Evaluación De Actividades ................ 4
Hilos de programación ......................................................................................... 6
Creación de Hilos (Threads) usos y ejemplo .................................................... 6
Ventajas ............................................................................................................ 8
Desventajas ...................................................................................................... 8
Usos.................................................................................................................. 9
Flujo único.......................................................................................................... 10
Flujo múltiple ...................................................................................................... 10
Ventajas .......................................................................................................... 11
Desventajas .................................................................................................... 11
Ejemplos ......................................................................................................... 11
Caso de estudio ................................................................................................. 12
Tabla Flujos únicos, Múltiples, entradas y salidas .......................................... 13
Diferencia entre Flujo único y flujo múltiple..................................................... 15
Preguntas al foro ................................................................................................ 16
Conclusiones ......................................................................................................... 17
Fuentes de Consulta ............................................................................................. 18
Bibliografía ............................................................................................................ 18
Rúbrica .................................................................................................................. 20

1
Introducción
El objetivo de esta actividad es analizar problemáticas reales para dar solución,
identificando el flujo de entrada/salida de la problemática enviada y diferenciar el
flujo único y múltiple.

En diversas ocasiones la ejecución de un programa requiere de procesamiento


paralelo, es decir que el programa realice diferente tareas al mismo tiempo, para
tales efectos existen hilos de ejecución, mediante estos es posible el procesamiento
multitarea o multihilo (Threads).

El uso de hilos es relevante para la creación de programas con múltiples flujos de


procesamiento.

Es importante mencionar que para que los sistemas operativos multitarea cumplan
su función como tal, requieren disponer de más de un procesador, de lo contrario
solo estaría alternando procesos en un solo procesador; pues un proceso en
ejecución utiliza todo el procesador y el espacio de memoria asignado.

De tal manera que, en la ejecución de un sistema multitarea, el planificador del


sistema operativo gestiona la memoria para guardar los datos del proceso saliente,
provocando cierta sobrecarga del sistema pues no estaría liberando espacio en la
memoria y ni del procesador; ya que, para este, tendremos un solo proceso con
diversas tareas a ejecutar.

Esto agiliza por lo tanto la ejecución de nuestro proceso que además puede simular
la ejecución paralela de varias tareas.

2
Desarrollo
Código de ética de los estudiantes de la UNADM

“2. Honestidad.3. Respetar la propiedad intelectual de los demás, otorgando


reconocimiento a las obras creadas por otros, evitando realizar acciones
contrarias a los principios éticos que deben prevalecer entre los estudiantes
de la Universidad”.

(SEP. UnADM, Consultado 2020)

Como parte de nuestra formación integral; la honestidad, es importante dando


crédito al trabajo y obra del material consultado; para tales efectos sabemos que
contamos con las normas APA para realizar la cita adecuada a la circunstancia del
texto; lo importante es actuar con Honestidad, para fortalecer nuestros valores.

Reglamento escolar vigente

“CAPÍTULO TERCERO

DE LOS PLANES Y PROGRAMAS DE ESTUDIO

Artículo 11. Los planes y programas de estudio de las licenciaturas


contemplarán la opción de concluir el programa educativo de Técnico
Superior Universitario en el quinto semestre, previa solicitud de cambio de
nivel efectuada por el estudiante en los tiempos señalados en el calendario
académico”.

(SEP. UnADM, Consultado 2020)

Me llamó la atención éste articulo pues en el se indica que si estamos cursando la


ingeniería, en el quinto semestre podremos solicitar la conclusión del programa
educativo como técnico, de tal manera si por diversas razones no podemos concluir
la licenciatura, en el periodo indicado podríamos solicitar esta opción.

3
“CAPÍTULO QUINTO

DE LOS PERIODOS ESCOLARES Y CARGAS ACADÉMICAS

Artículo 25. Un estudiante podrá cursar simultáneamente un segundo


programa educativo cuando cumpla los siguientes requisitos:

I. Ser estudiante regular;

II. Tener al menos el 50% de créditos de su primer programa educativo;

III. Solicitarlo en las fechas establecidas en el calendario académico, y

IV. Los demás requisitos que establezca la Universidad.

(SEP. UnADM, Consultado 2020)

Este artículo me parece muy interesante, pues considero que al llevar el 50% de los
créditos de la licenciatura, si es de nuestro interés podemos registrar otra carrera
para cúrsala; lo cual nos puede ser de utilidad para ampliar nuestro conocimiento y
curriculum, excelente opción.

Criterios Generales Para La Recepción Y Evaluación De Actividades

“SECCIÓN 1

CRITERIOS GENERALES

Los compromisos de los estudiantes son:

Revisar periódicamente los avisos, anuncios e indicaciones que el docente en

línea publique en las secciones de:

• Foro de dudas
• Planeación y avisos del docente en línea

Así como atender los mensajes que envíe a través del correo electrónico
institucional u otro medio de comunicación oficial que se utilice con este fin

4
(calendario escolar, portal web de la universidad)”.
(UnADM. DCEIT, Consultado 2020)

Me parece muy importante este articulo; ya que al estudiar la modalidad en línea,


esta es la manera de tener contacto con la universidad y el docente asignado; así
podremos mantenernos informados acerca de las actividades a realizar, material de
apoyo, retroalimentación del docente, avisos especiales o de último momento.

“Sección 4

REQUISITOS PARA EVALUAR ACTIVIDADES EXTEMPORÁNEAS

CON PONDERACIÓN MAYOR A 70 PUNTOS

En esta sección se exponen los requisitos para autorizar la evaluación de


actividades enviadas de forma extemporánea con una ponderación mayor a
70 puntos.

Para solicitar la evaluación de actividades enviadas de manera extemporánea


y con una calificación mayor a 70 puntos es necesario que el estudiante
cumpla con los siguientes requisitos:

Notificar al docente en línea sobre cualquier situación personal o laboral que

implique una ausencia prolongada del AVA, de tal suerte que su evaluación

final se vea afectada por esta situación. Dicha notificación deberá realizarse

en la semana previa al cierre de Unidad o Etapa. Posterior a este periodo no

se aceptarán solicitudes de evaluación extemporánea”.

(UnADM. DCEIT, Consultado 2020)

Este artículo lo podremos aplicar en caso de entregar una actividad fuera de tiempo,
por motivos ajenos a nuestra voluntad o causa de fuerza mayor; para ello se
requiere previa solicitud acompañada de dtx. médico para que nuestra actividad
tenga la posibilidad de ser evaluada sobre 100$.

5
.

Hilos de programación
Los hilos son un tipo de programación mediante la cual es posible el procesamiento
multitarea o multihilo (Threads).

Los principales estados de los hilos son:Nuevo, Ejecución, Listo y Bloqueado,


desbloqueado, y terminación.

Creación de Hilos (Threads) usos y ejemplo


Nuevo: Cuando creamos un proceso se crea un hilo en una instancia de la clase
Threads para ese proceso, a partir de este hilo se pueden crear otros hilos dentro
del mismo proceso, para lo cual se proporciona un puntero de instrucción y los
argumentos del nuevo hilo.

Thread MiThread = new MiClaseThread();

Thread MiThread = new Thread( new UnaClaseThread,"hiloA" );

Ejecutable : Cada hilo debe poseer su propio contexto y espacio en la memoria,


hasta que se produzca la llamada start (); sabremos que el hilo está en los Listos
(starts), en tanto sea nuevo no se considera vivo.

Thread MiThread = new MiClaseThread();

MiThread.start();

Ejecución: Cuando un hilo se encuentra listo para la ejecución se encuentra en la


cola de la llamada start (), y con la llamada del comando run(), sabemos que ya está
en ejecución.

Parado: Cuando un hilo requiere esperar a que se ejecuten ciertas acciones, este,
se bloquea (salvando sus registros de usuario, contador de programa y punteros de
pila), de tal manera que el procesador pueda ejecutar otro hilo que se encuentre al
inicio de los Listos (starts), hasta que estos hayan sido ejecutados.

6
Se llama a parado con los métodos suspend(), sleep () o para el caso mencionado
anteriormente, wait ().

Thread MiThread = new MiClaseThread();

MiThread.start();

try {

MiThread.sleep( 10000 );

} catch( InterruptedException e ) {

Cuando los hilos previos hayan sido procesados, el hilo bloqueado se desbloquea,
y pasa al final de los listos (starts).

Para recuperar el estado Ejecutable, de acuerdo con el estado Parado del hilo, son
los siguientes:

Si un hilo está dormido,<(sleep ()), pasado el lapso de tiempo

Si un hilo de ejecución está suspendido (suspend ()), después de una llamada a su


método resume()

Si un hilo está bloqueado en una entrada/salida (wait()), una vez que el comando
de entrada/salida concluya su ejecución

Si un hilo está esperando por una condición, cada vez que la variable que controla
esa condición varíe debe llamarse al método notify() o notifyAll()

Muerto : Cuando un hilo ha finalizado su ejecución o método run(), se liberan tanto


su contexto como sus columnas o espacio en memoria; o bien porque se mate con
un método stop().

public void run() {

int i=0;

7
while( i < 20 ) {

i++;

System.out.println( "i = "+i );

Ventajas
Es muy útil cuando el programa requiere del procesamiento de grandes volúmenes
de datos (información).

Tarda mucho menos en terminar un hilo que un proceso, ya que un hilo al concluir
elimina su contexto y pila.

Es rápido el tiempo en que cambia entre dos hilos de un mismo proceso.

Por regla general, se considera que una aplicación es candidata a ser programa en
multihilo cuando cumple las siguientes premisas

La aplicación va a realizar diversas actividades diferentes con un alto coste


computacional por la liberación del espacio de memoria asignado.

El resultado de las tareas que se ejecuten en diferentes hilos que no dependan del
resultado de otras actividades.

Desventajas
Se debe consideras perfectamente la sincronización de cambio de hilos; ya que este
precisa de un cambio de modo a modo núcleo.

Y considerar también que en una aplicación multihilo, las operaciones son


bloqueantes, ya que al núcleo es asignado a un solo proceso no pudiendo ser
aprovechado el uso de hilos en un multiproceso.

8
Usos
“Trabajo interactivo y en segundo plano

Por ejemplo, en un programa de hoja de cálculo un hilo puede estar visualizando


los menús y leer la entrada del usuario mientras que otro hilo ejecuta las órdenes y
actualiza la hoja de cálculo. Esta medida suele aumentar la velocidad que se percibe
en la aplicación, permitiendo que el programa pida la orden siguiente antes de
terminar la anterior.

Procesamiento asíncrono

Los elementos asíncronos de un programa se pueden implementar como hilos. Un


ejemplo es cómo los software de procesamiento de texto guardan archivos
temporales cuando se está trabajando en dicho programa. Se crea un hilo que tiene
como función guardar una copia de respaldo mientras se continúa con la operación
de escritura por el usuario sin interferir en la misma. Son como 2 programas
independientes.

Aceleración de la ejecución

Se pueden ejecutar, por ejemplo, un lote mientras otro hilo lee el lote siguiente de
un dispositivo.

Estructuración modular de los programas

Puede ser un mecanismo eficiente para un programa que ejecuta una gran variedad
de actividades, teniendo las mismas bien separadas mediante hilos que realizan
cada una de ellas”.

(EcuRed, Consultado 2020)

9
Flujo único
En un programa en donde para la ejecución de este, se utiliza solo un flujo de control
para su realización pues no requiere ser potente o de la realización de múltiples
tareas. Funciona implementando una interface runnable.

Interfaz Runnable. Las interfaces proporcionan al programador una forma de


agrupar el trabajo de infraestructura de una clase. Se utiliza un solo método publico
llamado run(), para correr el trabajo y la clase o clases, que la implementan
siguiendo las mismas reglas de funcionamiento.

Si no se define la interfaz runnable el programa por defecto utilizará la main

Es importante mencionar que una interfaz solamente puede contener métodos


abstractos y/o variables estáticas y finales (constantes) y no puede implementar
cualquier método, en tanto las clases, pueden implementar métodos y contener
variables que no sean constantes.

Flujo múltiple

En un programa donde para su ejecución se utilizan flujos múltiples de control; es


decir, que se manejan grandes cantidades de datos y, por lo tanto, requiere ser
potente y realizar múltiples tareas; para ello se valen de el uso de Hilos (Threads)
como ya hemos mencionado, la creación de Hilos (Threads) en Java puede
realizarse extendiendo la clase Thread.

Método Thread. El método para crear un thread en Java, es simplemente extender


la clase, en una interfaz runnable, por ejemplo:

class Mi Thread extends Thread {public void run() {. . .}

De esta manera creamos una nueva clase

O bien en la main se pueden instanciar los nuevos objetos Threads

class java {

10
static public void main( String args[] ) {

// Se instancian dos nuevos objetos Thread

Thread hiloA = new Thread( new MiHilo(),"hiloA" );

Thread hiloB = new Thread( new MiHilo(),"hiloB" );

Mi Thread que extiende la clase Thread, sobrecarga el método heredando métodos


y variables de la clase padre.

Ventajas
Proporciona al programador una gran flexibilidad al plantear el desarrollo de
aplicaciones.

Es una herramienta simple, de fácil implementación al crear, configurar y ejecutar


hilos de ejecución.

Se crean potentes y portables aplicaciones/applets que no es posible en otros


lenguajes.

Desventajas
Requieren de la utilización de muchos contextos de ejecución para cumplir su tarea.
Hacen uso del hecho de que muchas tareas contienen subtareas distintas e
independientes.

Se utiliza un hilo de ejecución para cada tarea.

Ejemplos
En Java, para el lenguaje orientado a Internet es vital su uso para la creación y
funcionamiento de Applets.

11
Caso de estudio

El estacionamiento “En buenas manos” ubicado en la Ciudad de México, cobra por


la primera hora $ 45.00 pesos y $ 5.00 pesos extra cada 20 minutos adicionales, el
estacionamiento cuenta con tres niveles y cada nivel tiene 15 cajones, en cada nivel
hay 4 acomodadores que se encargan de recibir el vehículo y registrar la
información, así como un administrador que se encarga de generar un boleto con
un numero secuencial, la información provista del vehículo y el nombre del
acomodador para el cobro y cualquier aclaración.

La información recabada por el acomodador es la siguiente:

Marca

Modelo

Color

Placas

Condiciones del vehículo

Actualmente este proceso se hace en una hoja de cálculo de Excel por lo que no
tienen un control preciso de los cajones disponibles ni de los acomodadores.

El administrador revisa en su tabla los cajones disponibles y marca no disponible y


le indica al acomodador, el nivel y el cajón para estacionar el vehículo e imprimí un
boleto que lleva el modelo, placas, fecha y la hora de entrada, numero secuencial y
nombre del acomodado.

Cuando el cliente recoge el vehículo entrega el boleto al administrador y esté


registra la hora de salida y calcula la cantidad a pagar, solicita al acomodador que
entregue el vehículo.

Una vez entregado el vehículo, el administrador marca en su tabla cajón “disponible”


cada semana se requiere un informe para identificar a los 5 acomodadores que más
trabajaron.

12
Estos se identifican con el boleto que se genera al inicio del proceso.

Los trabajadores que hicieron más servicios se les aumenta el 15% en su pago
semanal.

El informe que se solicita debe contener los siguientes datos, Nombre del
Acomodador, cantidad de servicios realizados por día y sueldo que se debe pagar
semanalmente

En un apartado debe tener el aumento y la cantidad a pagar neto.

El dueño desea que todos estos procesos se realicen en un sistema informática


para llevar el control más preciso y a su vez estar monitoreando el negocio.

Tabla Flujos únicos, Múltiples, entradas y salidas

Flujos únicos Flujos Múltiples Entradas Salidas


Control Vehículo Id Placas Reporte de
IdNumSecuencial control del
marca vehículo
modelo
color
IdAcomodador
CondicionesVehiculo
Boleto IdNumSecuencial Boleto del cliente
Modelo
Placas
Fecha
horaEntrada
IdAcomodador

13
Acomodador IdAcomodador Nómina de
Nombre completo acomodador y
RFC cálculo de
Sueldo semanal aumento
Aumento
sueldoNeto
contadorServicios
Producción IdSemana Reporte de
Semanal IdAcomodador producción
Nombre semanal
contadorServicios
sueldo
aumento
sueldoNeto
horaE_S y Tarifa Hora de entrada Cálculo de horas
Hola de salida en
tarifaHora estacionamiento y
tarifaFraccion pago

Ubicación IdEstadoUbicacion Vista de ubicación


estacionamiento PisoEstacionamiento del vehículo y
lugarEstacionamiento control de lugares
IdNumSecuencial ocupados y
IdAcomodador desocupados.

14
Diferencia entre Flujo único y flujo múltiple
Mientras que los programas de flujo único pueden realizar su tarea ejecutando las
subtareas secuencialmente, un programa multihilo permite que cada thread
comience y termine tan pronto como sea posible. Este comportamiento presenta
una mejor respuesta a la entrada en tiempo real.

El flujo único se utiliza cuando el programa es simple y no requiere completar más


de una tarea a la vez; es decir las tareas las realizará de manera secuencial.

El flujo múltiple se utiliza para operaciones que requieren una gran cantidad de hilos
ejecutándose al mismo tiempo o tan pronto como les sea posible.

Los flujos único y múltiple se aplican para que el programa realice varias actividades
en los primeros de manera secuencial indicados para proyectos de carga pequeña
y en los segundos simultáneamente o tan pronto como sea posible, recomendados
para grandes proyectos, optimizando recursos y que la información que se introduce
este continuamente actualizada y lista para ser utilizada. El uso de hilos es de
mucha ayuda, pero sin embargo es muy importante que se sepa identificar en que
momentos es necesario la utilización de hilos únicos y de hilos múltiples ya que si
no se utilizan de la manera correcta será perjudicial ya que puede afectar al
rendimiento del sistema

15
Preguntas al foro
✓ ¿Por qué son importantes los hilos en programación y como lo vas a trabajar

en la problemática o en que módulo se va a utilizar?

Son importantes los hilos en programación porque nos permiten manejar grandes
flujos de información, destinándoles en cada hilo una tarea específica, con lo cual
se optimiza el uso de los recursos y de memoria dentro de un proceso; agilizando
las tareas que requiere cumplir el sistema además de ser un recurso muy flexible y
de fácil uso.

Considero que la manera en que utilizaré los hilos (Threads), será para la creación
de las applets que utilizaremos, así como para la creación de clases para el control
y asignación del lugar de estacionamiento designando un hilo por piso de
estacionamiento y lugar.

También me puede ser de utilidad para manejar de manera dinámica el cálculo de


horas de estacionamiento y pago.

16
Conclusiones
El desarrollo de esta actividad me ha permitido analizar y explorar el reglamento
escolar vigente, el código de ética de estudiantes de la UnADM y criterios generales
para la recepción y evaluación de actividades, dando mi punto de vista de 5 casos
documentados en estos.

De igual manera, me ha permitido introducirme al conocimiento del uso de hilos,


métodos y casos de aplicación; así como de los flujos únicos y múltiples que van
íntimamente ligados en su funcionamiento con hilos de programación.

Aplicando el método de análisis y teórico pude redactar una tabla de acuerdo a los
requerimientos del caso de estudio, identificando la manera en que puedo trabajar
este caso de acuerdo a la aplicación de los flujos únicos y flujos múltiples; en lo
subsecuente pasare a la aplicación en lenguaje Java de lo aprendido en esta
actividad.

17
Fuentes de Consulta

Bibliografía
Froufe Quintas, A. (5ta Edición). Alfa Omega. RA-MA. Obtenido de Java 2 Manual
de Usuario y Tutorial:
file:///C:/Users/HP%2088126/AppData/Local/Temp/Temp1_DPO3_U1_Mate
rial_de_apoyo.zip/UNIDAD%201/Froufe_A_2009_Java_2_Manual_de_usua
rio_y_tutorial.pdf

Froufe, A. (07 de 01 de 1999). DIS. UM. ES. Obtenido de Tutorial de Java:


http://dis.um.es/~bmoros/Tutorial/parte10/cap10-1.html#Cap10_1_1

Joyanes Aguilar, L.-F. A. (12 de 10 de Consultado 2020). Mc Graw Hill. Obtenido de


Java 2 Manual de programación. Programación concurrente: Hilos de
ejecución :
file:///C:/Users/HP%2088126/AppData/Local/Temp/Temp1_DPO3_U2_Mate
rial_de_apoyo.zip/UNIDAD%202/Joyanes_L_2002_Java_2_Manual_de_Pro
gramacion_U2.pdf

Martín Sierra, A. J. (Era Edición). Alfaomega RA-MA. Obtenido de Programador


Certificado Java 2 Curso Práctico:
file:///C:/Users/HP%2088126/AppData/Local/Temp/Temp1_DPO3_U2_Mate
rial_de_apoyo.zip/UNIDAD%202/Martin_A_2010_Programador_certificado_
Java_2.pdf

Sánchez, J. (2004). Material de apoyo Unidad 2. Obtenido de Java2. incluye Swing,


Threads, programación en red, Java NetBeans, JDBC y JSP / Servlets :
file:///C:/Users/HP%2088126/AppData/Local/Temp/Temp1_DPO3_U2_Mate
rial_de_apoyo.zip/UNIDAD%202/Sanchez_J_2004_Java_2_U2.pdf

SEP. UnADM. (11 de 10 de Consultado 2020). SEP:. UnADM. Obtenido de CÓDIGO


DE ÉTICA DE LOS ESTUDIANTES DE LA UNADM:

18
file:///C:/Users/HP%2088126/Downloads/UnADM_Codigo_de_etica_de_est
udiantes.pdf

SEP. UnADM. (16 de 09 de Consultado 2020). UnADM. Obtenido de


REGLAMENTO ESCOLAR DE LA UNIVERSIDAD ABIERTA Y A
DISTANCIA DE MÉXICO:
https://campus.unadmexico.mx/contenidos/DCEIT/Archivos_generales/UnA
DM_Reglamento_escolar.pdf

UnADM. (12 de 01 de Consultado 2020). UnADM. Dceit. Obtenido de Unidad 2.


Hilos.:
https://campus.unadmexico.mx/contenidos/DCEIT/BLOQUE2/DS/04/DPO3/
U2/descargables/DPO3_U2_Contenido.pdf

UnADM. DCEIT. (11 de 10 de Consultado 2020). UnADM. DCEIT. Obtenido de


CRITERIOS GENERALES PARA LA RECEPCIÓN:
https://campus.unadmexico.mx/contenidos/DCEIT/Archivos_generales/DCE
IT_Criterios_generales_recepcion_y_evaluacion_actividades_2020_B1.pdf

Yáñez, C. (21 de 02 de 2018). CEAC. Obtenido de Qué es la programación multihilo


y qué ventajas tiene: https://www.ceac.es/blog/que-es-la-programacion-
multihilo-y-que-ventajas-tiene

19
Rúbrica

20

S-ar putea să vă placă și