lunes, 26 de junio de 2017

Sistemas Operativos II

Sistemas Operativos


Gestión de la Memoria Principal y de la Memoria Virtual en los Sistemas Operativos
Por Olvin Martínez
Estudiante de la carrera de Ingeniería en Sistemas, de la Universidad Nacional Autónoma de Honduras
tho96_thebest@hotmail.com

Resumen
El artículo en cuestión, abordara los resultados obtenidos de una investigación de manera clara y concisa, respecto a lo que es la Gestión de la Memoria y su Funcionalidad en los diversos Sistemas Operativos de sobremesa más comunes de la actualidad (Windows, Mac OS, Ubuntu), y a la vez de algunos de los Sistemas Operativos utilizados en dispositivos móviles (Android e IOS).
Dicha investigación es netamente para enriquecer nuestro conocimiento, de manera que podamos familiarizarnos en el funcionamiento de los mismos principios y/o protocolos, pero en diversos entornos, a fin de tener una mejor visión y comprensión del tema en cuestión.
Abstract
The article in question will address the results obtained from a research in a clear and concise way regarding what is Memory Management and its Functionality in the various operating systems most common today (Windows, Mac OS, Ubuntu) and the time of some of the Operating Systems used in mobile devices (Android, IOS)
This research is purely to enrich our knowledge so that we can familiarize ourselves with the functioning of the same principles and / or protocols but in different environments in order to have a better vision and understanding of the subject in question
Palabras Claves
Algunas palabras de carácter primordial para un mayor entendimiento de los temas que se expondrán a continuación son:
  • Artículo Científico, Gestión, Memoria Principal, Memoria Virtual y Firmware.




Sistema Operativo

No es posible empezar a hablar de gestión de memoria en un sistema operativo sin siquiera saber lo que es un sistema operativo mismo, por lo cual podemos decir brevemente, que un sistema operativo es un sistema compuesto de software, que viene manejar tanto al hardware como al resto de los recursos software de un computador proveyendo una serie de servicios para el manejo de los programas del computador mismo; todos los programas computacionales, excluyendo el firmware (es un software que maneja físicamente un hardware), necesitan de un sistema operativo para funcionar, de aquí podemos ver lo ampliamente importante que es un sistema operativo para el manejo y control de estos dispositivos de sobremesa. (System)

Teniendo en mente esto, hay que pensar en que los sistemas operativos forman parte de un ciclo crucial para la creación de tecnologías junto con los recursos software, el hardware y el usuario mismo. Todos forman parte de una especie de cadena para la correcta realización todo una infinidad de diversas operaciones, como el manejo de procesos, archivos de sistema, internet, seguridad, dispositivos de entrada/salida y por supuesto, el tema que nos compete, la gestión de memoria. (System)


Ciclo de Operaciones (Operaciones)

Gestion de Memoria

Como se definió en el tema anterior, la gestión de memoria (también conocida como Administración de Memoria o Manejo de Memoria) representa una de las tantas, pero al mismo tiempo, mas importantes tareas que se deben realizan en un dispositivo tecnológico. (Rouse)

Conceptualmente hablando, podemos definir Gestión de Memoria como el proceso de control y coordinación de la memoria en un dispositivo tecnológico (para efectos posteriores, nos centraremos en computadoras) mediante la asignación de porciones llamadas “bloques” a la ejecución de varios programas para la optimización general de la ejecución del sistema. El concepto de gestión de memoria es comúnmente asociado a dos tipos de memoria en específico, siendo estas la Memoria Principal y la Memoria Virtual (también conocida como Memoria Secundaria). (Rouse)

Memoria Principal

La memoria principal (también llamada memoria interna), es la única memoria con acceso directo al CPU, el cual están continuamente leyendo todo tipo de instrucciones que se encuentran dentro de ahí almacenadas, y ejecutándolas al mismo tiempo. Cualquier información previamente activa suele también ser almacenada ahí de manera uniforme. (Storage)

Estructura de Memoria Principal (GAndreu)

Memoria Virtual

La memoria virtual (conocida también como memoria secundaria o memoria auxiliar), a diferencia de la memoria principal, tiene como principal característica distintiva, el hecho de que esta, no puede acceder directamente al CPU. La computadora en cambio, hace uso de dispositivos de entrada y salida para acceder a este tipo de memoria, para así poder guardar y transferir la información deseada, mediante el uso de un área intermedia (región física del almacenamiento de una memoria, utilizado para guardar información temporalmente, mientras esta es movida de un lugar a otro) en la memoria principal. (Storage S. )

Estructura de Memoria Virtual (Kapnoc)


Sin embargo el manejo o gestión de memoria reside no solo en el sistema operativo, sino también en el hardware y en los diversos programas y aplicaciones software, de aquí la anteriormente mencionada característica de la cadena crucial para la realización de las operaciones, ya que todos trabajan de manera simultánea en esta operación.

Gestión de Memoria en el Sistema Operativo (Sistemas de Sobremesa)

Moviéndonos dentro del Sistema Operativo, la gestión de memoria implica la asignación (y constante reasignación) de bloques de memoria específicos para programas individuales a medida que las demandas del Usuario (ente del ciclo antes mencionado) puedan ir cambiando con el paso del tiempo. (DEVR)

  • Gestión de Memoria en Windows

La gestión de memoria en Windows es de memoria virtual con paginación (se encarga del intercambio de información entre nuestra memoria y el disco duro) y conjunto de trabajo (Working Set). Cuando se crea un proceso el tamaño máximo es de 2GB, este espacio está dividido en páginas de tamaño fijo y poseen uno de los siguientes estados: (DEVR)

  • Disponible:
Cuando hay espacio disponible en la memoria, el gestor de memoria virtual permite que los conjuntos residentes de los procesos activos crezcan. Entonces se trae una nueva página a la memoria sin expulsar ninguna. (DEVR)

  • Reservada:
Cuando la memoria empieza a escasear, el gestor de memoria virtual mueve las páginas que se han utilizado hace más tiempo de cada uno de los procesos hacia swap, liberando así memoria principal. (DEVR)

  • Asignada:
Existen algunas similitudes en cuanto a la  gestión de memoria en Windows y Linux pero cuando es necesario liberar memoria Windows lo hace una vez por segundo a diferencia en Linux que lo hace solo cuando es necesario, esto hace de Linux más eficiente. (DEVR)

Gestión de Memoria en Windows (Coito)








  • Gestión de Memoria en Ubuntu (Linux)

Uno de los primeras "restricciones" que los nuevos usuarios de Linux enfrentan es el dilema con respecto a la utilización de la memoria por Linux. En realidad no es lo que se piensa. "Linux solo toma prestado memoria no utilizada para el disco de almacenamiento en caché. Esto hace que parezca que se tiene poca memoria, pero en realidad todo se encuentra bien. (ubuntuinterclassroom)

El requisito mínimo de memoria RAM para la utilización del sistema operativo Ubuntu 12.04 LTS es de 384 MB. Se destaca que algunos programas requieren mayor memoria ya que su tarjeta gráfica lo demanda. Mayor memoria RAM mejor será el desempeño del sistema operativo el cual también cuenta con un espacio llamado “swap space” que se utiliza mayormente para guardar información durante el modo suspend e hibernate. Si observamos a muchos de los sistemas de Windows podemos destacar que esa memoria se convierte en memoria cache. En un sistema operativo Linux, la memoria es utilizada para crear un cache que utiliza el CPU. Esto es, utilizado para que el proceso de cache tome más tiempo y el CPU pueda acceder la data en el disco duro más rápido que la que está localizada en la memoria principal, así acelera los procesos del sistema (ubuntuinterclassroom)

El sistema operativo Linux Ubuntu, utiliza la memoria swap que está en una partición aparte esta memoria puede ser utilizada por el CPU. Esta puede utilizar tres tipos de memoria llevando una secuencia lineal a través de la misma en la cual la memoria se utiliza la memoria ram y al verse esta utilizada a capacidad pasaría a utilizar la memoria swap. En el sistema Windows no existe dicha optimación así que la memoria no se utiliza y se pierde. En el caso en el cual toda la memoria sea utilizada por la memoria que esté en cache como última opción la memoria que está destinada en el “swap partition” será utilizada. Si escribimos el siguiente comando en el Terminal ( free -m ) para ver cuanta memoria está utilizada. En esa misma pantalla en la segunda línea podemos ver que aparece cuanta memoria se utiliza por las aplicaciones. Otro comando que podemos utilizar el comando top para ver en detalle la memoria/ el cpu y otros detalles acerca de qué proceso está ejecutándose en la computadora. Como otra opción podemos utilizar el GUI-based System Monitor para hacer lo que ya discutimos. (ubuntuinterclassroom)

Gestión de Memoria en Ubuntu 1 (ubuntuinterclassroom)






  • Gestión de Memoria en Mac OS

La manera en Mac OS realiza su gestión de memoria puede representar cierta sorpresa para algunos usuarios, esto se debe a que Apple (empresa dueña de Mac OS) tiene catalogado el uso de la gestión de memoria de la siguiente manera: (Inchauspe)

  • Libre:
Se refiere al tipo de memoria que no está siendo utilizada en el momento actual. (Inchauspe)

  • Sistema:
Es la cantidad de memoria que se está usando por parte del sistema. (Inchauspe)

  • Activa:
Es referente a la cantidad de memoria RAM utilizada recientemente. (Inchauspe)

  • Inactiva:
Cantidad de memoria que por el momento no está siendo utilizada por el sistema pero que podría volver a estar disponible para la aplicación que la ha usado anteriormente. Mac OS reserva esta memoria solo para las aplicaciones que se han cerrado, de esta forma si volvemos a abrirlas, como su memoria ya está reservada, se abrirán de manera más rápida. (Inchauspe)

  • En uso:
Es la cantidad total de memoria que se encuentra actualmente en uso. (Inchauspe)

Gestión de Memoria en Mac OS (Inchauspe)









Gestión de Memoria en el Sistema Operativo (Sistemas Móviles)

La gestión de memoria en sistemas operativos móviles, es bastante similar, en términos generales, a la gestión de la misma en los sistemas operativos de sobremesa, a continuación se detallara el proceso del mismo en los dos sistemas operativos móviles más importantes del medio actual; Android e IOS.

  • Gestión de Memoria en Android

Brevemente diremos que Android es un sistema operativo basado en Linux y propiedad de Google. En este sistema, la gestión de memoria es bastante común; al igual que en Java y NET (plataformas de desarrollo), Android utiliza el entorno de ejecución y la máquina virtual, para gestionar la memoria de la aplicación. A diferencia de cualquiera de estos 2 marcos, el entorno de ejecución de Android también maneja los tiempos de vida del proceso, mediante métodos que aseguran la respuesta de la aplicación, deteniendo y matando a los procesos que obstaculizan la fluidez, y liberando recursos para las aplicaciones de mayor prioridad. (Alfonso)

Cada aplicación Android se ejecuta en un proceso de manera independiente, dentro de su propia instancia de Dalvik (máquina virtual exclusiva de los dispositivos Android), renunciando de esta manera, a toda responsabilidad de la memoria y de la gestión de los procesos. (Alfonso)

Memoria de Procesos, Android (Alfonso)












  • Gestión de Memoria en IOS

El sistema operativo móvil de la empresa multinacional Apple Inc. IOS (IPhone Operating System), fue inicialmente exclusivo g los móviles IPhone, aunque para la actualidad, también es utilizado para otros dispositivos portátiles de la empresa Apple Inc. como IPods o IPads; sistema operativo famoso por su rigurosa restricción a ser instalado en hardware de terceros (dispositivos de otras empresas), posee una manera de gestión de memoria bastante peculiar, ya que inicialmente fue No ARC (Automatic Reference Counting, donde básicamente teníamos que retener y liberar los objetos), hoy en día ya es ARC, por lo cual ya no tiene que retener ni liberar objetos y es Xcode (entorno de desarrollo diseñado por Apple Inc.), quien se encarga del trabajo de manera automática en tiempo de compilación. (W3ii)

Actualmente, según la documentación oficial de Apple Inc. para cuestiones de gestión de memoria se tiene que:
    • Liberar o sobrescribir los datos que todavía están en uso, causa daños a la memoria y por lo general resulta en su aplicación estrellarse, o peor aún, podría terminar dañando los datos del usuario. (W3ii)
    • No liberar datos que ya no están en uso provoca pérdidas de memoria, ya que cuando esta al estar asignada pero no utilizada provoca fugas, que hacen que la aplicación en cuestión, utilice mayores cantidades de memoria, que a su vez, pueden provocar un mal funcionamiento dentro del sistema operativo como tal. (W3ii)

Consumo de memoria en IOS (W3ii)








Gestión de Memoria en Hardware

Específicamente en el Hardware, la administración de la memoria involucra componentes que almacenan datos físicamente, como chips de memoria RAM (Memoria de Acceso Aleatorio), memoria cache y todo tipo de unidades de almacenamiento solido flash como lo puede ser un disco duro. (Management)

Gestión de Memoria en Hardware (Salina)

Gestión de Memoria en Software

Por último, en la parte de las Aplicaciones Software, la gestión de memoria garantiza la disponibilidad de memoria adecuada para los objetos y las estructuras de datos de cada programa que se encuentren en ejecución en cualquier momento; combina 2 tareas relacionadas que son la asignación (cuando el programa necesita un bloque de memoria, una parte del administrador de memoria llamado “allocator” es el encargado de asignar ese bloque de programa) y el reciclaje (cuando un programa necesita la información previamente asignada en los bloques de memoria, estos bloques vuelven a ser reasignados para estar habilitados). (Management)

Gestión de Memoria en Software (Memory)

CONCLUSION

Después de tanta búsqueda y análisis, he logrado llegar a la conclusión de que en todos los Sistemas Operativos, tanto Móviles como de Sobremesa, los conceptos y métodos con los que se Gestiona las Memorias (Principal y Virtual) son bastante similares, debido en gran parte, a que lógicamente, cada empresa en el ámbito que sea, buscara la optimización de cualquiera de sus procesos, de modo que estos ofrezcan mayores beneficios a sus usuarios, (que en este particular caso somos nosotros, ya que somos nosotros precisamente, quienes adquirimos sus Sistemas Operativos) para obtener ellos mayores beneficios. Está claro que si hubiera un método claramente superior a otro, este sería imitado a modo de mejorarlo, por lo cual, si bien es cierto, aunque hayan pequeñas diferencias, como ya mencione al principio, al final terminan siendo bastantes similares.

A la larga, esta es una característica que no determinara para alguien, el adquirir o no un sistema en específico, sino más bien otras características que sean más fuertemente diferenciadas, de manera que el que escojamos, se adapte más a nuestras necesidades.

AGRADECIMIENTOS

Quiero comenzar agradeciendo a mis padres, ya que fueron ellos quienes me han dado la oportunidad de estar cursando mis estudios universitarios, por lo cual sin ellos, evidentemente no hubiera logrado esto. También una mención especial para el Catedrático que imparte mi clase de Sistemas Operativos 2, ya que él se tomó la molestia de hacer las correcciones debidas a mi investigación, a manera de poder editarlo y así perfeccionarlo lo máximo posible. De igual manera, y aunque parezca un tanto inútil, no está demás agradecer a todos y cada uno de los autores de las distintas páginas, articulo e imágenes que utilice para nutrir esta investigación.

Encarecidamente, gracias a todos ustedes.
.

ReferencIAS

  1. Alfonso. (s.f.). Sozpic. Obtenido de https://www.sozpic.com/gestion-de-memoria-en-android/
  2. Coito, E. (s.f.). SlidePlayer. Obtenido de http://slideplayer.es/slide/25943/1/images/11/Gesti%C3%B3n+de+Memoria+Virtual.jpg
  3. DEVR. (s.f.). Sistemas Operativos 1. Obtenido de http://sopes12s.blogspot.com/2012/10/gestion-de-memoria-en-windows-y-linux.html
  4. GAndreu. (s.f.). LabVirtual. Obtenido de http://labvirtual.webs.upv.es/Applets/GAndreu/Objeto_Fijas_Una_cola/part_fijas_frag_interna.jpg
  5. Inchauspe, I. A. (s.f.). Crónicas de un informático. Obtenido de https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAzdrWu9tUN_gTjNVprfWcx166_x2uqusK7lY72fMgIC3YG6GbDyuOTBDF2sfn87IR7Hz1bCANBhWSHqSwyIZbppiJZv02eGm7khyYHy6ZcZhEq0fxUG914nuYNUNQ8i_73Zf7qctOYu7-/s1600/Captura+de+pantalla+2013-02-05+a+la(s)+21.37.14.png
  6. Kapnoc, C. (s.f.). Slide Share. Obtenido de https://image.slidesharecdn.com/memoriavirtual-111111081641-phpapp02/95/memoria-virtual-exposicion-2-728.jpg?cb=1320999473
  7. Management, M. (s.f.). Wikipedia, The Free Encyclopedia . Obtenido de https://en.wikipedia.org/wiki/Memory_management_(operating_systems)
  8. Memory, D. (s.f.). SlideShare. Obtenido de https://image.slidesharecdn.com/dma-150319180629-conversion-gate01/95/dynamic-memory-allocationdma-4-638.jpg?cb=1426788547
  9. Operaciones, C. d. (s.f.). Wikipedia, The Free Encyclopedia. Obtenido de https://upload.wikimedia.org/wikipedia/commons/thumb/d/dc/Operating_system_placement-es.svg/692px-Operating_system_placement-es.svg.png
  10. Rouse, M. (s.f.). Whatls.com. Obtenido de http://whatis.techtarget.com/definition/memory-management
  11. Salina. (s.f.). Faculty Salina. Obtenido de http://faculty.salina.k-state.edu/tim/ossg/_images/memory_hierarchy.png
  12. Storage, P. (s.f.). Wikipedia, The Free Encyclopedia. Obtenido de https://en.wikipedia.org/wiki/Computer_data_storage#Primary_storage
  13. Storage, S. (s.f.). Wikipedia, The Free Encyclopedia. Obtenido de https://en.wikipedia.org/wiki/Computer_data_storage#Seconday_storage
  14. System, O. (s.f.). Wikipedia, The Free Encyclopedia. Obtenido de https://en.wikipedia.org/wiki/Operating_system
  15. ubuntuinterclassroom. (s.f.). Linux Ubuntu 12.04 LTS. Obtenido de https://sites.google.com/site/ubuntuinterclassroom/_/rsrc/1472872519264/manejo-de-ram/Screenshot%20from%202013-04-08%2014%3A23%3A59.png
  16. W3ii. (s.f.). W3ii. Obtenido de http://www.w3ii.com/es/ios/ios_memory_management.html

No hay comentarios:

Publicar un comentario

Sistemas Operativos II