Quiero poner a prueba las capacidades de gestión de memoria de un programa, por ejemplo (por ejemplo, nombre del programa es director)¿Cómo escribir un programa en C o C++ para que actúe como una memoria y relleno de ciclo de la CPU?
- ¿Qué pasa si algunos otros procesos tienen demasiada memoria, y no es demasiado menos memoria para el director ¿correr? ¿Cómo se comporta el director?
- ¿Qué sucede si un programa utiliza demasiados ciclos de la CPU mientras se está ejecutando el director?
- ¿Qué sucede si la memoria utilizada por los otros programas se libera después de algún tiempo? Cómo el director reclama la memoria y comienza a trabajar con todas las capacidades. etc.
Haré estos experimentos en una máquina Unix. Una forma es limitar la cantidad de memoria disponible para el proceso usando ulimit
, pero no hay una buena forma de controlar la utilización del ciclo de la CPU.
Tengo otra idea. ¿Qué sucede si escribo algún programa en C o C++ que actúa como una memoria dinámica y relleno de CPU, es decir, no hace nada útil, pero se come de todos modos la memoria y/o los ciclos de la CPU?
- Necesito algunas ideas sobre cómo se debe estructurar un programa así. Necesito tener un control dinámico (en tiempo de ejecución) sobre la memoria utilizada y la CPU utilizada.
- Creo que la creación de muchos subprocesos sería una buena manera de bloquear los ciclos de la CPU. ¿Está bien?
¿Existe un mejor enfoque que pueda usar?
Cualquier idea/sugerencia/comentario son bienvenidos.
Gracias @Henj, la descripción es exactamente lo que necesitaba. Comprobaré si puedo cambiar la asignación en tiempo de ejecución. O tal vez modifique la fuente para hacerlo. – Lazer
@Lazer: si no es compatible con el ajuste en tiempo de ejecución, puede hacer la forma estándar * NIX. Comience un montón de procesos, cada uno comiendo algo de CPU y memoria. Para liberar algunos recursos, mate algunos de los procesos de estrés. Para que vuelvan a estar ocupados, comience nuevamente los procesos de estrés correspondientes. – Dummy00001