martes, 15 de septiembre de 2015

Paginacion y Segmentacion de memoria


Paginación de memoria



En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la fragmentación interna y evita la externa.
En un momento cualquiera, la memoria se encuentra ocupada con páginas de diferentes procesos, mientras que algunos marcos están disponibles para su uso. El sistema operativo mantiene una lista de estos últimos marcos, y una tabla por cada proceso, donde consta en qué marco se encuentra cada página del proceso. De esta forma, las páginas de un proceso pueden no estar contiguamente ubicadas en memoria, y pueden intercalarse con las páginas de otros procesos.
En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección física. Este proceso se realiza en una parte del computador específicamente diseñada para esta tarea, es decir, es un proceso hardware y no software.
De esta forma, cuando un proceso es cargado en memoria, se cargan todas sus páginas en marcos libres y se completa su tabla de páginas.

Paginación por demanda 

E la paginación por demanda entra a jugar la memria virtual (Pedazo de Disco Duro). La diferencia es que normalmente una tarea que no cabe en ninguna particion quedaria en cola, pero con la paginacion por demanda esta se asegura de que la tarea entre con la ayuda de la memoria virtual. 

Segmentación de memoria

La segmentación es una técnica de gestión de memoria que pretende acercarse más al punto de vista del usuario. Los programas se desarrollan, generalmente, en torno a un núcleo central (principal) desde el que se bifurca a otras partes (rutinas) o se accede a zonas de datos (tablas, pilas, etc).
Desde este punto de vista, un programa es un conjunto de componentes lógicos de tamaño variable o un conjunto de segmentos, es decir, el espacio lógico de direcciones se considera como un conjunto de segmentos, cada uno definido por un identificador, y consistente de un punto de inicio y el tamaño asignado.
La segmentación de un programa la realiza el compilador y en ella cada dirección lógica se expresará mediante dos valores: Número de segmento (s) ydesplazamiento dentro del segmento (d).
Una de las implementaciones más obvias y directas de un espacio de memoria segmentado es asignar un segmento distinto a cada una de las secciones del espacio en memoria de un proceso.

Relocalización


La relocalizacion se maneja por tiempos, o por porsentajes de disco lleno, o cantiad de tareas en cola.

Desasigacion de tareas


Debemos tener en cuanta que cuando hay particiones fijas y hay una desasignacion pues simplememte desasigna la stareas sin preguntar. 
Por otro lado cuando tenemos memoria con particiones dinamicas debemos preguntar y tenemos los siguientes casos: 
1. Saar tareas entre dos particiones ocupadas entonces pregunta si esta ocupada la particion y si lo esta entonces crea particion nueva. 
2. Entre una ocupada y otra desocupada pregunta y une la particion con la que esta vacia. 
3. Entre dos vacias une las tres particiones. 

Desasignación en terminos de tablas 

A continuacion tenemos en cuenta la tablade mejor ajuste para desasignar la T1, entonces como la tarea 1 esta entre dos particiones vacias entoneces se unen las 3 particiones y  la tabla quedaria de la siguiente manera. 


Almacenamiento


El tipo de almacenamiento que maneja el computador lo podemos ilustrar de mejor manera con tablas teniendo en cuanta las tacnicas de asignacion de memoria tenemos los siguientes ejercicios.



Tecnicas de Asignacion de Memoria


Tenemos una lista de tareas 

Primer ajuste

Consiste en asignar el primer hueco disponible que tenga un espacio suficiente para almacenar el programa. La principal desventaja es el reiterado uso de las primeras posiciones de memoria. Este último inconveniente repercute negativamente en la circuitería, debido a que se produce un mayor desgaste en dichas posiciones.

Siguiente ajuste

Se continúa a partir de la posición de la última asignación realizada.Es muy probable que haya un hueco a partir de esa posición, reduciendo la longitud de la búsqueda. De esta forma se resuelve el inconveniente de usar en exceso las primeras posiciones de la memoria. Cuando se alcanza el final de la memoria se vuelve a comenzar la búsqueda desde el principio (por ello este criterio es también conocido como primer ajuste circular).
                                                  

Mejor ajuste

Consiste en asignarle al proceso el hueco con menor desperdicio interno, i.e, el hueco el cual al serle asignado el proceso deja menos espacio sin utilizar. Su mayor inconveniente es su orden de complejidad (orden lineal, O(n)) debido a que hay que recorrer todo el mapa de bits o toda la lista de control (una posible solución seria usar una lista de control encadenada que mantenga los huecos ordenados por tamaño creciente). Otro problema es la fragmentación externa, debido a que se asigna el menor hueco posible, el espacio sobrante sera del menor tamaño posible lo que da lugar a huecos de tamaño normalmente insuficiente para contener programas.
                                            

Peor ajuste

Al contrario que el criterio anterior, se busca el hueco con mayor desperdicio interno, i.e, el hueco el cual al serle asignado el proceso deja más espacio sin utilizar, y se corta de él el trozo necesario (así la porción sobrante será del mayor tamaño posible y será más aprovechable). Tiene el mismo inconveniente en cuanto a orden de complejidad que el mejor ajuste (debido a la longitud de las búsquedas) y la fragmentación no resulta demasiado eficiente.

                                                  

Memoria








Podríamos decir que la memoria de la computadora es uno de los elementos más importantes para que todo funcione correctamente, es más, sin ella la PC ni siquiera podrá arrancar, tal es la importancia que este componente electrónico tiene en la estructura de nuestra computadora. La palabra Memoria es un término genérico usado para designar las partes de la computadora o de los dispositivos periféricos donde todos los datos y programas son almacenados. 


Cuando hablamos de la memoria del computador hablamos del un dispositivo que retiene, memoriza o almacena datos informaticos durante algun intevalo de tiempo, y esto lo decimos ya que la memoria RAM es una memoria de almacenamiento temporal, Sin la memoria del computador el computador no arrancaria. Interactua con la CPU y los dispositivos de entrada y salida.
Sabemos que el software es la parte logica del computador es decir la parate "Interna", y el hardaware es la parte tangible de un objeto, cuando hablamos del computador decimos que el hardware es la parte fisica que se puede tocar.
Pero cuando hablamos de la Memoria del Computador, podrias decir que ¿La memoria es software o hardware? Pues podriamos decir que es un firmware es decir es el conjunto conformado e integrado de manera de software y hardware al mismo tiempo. asi como lo es la memoria que es fisica pero al ponerla en funcionamiento es un software. 






Hablando exclusivamente de la computadora, dentro del gabinete, y acopladas a la placa madre, podemos encontrar dos tipos de memorias.



Memoria RAM - Random Access Memory (Memoria de Acceso Aleatorio)

La memoria RAM es la memoria de almacenamiento temporal que almacena los programas y los datos que están siendo procesados, solamente durante el procesamiento. Es una memoria volátil, los datos sólo permanecen en ella almacenados mientras la computadora este prendida. En el momento que la PC se apaga, todos esos datos se pierden.



Memoria ROM - Read Only Memory (Memoria sólo de Lectura)
Es usada para almacenar aplicaciones y /o datos permanentes o raramente alterados. La información generalmente es colocada en el chip de almacenamiento cuando es fabricado y el contenido de la ROM no puede ser alterado por un programa de usuario. Por ese motivo es una memoria sólo de lectura.

Que es un sistema operativo?

Un sistema operativo es un conjunto de operaciones y elelementos que interactuan entre si para un fin comun, o comunmennte conocido como programa o conjunto de programas de computadora destinado a permitir una gestión eficaz de sus recursos. Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.
Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a estos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios  y computadoras)