Replicación:

Esta técnica se basa en la creación de múltiples copias de un archivo esto se da en sistemas de gran volumen donde se puede dar el lujo de destinar espacio de almacenamiento para ello; al tener varias copias múltiples usuarios pueden acceder a la información aumentando el rendimiento.

Como su puede intuir estas copias deben tener una consistencia, es decir, deben tener la misma información y esta debe actualizarse en los diferentes usuarios que la consulten, la replicación proporciona es una aceptable si es que se esta dispuesto a pagar el precio con la ventaja de que es altamente expandible.    

Replicación en un sistema distribuido:

La replicación se basa en gran medida de la concurrencia, esta maneja el orden en el que se ejecutaran los procesos que aplicaran los cambios a las diferentes copias de la información, por lo general un sistema distribuido solo soporta un modelo ya que se ha escogido un modelo para su tarea en específico; la forma en la que se sincronizara la información será definida por el programador tomando en cuenta las tareas que desempeñara el sistema.

Modelos de consistencia:

Las operaciones fundamentales que se pueden realizar en una memoria son dos: READ (leer) y WRITE con estas dos operaciones un usuario puede acceder y cambiar la información, esto en principio no refleja un problema al tener tanto un usuario como un archivo, pero al tener varios usuarios con múltiples archivos esto puede generar conflictos. Para esto se crearon diferentes modelos de concurrencia que establece las reglas que deben tener las operaciones para evitar los errores algunos modelos pueden ser:

CONSISTENCIA ESTRICTA

Cualquier operación de lectura sobre un archivo, debe mostrar los últimos cambios realizados por la operación escritura, es decir que, si se abre un archivo compartido en que se está trabajando en ese momento, se mostrara la información del ultimo cambio hecho por alguno de los miembros.

CONSISTENCIA SECUENCIAL

En esta todos los archivos tienen el mismo orden de las operaciones, pero el orden es establecido por el proceso según el rango, jerarquía, precedencia, prelación o cualquier otra característica que fuera establecida por el programador en base a los usuarios.

CONSISTENCIA LINEALIZABLE

Tiene las mismas características de la anterior, pero con un reloj compartido entre los diferentes nodos para una sincronización de los equipos permitiendo realizar varios eventos al mismo tiempo.

CONSISTENCIA CAUSAL

Se utiliza cuando dos procesos diferentes trabajan con la misma información realizando operaciones de escritura y lectura, por lo tanto, si un proceso escribe algún cambio este estará causalmente relacionado a la información que lea el otro proceso.  

CONSISTENCIA FIFO

En este modelo las operaciones se realizan en el orden en que solicitaron por lo que escrituras de un mismo proceso son vistas iguales por los demás procesos, pero al tener mas de un proceso cada uno de los procesos los ve desde su punto de vista teniendo ordenes distintos.

GLOSARIO

Argumentos: Serie de variables que necesita un programa para hacer una función, pueden ser proporcionados por el cliente o consultados por una parte del mismo programa.

Batch: Conjunto de instrucciones o tareas que se ejecutan secuencialmente pueden ser ejecutadas por el mismo sistema operativo o a través de un archivo por medio de la consola (CMD).

Capas o niveles de software: Son los niveles del software que tiene hasta llegar hasta al hardware: pueden dividirse en aplicaciones o programas, sistema operativo, controladores (drivers) y el kernel (núcleo del SO). 

Cargador: Programa encargado de almacenar todos los datos en la memoria RAM para el uso del procesador en las tareas especificadas en el código. 

Cliente: proceso o dispositivo que no desempeña ninguna labor de procesamiento de información que se limita a solicitarla.

Código portable: Es aquel que facilita la ejecución del código en diferentes sistemas operativos independientemente del hardware.

Consola: La consola es una entrada de datos sin interfaz grafica desde la que se puede manejar todo el sistema operativo a través de comandos (entradas de texto reservadas por el SO).

Controladores de E/S: componente que se encarga de la gestión de los periféricos por los cuales el usuario ingresa y visualiza la información.   

CPU:  la unidad de procesamiento central se encarga de realizar todos los cálculos que hacen funcionar todo el software tanto del SO, los drives y los programas.

Depurador:  Programa encargado de la detección de errores en código fuente de un programa para su tratamiento por parte del programador.

Editor de texto: programa destinado para la escritura de archivos de texto, pero puede utilizarse para la codificación.

Enlazador: Programa encargado de unir los diversos archivos del código fuente para elaborar el programa entre estos están la clase principal y las librerías, establece las relaciones que llaman a cada parte del código. 

Ensamblador: Este lenguaje es el mas bajo que un humano puede entender, después de este se ejecutan las instrucciones a nivel maquina es decir 1´s y 0´s, cada procesador tiene un lenguaje ensamblador diferente en base a su arquitectura, un procesador ARM y uno x86 no usan el mismo ensamblador. 

Hardware: Son todos los dispositivos fiscos que conforman un sistema informático y son tangibles por el usuario mecánicos, eléctricos y electrónicos.

Interactividad: Propiedad que tienen los procesos y dispositivos para su comunicación.

Interfaz o interface: Es un objeto físico o visual que nos permite interactuar con otro objeto interno omitiendo su funcionamiento al usuario final.

Interrupción: Detención de la ejecución del programa puede ser involuntaria o planeada y debe ser temporal. 

Lenguajes de alto nivel: Este tipo de lenguajes tienen un parecido mayor al lenguaje cotidiano tanto en su léxico, sintaxis y semántica; la aparición de éstos agilizo el proceso de desarrollo del software.

Lenguaje máquina: Son las instrucciones en forma de 1´s y 0´s que ejecuta el procesador, no necesitan traducción ya que son entendidas perfectamente por el procesador.

Máquina virtual: Son interfaces que emulan un equipo de computo asignando recursos del equipo anfitrión al software que se especifique generalmente un SO para evitar la necesidad de instalarlo en el disco duro real  se puede utilizar como una medida de seguridad. 


Comentarios

Entradas populares