Memoria Virtual

Páginas: 19 (4643 palabras) Publicado: 19 de julio de 2012
La memoria virtual - La web de JM

Page 1 of 10

  Página principal

  Programación

  C/C++

  Volver

  Los rincones del API Win32
La memoria virtual
Este artículo explica en profundidad cómo usar la memoria virtual y el modo de gestionarla en la plataforma Win32.

     



  

Memoria, y más memoria Modelo de memoria plano Memoria Virtual Memoria paginadaEspacio de direcciones virtuales Operaciones con el espacio de direcciones 1. Reserva del rango de direcciones 2. Compromiso del almacenamiento físico Distribución del espacio de direcciones virtuales  Región 1  Región 2  Región 3 Otras funciones Aplicación práctica Conclusión

Memoria, y más memoria
La memoria es el elemento más utilizado de un ordenador, y desde nuestros programas estamoscontinuamente accediendo a ella, ya sea para leer las instrucciones que debemos ir ejecutando, como para leer/escribir los datos con los que operamos. Aunque desde el punto de vista del hardware, la memoria siempre es igual (chips con megas y más megas, y cada byte numerado con una dirección única), el modo de gestionarla que tiene el sistema operativo y la manera de permitirnos acceder a ella ha idoevolucionando durante los últimos tiempos. Si volvemos al pasado unos cuantos años y hacemos un programa para MS-DOS (que no es lo mismo que un programa de consola para Windows), el sistema operativo nos da acceso a toda memoria, se fía de nosotros (je je, pobre, no sabe el error que está cometiendo). Es decir, desde MS-DOS podemos acceder con un puntero al byte 0, al 5784 o al que queramos, y deeste modo nos estaremos metiendo donde nadie nos ha llamado. Desde nuestros programas esto es muy sencillo, símplemente apuntando una variable puntero a una dirección fija:
{ int *p; p = (int *) 0xFFFF; [...] }

Este código será válido si el sistema operativo realmente nos da acceso a esa zona de memoria. Esto tiene su parte buena: control absoluto. Una utilidad típica a esto solía serdireccionar un puntero hacia la zona de memoria de la pantalla, y escribir directamente en ella, como si fuera una matriz de caracteres. Con eso se conseguía una rapidez similar a la del ensamblador a la hora de dibujar en la pantalla. Otra ventaja era que dos programas residentes en memoria podían comunicarse muy fácilmente entre si, ya que el uno podía ver la memoria del otro. Por su contra, el sistemaera tremendamente inestable, ya que lo más normal es que los punteros

http://www.lawebdejm.com/prog/cpp/memoriavirtual.html

06/12/2008

La memoria virtual - La web de JM

Page 2 of 10

se nos fueran de madre y acabásemos sobrescribiendo los datos o el código de otros programas, o lo que podía ser peor: machacar el sistema operativo ¡¡o incluso la BIOS!! Allá cuando nació Windows 3.x,las cosas cambiaron ligeramente, ya que la gente de Microsoft comenzó a verificar que no sobrescribiesemos algunas zonas de memoria donde residía el sistema operativo. Cuando intentábamos escribir en alguna zona protegida, Windows lanzaba un Access Violation para defenderse de los intrusos. De este modo se conseguía un sistema más estable, aunque en aquella época no era posible mucho más, ya quetodavía podíamos tocarle las tripas a zonas de memoria de otros procesos, y eso hacía que si fallaba nuestro programa (por escribir en la memoria del vecino) hiciésemos que otros procesos se fuesen al traste, todo en cascada. Internamente teníamos toda la memoria para nosotros, pero no podríamos leer ni escribir en zonas protegidas por Windows. Este sistema de memoria es lo que llamaron el famoso“Modo protegido” de Windows. A partir de la introducción de Windows 95 comenzó la era de los 32 bits, o lo que es lo mismo para Window-hablantes: la era de la arquitectura Win32. Esto puede poner los pelos de punta a más de uno, porque realmente hay cosas con las que hemos ido a peor (ahora nos encontramos las siglas M$ hasta en la sopa), pero también hay que decir que con Win32 el sistema completo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Memoria Virtual
  • Memoria virtual
  • MEMORIA VIRTUAL
  • Memoria Virtual
  • Memoria Virtual
  • Memoria Virtual
  • Memoria Virtual
  • administracion de memoria virtual

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS