miércoles, 18 de abril de 2012

¿Como Administra El sistema Operativo La Memoria RAM?

La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para ello existen diferentes esquemas de administración de memoria desde los mas simples hasta los mas elaborados entre los cuales se ubican:
Administración de la memoria sin intercambio o paginación.
Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y aquellos que no.
Monopogramación sin intercambio o paginación.
Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo para cada uno de los dispositivos E/S que utilice.
Multiprogramación y uso de la memoria.
La multiprogramación facilita la programación de una aplicación al dividirla en dos o mas procesos. La mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.
Un modelo para el uso y aprovechamiento de la CPU es el modelo probabilístico dado por la fórmula :
Uso de la CPU = 1 - pn
Multiprogramación con particiones fijas
El objetivo en todo esto es tener mas de un proceso en memoria a la vez, solución posible sería dividir la memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas también.
Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.
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.
Multiprogramación con particiones variables.
Mediante un algoritmo de administración de memoria las particiones variables varían de forma dinámica durante el uso de la máquina, evitando desperdicio de memoria
Otros métodos de administración de memoria que tenemos son:
la administración de memoria con mapa de bits
la memoria se divide en unidades de asignación, a cada asignación le corresponden un bit en el mapa de bits, un mapa de bits es una forma sencilla para llevar un registro de las palabras de la memoria en una cantidad fija de memoria.
la administración de memoria con listas ligadas
otra forma de mantener un registro en memoria es mediante una lista ligada donde cada entrada de la lista específica un hueco o un proceso.
la administración de memoria con el sistema de los asociados
basado en el sistema binario o utiliza para las direcciones.
Memoria Virtual
El método diseñado por Fotheringham en 1961 se conoce como Memoria Virtual, la idea es que el tamaño combinado de la pila, programa y datos puede exceder la memoria física disponible para ello. El S.O. mantiene en memoria aquellas partes del programa que se deben permanecer en memoria y el resto lo deja en disco, las partes entre el disco y la memoria se intercambian de modo que se vayan necesitando.
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.
Existen distintos niveles de paginación y a su vez distintos modelos de computadoras han trabajado con ellas.
Paginación de nivel 1: PDP-11
Paginación de 2 niveles: la VAX
Paginación de 3 niveles: la SPARC
Paginación de 4 niveles: la 68030
Memoria asociativa
En los algoritmos de paginación las tablas de páginas se mantienen en la memoria debido a su gran tamaño, en potencia este diseño tiene un efecto enorme en el rendimiento.
Algoritmos de reemplazo de páginas.
Cuando ocurre un fallo de página el sistema operativo debe elegir una página para retirarla de la memoria y hacer un espacio para la página por recuperar. Si la página por eliminar fue modificada mientras estaba en memoria, debe escribirla en el disco para mantener actualizada la copia del disco, si por el contrario la página no ha sido modificada la copia del disco ya está actualizada por lo que no es necesario volver a escribir, la página por leer sólo escribe encima de la página por retirar.
Aunque es posible elegir una página al azar para el reemplazo relacionado con un fallo de página, el rendimiento del sistema es mucho mejor si se elige una página de poco uso.
Algoritmo de reemplazo de páginas optimo
Mejor algoritmo posible para reemplazo de páginas pero irrealizable en la práctica.
Al momento de ocurrir un fallo de página cierto conjunto de páginas se encuentran en la memoria, en la siguiente instrucción se hará referencia a una de estas páginas, otras páginas no se utilizaran sino hasta mucho después, cada página puede ejecutarse con el número de instrucciones ejecutadas antes de la primera referencia a esa página, el algoritmo dice que se elimine la página con la mayor etiqueta; si una página no va a utilizase sino hasta mucho después que otra la eliminación de la primera retrasa el fallo de página lo mas posible, el único problema de este algoritmo es que es irrealizable. Al momento del fallo de página el S.O. no tiene forma de saber a qué página se hace referencia.
Algoritmo de página de uso no muy reciente.
En un fallo de página , el sistema operativo inspecciona todas las páginas y las divide en cuatro categorías según los valores actuales de los bits R y M
Clase 0: No se ha hecho referencia ni ha sido modificada
Clase 1: No se ha hecho referencia pero ha sido modificada
Clase 2: Se ha hecho referencia pero no ha sido modificada
Clase 3: Se ha hecho referencia y ha sido modificada
El algoritmo NRU implica una hipótesis que indica que es mejor eliminar una página modificada sin referencias al menos por lo general un intervalo de reloj, este algoritmo es fácil de comprender, de implantación eficiente y con un rendimiento que, aún sin ser el óptimo si es adecuado en muchos casos.
Algoritmo de reemplazo " primero en entrar, primero en salir FIFO"
El sistema operativo tiene una lista de todas las páginas que se encuentran en memoria, siendo la primera página la mas antigua y la última la mas reciente, en un fallo de página, se elimina la primera página y se añade la nueva al final de la lista.
Algoritmo de reemplazo de páginas de la segunda oportunidad
Una modificación simple del FIFO que evita deshacerse de una página de uso frecuente inspecciona el bit R de la página mas antigua, busca una página antigua sin referencias durante el anterior intervalo de tiempo.
Algoritmo de reemplazo de páginas del reloj
Aunque el anterior algoritmo es razonable un mejor enfoque es mantener las páginas en una lista circular con la forma de un reloj, una manecilla apunta hacia la mas antigua. Al ocurrir un fallo de página se inspecciona la página a la que apunta la manecilla si su bit R=0 se retira de la memoria, se inserta la nueva página en su lugar en el reloj y la manecilla avanza una posición, si R=1 la manecilla avanza una posición y el bit se limpia, esto continua hasta encontrar una página con R=0.
Segmentación
La memoria virtual que hemos analizado hasta ahora es unidimensional, puesto que cada segmento constituye un espacio independiente de direcciones, los distintos segmentos pueden crecer o reducirse en forma independiente sin afectar a los demás.
Una memoria segmentada tiene otras ventajas como hacer mas sencilla la administración de las estructuras de datos que crecen o se reducen, si cada procedimiento ocupa un segmento independiente con la posición inicial cero el ligado independiente de los procesos compilados es mucho mas sencillo.
Bit que se activa si se hace referencia a la página en cuestión
Bit que se activa si se modifica la página


Memoria Caché:

Usada por la unidad central de procesamiento de una computadora para reducir el tiempo de acceso a la memoria. La caché es una memoria más pequeña y rápida, la cual almacena copias de datos ubicados en la memoria principal que se utilizan con más frecuencia.
Es un conjunto de datos duplicados de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en la caché. Cuando se accede por primera vez a un dato, se hace una copia en el caché; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso medio al dato sea menor.
Cuando el procesador necesita leer o escribir en una ubicación en memoria principal, primero verifica si una copia de los datos está en la caché. Si es así, el procesador de inmediato lee o escribe en la memoria caché, que es mucho más rápido que de la lectura o la escritura a la memoria principal.



Buffer:
Dispositivo interno de un ordenador, computadora y otros equipos informáticos que forma parte integrante de la memoria y que almacena datos de forma temporal hasta ser transferidos a otro dispositivo o a su almacenamiento permanente en memoria. Determinados equipos como impresoras suelen contar con este tipo de memorias: almacenan la información que llega desde el ordenador hasta que es impreso el documento.


DMA:

DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa al procesador y como resultado éste puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.
Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA.

Tipos De Memorias


Tipo de memoria
Especificaciones



RAM
Es un tipo de memoria de ordenador a la que se puede acceder aleatoriamente; es decir, se puede acceder a cualquier byte de memoria sin acceder a los bytes precedentes. La memoria RAM es el tipo de memoria más común en ordenadores y otros dispositivos como impresoras.



SRAM
Memoria Estática de Acceso Aleatorio es un tipo de memoria basada en semiconductores que a diferencia de la memoria DRAM, es capaz de mantener los datos, mientras esté alimentada, sin necesidad de circuito de refresco. Sin embargo, sí son memorias volátiles, es decir que pierden la información si se les interrumpe la alimentación eléctrica.







DRAM






Es un tipo de memoria dinámica de acceso aleatorio que se usa principalmente en los módulos de memoria RAM y en otros dispositivos, como memoria principal del sistema. Se denomina dinámica, ya que para mantener almacenado un dato, se requiere revisar el mismo y recargarlo, cada cierto período, en un ciclo de refresco. Su principal ventaja es la posibilidad de construir memorias con una gran densidad de posiciones y que todavía funcionen a una velocidad alta: en la actualidad se fabrican integrados con millones de posiciones y velocidades de acceso medidos en millones de bit por segundo. Es una memoria volátil, es decir cuando no hay alimentación eléctrica, la memoria no guarda la información. Inventada a finales de los sesenta, es una de las memorias más usadas en la actualidad.



EDO
Memoria Extendida de Salida de Datos. La memoria EDO permite que el CPU obtenga acceso a la memoria de diez a quince por ciento más rápido que con los chips de memoria RAM convencionales.







RDRAM
Es un tipo de memoria síncrona, conocida como Rambus DRAM. Éste es un tipo de memoria de siguiente generación a la DRAM en la que se ha rediseñado la DRAM desde la base pensando en cómo se debería integrar en un sistema.
El modo de funcionar de estas memorias es diferente a las DRAM, cambios producidos en una serie de decisiones de diseño que no buscan solo proporcionar un alto ancho de banda, sino que también solucionan los problemas de granularidad y número de pins. Este tipo de memoria se utilizó en la videoconsola Nintendo 64 de Nintendo y otros aparatos de posterior salida.






FPN
Memoria que se incluía en los antiguos 386, 486 y primeros Pentium.
Alcanza velocidades de hasta 60 ns, se encuentra en los SIMM de 30 contactos y los posteriores de 72.
El controlador de memoria envía una sola dirección y recibe a cambio esa y varias consecutivas sin necesidad de generar todas las direcciones.

Memoria RAM

File:Kingston KVR1333 IMGP5970 wp wp.jpg


La memoria principal o RAM (Random Access Memory, Memoria de Acceso Aleatorio) es donde el computador guarda los datos que está utilizando en el momento presente. El almacenamiento es considerado temporal por que los datos y programas permanecen en ella mientras que la computadora este encendida o no sea reiniciada.
Se le llama RAM por que es posible acceder a cualquier ubicación de ella aleatoria y rápidamente
Físicamente, están constituidas por un conjunto de chips o módulos de chips normalmente conectados a la tarjeta madre. Los chips de memoria son rectángulos negros que suelen ir soldados en grupos a unas plaquitas con "pines" o contactos:

Memoria ROM


Es un medio de almacenamiento utilizado en ordenadores y dispositivos electrónicos, que permite solo la lectura de la información y no su escritura, independientemente de la presencia o no de una fuente de energía.
Los datos almacenados en la ROM no se pueden modificar, o al menos no de manera rápida o fácil. Se utiliza principalmente para contener el firmware (programa que está estrechamente ligado a hardware específico, y es poco probable que requiera actualizaciones frecuentes) u otro contenido vital para el funcionamiento del dispositivo, como los programas que ponen en marcha el ordenador y realizan los diagnósticos.
En su sentido más estricto, se refiere solo a máscara ROM -en inglés, MROM- (el más antiguo tipo de estado sólido ROM), que se fabrica con los datos almacenados de forma permanente, y por lo tanto, su contenido no puede ser modificado de ninguna forma. Sin embargo, las ROM más modernas, como EPROM y Flash EEPROM, efectivamente se pueden borrar y volver a programar varias veces, aún siendo descritos como "memoria de solo lectura" (ROM). La razón de que se las continúe llamando así es que el proceso de reprogramación en general es poco frecuente, relativamente lento y, a menudo, no se permite la escritura en lugares aleatorios de la memoria. A pesar de la simplicidad de la ROM, los dispositivos reprogramables son más flexibles y económicos, por lo cual las antiguas máscaras ROM no se suelen encontrar en hardware producido a partir de 2007.
Tipos De ROM:
Hay 5 tipos básicos de ROM, los cuales se pueden identificar como:
ROM:
De un modo similar a la memoria RAM, los chips ROM contienen  una hilera de filas y columnas, aunque la manera en que interactúan es bastante diferente. Mientras que RAM usualmente utiliza transistores para dar paso a un capacitador en cada intersección, ROM usa un diodo para conectar las líneas si el valor es igual a 1. Por el contrario, si el valor es 0, las líneas no se conectan en absoluto.
PROM:
Crear chips desde la nada lleva mucho tiempo. Por ello, los desarrolladores crearon un tipo de ROM conocido como PROM (programmable read-only memory). Los chips PROM vacíos pueden ser comprados económicamente y codificados con una simple herramienta llamada programador.
La peculiaridad es que solo pueden ser programados una vez. Son más frágiles que los chips ROM hasta el extremo que la electricidad estática lo puede quemar. Afortunadamente, los dispositivos PROM vírgenes son baratos e ideales para hacer pruebas para crear un chip ROM definitivo.
EPROM:
Trabajando con chips ROM y PROM puede ser una labor tediosa. Aunque el precio no sea demasiado elevado, al cabo del tiempo puede suponer un aumento del precio con todos los inconvenientes. Los EPROM (Erasable programmable read-only memory) solucionan este problema. Los chips EPROM pueden ser regrabados varias veces.
Borrar una EEPROM requiere una herramienta especial que emite una frecuencia determinada de luz ultravioleta. Son configuradas usando un programador EPROM que provee voltaje a un nivel determinado dependiendo del chip usado.
Para sobrescribir una EPROM, tienes que borrarla primero. El problema es que no es selectivo, lo que quiere decir que borrará toda la EPROM. Para hacer esto, hay que retirar el chip del dispositivo en el que se encuentra alojado y puesto debajo de la luz ultravioleta comentada anteriormente.
EEPROM y Memoria Flash:
Aunque las EPROM son un gran paso sobre las PROM en términos de utilidad, siguen necesitando un equipamiento dedicado y un proceso intensivo para ser retirados y reinstalados cuando un cambio es necesario. Como se ha dicho, no se pueden añadir cambios a la EPROM; todo el chip sebe ser borrado. Aquí es donde entra en juego la  EEPROM(Electrically erasable programmable read-only memory).





Lista De Interrupciones

Las Interrupciones

Son mensajes o llamados al procesador que le piden la interrupción de los procesos en desarrollo para la ejecución como un tipo de rutina en particular.


Interrupciones Del Procesador:
Son el resultado de alguna operación indebida o inusual por el programado en proceso.


Interrupción Por Software:
Son generadas deliberadamente por los programas de aplicación como una forma de invocar sus rutinas se conoce como int en el lenguaje ensamblador, las interrupciones se almacenan en memoria RAM y cada una ocupa un espacio de 4 bytes.


Interrupción Por Hardware:
Son generadas por la circuiteria tarjetas e interfaces físicas del pc en respuesta a algún evento como pulsar teclas, mover el mouse, activar el CD-ROM se identifican como el IRQ (Interruption Request Query).
Los IRQ del hardware se manifiestan colocando un nivel alto del voltaje a uno de la linea IRQ del bus de control del sistema.
El sistema posee un circuito integrado llamado controlador programable de interrupciones (PCI) el cual asigna a cada interrupción una instrucción de programa segun un programa de prioridad previamente establecida.