ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Tarea de sistemas operativos


Enviado por   •  25 de Julio de 2017  •  Síntesis  •  2.729 Palabras (11 Páginas)  •  139 Visitas

Página 1 de 11

  • gestion de memoria

La gestión de memoria o administración de memoria es el acto de gestionar la memoria de un dispositivo informático. El proceso de asignación de memoria a los programas que la solicitan. La gestión de la memoria principal de una computadoraes una tarea de suma importancia para el funcionamiento de la misma. Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema. El recolector de basura es la asignación y liberación automática de los recursos de memoria para un programa. La implementación suele ser a nivel del lenguaje de programación en contraposición a la gestión manual de memoria, que asigna y libera los recursos de memoria de una computadora de forma explícita. La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de lamemoria, organizando los procesos y programas que se ejecutan de maneratal que se aproveche de la mejor manera posible el espacio disponible. Para poder lograrlo, la operación principal que realiza es trasladar la información que deberá ser ejecutada por launidad central de procesamiento o procesador, a la memoria principal. Actualmente esta administración se conoce como memoria virtual, porque no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensateniendo la misma memoria real, por lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.Las técnicas que existen para la carga de programas en la memoria son: partición fija, que es la divisiónde la memoria libre en varias partes (de igual o distinto tamaño) y la partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso.Entre las principales operaciones quedesarrolla la administración de memoria se encuentran la reubicación, que consiste en trasladar procesos activos dentro y fuera de la memoria principal para maximizar la utilización del procesador; la protección, mecanismos que protegen los procesosque se ejecutan de interferencias deotros procesos; uso compartido de códigos ydatos, con lo que el mecanismo de protección permite queciertos procesos de un mismo programa que comparten una tarea tengan memoria en común.CaracterísticasLos sistemas de gestión de memoria desistemas operativos multitareanormalmente tratan con las siguientes tareas.ReasignaciónEn los sistemas con memoria virtual, los programas durante su ejecución pueden salir por un tiempo de la memoria y luego regresar, de modo que no pueden colocarse en el lugar que ocupaban previamente. Por ello debe ser posible que residan en diferentes partes de la memoria en diferentes momentos. Así, la gestión de memoria en el sistema operativo debe ser capaz de trasladar los programas en memoria y manejar referencias a la memoria y las direcciones en el código del programapara que siempre apuntan a la ubicación correcta. La unidad de gestión de memoria virtual también debe hacer frente a la concurrencia.ProtecciónArtículo principal:Protección de memoriaLos procesos no deberían poder referenciar la memoria de otros procesos sin permiso, para evitarlo existe laprotección de memoria, queevita que código malicioso o erróneode un programa interfiera con la operación de otros programas en ejecución.Memoria compartidaAunque la memoria utilizada por diferentes procesos suele estar protegida, algunos procesos puede que sí tengan que compartir información y, para ello, han de acceder la misma sección de memoria. La memoria compartida es una de las técnicas más rápidas paraposibilitar lacomunicación entre procesos.Organización lógicaLos programas a menudo están organizados en módulos, algunos de los cuales pueden ser compartidos pordiferentes programas, algunos son desolo-lectura y otros contienen datos que se pueden modificar. Se escriben y se compilan independientemente. Lagestión de memoria es responsable demanejar esta organización lógica, que se contrapone al espacio de direcciones físicas lineales. Una forma de lograrlo es mediante lasegmentación de memoria.Organización físicaLa memoria suele dividirse en un almacenamiento primario de alta velocidad y uno secundario de menor velocidad. La gestión de memoria del sistema operativo se ocupa de trasladar la información entre estosdos niveles de memoria.Gestión de memoria en DOSVéase también:Memoria convencionalAdemás de la gestión estándar de memoria, la barrera de los 640 KB deMS-DOSy los sistemas compatibles dieron lugar al desarrollo de programas conocidos como gestores de memoria cuando las memorias principales de las PC comenzaron a ser mayores que 640 KB a finales de losaños 1980. Estos desplazan porciones del sistema operativo fuera de su localización tradicional para incrementar la cantidad de memoria convencional o semiconvencional disponible para otras aplicaciones. ElEMM386, es un ejemplo, fue parte de la instalación estándar de las últimas versiones de DOS, así como elQEMM. Estos permitieron el uso de memoria más allá de la barrera de los 640 KB, donde la memoria solía estar reservada a la memoria de acceso aleatorio, y memorias superiores.Notas y referencias1.LaAsignación de memoriaes llamada por algunos "alocar" (del inglésallocateque significa"asignar"), pero la palabra "alocar" tiene otro significado para elDiccionario de la lengua españolade la Real Academia Española.Bibliografía*.Ciriaco García de Celis (1994). «Capítulo VIII: La gestión de memoria del DOS».Eluniverso digital del IBM PC, AT y PS/2(4ª edición). Facultad de Ciencias de Valladolid: Grupo Universitario de Informática.*.Wilson, P.R.; Johnstone, M.S.; Neely, M.; Boles, D. (1995).«Dynamic Storage Allocation: A Survey and Critical Review».Memory Management: International Workshop, Iwmm'95, Kinross, Uk, September 27–29, 1995:Proceedings(en inglés)(Springer).ISBN 978-3-540-60368-9. Consultado el 6 de enero de 2008.*.Berger, E.D.; Zorn, B.G.; McKinley, K.S. (2001).«Composing high-performance memory allocators».ACM SIGPLAN Notices(en inglés)36(5): 114-124.doi:10.1145/381694.*.Berger, E.D.; Zorn, B.G.; McKinley, K.S. (2002). «Reconsidering custom memory allocation»(en inglés).Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. ACM Press New York, NY, USA. pp. 1–12

  • Memoria virtual

Como la memoria virtual se mapea a la memoria física.La memoria virtual es una técnica de gestión de la memoria que permiteque el sistema operativo disponga, tanto para el software de usuario como para sí mismo, de mayor cantidad de memoria que esté disponible físicamente. La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en laCPU, lamemoria caché(tanto dentro como fuera del CPU), la memoriaRAMy el disco duro. En ese orden, van de menor capacidad y mayor velocidad amayor capacidad y menor velocidad.Muchas aplicaciones requieren acceso a más información (código y datos) que la que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario. Hay varias formas de hacer esto.Una opción es que la aplicación misma sea responsable de decidir quéinformación será guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación del programa, es que es muy probable que los interesessobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizarsu diseño teniendo en cuenta que es el único programa ejecutándose en elsistema. La alternativa es usar memoria virtual, donde la combinación entrehardwareespecialy elsistema operativohace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que hay tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria.Aunque la memoria virtual podría estar implementada por elsoftwaredel sistema operativo, en la prácticacasi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el procesador.Operación básicaCuando se usa memoria virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software (direcciones virtuales) en:*.la dirección real de memoria (la dirección de memoria física).*.una indicación de que la dirección de memoria deseada no se encuentra en memoria principal (llamado excepción de memoria virtual)En el primer caso, la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente. En el segundo caso, el sistema operativo es invocado para manejar la situación y permitir que el programa siga ejecutando o aborte según sea el caso. La memoriavirtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor quela memoria física de una máquina. Esta "ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física.La ilusión de la memoria virtual estásoportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoriafísica y el resto almacenado en el disco, y puede ser referenciado fácilmente.Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal es accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a memoriacambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cómo gestionareste esquema.La memoria virtual también simplifica la carga del programa para su ejecución, llamada reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.En un estado estable, prácticamente toda la memoria principal estará ocupada con fragmentos de procesos,por lo que el procesador y el S.O tendrán acceso directo a la mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria unfragmento, deberá expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendrá que traer de nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos conducen a lo que se conoce como hiperpaginación: donde el procesador consume más tiempo intercambiando fragmentos que ejecutando instrucciones de usuario.Para evitarlo el sistema operativo intenta adivinar, en función de la historia reciente, qué fragmentos seusarán con menor probabilidad en un futuro próximo (véasealgoritmos de reemplazo de páginas).Los argumentos anteriores se basan en el principio decercanía de referenciaso principio de localidad que afirma que las referencias a los datos y el programa dentro de un proceso tienden a agruparse. Por lo tanto, es válida la suposición de que,durante cortos períodos de tiempo, se necesitarán sólo unos pocos fragmentos de un proceso.Una manera de confirmar el principiode cercanía es considerar el rendimiento de un proceso en un entorno de memoria virtual.El principio de cercanía sugiere que los esquemas de memoria virtual pueden funcionar. Para que la memoria virtual sea práctica y efectiva, se necesitan dos ingredientes. Primero, tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software para gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal.Justo después de obtener la dirección física, y antes de consultar el dato en memoria principal, se busca en memoria-cache. Si está entre los datos recientemente usados, la búsqueda tendrá éxito, pero si falla, la memoria virtual consultará la memoria principal ó, en el peor de loscasos, el disco (swapping).DetallesLa traducción de las direcciones virtuales a reales es implementada por unaUnidad de Manejo de Memoria(MMU). El sistema operativo es el responsable de decidir qué partes de la memoria del programa esmantenida en memoria física. Además mantiene las tablas de traducción de direcciones (si se usapaginaciónla tabla se denominatabla de paginación), que proveen las relaciones entre direcciones virtuales y físicas, para uso de la MMU. Finalmente, cuando una excepción de memoria virtual ocurre,el sistema operativo es responsable de ubicar un área de memoria física para guardar la información faltante, trayendo la información desde el disco, actualizando las tablas de traducción y finalmente continuando la ejecución del programa que dio la excepción de memoria virtual desde la instrucciónque causó el fallo.En la mayoría de las computadoras, las tablas de traducción de direcciones de memoria se encuentran en memoria física. Esto implica que una referencia a una dirección virtual de memoria necesitará una o dos referencias para encontrar la entrada en la tabla de traducción, y una más para completar el acceso a esa dirección.Para acelerar el desempeño de este sistema, la mayoría de las Unidades Centrales de Proceso (CPU) incluyen una MMU en el mismo chip, y mantienen una tabla de las traducciones de direcciones virtuales a reales usadas recientemente, llamadaTranslation Lookaside Buffer (TLB). El uso de estebufferhace que no se requieranreferencias de memoria adicionales, por lo que se ahorra tiempo al traducir.En algunos procesadores, esto es realizado enteramente por el hardware. En otros, se necesita de la asistencia del sistema operativo: se levanta una excepción, y en ella el sistema operativo reemplaza una de las entradas del TLB con una entrada de la tabla de traducción, y la instrucción que hizo la referenciaoriginal a memoria es reejecutada.El hardware que tiene soporte para memoria virtual, la mayoría de la veces también permite protección dememoria. La MMU puede tener la habilidad de variar su forma de operación de acuerdo al tipo de referencia a memoria (para leer, escribir, o ejecutar), así como el modo en que se encontraba el CPU en el momento de hacer la referencia a memoria. Esto permite al sistema operativo proteger su propio código y datos (como las tablas de traducción usadas para memoria virtual) de corromperse por una aplicación, y de proteger a las aplicaciones que podrían causar problemas entre sí.Paginación y memoria virtualLa memoria virtual usualmente (perono necesariamente) es implementada usandopaginación. En paginación, los bits menos significativos de la dirección de memoria virtual son preservados y usados directamente como los bits de orden menos significativos de la dirección de memoria física. Los bits más significativos son usados como una clave en una o más tablas de traducción de direcciones (llamadastablas de paginación), para encontrar la parte restante de la dirección física buscada.

...

Descargar como (para miembros actualizados)  txt (18.3 Kb)   pdf (83.2 Kb)   docx (109.3 Kb)  
Leer 10 páginas más »
Disponible sólo en Clubensayos.com