Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE PUEBLA
“REPORTE DE PRÁCTICA 1”
• Un brazo sólo puede tomar una pieza cada vez que accede al contenedor.
• Para evitar colisiones entre los brazos, el acceso al contenedor debe ser
en exclusión mutua, es decir, los dos brazos no pueden descargar piezas
del contenedor simultáneamente.
• De igual forma para la segunda parte del programa se busca implementar
un sistema de producción compuesto por dos contenedores compartidos
y dos brazos robots capaces de tomar piezas de los contenedores de
manera coordinada para producir unidades de un producto. también es un
problema de sección crítica, donde en vez de un único recurso compartido
como en el sistema anterior, en este caso hay dos.
SUSTENTO TEÓRICO
Hilos.
Estados de hilos.
El ciclo de vida de un hilo comprende diversos estados ya que los métodos son
los encargados de transportar de un estado a otro. Un estado puede considerarse
en estado “nuevo” cuando un hilo es creado con el operador new y de igual
forma puede considerarse en estado “listo” cuando es lanzado con el método
start().
Cuando un hilo obtiene un tiempo de procesador pasa al estado de ejecución y
una vez ahí el hilo puede bloquearse por diversos motivos tales como:
• Por ejecutar el método sleep().
• Por intentar adquirir el cerrojo de un objeto.
• A través de la ejecución del método wait(). Saldrá de este estado cuando
se ejecute el método notify() o notifyAll() por parte de otro hilo.
Creación de hilos con interfaz Runnable.
Ahora se nos pide implementar que el programa contenga dos contenedores y un método para
ensamblar una determinada cantidad de piezas por cada brazo. Además, la clase contenedor no fue
modificada.
Implementación
El sistema también consta de tres clases Java: Contenedor, Brazo Producción y Sistema Producción.
La clase Contenedor es la misma que el problema anterior. La clase Brazo Producción es similar a la
clase Brazo implementada anteriormente. Esta nueva versión de brazo robot debe ser capaz de
trabajar con dos contenedores de manera coordinada. Por tanto, los cambios para esta nueva
versión son: el constructor de la clase Brazo Producción debe tener como parámetro de entrada dos
contenedores (además de su identificador único y el número de unidades del producto a montar);
y el métodorun() debe trabajar con ambos contenedores para el montaje de las unidades.
Finalmente, la clase Sistema Producción configura y ejecuta el sistema de producción.