Sistemas Operativos
Por: 28-04-2010 por sgespinoza2 | Categorías asociadas: Uncategorized


Por: 28-04-2010 por avcollaguazo | Categorías asociadas: Capitulo 3, ECC_Abril_Agosto_2010

Asignación de memoria

La asignación de memoria consiste en el proceso de asignar memoria para propósitos específicos, ya sea en tiempo de compilación o de ejecución. Si es en tiempo de compilación es estática, si es en tiempo de ejecución es dinámica y si son variables locales a un grupo de sentencias se denomina automática.

Asignación estática de memoria

La Asignación estática de memoria consiste en el proceso de asignar memoria en tiempo de compilación antes de que el programa asociado sea ejecutado, a diferencia de la asignación dinámica o la automática donde la memoria se asigna a medida que se necesita en tiempo de ejecución.

Una aplicación de esta técnica conlleva que un módulo de programa (por ejemplo función o subrutina) declara datos estáticos de forma local, de forma que estos datos son inaccesibles desde otros módulos a menos que se les pasen referenciados como parámetros o que les sean devueltos por la función. Se mantiene una copia simple de los datos estáticos, accesible a través de llamadas a la función en la cual han sido declarados.

El uso de variables estáticas dentro de una clase en la programación orientada a objetos permite que una copia individual de tales datos se comparta entre todos los objetos de esa clase.

Las constantes conocidas en tiempo de compilación, como literales de tipo cadena, se asignan normalmente de forma estática. En programación orientada a objetos, el método usual para las tablas de clases también es la asignación estática de memoria.

Asignación automática de memoria

Las variables automáticas son variables locales a un bloque de sentencias (subrutina, función o procedimiento). Pueden ser asignadas automáticamente en la pila de datos cuando se entra en el bloque de código. Cuando se sale del bloque, las variables son automáticamente desasignadas. Las variables automáticas tendrán un valor sin definir cuando son declaradas, por tanto es buena práctica de programación inicializarlas con un valor válido antes de usarlas.

Tomado: http://es.wikipedia.org/wiki/Asignaci%C3%B3n_de_memoria




Por: 28-04-2010 por jbsamaniego | Categorías asociadas: Deberes, Planificacion de la CPU


Por: 28-04-2010 por jbsamaniego | Categorías asociadas: Uncategorized


Por: 28-04-2010 por jbsamaniego | Categorías asociadas: Capitulo 1-2


Por: 28-04-2010 por Carlos Rojas | Categorías asociadas: ECC_Abril_Agosto_2010


Por: 27-04-2010 por jossie | Categorías asociadas: ECC_Abril_Agosto_2010, Gestion de Memoria, Paralelo "A"

La memoria principal es un depósito de datos a los que se puede acceder rápidamente y que son compartidos por la CPU y los dispositivos de E/S.

Para ejecutar un programa es preciso cargarlo en la memoria; mientras se ejecuta, el programa accede a las instrucciones y datos que están en la memoria; en algún momento el programa termina y su espacio de memoria se declara disponible, y el siguiente programa puede cargarse y ejecutarse.
Es importante para mejorar el grado de utilización de la CPU que varios programas estén cargados en memoria.
El S.O en lo referente a la gestión de memoria se encarga de:

  • Saber cuáles partes de la memoria se están usando actualmente y quién las está usando.
  • Decidir cuáles procesos se cargarán en la memoria cuando se disponga de espacio.
  • Asignar y liberar espacio de memoria según se necesite.

La Memoria Principal es un recurso muy importante que se ha de gestionar, porque se ha de disponer de velocidad.

Hay dos tipos de tiempos cuando hablamos de memoria:

Tiempo de acceso. Tiempo de finalización de una petición menos el tiempo de inicio de la petición.
Tiempo de ciclo de la memoria. Desde que finaliza una petición hasta que se inicia la siguiente petición. Este se ve detenidamente por el Hardware.


Bibliografía:

http://html.rincondelvago.com/gestion-de-memoria-principal.html (Gestión de memoria principal)

http://es.wikipedia.org/wiki/Gesti%C3%B3n_de_archivos (Gestión de Archivos)




Por: 26-04-2010 por acmendoza | Categorías asociadas: Paralelo "A"

Un interbloqueo se produce cuando dos o más tareas se bloquean entre sí permanentemente teniendo cada tarea un bloqueo en un recurso que las otras tareas intentan bloquear.

image0011


  • La transacción A tiene un bloqueo compartido de la fila 1.
  • La transacción B tiene un bloqueo compartido de la fila 2.
  • La transacción A ahora solicita un bloqueo exclusivo de la fila 2 y se bloquea hasta que la transacción B finalice y libere el bloqueo compartido que tiene de la fila 2.
  • La transacción B ahora solicita un bloqueo exclusivo de la fila 1 y se bloquea hasta que la transacción A finalice y libere el bloqueo compartido que tiene de la fila 1.

La transacción A no puede completarse hasta que se complete la transacción B, pero la transacción B está bloqueada por la transacción A. Esta condición también se llama dependencia cíclica: la transacción A tiene una dependencia de la transacción B y la transacción B cierra el círculo teniendo una dependencia de la transacción A.

Ambas transacciones con un interbloqueo esperarán para siempre, a no ser que un proceso externo rompa el interbloqueo.

Si el monitor detecta una dependencia cíclica, selecciona una de las tareas como el sujeto y finaliza su transacción con un error. Esto permite a la otra tarea completar su transacción.




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

image001

La memoria es uno de los principales recursos de un ordenador, y debe de administrarse con mucho cuidado.

La parte del sistema operativo que administra la memoria se llama administrador de memoria y su labor consiste en llevar un registro de las partes de memoria que se estén utilizando y aquellas que no, con el fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen, así como administrar el intercambio entre la memoria principal y el disco en los casos en los que la memoria principal no le pueda dar capacidad a todos los procesos que tienen necesidad de ella.

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 y los que no.

El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la información que accesan deben de estar en la memoria principal (al menos parcialmente) durante la ejecución.

Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de tener varios procesos a la vez en la memoria principal, para lo cual dispone de varias opciones de administración tanto del procesador como de la memoria. La selección de uno de ellos depende principalmente del diseño del hardware para el sistema.