MEMORIA RAM

¿SABIAS QUE ES VITAL PARA TU COMPUTADORA?

MEMORIA CACHE

ESENCIAL PARA AYUDAR Y OPTIMIZAR EL RENDIMIENTO DEL PROCESADOR.

SISTEMA OPERATIVO LINUX

UNA BUENA OPCIÓN PARA CAMBIAR DE SISTEMA OPERATIVO.

sábado, 30 de mayo de 2015

ALGORITMOS FIFO , SSF Y SCAN

Introducción

A continuación se describirán los algoritmos FIFO - SSF - SCAN - CSCAN - LOOK  y junto a ellos al final abra un enlace de Programas simuladores de cada uno desarrollado en JAVA por estudiantes de la Institución Universitaria CESMAG de la ciudad de San Juan de Pasto (Nariño) Colombia.

Al final del blog también se encontraran los enlaces de descarga de los simuladores de algoritmos fifo, scan, cscan y look desarrollados en C++. También hemos preparado para el mayor aprendizaje  de estos algoritmos de planificación de peticiones los programas simuladores en un solo paquete cada uno de ellos en Java pero con un entorno GRÁFICO diferente y mas didáctico para que no se te dificulte aprender su funcionamiento y no tengas escusa para comprender y entender todos sus procesos.




Algoritmos FIFO - SSF - SCAN - CSCAN - LOOK, programas simuladores en JAVA.

  • ALGORITMO FIFO (Primero en llegar, primero en salir)

Este algoritmo da servicio a las solicitudes de acceso a disco de la cola según el orden de llegada. Esta planificación hará uso de una cola tipo FIFO (First In, First Out – Primero en entrar, primero en salir).

Enlace para descarga FIFO:  http://depositfiles.com/files/p4cotikht

  •  ALGORITMO SSF (Shortest Seek First Primero la búsqueda más cercana)

De todas las peticiones atiende primero aquella que se encuentra mas cerca de la petición que se está procesando. Es decir, atiende primero la petición que requiere el menor movimiento de la cabeza de lectura/escritura desde su posición actual.

Enlace para descarga SSF: http://depositfiles.com/files/suwzemnju

  • ALGORITMO SCAN o ALGORITMO DEL ASCENSOR

Este algoritmo recibe el nombre de algoritmo del ascensor porque se comporta como tal: va atendiendo las solicitudes que va encontrando en el sentido en el que se van desplazando las cabezas de lectura/escritura por el disco. Cuando no hay más solicitudes en ese sentido, o se llega al extremo, se invierte el sentido para hacer lo mismo otra vez pero yendo hacia el otro lado. Por tanto, en este algoritmo es necesario tener un bit que indique el sentido del movimiento.
SCAN: las cabezas se mueven de un extremo a otro del disco, atendiendo las solicitudes que se van encontrando.

Tiempos de servicio acotados, y más variables en los extremos que en el centro.



Enlace para descarga SCAN: http://depositfiles.com/files/as7zsmmw8


  • ALGORITMO C-SCAN

C--SCAN (Circular SCAN): las cabezas se mueven del primer cilindro al último atendiendo solicitudes, y retornan al principio.

  1. Tiempos de espera más uniformes.
  2. El retorno consume relativamente poco tiempo, porque se hace sin paradas.

Enlace para descarga C-SCAN:  http://depositfiles.com/files/bpkc4nks7


  • ALGORITMO LOOK 

Algoritmo LOOK: las cabezas no se mueven hasta el extremo, sino hasta la última solicitud pendiente en el sentido del movimiento.



Enlace para descarga LOOK: http://depositfiles.com/files/nv86xasny


Fuente de información tomada de:




Algoritmos FIFO, SCAN, CSCAN, LOOK desarrollados en C++ simulando cada algoritmo mencionado, a continuación links de descarga de los simuladores:


Link descarga algoritmo FIFO: http://depositfiles.com/files/5vg4m9bf4

Link descarga algoritmo SCAN: http://depositfiles.com/files/niwvogok3

Link descarga algoritmo CSCAN: http://depositfiles.com/files/56dmxvfig

Link descarga algoritmo LOOK: http://depositfiles.com/files/69yqh1pc4




Algoritmos FIFO - SSF - SCAN - CSCAN - LOOK  con entorno GRÁFICO mas didáctico y cómodo para que entiendas de una manera mas fácil el funcionamiento de los algoritmos de planificación de peticiones.



  • En esta sección hemos preparado  simuladores de cada algoritmo con la gran diferencia que en estos hay un entorno gráfico mejorado donde podrás entender de una mejor manera el funcionamiento de los algoritmos.



Link descarga paquete de algoritmos con entorno gráfico mejorado: 

http://depositfiles.com/files/lvl5tbwv1



Los estudiantes de Ingeniería de Sistemas dentro de la materia de Sistemas Operativos junto con la enseñanza del profesor Omar Revelo, hemos querido hacer este aporte a la comunidad de aquellos que estén interesados en este tipo de temas. Esperamos sean de gran ayuda y con ellos aprendan para que en el futuro pasen estos conocimientos a las nuevas generaciones.


fuente: cesmag

SPOOLING

En el campo de la Informática, el spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso mediante el cual la computadora introduce trabajos en un buffer (un área especial en memoria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté listo.
El spooling es útil en caso de dispositivos que acceden a los datos a distintas velocidades. El buffer proporciona un lugar de espera donde los datos pueden estar hasta que el dispositivo (generalmente más lento) los procesa. Esto permite que la CPU pueda trabajar en otras tareas mientras que espera que el dispositivo más lento acabe de procesar el trabajo.
La aplicación más común del spooling es la impresión. En este caso, los documentos son cargados en un buffer, que habitualmente es un área en un disco, y la impresora los saca de éste a su propia velocidad. El usuario puede entonces realizar otras operaciones en el ordenador mientras la impresión tiene lugar en segundo plano. El spooling permite también que los usuarios coloquen varios trabajos de impresión en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el siguiente.
El uso de un almacenamiento intermedio permite que varios procesos en paralelo estén generando datos para el dispositivo, sin que se mezcle el resultado, ni que tengan que esperar a que finalice la operación con el periférico. En consecuencia se obtiene una comunicación indirecta entre los programas que escriben los datos y los que los leen. Se suele usar este mecanismo cuando un dispositivo escribe datos a diferente velocidad de la que la lee el dispositivo receptor, lo cual permite que un dispositivo más lento lo procese a su ritmo.
También se puede referir a un dispositivo de almacenamiento que incorpora un spool físico, como una unidad de cinta.





fuente:wikipedia

viernes, 8 de mayo de 2015

CENA DE LOS FILOSOFOS

Cinco filósofos se sientan alrededor de una mesa y pasan su vida cenando y pensando. Cada filósofo tiene un plato de fideos y un tenedor a la izquierda de su plato. Para comer los fideos son necesarios dos tenedores y cada filósofo sólo puede tomar los que están a su izquierda y derecha. Si cualquier filósofo toma un tenedor y el otro está ocupado, se quedará esperando, con el tenedor en la mano, hasta que pueda tomar el otro tenedor, para luego empezar a comer.
Si dos filósofos adyacentes intentan tomar el mismo tenedor a una vez, se produce una condición de carrera: ambos compiten por tomar el mismo tenedor, y uno de ellos se queda sin comer.
Si todos los filósofos toman el tenedor que está a su derecha al mismo tiempo, entonces todos se quedarán esperando eternamente, porque alguien debe liberar el tenedor que les falta. Nadie lo hará porque todos se encuentran en la misma situación (esperando que alguno deje sus tenedores). Entonces los filósofos se morirán de hambre. Este bloqueo mutuo se denomina interbloqueo o deadlock.
El problema consiste en encontrar un algoritmo que permita que los filósofos nunca se mueran de hambre.
POSIBLES SOLUCIONES:
  • Por turno cíclico
Se empieza por un filósofo, que si quiere puede comer y después pasa su turno al de la derecha. Cada filósofo sólo puede comer en su turno. Problema: si el número de filósofos es muy alto, uno puede morir de hambre antes de su turno.
  • Varios turnos
Se establecen varios turnos. Para hacerlo más claro supongamos que cada filósofo que puede comer (es su turno) tiene una ficha que después pasa a la derecha. Si por ejemplo hay 7 comensales podemos poner 3 fichas en posiciones alternas (entre dos de las fichas quedarían dos filósofos).
Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutos se pasan las fichas (y los turnos) a la derecha.
En base al tiempo que suelen tardar los filósofos en comer y en volver a tener hambre, el tiempo de turno establecido puede hacer que sea peor solución que la anterior. Si el tiempo de turno se aproxima al tiempo medio que tarda un filósofo en comer esta variante da muy buenos resultados. Si además el tiempo medio de comer es similar al tiempo medio en volver a tener hambre la solución se aproxima al óptimo.
  • Colas de tenedores
Cuando un filósofo quiere comer se pone en la cola de los dos tenedores que necesita. Cuando un tenedor está libre lo toma. Cuando toma los dos tenedores, come y deja libre los tenedores.
Visto desde el otro lado, cada tenedor sólo puede tener dos filósofos en cola, siempre los mismos.
Esto crea el problema comentado de que si todos quieren comer a la vez y todos empiezan tomando el tenedor de su derecha se bloquea el sistema (deadlock).
  • Resolución de conflictos en colas de tenedores
Cada vez que un filósofo tiene un tenedor espera un tiempo aleatorio para conseguir el segundo tenedor. Si en ese tiempo no queda libre el segundo tenedor, suelta el que tiene y vuelve a ponerse en cola para sus dos tenedores.
Si un filósofo A suelta un tenedor (porque ha comido o porque ha esperado demasiado tiempo con el tenedor en la mano) pero todavía desea comer, vuelve a ponerse en cola para ese tenedor. Si el filósofo adyacente B está ya en esa cola de tenedor (tiene hambre) lo toma y si no vuelve a cogerlo A.
Es importante que el tiempo de espera sea aleatorio o se mantendrá el bloqueo del sistema.
  • El portero del comedor
Se indica a los filósofos que abandonen la mesa cuando no tengan hambre y que no regresen a ella hasta que vuelvan a estar hambrientos (cada filósofo siempre se sienta en la misma silla). La misión del portero es controlar el número de filósofos en la sala, limitando su número a n-1, pues si hay n-1 comensales seguro que al menos uno puede comer con los dos tenedores.

Fuente: wikipedia

INANICIÒN

Es un mecanismo empleado en el diseño de los S.O. para evitar lso problemas de competencia por recursos. se basa en definir una zona o región critica la cual esta marcada por las instrucciones  hacen uso de trecuros o recursos por los que se presenta  la competencia (recurso critico) existen diferentes metodos de aplicaion de la exclusión mutua tanto por hardware como software 

Interbloqueo: este problema se presenta cuando dos o mas procesos se bnloquean mutuamente a la erspera de un recurso critico  y esta situacion se mantiene de manera permanente

Inanición:se presenta cuando un proceso nunca logra acceder a un recurso critico y por tanto, no pueda continuar con su normal ejecución

ROUND-ROBIN

También se denomina asignación cíclica o planificación en rueda. Intenta ser más justo que el FCFS a la respuesta tanto de procesos cortos como largos. Consiste en conceder a cada proceso un periodo de tiempo q (quantum) transcurrido el cual si el proceso no ha terminado vuelve a la cola de preparados y entrando a ejecución el siguiente proceso. Este proceso se realiza repetidamente hasta que se terminen los procesos. A la hora de gestionar la cola de preparados podemos aplicar una política FIFO o una de prioridades. Variando el quantum se obtienen diferentes comportamientos; a mayor q más tiempo necesita el proceso más largo, si q es muy pequeño podemos sobrecargar el sistema al incrementar mucho el numero de cambios de contexto.


















Fuente:mimosa

FCFS

El procesador irá ejecutando cada proceso por orden de llegada hasta que lo finaliza. Sencillo y simple pero de poco rendimiento. Se caracteriza por: · No es apropiativo. · Los procesos largos hacen esperar a los cortos. · Es predecible, es decir, podemos saber a priori como se llevará a cabo la planificación. · Tiempo medio de servicio es muy variable y depende del numero de procesos y su duración.



























Fuente:mimosa

PROCESOS

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:
  • Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
  • Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
  • Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
  • Otra información que permite al sistema operativo su planificación.
Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.
Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos son independientes y no comparten memoria (es decir, información) con el proceso que los ha creado.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.










Fuente:monografias

sábado, 14 de marzo de 2015

PAGINACIÓN POR DEMANDA

Paginación por demanda: – Los procesos están divididos en páginas. – Inicialmente: una serie de páginas del proceso cargadas en memoria principal (MP), las que se usan. – El resto en almacenamiento secundario. – Necesario un bit de presencia en tabla de paginas: Bit válido-inválido • 1, página cargada en MP (v). • 0, página no cargada (i).


• Hardware de apoyo a la paginación por demanda: • Capacidad de marcar en la tabla de páginas una entrada como válida o invalida (bit valido-invalido). • Unidad de almacenamiento secundario: – La sección de disco empleado para este fin se denomina: espacio de intercambio o almacenamiento auxiliar. • Paginación por demanda pura: • Caso extremo: comenzamos la ejecución de un proceso sin ninguna página cargada en memoria. • Se irán produciendo fallos de páginas sucesivamente y cargando las páginas necesarias


FURNTE: uji

viernes, 13 de marzo de 2015

FRAGMENTACIÓN

La fragmentación es la memoria que queda desperdiciada al usar los métodos de gestión de memoria que se vieron en los métodos anteriores. Tanto el primer ajuste, como el mejor y el peor producen fragmentación externa. La fragmentación es generada cuando durante el reemplazo de procesos quedan huecos entre dos o más procesos de manera no contigua y cada hueco no es capaz de soportar ningún proceso de la lista de espera. La fragmentación puede ser:
Fragmentación Externa: Existe el espacio total de memoria para satisfacer un requerimiento, pero no es contigua.
Fragmentación Interna: La memoria asignada puede ser ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza.
La fragmentación externa se puede reducir mediante la compactación para colocar toda la memoria libre en un solo gran bloque, pero esta sólo es posible si la relocalización es dinámica y se hace en tiempo de ejecución.
Condensación
Unir o fusionar espacios o “huecos” adyacentes para formar uno más grande.
Por ejemplo, si hay una solicitud de usuario de  5k y en la memoria hay disponibles 2 “huecos” contíguos pero uno es de 2k y el otro es 3k, entonces, para poder atender ésa solicitud de usuario, se “unen” los 2 “huecos” que formarían un sólo “hueco” de 5k, por tanto ahora si cabría la solicitud en el “hueco” que hay disponible.

  
Compactación;
Una solución para el problema de la fragmentación externa es la compactación. El objetivo consiste en desplazar el contenido de la memoria para colocar junta toda la memoria libre en un solo bloque de gran tamaño.
                     Técnica que consiste en trasladar todas las áreas ocupadas del almacenamiento hacia algún extremo de la memoria.
                      Es una solución de la fragmentación externa.
        El objetivo consiste en desplazar el contenido de la   memoria libre en un sólo bloque de gran tamaño.
                      La compactación no siempre es posible, sólo es posible si la   relocalización es dinámica y se efectúa en el momento de la ejecución.
                      Este esquema puede ser bastante costoso.



Estrategias de colocación
Permiten determinar en qué lugar de la memoria  principal se deben colocar  los programas y datos entrantes.
   
Tipos:
          Mejor Ajuste: Colocar el trabajo en el menor bloque en el que quepa.


         ¨ Primer Ajuste. Colocar el trabajo en el primer hueco de la lista de almacenamiento libre en el que quepa.

  
Peor Ajuste: Colocar el trabajo en el menor bloque en el que quepa.


  
- Administracion de memoria virtual
   espacio de direcciones lógicas vs fisicas
   paginación
   segmentación
   paginacion por demanda
   fallo de pagina
   segmentacion paginada
   paginacion segmentada.
FUENTE:blogspot

PAGINACIÓN

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.
Veamos un ejemplo:
Número de marcoPrograma.#páginaDirección física
0Programa A.01000:0000
1Programa A.11000:1000
2Programa A.21000:2000
3Programa D.01000:3000
4Programa D.11000:4000
5Programa C.01000:5000
6Programa C.11000:6000
7Programa D.21000:7000
La tabla de la derecha muestra una posible configuración de la memoria en un momento dado, con páginas de 4Kb. La forma en que se llegó a este estado puede haber sido la siguiente:
Se tienen cuatro procesos, llamados A, B, C y D, que ocupan respectivamente 3, 2, 2 y 3 páginas.
  1. El programa A se carga en memoria (se le asignan los marcos 0, 1 y 2)
  2. El programa B se carga en memoria (se le asignan los marcos 3 y 4)
  3. El programa C se carga en memoria (se le asignan los marcos 5 y 6)
  4. El programa B termina, liberando sus páginas
  5. El programa D se carga en memoria (se le asignan los marcos 3 y 4 que usaba el proceso B y el marco 7 que permanecía libre)
De esta forma, las tablas simplificadas de cada proceso se ven de esta forma:
Proceso A
PáginaDirección física
01000:0000
11000:1000
21000:2000
Proceso B
PáginaDirección física
--
--
Proceso C
PáginaDirección física
01000:5000
11000:6000
Proceso D
PáginaDirección física
01000:3000
11000:4000
21000:7000

Ahora consideremos qué sucede cuando un programa quiere acceder a su memoria. Si el programa A contiene una referencia a la memoria con dirección 20FE, se realizará el siguiente procedimiento. 20FE es 0010000011111110 en notación binaria (en un sistema de 16 bit), y en el ejemplo se están usando páginas de 4Kb de tamaño. Cuando la petición de la dirección de memoria 20FE es realizada, la Unidad de Gestión de memoria se ve de esta forma:
0010000011111110 = 20FE
|__||__________|
 |       |
 |       v
 |      Posición de memoria dentro de la página (0FE)
 v
Número de página (0010 = 2)

Tabla de paginación
Entrada a la tabla de páginas
n = @ página físicaVPLEM
* n = bits de la @ lógica -log2(número de palabras de una página).
* V: bit de validez.
* P: bit de persistencia.
* L: bit de derecho a lectura.
* E: bit de derecho a escritura.
* M: bit de modificación.
Al usar páginas de 4096 bytes, todas las ubicaciones dentro de una página pueden ser representadas por 12 bits, en el sistema binario (212=4096), lo que deja 4 bits para representar el número de página. Si las páginas hubieran sido de la mitad del tamaño (2048) se podrían tener 5 bits para el número de página, lo que significa que a menor tamaño de página se pueden tener tablas con más páginas.
Cuando el pedido de acceso a memoria es realizado, la MMU busca en la tabla de páginas del proceso que realizó el pedido por la relación en memoria física. En nuestro ejemplo, la página número 2 del proceso A corresponde al marco número 2 en memoria física, con dirección real 1000:2000, por lo tanto, la MMU devolverá la dirección del marco en memoria física, con el desplazamiento dentro de esa página: 1000:20FE.
(solución a fragmentación externa) – Permite que la memoria de un proceso no sea contigua. – Hay una distinción entre direcciones lógicas y físicas. – La memoria física la dividimos en bloques de tamaño fijo: marcos. – La memoria lógica: 
• La dividimos en bloques llamados: páginas. 
• De igual tamaño que el marco. – Las páginas de un proceso se cargan en los marcos de la memoria principal que estén disponibles:
• Tenemos “trozos” del proceso allí donde la memoria está disponible.
Hardware de paginación: para traducción de direcciones 

– La dirección lógica generada consta de dos partes: 
• Número de Pagina (P). 
• Desplazamiento dentro de la página (D). – La tabla de páginas: (contiene la dirección base en memoria física) 
• Permite establecer una correspondencia entre el número de página y un número de marco de memoria física. – La dirección física es el número de marco y el desplazamiento.

FUENTE: uji, wikipedia

SISTEMA OPERATIVO LINUX

GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unixdenominado Linux con el sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia PúblicaGeneral de GNU, en inglés: General Public License) y otra serie de licencias libres.
A pesar de que Linux es, en sentido estricto, el sistema operativo, parte fundamental de la interacción entre el hardware y el usuario se maneja usualmente con las herramientas (tanto otros programas de sistema como programas de aplicación) del proyecto GNU y con entornos de escritorio basados en GNOME, que también forma parte del proyecto GNU aunque tuvo un origen independiente. Como el Proyecto GNU destaca, GNU es una distribución, usándose el término sistema operativo en el sentido empleado en el ecosistema Unix, lo que en cualquier caso significa que Linux es solo una pieza más dentro de GNU/Linux. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos. Para más información consulte la sección"Denominación GNU/Linux" o el artículo "Controversia por la denominación GNU/Linux".
A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores ysupercomputadoras. donde tiene la cuota más importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo, otro informe le da una cuota de mercado de 89% en los 500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadoras de escritorio, portátiles, computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.

El logotipo oficial del Proyecto GNU es un ñú y del núcleo Linux el pingüino Tux

FUENTE: wikipedia

PARTICIONES DINAMICAS

Este método consiste en particiones de memoria de tamaños variable, o sea, a cada proceso se le asigna la cantidad de memoria que necesita (la cantidad exacta y ni un poco más). Tras el ingreso de nuevos procesos y la expulsión de otras, se generarán huecos de memoria inutilizados. Conforme pasa el tiempo, la memoria comienza a estar más fragmentada y su rendimiento decae; este fenómeno se denomina fragmentación externa.
       Una técnica para superar la fragmentación externa es la compactación. De vez en cuando, el sistema operativo desplaza los procesos para que estén contiguos de forma que toda la memoria libre quede junta en un bloque.Las dificultades que presenta la compactación son:

·         Es un procedimiento que consume tiempo de trabajo del procesador

·         Debe realizarse los movimientos de una región a otra, sin invalidar las referencias a memoria del programa
      
A pesar de la compactación, deben utilizarse algunos algoritmos para la ubicación de procesos en las particiones. Estos algoritmos son:
·         Mejor ajuste (Best-fit): se elige el bloque con el tamaño más parecido al del proceso entrante.
·         Primer ajuste (First-fit): comienza recorriendo la memoria desde el comienzo y escoge el primer bloque disponible en el que entre el proceso entrante.
·         Siguiente ajuste (Next-fit): recorre la memoria desde el lugar de la última ubicación y elige el siguiente bloque disponible que sea suficientemente grande.
·         Peor ajuste (Worst-fit): elige el bloque más grande posible.
            En un sistema multiprogramado con particiones dinámicas, habrá algún momento en el que todos los procesos de memoria principal estén en estado bloqueado y la memoria sea insuficiente, aún aplicando la compactación, para un proceso adicional. En este caso, el sistema operativo debe elegir qué proceso reemplazar. Este tema se ve en los temas que tienen que ver con memoria virtual, por lo que lo veremos más adelante.




FUENTE:angelfire

PARTICIONES FIJAS

Consiste en dividir la memoria libre en varias partes de igual tamaño o de diferentes tamaños. En el caso de la partición fija de partes iguales, se plantean dos dificultades:

Un programa puede ser demasiado grande para caber en la partición. En este caso, el programador debe diseñar el programa mediante superposiciones, para que sólo una parte del programa esté en memoria principal. Cuando se necesita un módulo que no está presente, el programa de usuario debe cargar dicho módulo en la partición del programa, superponiéndose a los programas y datos que se encuentren en ella.

El uso de memoria principal es extremadamente ineficiente. Cualquier programa, sin importar lo pequeño que sea, ocupará una partición completa. Supongamos un programa que ocupa 120 Kb y se carga en una partición de 512 Kb, se malgasta el espacio interno de la partición y ésto se denomina fragmentación interna.

       En el caso de particiones de igual tamaño, si todas las particiones estuvieran ocupadas con procesos que no están listos para ejecutar y necesita cargarse un nuevo proceso, debe determinarse qué partición expulsarse de memoria. Esta decisión es una decisión de planificación, que se verá en un capítulo próximo.
       Pero en el caso de particiones de distintos tamaños, debe determinarse en que partición (por cuestiones de tamaño) se cargará el nuevo proceso. La forma más simple es asignar cada proceso a la partición más pequeña en que quepa (sin importar si la partición está cargada o no), lo que necesitará de una cola de expulsados para cada partición. Otra forma es asignar el proceso a la partición más pequeña entre aquellas que están libres (usando una única cola para todos los procesos); y si todas las particiones están ocupadas, se debe tomar una decisión de intercambio.
       Estamos suponiendo con este método que conocemos la cantidad máxima de memoria que necesitará un proceso, lo que no siempre es cierto.










FUENTE: angelfire

jueves, 12 de marzo de 2015

MEMORIA CACHE

En informática, la caché es la memoria de acceso rápido de una computadora, que guarda temporalmente las últimas informaciones procesadas.
La memoria caché es un búfer especial de memoria que poseen las computadoras, que funciona de manera similar a la memoria principal, pero es de menor tamaño y de acceso más rápido. Es usada por el microprocesador para reducir el tiempo de acceso a datos ubicados en la memoria principal que se utilizan con más frecuencia.
La caché es una memoria que se sitúa entre la unidad central de procesamiento (CPU) y la memoria de acceso aleatorio (RAM) para acelerar el intercambio de datos.
Cuando se accede por primera vez a un dato, se hace una copia en la caché; los accesos siguientes se realizan a dicha copia, haciendo que sea menor el tiempo de acceso medio al dato. Cuando el microprocesador 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 microprocesador 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.







Fuente: wikipedia

viernes, 13 de febrero de 2015

MEMORIA RAM

Memoria de acceso aleatorio (Random-Access Memory, RAM) se utiliza como memoria de trabajo de computadoras para el sistema operativo, los programas y la mayor parte del software.
En la RAM se cargan todas las instrucciones que ejecutan la unidad central de procesamientos (procesador) y otras unidades de cómputo.
Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder (acceso secuencial) a la información de la manera más rápida posible.
Durante el encendido de la computadora, la rutina POST verifica que los módulos de RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de sonidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma.




Fuente: wikipedia