Está en la página 1de 5

CONCURRENCIA Y PERSISTENCIA

DISEÑO ORIENTADO A OBJETOS

VALENTINA CASTRO CASTILLO


ID 691224

JOSÉ FERNANDO SOTELO CUBILLOS


DOCENTE

UNIVERSIDAD COOPERATIVA DE COLOMBIA


FACULTAD DE INGENIERÍA
INGENIERÍA DE SISTEMAS
Bogotá, 2020
MARCO TEÓRICO

1. CONCURRENCIA

La concurrencia permite que distintos objetos actúen al mismo tiempo, usando diferentes
hilos de control (un solo proceso).

Es muy común tener que manejar varias acciones diferentes al mismo tiempo, para ello se
utilizan procesos los cuales producen acciones dinámicas independientes dentro de un
sistema.

Se sabe que se tienen sistemas los cuales ejecutan en múltiples CPU permitiendo así hilos
de control verdaderamente concurrentes, mientras que en los sistemas que ejecutan en un
solo CPU sólo se puede conseguir una ilusión de hilos concurrentes de control,
normalmente mediante algún algoritmo de tiempo compartido.

1.1. Procesos:

En esto se manejan dos tipos de procesos:

a) Proceso Pesado: Es aquel que es comúnmente manejando de forma autónoma


por el sistema operativo, este tiene su propio espacio de direcciones.
b) Proceso Ligero: Existe dentro de un solo proceso del sistema operativo en
compañía de otros procesos ligeros y comparten el mismo espacio de
direcciones. La Programación Orientada a Objetos se centraliza en la
abstracción de datos, encapsulamiento y herencia, mientras qué la concurrencia
se centra en la abstracción de procesos y la sincronización.

Una vez se tiene la concurrencia en el sistema, se debe tener en cuenta cómo los
objetos activos se sincronizan con otros.

1.2. Mecanismos:

 Candados que prohíben accesos que puedan provocar conflictos de acceso.


 Estampas de tiempo. Estas permiten impedir violaciones a los datos.
 Guardar múltiples versiones de los objetos de datos.

1.3. Java:

La plataforma Java está diseñada desde cero para admitir la programación concurrente,
con soporte básico de concurrencia en el lenguaje de programación Java y las
bibliotecas de clases de Java. Desde la versión 5.0, la plataforma Java también ha
incluido API de simultaneidad de alto nivel. Esta lección presenta el soporte básico de
concurrencia de la plataforma y resume algunas de las API de alto nivel en los
java.util.concurrent paquetes.

1.4. Ejemplo:

Como se puede ver en la imagen el proceso P1 esta solicitando el recurso R2, pero
dicho recurso lo tiene asignado P2, lo mismo sucede con R1, lo está solicitando P2
pero P1 lo está utilizando.
2. PERSISTENCIA

Es la propiedad de un objeto por la que su existencia trasciende el tiempo, es decir, el


objeto continúa existiendo después de que su creador deja de existir y/o espacio.

La persistencia es la acción de mantener la información del objeto de una forma permanente


(guardarla), pero también debe de poder recuperar dicha información para que pueda ser
utilizada nuevamente.

La persistencia es el mecanismo que se usa para mantener la información almacenada.

Con la persistencia la manipulación de objetos se realiza directamente por el lenguaje de


programación de la misma manera que en la memoria, sin persistencia de objetos. Esto se
logra mediante el uso inteligente de almacenamiento en caché.

2.1. Objetos

Para la persistencia los objetos podrían clasificarse en dos tipos:

a) Transitorios: Son aquellos que su tiempo de vida depende del espacio del proceso que
lo creo.
b) Persistentes: Son aquellos que su estado es almacenado en un medio temporal para su
posterior reconstrucción y utilización, por lo cual el objeto no depende del proceso que
lo creo.
BIBLIOGRAFÍA

https://styde.net/concurrencia-y-persistencia-en-programacion-orientada-a-objetos/

https://docs.oracle.com/javase/tutorial/essential/concurrency/index.html

https://sites.google.com/site/unidad2sistemasbdoo/2-5-persistencia-concurrencia-y-
recuperacion-en-bdoo

También podría gustarte