SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Sabemos que el ordenador cuenta con la memoria central o
principal, pero esta es limitada y, en grandes sistemas, insuficiente.
Al principio, para ubicar los procesos en memoria y solucionar este
problema, se adoptaron técnicas tales como dividir el programa en
partes denominadas capas. Cada una de las capas se iba
ejecutando (cargando en memoria) según fuera necesario; es
decir, primero se pasaría parte del programa del disco duro (o
soporte de almacenamiento) a la memoria, y cuando fuera
necesario utilizar otra parte del programa que no estuviese en
memoria central o principal (RAM), se accedería de nuevo al disco
para cargar la siguiente capa en memoria central.
Esta labor de dividir el programa en capas la puede realizar el
mismo programador mediante la división del programa en módulos
que se irán ejecutando según sea necesario, si bien esto supone un
elevado esfuerzo para él.
Fotheringam diseñó un método conocido como de memoria virtual.
Este diseñador pensó en la posibilidad de que al ubicar un
programa en memoria, este fuera demasiado grande para el
tamaño físico de aquella y creó una técnica para hacer que en
memoria permaneciera solo la parte del programa que se estuviera
ejecutando y que el resto quedara en el disco.
La Segmentación de memoria es un
esquema de manejo de memoria
mediante el cual la estructura del
programa refleja su división lógica
llevándose a cabo una agrupación
lógica de la información en bloques
de tamaño variable denominados
segmentos.
Cada uno de ellos tienen información
lógica del programa: subrutina, arreglo,
etc.
Luego, cada espacio de direcciones de programa consiste de
una colección de segmentos, que generalmente reflejan la
división lógica del programa.
Obviamente este sistema de gestión de memoria es utilizado en
Sistemas operativos avanzados, pero ya existían muestras de su
actividad desde los S.O.’s Unix y D.O.S.
La paginación difiere de la segmentación en que las páginas son
de tamaño fijo y los segmentos no.
El uso de la técnica de paginación o segmentación dependerá
del sistema operativo utilizado y de la máquina en la que lo
usemos, además de las necesidades del software.
Cada segmento tiene un nombre o número y una longitud. El
usuario por esto especifica cada dirección por dos cantidades: un
nombre de segmento y un desplazamiento.
Dado que ahora una dirección dentro de un programa del
usuario (dirección lógica), debe especificarse como una dirección
de 2 dimensiones, y dado que la memoria física es aún un arreglo
de una sola dimensión, es necesario implementar un dispositivo
que mapee o convierta una dirección de dos dimensiones en otra
de una sola dimensión. Esto se hace por medio de la tabla de
segmentos.
Supongamos que realizamos un programa y, para que se
ejecute, necesita utilizar tablas (estructuras de datos) en
memoria. Si tenemos en cuenta que una tabla puede
asignarse de forma estática o dinámica según las necesidades
del programa, habrá veces en que esta tabla necesitará un
espacio determinado en memoria, mientras que otras, este
espacio será mayor o menor según la necesidad. Gracias a la
segmentación podemos ubicar en memoria estas estructuras
de datos, independientemente del tamaño que tengan.
El ordenador, a través del sistema operativo, puede organizar
la memoria en bloques concretos y tener partes de            ella
destinadas a almacenar las estructuras de datos,que pueden
crecer o menguar según las necesidades del usuario o del
programa. Para ello se utilizarán las pilas de memoria o stacks,
en las que se gestionan las estructuras de datos necesarias.
Cada rutina del programa puede ser un bloque sujeto a cambios y
recopilaciones, sin afectar por ello al resto del programa.

Donde cada estructura tiene su propio tamaño y este puede
variar.(Stack)

Se puede proteger los módulos del segmento contra accesos no
autorizados.

Dos o más procesos pueden ser un mismo segmento, bajo reglas de
protección; aunque no sean propietarios de los mismos.

Puede evitarse realizar todo el proceso de enlace antes de comenzar a
ejecutar un programa. Los enlaces se establecerán solo cuando sea
necesario.
• El programador puede conocer las unidades lógicas de su
   programa, dándoles un tratamiento particular.
• Es posible compilar módulos separados como segmentos el
   enlace entre los segmentos puede suponer hasta tanto se haga
   una referencia entre segmentos.
• Debido a que es posible separar los módulos se hace más fácil
   la modificación de los mismos. Cambios dentro de un modulo
   no afecta al resto de los módulos.
• Es fácil el compartir segmentos.
• Es posible que los segmentos crezcan dinámicamente según las
   necesidades del programa en ejecución.
• Existe la posibilidad de definir segmentos que aun no existan.
   Así, no se asignara memoria, sino a partir del momento que sea
   necesario hacer usos del segmento. Un ejemplo de esto, serian
   los Arrays
cuya dimensión no se conoce hasta tanto no se comienza a
ejecutar el programa. En algunos casos, incluso podría retardar la
asignación de memoria hasta el momento en el cual se referencia
el Array u otra estructura de dato por primera vez
• Hay un incremento en los costos de hardware y de software
  para llevar a cabo la implantación, así como un mayor
  consumo de recursos: memoria, tiempo de CPU, etc.
• Debido a que los segmentos tienen un tamaño variable se
  pueden presentar problemas de fragmentación externas, lo
  que puede ameritar un plan de reubicación de segmentos
  en memoria principal.
• Se complica el manejo de memoria virtual, ya que los discos
  almacenan la información en bloques de tamaños fijos,
  mientras los segmentos son de tamaño variable. Esto hace
  necesaria la existencia de mecanismos más costosos que los
  existentes para paginación.
• Al permitir que los segmentos varíen de tamaño, puede
  ser necesarios planes de reubicación a nivel de los discos, si los
  segmentos son devueltos a dicho dispositivo; lo que conlleva a
  nuevos costos.
• No se puede garantizar, que al salir un segmento de la
  memoria, este pueda ser traído fácilmente de nuevo, ya que
  será necesario encontrar nuevamente un área de memoria
  libre ajustada a su tamaño.

Más contenido relacionado

La actualidad más candente

Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores JUANR1022
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMMari Cruz
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discosJazmín Limón
 
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesosSamir Barrios
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoriaMiguel Magaña
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosKarina Rivra
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAErika Rodríguez
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de ComunicaciónJosé Antonio Sandoval Acosta
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salidaDavid Martinez
 

La actualidad más candente (20)

Componentes de sgbd
Componentes de sgbdComponentes de sgbd
Componentes de sgbd
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Arquitectura Multiprocesadores
Arquitectura Multiprocesadores Arquitectura Multiprocesadores
Arquitectura Multiprocesadores
 
Sistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUMSistemas Operativos I- Algoritmo de QUANTUM
Sistemas Operativos I- Algoritmo de QUANTUM
 
Optimizacion de la busqueda de discos
Optimizacion de la busqueda de discosOptimizacion de la busqueda de discos
Optimizacion de la busqueda de discos
 
administracion de entrada, salida y procesos
administracion de entrada, salida y procesosadministracion de entrada, salida y procesos
administracion de entrada, salida y procesos
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Funciones de administracion de memoria
Funciones de administracion de memoriaFunciones de administracion de memoria
Funciones de administracion de memoria
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Administración de memoria
Administración de memoriaAdministración de memoria
Administración de memoria
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 
Acceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMAAcceso Directo a la Memoria - DMA
Acceso Directo a la Memoria - DMA
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Investigacion errores lexicos
Investigacion errores lexicosInvestigacion errores lexicos
Investigacion errores lexicos
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 

Similar a Segmentacion de memoria

Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualandreis18
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtualosjavier
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtualosjavier
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtualosjavier
 
Memoria virtual...
Memoria virtual...Memoria virtual...
Memoria virtual...osjavier
 
Andres infante
Andres infanteAndres infante
Andres infanteandresinf
 
Andres infante
Andres infanteAndres infante
Andres infanteandresinf
 
MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUALandresinf
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualakany
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principaljbersosa
 
Sistemas Operativos - Memoria
Sistemas Operativos - MemoriaSistemas Operativos - Memoria
Sistemas Operativos - Memoriavdelgado3
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptLuis619096
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria VirtualAna Brooks
 
Memoria Virtual
Memoria VirtualMemoria Virtual
Memoria VirtualUCC
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtualZCHARRY
 

Similar a Segmentacion de memoria (20)

Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual 1
Memoria virtual 1Memoria virtual 1
Memoria virtual 1
 
Memoria
MemoriaMemoria
Memoria
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtual
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtual
 
Memoriavirtual
MemoriavirtualMemoriavirtual
Memoriavirtual
 
Memoria virtual...
Memoria virtual...Memoria virtual...
Memoria virtual...
 
Andres infante
Andres infanteAndres infante
Andres infante
 
Andres infante
Andres infanteAndres infante
Andres infante
 
MEMORIA VIRTUAL
MEMORIA VIRTUALMEMORIA VIRTUAL
MEMORIA VIRTUAL
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Administracion de la memoria principal
Administracion de  la memoria principalAdministracion de  la memoria principal
Administracion de la memoria principal
 
Sistemas Operativos - Memoria
Sistemas Operativos - MemoriaSistemas Operativos - Memoria
Sistemas Operativos - Memoria
 
Gestion de particiones de memoria.ppt
Gestion de particiones de memoria.pptGestion de particiones de memoria.ppt
Gestion de particiones de memoria.ppt
 
Segmentación Memoria Virtual
Segmentación Memoria VirtualSegmentación Memoria Virtual
Segmentación Memoria Virtual
 
Memoria Virtual
Memoria VirtualMemoria Virtual
Memoria Virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 

Segmentacion de memoria

  • 1.
  • 2. Sabemos que el ordenador cuenta con la memoria central o principal, pero esta es limitada y, en grandes sistemas, insuficiente. Al principio, para ubicar los procesos en memoria y solucionar este problema, se adoptaron técnicas tales como dividir el programa en partes denominadas capas. Cada una de las capas se iba ejecutando (cargando en memoria) según fuera necesario; es decir, primero se pasaría parte del programa del disco duro (o soporte de almacenamiento) a la memoria, y cuando fuera necesario utilizar otra parte del programa que no estuviese en memoria central o principal (RAM), se accedería de nuevo al disco para cargar la siguiente capa en memoria central. Esta labor de dividir el programa en capas la puede realizar el mismo programador mediante la división del programa en módulos que se irán ejecutando según sea necesario, si bien esto supone un elevado esfuerzo para él. Fotheringam diseñó un método conocido como de memoria virtual. Este diseñador pensó en la posibilidad de que al ubicar un programa en memoria, este fuera demasiado grande para el tamaño físico de aquella y creó una técnica para hacer que en memoria permaneciera solo la parte del programa que se estuviera ejecutando y que el resto quedara en el disco.
  • 3. La Segmentación de memoria es un esquema de manejo de memoria mediante el cual la estructura del programa refleja su división lógica llevándose a cabo una agrupación lógica de la información en bloques de tamaño variable denominados segmentos. Cada uno de ellos tienen información lógica del programa: subrutina, arreglo, etc. Luego, cada espacio de direcciones de programa consiste de una colección de segmentos, que generalmente reflejan la división lógica del programa. Obviamente este sistema de gestión de memoria es utilizado en Sistemas operativos avanzados, pero ya existían muestras de su actividad desde los S.O.’s Unix y D.O.S.
  • 4. La paginación difiere de la segmentación en que las páginas son de tamaño fijo y los segmentos no. El uso de la técnica de paginación o segmentación dependerá del sistema operativo utilizado y de la máquina en la que lo usemos, además de las necesidades del software. Cada segmento tiene un nombre o número y una longitud. El usuario por esto especifica cada dirección por dos cantidades: un nombre de segmento y un desplazamiento. Dado que ahora una dirección dentro de un programa del usuario (dirección lógica), debe especificarse como una dirección de 2 dimensiones, y dado que la memoria física es aún un arreglo de una sola dimensión, es necesario implementar un dispositivo que mapee o convierta una dirección de dos dimensiones en otra de una sola dimensión. Esto se hace por medio de la tabla de segmentos.
  • 5. Supongamos que realizamos un programa y, para que se ejecute, necesita utilizar tablas (estructuras de datos) en memoria. Si tenemos en cuenta que una tabla puede asignarse de forma estática o dinámica según las necesidades del programa, habrá veces en que esta tabla necesitará un espacio determinado en memoria, mientras que otras, este espacio será mayor o menor según la necesidad. Gracias a la segmentación podemos ubicar en memoria estas estructuras de datos, independientemente del tamaño que tengan. El ordenador, a través del sistema operativo, puede organizar la memoria en bloques concretos y tener partes de ella destinadas a almacenar las estructuras de datos,que pueden crecer o menguar según las necesidades del usuario o del programa. Para ello se utilizarán las pilas de memoria o stacks, en las que se gestionan las estructuras de datos necesarias.
  • 6.
  • 7. Cada rutina del programa puede ser un bloque sujeto a cambios y recopilaciones, sin afectar por ello al resto del programa. Donde cada estructura tiene su propio tamaño y este puede variar.(Stack) Se puede proteger los módulos del segmento contra accesos no autorizados. Dos o más procesos pueden ser un mismo segmento, bajo reglas de protección; aunque no sean propietarios de los mismos. Puede evitarse realizar todo el proceso de enlace antes de comenzar a ejecutar un programa. Los enlaces se establecerán solo cuando sea necesario.
  • 8. • El programador puede conocer las unidades lógicas de su programa, dándoles un tratamiento particular. • Es posible compilar módulos separados como segmentos el enlace entre los segmentos puede suponer hasta tanto se haga una referencia entre segmentos. • Debido a que es posible separar los módulos se hace más fácil la modificación de los mismos. Cambios dentro de un modulo no afecta al resto de los módulos. • Es fácil el compartir segmentos. • Es posible que los segmentos crezcan dinámicamente según las necesidades del programa en ejecución. • Existe la posibilidad de definir segmentos que aun no existan. Así, no se asignara memoria, sino a partir del momento que sea necesario hacer usos del segmento. Un ejemplo de esto, serian los Arrays cuya dimensión no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podría retardar la asignación de memoria hasta el momento en el cual se referencia el Array u otra estructura de dato por primera vez
  • 9. • Hay un incremento en los costos de hardware y de software para llevar a cabo la implantación, así como un mayor consumo de recursos: memoria, tiempo de CPU, etc. • Debido a que los segmentos tienen un tamaño variable se pueden presentar problemas de fragmentación externas, lo que puede ameritar un plan de reubicación de segmentos en memoria principal. • Se complica el manejo de memoria virtual, ya que los discos almacenan la información en bloques de tamaños fijos, mientras los segmentos son de tamaño variable. Esto hace necesaria la existencia de mecanismos más costosos que los existentes para paginación. • Al permitir que los segmentos varíen de tamaño, puede ser necesarios planes de reubicación a nivel de los discos, si los segmentos son devueltos a dicho dispositivo; lo que conlleva a nuevos costos. • No se puede garantizar, que al salir un segmento de la memoria, este pueda ser traído fácilmente de nuevo, ya que será necesario encontrar nuevamente un área de memoria libre ajustada a su tamaño.