2.4. Concurrencia y Secuencialidad
La concurrencia comprende un gran número de cuestiones de
diseño, incluyendo la comunicación entre procesos, comparación y competencia
por los recursos, sincronización de la ejecución de varios procesos y
asignación del tiempo de procesador a los procesos y es fundamental para que
existan diseños como Multiprogramación, Multiproceso y Proceso distribuido.
Los procesos son concurrentes si existen simultáneamente. Los
procesos concurrentes pueden funcionar en forma totalmente independiente unos
de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren
cierta sincronización o cooperación.
La concurrencia puede presentarse en tres
contextos diferentes:
• Varias aplicaciones: La
multiprogramación se creó para permitir que el tiempo de procesador de la
máquina fuese compartido dinámicamente entre varios trabajos o aplicaciones
activas.
• Aplicaciones estructuradas: Como
ampliación de los principios del diseño modular y la programación estructurada,
algunas aplicaciones pueden implementarse eficazmente como un conjunto de
procesos concurrentes.
• Estructura del sistema operativo: Las
mismas ventajas de estructuración son aplicables a los programadores de
sistemas y se ha comprobado que algunos sistemas operativos están implementados
como un conjunto de procesos. Existen tres modelos de computadora en los que se
pueden ejecutar procesos concurrentes:
• Multiprogramación
con un único procesador. El sistema operativo se encarga de ir repartiendo el
tiempo del procesador entre los distintos procesos, intercalando la ejecución
de los mismos para dar así una apariencia de ejecución simultánea.
• Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no sólo pueden intercalar su ejecución sino también superponerla.
• Multicomputadora. Es una máquina de memoria distribuida, que está formada por una serie de computadoras. En este tipo de arquitecturas también es posible la ejecución simultánea de los procesos sobre los diferentes procesadores.
2.4.1. Tipos de Procesos concurrentes
Los procesos que ejecutan de forma concurrente en un sistema
se pueden clasificar como:
• Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperación de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultánea en un sistema.
• Procesos son cooperantes: Son aquellos
que están diseñados para trabajar conjuntamente en alguna actividad, para lo
que deben ser capaces de comunicarse e interactuar entre ellos.
En ambos tipos de procesos (independientes y cooperantes),
puede producirse una serie de interacciones entre ellos y pueden ser de dos
tipos:
• Interacciones
motivadas porque los procesos comparten o compiten por el acceso a recursos
físicos o lógicos. Por ejemplo, dos procesos independientes compiten por el
acceso a disco o para modificar una base de datos.
• Interacción
motivada porque los procesos se comunican y sincronizan entre sí para alcanzar
un objetivo común, Por ejemplo, un compilador que tiene varios procesos que
trabajan conjuntamente para obtener un solo archivo de salida.
2.4.2. Beneficios del uso de la concurrencia:
• Trata
de evitar los tiempos muertos de la UCP
• Comparte
y optimiza el uso de recursos
• Permite
el modularidad en las diferentes etapas del proceso
• Acelera
los cálculos
• Da
mayor comodidad
2.4.3. Desventajas de la concurrencia:
• Inanición
e interrupción de procesos
• Ocurrencia
de bloqueos
• Que
dos o más procesos requieran el mismo recurso (no apropiativo).
SECUENCIABILIDAD:
Los archivos secuenciales son un tipo de archivo en los que
la información puede leerse y escribirse empezando desde el principio del
archivo.
Debemos tomar en consideración algunas características que
deben tener los archivos secuenciales:
• La
escritura de nuevos datos siempre se hace al final del archivo.
• Para
leer una zona concreta del archivo hay que avanzar siempre, si la zona está
antes de la zona actual de lectura, será necesario "rebobinar" el
archivo.
• Los
ficheros sólo se pueden abrir para lectura o para escritura, nunca de los dos
modos a la vez.
ARCHIVOS
SECUENCIALES.
• Se refiere al procesamiento de los registros, no importa
el orden en que se haga, para eso los registros están organizados en forma de
una lista y recuperarlos y procesarlos uno por uno de principio a fin.
• Rendimientos de los archivos Secuenciales; dependiendo
del dispositivo de almacenamiento utilizado el archivo se puede mostrar el
usuario como si fuera un sistema secuencial.
• Al finalizar un archivo secuencial se denota con una
marca de fin de archivo.
Comentarios
Publicar un comentario