Sistemas Operativos
Por: 03-06-2010 por sgaguilera | Categorías asociadas: Asignacion de Memoria Estatica, ECC_Abril_Agosto_2010, Gestion de Memoria, Paralelo "A"

(Either JavaScript is not active or you are using an old version of Adobe Flash Player. Please install the newest Flash Player.)






Por: 25-05-2010 por erpauta | Categorías asociadas: Paralelo "A"


Por: 19-05-2010 por acmendoza | Categorías asociadas: Paralelo "A"


Por: 19-05-2010 por sgaguilera | Categorías asociadas: ECC_Abril_Agosto_2010, Paralelo "A", Proteccion y Seguridad


Por: 12-05-2010 por acmendoza | Categorías asociadas: Capitulo 3, Paralelo "A"

PAGINACION

Es una forma de disminuir la fragmentación externa.

Es usada por casi todas las arquitecturas de hardware y por los SO.

Las direcciones lógicas no se disponen continuamente en la memoria física.

Consiste en dividir la memoria física en secciones de memoria, llamadas marcos, y dividir la memoria lógica en secciones del mismo tamaño, llamadas páginas.

El tamaño es fijo, y determinado por el hardware (4kb, 2Mb y 4Mb en i386)

Implementación de Segmentación

  • El hardware tiene que soportar protección de memoria por registros base/limite.
  • Las direcciones lógicas determinan el segmento y el offset dentro del segmento y al igual que en paginación, se divide la dirección en dos: una parte define el segmento y otra el offset.
  • El SO mantiene una tabla de segmentos: La tabla es propia de cada programa. Se guardan las direcciones base y límite del segmento y otra información como ‘tipo de acceso’.
  • En paginación, los compiladores no tienen que saber si el sistema esta usando paginación o no, ya que siempre crean un continuo de direcciones lógicas. En segmentación, en cambio, los compiladores deben saber si tienen que generar direcciones utilizando segmentos diferentes, tienen que saber por ejemplo que parte de la dirección lógica define el segmento.
  • Al igual que en paginación, también se puede guardar la tabla de segmentos en registos o en memoria. Si es en memoria, existe un registro especial que indica dónde comienza la tabla de segmentos

En segmentación, la división lógica de la memoria permite definir segmentos RO de texto y compartirlos entre diferentes programas. En paginación pura es mas complicado, ya que una misma página podría tener parte de texto y parte de data

gu1






Por: 05-05-2010 por acmendoza | Categorías asociadas: ECC_Abril_Agosto_2010, Paralelo "A"

La comunicación entre procesos: necesaria si se desea que varios procesos puedan colaborar para realizar una misma tarea. Sincronización es igual al funcionamiento coordinado en la resolución de una tarea encomendada.

El SO ofrece mecanismos básicos de comunicación, que permiten transferir cadenas de bytes. Deben ser los procesos que se comunican quienes interpreten el significado de las cadenas transferidas para su labor coordinada.

Los mecanismos de comunicación y sincronización son dinámicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningún mecanismo de comunicación, ya que ellos podrían producir efectos indeseados. Es decir, la comunicación es algo puntual.


By rob


Por: 04-05-2010 por spvelez | Categorías asociadas: Gestion de Memoria

La memoria dinámica es un espacio de almacenamiento que se puede solicitar en tiempo de ejecución. Además de solicitar espacios de almacenamiento, también podemos liberarlos (en tiempo de ejecución) cuando dejemos de necesitarlos.

El número de particiones y su tamaño es variable, las cuales son creadas dinámicamente para que se acomoden a las necesidades de cada proceso solicitante.

Cuando un proceso termine o sea retirado de memoria el gestor de memoria puede devolver el espacio vacante al fondo de áreas de memoria libres a partir del cual se efectúan las asignaciones de particiones.

El gestor de memoria puede continuar creando y asignando particiones a procesos solicitantes hasta que agote toda la memoria física o alcance el máximo grado de multiprogramación permitido.

A continuación se citan el proceso de creación de las particiones:

* El sistema es inicializado declarando como libre toda la memoria disponible para asignación dinámica y marcando como no USADA todas las entradas de la TDP.

*La lista de espacio libre contiene una sola entrada: toda la memoria disponible formando un solo bloque contiguo. Desde ese momento, la creación de una partición P de tamaño P_TAMAÑO se efectúa así:

Buscar en la lista de memoria libre un área libre L, tal que L_TAMAÑO ≥ P_TAMAÑO, en caso de no encontrar ninguna se termina con un error.

Calcular DIFE=L_TAMAÑO – P_TAMAÑO. Si DIFE ≤ c; donde c es una constante (pequeña), asignar entonces el área libre entera para crear la partición P haciendo P_TAMAÑO= L_TAMAÑO y P_BASE=L_BASE, ajustando los enlaces de los bloques adyacentes en la lista de memoria libre.

Si DIFE > c; entonces asignar espacio a la partición P en el bloque L, haciendo P_BASE= L_BASE, en donde L_BASE= P_BASE + P_TAMAÑO, y L_TAMAÑO= L_TAMAÑO – P_TAMAÑO.

Encontrar una entrada no utilizada en la TDP y anotar en ella la base (P_BASE) y el tamaño (P_TAMAÑO). Cambiar el estado a asignada.

Anotar el número de entrada en la TDP en el bloque de control del proceso, T, para el cual se está creando la partición P.

Los Algoritmos más habituales para la selección de un área libre de memoria en la creación de una partición son:

* Primer Ajuste y su variante, siguiente ajuste.

* Mejor Ajuste.

* Peor Ajuste.

 




Por: 28-04-2010 por kssalazar | Categorías asociadas: Mecanismos de sincronización, Paralelo "A"