Arquitectura y sistemas operativos

Páginas: 11 (2726 palabras) Publicado: 1 de julio de 2010
1 Conceptos básicos
1.1 Espacio de direccionamiento de un proceso
A lodo proceso se le asocia un espacio de direccionamiento que representa las zonas de
memorias asignadas al proceso. Este espacio de direccionamiento incluye:

➢ El código del proceso.

➢ Los datos del proceso, que se descompone en dos segmentos, por una parte data, que
Contiene las variables inicializadas ypor otra parte los bss que contiene las variables no inicializadas.

➢ El código y los datos de las bibliotecas compartidas utilizadas por el proceso;

➢ La pila utilizada por el proceso.

En la arquitectura x86, Linux asigna tres gigabytes a este espacio de direccionamiento, El gigabyte restante se reserva para la memoria utilizada por el núcleo (el propio código de Linux así comolos datos que manipula).
Los tres gigabytes disponibles se descomponen en regiones de memoria utilizables por el proceso

Espacio de direccionamiento de un proceso.

1. Asignación de memoria.

Cuando un proceso empieza su ejecución, sus segmentos poseen un tamaño fijo. Sin embargo, existen funciones de asignación y liberación de memoria, que permiten a un proceso manipular variablescuyo número o tamaño no es conocido en el momento de la compilación.

Las asignaciones y liberaciones se efectúan modificando el tamaño del segmento de datos del proceso. Cuando debe asignarse un dato, el segmento de datos se aumenta en el número de bytes necesario y el dato puede almacenarse en el espacio de memoria así asignado.

Cuando un dato situado al final del segmento de datos deja deusarse, su liberación consiste simplemente en reducir el tamaño del segmento.

1. Llamadas al sistema base.

1. Cambio del tamaño de segmento de datos.

Un proceso puede modificar el tamaño de su segmento de datos. Para ello Linux proporciona la llamada al sistema brk:

El parámetro end_data_segment especifica la dirección de fin del segmento de datos. Debe ser superior a ladirección de fin del segmento de código e inferior en 16 kilobytes a la dirección de fin del segmento de pila. En caso de éxito, brk devuelve el valor 0. En caso de fallo, se devuelve el valor -1 y la variable errno toma el valor ENOMEM.

Una función de biblioteca permite también al proceso actual modificar el tamaño de su segmento de datos:

#include
#include
Void *sbrk (ptrdiff_t icrement)El parámetro increment especifica el número de bytes a añadir al segmento de datos, o a sustraer si increment es negativo. La función sbrk devuelve la nueva dirección de fin de segmento de datos, o el valor -1 en caso de fallo. En este último caso, la variable errno toma el valor ENOMEM.

2.2 Funciones de asignación y liberación de memoria

Aunque es posible gestionar dinámicamente la memoriapor medio de las funciones brk y sbrk, es relativamente pesado proceder de este modo. Aunque la asignación de memoria se facilita, porque basta con aumentar el tamaño del segmento de datos, la liberación es más ardua, porque es necesario tener en cuenta las zonas de memoria utilizadas para disminuir el tamaño del segmento de datos cuando es necesario. Por esta razón, se utilizan generalmentefunciones de asignación y liberación proporcionadas por la biblioteca estándar.
Estas funciones utilizan de manera interna brk y sbrk para asignar y liberar zonas de memoria, y gestionan la estructuración de los bloques de memoria.

La función malloc permite asignar una nueva zona de memoria. El parámetro size especifica el tamaño en bytes del bloque a asignar, malloc devuelve la dirección de lazona asignada, o bien el valor NULL en caso de fallo. El contenido del bloque asignado es indeterminado.
La función calioc permite asignar también una zona de memoria, pero está prevista para asignar una matriz. El parámetro nmemb especifica el número de elementos de la matriz, y size indica el tamaño de cada uno de los elementos de la matriz, expresado en bytes. El tamaño del bloque a asignar...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Arquitectura De Los Sistemas Operativos
  • Semaforos Arquitectura y Sistemas Operativos
  • Arquitectura de sistemas operativos
  • Arquitectura de Sistemas Operativos
  • Arquitectura de un Sistema Operativo de Prop sito General
  • el computador,sus partes,composicion,arquitectura y sistema operativo
  • arquitectura en sistemas operativos
  • Sistema Operativo Y Arquitectura Del Computador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS