Página 1 de 1

Pregunta examen gestion de memoria Unix

Publicado: 22 Oct 2010, 12:27
por soyopositor
Hola,

en un examen tipo test, del cual no facilitaron plantilla de soluciones, salió esta pregunta referente a la gestión de memoria en Unix:

Unix, desde el punto de vista de gestión ele memoria, mantiene una tabla con indicación de las partes de memoria disponibles y ocupadas. En un principio toda la memoria está libre a disposición de los programas; cuando llega un trabajo y necesita memoria, el sistema operativo busca un hueco lo suficientemente grande para dicho trabajo, asignándole sólo la memoria necesaria y manteniendo el resto disponible para otras necesidades. Con esta descripción estamos haciendo referencia a que:
a) Unix utiliza en la gestión de memoria un algoritmo de regiones fijas (MFT).
b) Unix utiliza en la gestión de memoria un algoritmo de regiones variables (MVT).
c) Unix utiliza un algoritmo por prioridades en la planificación de CPU.
d) Unix posee una memoria inagotable, siempre encontrará un hueco para cada nuevo trabajo.

¿Cual creeis que es la opcioón correcta? En una plantilla no oficial aparece como opción válida la "c", pero pienso que seria asi en el caso de la gestion de procesos, y la pregunta hace referencia a la gestion de memoria, por lo cual creo que la opción válida es la "b", me equivoco?.

Muchas gracias.

Re: Pregunta examen gestion de memoria Unix

Publicado: 22 Oct 2010, 12:48
por cantimploro
bufff... la pregunta se las trae.

Entre la a y la b, lo más parecido a lo que hace Unix sería la b. Pero es que en realidad, MFT y MVT no son algoritmos usados en Unix, sino algoritmos obsoletos usados por IBM en sus primeros multiprocesadores.

MFT = multitasking with fixed number of tasks.
MVT = multitasking with variable number of tasks. Aquí hay en la wikipedia una descripción casi idéntica a la que ponen en el ejercicio, me da que lo han sacado de ahi, que esto lo hacen mucho:
OS/360 MVT (Multitasking with a Variable number of Tasks) was an enhancement that further refined memory usage. Instead of using fixed-size memory partitions, MVT allocated memory to regions for job steps as needed provided there was enough contiguous physical memory available. This was a significant advance over MFT's memory management.
Su sucesor más famoso fue MVS (multitasking with virtual storage) y es donde se introdujo el concepto de memoria virtual como lo entendemos ahora. Lo que usa ahora mismo Unix, o mejor dicho suele usar porque hay muchas variantes, es una evolución muy lejana de eso, basada en la generalización de tres conceptos diferentes: memoria virtual con paginación, caching en memoria de elementos del sistema de archivos, y el sistema de archivos propiamente dicho. Internamente Unix lo gestiona como una única metaestructura (sistema de archivos virtual o VFS).

Si tenemos en cuenta que la c es correcta y la d es incorrecta, pues supongo que se podría asumir la c) como menos mala aunque no tenga mucho que ver con la gestión de memoria.

Si descartamos las referencias a MFT y MVT y nos atenemos a la descripción que pone la pregunta, y al hecho de que al final, la gestión de memoria en Unix sí usa regiones de tamaño variable y no fijo, pues sería la b). Pero en ese caso seguro que alguien la impugnaría, porque lo que hace Unix no se llama en realidad MVT.

Como decía, tiene narices la pregunta. No se si alguien la verá de otra forma.

Re: Pregunta examen gestion de memoria Unix

Publicado: 22 Oct 2010, 13:48
por soyopositor
Muchas gracias por la respuesta Cantimploro,

fue una pregunta del 1er examen de TAI C en el año 2003, puede que por aquel entonces Unix usara ese algoritmo para la gestion de memoria (MVT). El caso es que no hay publicada una solución oficial.

Lo preguntaba porque ando preparando una oposición a una Administracion Local y uno de los temas hace referencia a la gestión de procesos y memoria en Unix/Linux.

Salu2

Re: Pregunta examen gestion de memoria Unix

Publicado: 22 Oct 2010, 14:16
por cantimploro
No se que decirte, MVT es de los años 70! Y tanto Linux como Solaris ya usaban VFS, sobre un esquema de memoria paginada basado en el algoritmo LRU en sus primeras versiones (mediados de los 90).

http://tldp.org/LDP/tlk/mm/memory.html
http://tldp.org/LDP/tlk/fs/filesystem.html

Suerte!

Re: Pregunta examen gestion de memoria Unix

Publicado: 22 Oct 2010, 17:21
por Orion
No sé que decirte, pero a mi me suena a memoria paginada versus memoria segmentada, y si no recuerdo mal, UNIX emplea memoria paginada, lo que vendría a ser MFT en esa nomenclatura.

Re: Pregunta examen gestion de memoria Unix

Publicado: 24 Oct 2010, 11:40
por soyopositor
Pues parece que Unix utiliza los dos mecanismos. En un temario que tengo dice que Unix utiliza la memoria paginada y el intercambio, además de la segmentación. La segmentación la utiliza para separar las zonas de memoria asignadas al núcleo y a los procesos.

Además de la gestión de memoria en Unix, otras preguntas que han hecho en exámenes anteriores son:

* Ventajas de la memoria virtual en Linux

aquí no sé que ventajas tienes la memoria virtual en Linux frente a otros S.O., o qué ventajas aporta aparte de las que proporciona este mecanismo.

* Ventajas de los Threads frente a los procesos en Unix


¿Alguno podría decirme que contestar a estas preguntas, o indicarme algún documento en el que lo explique claramente?

Muchas gracias a todos.

Re: Pregunta examen gestion de memoria Unix

Publicado: 24 Oct 2010, 14:13
por cantimploro
Unix usa los dos mecanismos, evolucionados, pero nada equivalente al MFT o MVT aquellos, pero claro, eso también depende de que el que ha puesto la pregunta sepa de qué está hablando. Por lo demás:
* Ventajas de la memoria virtual en Linux

aquí no sé que ventajas tienes la memoria virtual en Linux frente a otros S.O., o qué ventajas aporta aparte de las que proporciona este mecanismo.
En realidad no te están preguntando por ventajas que no estén también en otros sistemas, no? Yo a priori aquí pensaría en las ventajas genéricas de la memoria virtual, y la primera y más obvia es que la memoria física disponible no limite la capacidad de ejecución multiproceso. Otras: que en un sistema multiproceso se aproveche al máximo la memoria física, que el almacenamiento secundario es más barato que la RAM, etc...
* Ventajas de los Threads frente a los procesos en Unix
Las habituales: los threads comparten almacenamiento y no sólo código (los procesos requieren usar áreas de almacenamiento compartido específicamente establecidas como tal). Un thread puede llamar a cualquier función de otro (en los procesos no es posible y hay que recurrir a algún mecanismo de intercomunicación, como pipes, semáforos, o el propio área de almacenamiento compartido). El overhead de incialización de un thread es mucho menor (sólo creas el hilo de código que necesitas, no necesitas duplicar el proceso por completo como haces com un fork() ). Etc.

Re: Pregunta examen gestion de memoria Unix

Publicado: 26 Oct 2010, 10:11
por soyopositor
Muchas gracias Cantimploro, eres un crack! Mucha suerte con la oposición.