16 de abril de 2015

Administracion de Memoria



Administración de Memoria

La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.

·  Intercambio
En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen mas usuarios de los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al traslado de procesos de disco a memoria y viceversa se le llama intercambio.

·  Paginación
El espacio de direcciones de cada proceso se divide en bloques de tamaño uniforme llamados páginas, los cuales se pueden colocar dentro de cualquier para página marco disponible en memoria. Cuando las tablas de páginas son muy grandes se puede utilizar un esquema de paginación de varios niveles para que las páginas se paginen a sí mismas.

Administrador de sistemas

Un Administrador de Sistemas es la persona que tiene la responsabilidad de implementar, configurar, mantener, monitorizar, documentar y asegurar el correcto funcionamiento de un sistema informático, o algún aspecto de éste.

El Administrador del Sistemas tiene por objeto garantizar el tiempo de actividad (uptime), rendimiento, uso de recursos y la seguridad de los servidores que administra de forma proactiva.
  
Proceso (informática)
·         Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".

Paralelismo ( informática) 
El Paralelismo en la informática , es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo. Es decir, puede realizar varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en paralelo. 

Aplicaciones
El empleo de la computación paralela se convierte cada día en más grande y rápida, muchos problemas considerados anteriormente muy largos y costosos se han podido solucionar. El paralelismo se ha utilizado para muchas temáticas diferentes, desde bioinformática para hacer plegamiento de proteínas, hasta economía para hacer simulaciones en matemática financiera. 

Tipos de paralelismo informática
  1. Nivel de bit.
  2. Nivel de instrucción.
  3. Nivel de datos.
  4. Nivel de tarea.
El paralelismo o procesamiento paralelo ha sido empleado durante muchos años, sobre todo para la computación de alto rendimiento, teniendo en cuenta las generaciones de procesadores y sus características. 

Recuperación de memoria
En el ámbito de la memoria, el proceso de recuperación o recuerdo consiste en la evocación de sucesos, eventos o información almacenada en el pasado. Desde el punto de vista del procesamiento de la información, este es uno de los tres procesos principales de la memoria, junto a la codificación y al almacenamiento. 


Seguridad Informática
Esta  consiste en asegurar en que los recursos del sistema de información de una organización se utilizan de la manera que se decidió y que el acceso a la información allí contenida así como su modificación solo sea posible a las personas que se encuentren acreditadas y dentro de los límites de su autorización.

Principios de Seguridad Informática:
 La seguridad informática se fundamenta en tres principios, que debe cumplir todo sistema informático:
Confidencialidad: Privacidad de los elementos de información almacenados y procesados en un sistema informático, Basándose en este principio, las herramientas de seguridad informática deben proteger el sistema de invasiones y accesos por parte de personas o programas no autorizados. Este principio es particularmente importante en sistemas distribuidos, es decir, aquellos en los que los usuarios, computadores y datos residen en localidades diferentes, pero están física y lógicamente interconectados.
Integridad: Validez y consistencia de los elementos de información almacenados y procesador en un sistema informático. Basándose en este principio, las herramientas de seguridad informática deben asegurar que los procesos de actualización estén bien sincronizados y no se dupliquen, de forma que todos los elementos del sistema manipulen adecuadamente los mismos datos. Este principio es importante en sistemas descentralizados, es decir, aquellos en los que diferentes usuarios, computadores y procesos comparten la misma información.
Disponibilidad: Continuidad de acceso a los elementos de información almacenados y procesados en un sistema informático. Basándose en este principio, las herramientas de seguridad informática deber reforzar la permanencia del sistema informático, en condiciones de actividad adecuadas para que los usuarios accedan a los datos con la frecuencia y dedicación que requieran, este principio es importante en sistemas informáticos cuyos compromiso con el usuario, es prestar servicio permanente.

Segmentación

La segmentación es un esquema para implementar espacios de direcciones virtuales que se usaba en los primeros computadores de tiempo compartido. Pese a que hoy en día se encuentra en desuso, es interesante estudiar la segmentación por su simplicidad.

Como se vió en capítulos anteriores, cada proceso tiene su propio espacio de direcciones virtuales, independiente del resto de los procesos. Este espacio de direcciones virtuales se descompone en cuatro áreas llamadas 

·         Un segmento de datos.
·         Un segmento de pila.
·         Un segmento de sistema, invisible para la aplicación, en donde reside el núcleo.

En una organización segmentada, los segmentos residen en un área contigua de la memoria real del computador. La figura gif muestra un posible estado de la memoria de un computador con los distintos segmentos de varios procesos.

Figure: Ejemplo de ubicación de los segmentos de dos procesos en la memoria real.

observa que el segmento sistema contiene una imagen de toda la memoria real del computador. Esta es una técnica muy usada en la implementación de Unix.

Cuando un proceso accesa la memoria siempre suministra una dirección en su espacio de direcciones virtuales. El procesador debe traducir esa dirección a su posición efectiva en la memoria real del computador, es decir a su dirección real.


La tabla de segmentos del procesador
Para traducir las direcciones virtuales a direcciones reales, el procesador posee una tabla de segmentos con 4 filas. Cada una de estas filas describe uno de los 4 segmentos del programa en ejecución. Para cada segmento se indica:

·         Base: Dirección virtual en donde comienza (incluyendo esta dirección).
·         Límite: Dirección virtual en donde finaliza (excluyendo esta dirección).
·         Desplazamiento: Desplazamiento que hay que sumar a una dirección virtual para obtener su dirección real. Se calcula como la dirección de comienzo del segmento en la memoria real menos la dirección virtual de inicio del segmento.
·         Atributos del segmento: lectura/escritura, solo lectura e invisible (accesible solo por el núcleo).

¿Qué es la paginacion y Cómo funciona?

La paginación es uno de los esquemas de manejo de memoria en donde un computador puede almacenar y recuperar datos de un dispositivo de almacenamiento secundario para su uso en la memoria principal. En el  esquema de manejo de memoria de paginación, el sistema operativo recupera datos desde un dispositivo de almacenamiento secundario en bloques de un mismo tamaño llamados páginas. La principal ventaja de paginación sobre la segmentación de memoria es que permite al espacio de dirección física de un proceso ser no contiguo. Antes de la paginación, los sistemas debían poner programas en almacenamiento de forma contigua, lo que causaba varios problemas de almacenamiento y fragmentación.


El método básico para implementar paginación consiste en dividir la memoria física en bloques de tamaño fijo llamados frames (marcos) y dividir la memoria lógica en bloques de mismo tamaño llamados pages (páginas). Cuando un proceso se va a ejecutar, sus páginas son cargadas en cualquier marco de la memoria de almacenamiento secundario. Este esta dividido en bloques de tamaño fijo del mismo tamaño de los marcos en memoria.

Hardware de Paginación
El tamaño de pagina (como el marco de página) es definido por hardware. El tamaño de una pagina es tipicamente una potencia de 2, variando entre 512 B y 16 MB por pagina, dependiendo de la arquitectura del computador. La selección de una potencia de 2 como tamaño de página hace la traducción de una direccion lógica a un número de pagina y offset de página algo fácil. Si el tamaño del espacio de dirección lógica es 2^m y el tamaño de página 2^n unidades de dirección (bytes o palabras), entonces los m-n bits de mayor orden de la dirección logica designan el número de pagina, y los n bits de menor orden designan el offset de  página.


Cualquier direccion generada por la CPU es divida en dos partes: un número de página (p) y un offset de página (d). El número de pagina es usado como indice en una tabla de página. La tabla de página contiene las direcciones base de cada pagina en la memoria física. Esta dirección base es combinada con el offset de página para definir la dirección de memoria física que es enviada a la unidad de memoria.
Tabla de Página
Bueno, ya hemos revisado el concepto de paginación y como funciona, En esta sección explicaremos como se implementa, y es en este punto en donde debemos mencionar a "la Tabla de Página". La tabla de página es una Estructura de datos usada por el sistema de memoria virtual, en un sistema operativo para almacenar la relación entre una dirección virtual en la memoria y la direcciones físicas.

 Memoria Viltul

La memoria virtual aparece unida a los sistemas operativos modernos. Permite simular una RAM de mayor tamaño que la que tienes instalada en tu equipo.

 Pero, veamos como se ejecuta un programa. Las aplicaciones y sus datos, para poder ser usados por el procesador, tienen que pasar del disco duro, que es donde se encuentra almacenado todo cuando apagas al equipo, a la memoria RAM que puede ser accedida de forma directa por el micro. Surge, por tanto la necesidad de tener la mayor cantidad de esta, para poder hacer funcionar de forma correcta el sistema.

La memoria RAM de una computadora, hace unos años, era un elemento muy caro. Si a esto unimos, que no todas las aplicaciones que se están ejecutando se usan a la vez, parece necesario un sistema que controle el uso de la memoria.
Aunque la RAM era cara, los discos duros no lo eran tanto. Se podía entonces usar el disco duro para simular que tenemos más memoria. El procedimiento era sencillo, se pasaba al disco las porciones de RAM que no se usaban en un determinado momento.
Esta técnica consigue simular, por tanto, más memoria, y las aplicaciones ni se dan cuenta de todo lo que esta ocurriendo por debajo. En un sistema operativo normal, se llega a simular tener el doble que sin usarla. Como contrapartida el sistema puede comportase de manera más lenta en algunas situaciones.
Esto es debido a que la velocidad de acceso de los datos al disco duro es miles de veces más lenta que a la memoria RAM. Si una porción de memoria no se encuentra en esta, el sistema necesita tiempo para leerla y devolverla a la memoria principal ya que este es el único lugar donde el procesador puede ejecutarlo.

Como ves la memoria se organiza en niveles. Primero las caches del micro que se encargan de tener los datos que más usas cerca del procesador, después la memoria RAM, quedando como último recurso el disco duro. A mayor proximidad al micro, mayor velocidad, pero la memoria es mucho más cara.
¿Por qué es tan importante?
Si nos quedamos sin memoria no podremos ejecutar más programas y los que estamos ejecutando tendrán problemas para trabajar con más datos. Además, el uso de memoria virtual puede hacer que tu equipo funcione más lento si es necesario ir por datos al disco duro. Es siempre un compromiso entre la velocidad y la cantidad de datos que el sistema es capaz de procesar.
Jamás una configuración de más memoria virtual podrá ser mejor que una ampliación de memoria RAM. Es más, lo ideal sería tener un equipo que no necesitase tener esta característica activada.
Uso en los sistemas operativos modernos
En cada versión de tu sistema operativo, como es gestionada esta memoria y los algoritmos que la gobiernan son mejorados. Sin embargo, el mayor uso de interfaces gráficas y herramientas cada vez más sofisticadas hace que los sistemas sean unos devoradores de RAM.
Una de las razones por las que un sistema mejora su velocidad usando un disco SSD es debido a esta funcionalidad. Ten siempre en cuenta que una mejora de velocidad de acceso a los datos, aunque no sea espectacular, puede ayudar mucho a un equipo con limitaciones de memoria ya que todo el sistema se puede enfrentar a bloqueos constantes.

¿Se puede deshabilitar?
Seguro que te estas preguntando si se puede deshabilitar y si esto trae mejoras de rendimiento. En principio yo no te recomiendo que la deshabilites si eres un usuario normal. Si tienes gran cantidad de memoria, no usas muchas aplicaciones de manera concurrente, pero tienes problemas de rendimiento, puedes probar a desactivar esta característica.
En resumen la memoria virtual te permite ampliar tu capacidad para ejecutar más programas de manera simultánea pero puede hacer que tu equipo en ciertas ocasiones sea más lento. En unos años y debido a la continua rebaja en el precio de las memorias acabará teniendo menos importancia.


Manejo de consistencias entre diferentes medios de memorias

Memoria: es el disposivo que retiene, memoriza o almacena datos informáticos durante algún intervalo de tiempo.
Almacenamiento Primario
 La memoria primaria está directamente conectada a la CPU de la computadora. Debe estar presente para que la CPU efectúe cualquier función Almacenamiento secundario
La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la información y se utiliza para almacenamiento a largo plazo de información persistente.
Almacenamiento terciario
La memoria terciaria es un sistema en el que montará (conectará) o desmontará (desconectará) un medio de almacenamiento masivo fuera de
Las memorias de lectura/escritura o memorias cambiables permiten que la información se reescriba en cualquier momento.
La memoria de sólo lectura retiene la información almacenada en el momento de fabricarse
  
Memoria de semiconductor
La memoria de semiconductor usa circuitos integrados basados en semiconductores para almacenar información.
Memoria magnética
Las memorias magnéticas usan diferentes patrones de magnetización sobre una superficie cubierta con una capa magnetizada para almacenar información.
Memoria de disco óptico
Las memorias en disco óptico almacenan información usando agujeros minúsculos grabados con un láser en la superficie de un disco circular.
Memoria de disco magneto-óptico
Los discos magneto-ópticos son discos de memoria óptica donde la información se almacena en el estado magnético de una superficie ferromagnética.
La memoria de acceso aleatorio (RAM) se utiliza como memoria de trabajo para el sistema operativo, los programas y la mayor parte del software. más rápida posible.


 Administración de procesos

Procesos
¿Qué es un proceso?
Un proceso es un programa en ejecución. Un proceso simple tiene un hilo de ejecución, por el momento dejemos esta última definición como un concepto, luego se verá en más detalle el concepto de hilo. Una vez definido que es un proceso nos podríamos preguntar cuál es la diferencia entre un programa y un proceso, y básicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados.

Estados de los procesos
Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecución y Bloqueado.

  • Los procesos en el estado listo son los que pueden pasar a estado de ejecución si el planificador los selecciona. 
  • Los procesos en el estado ejecución son los que se están ejecutando en el procesador en ese momento dado.
  •  Los procesos que se encuentran en estado bloqueado están esperando la respuesta de algún otro proceso para poder continuar con su ejecución. Por ejemplo operación de E/S.


Implantación de los procesos
La implementación del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos información relativa a cada proceso que se esta ejecutando en el procesador. Cada línea de esta tabla representa a un proceso.
La información que se almacena es la siguiente:
1) Identificación del proceso.
2) Identificación del proceso padre.
3) Información sobre el usuario y grupo.
4) Estado del procesador.
5) Información de control de proceso
5.1) Información del planificador.
5.2) Segmentos de memoria asignados.
5.3) Recursos asignados

  Bibiografia







No hay comentarios:

Publicar un comentario