mcurrao / sisop-2016-2c

Sistemas operativos - 2do cuatrimestre 2016
0 stars 1 forks source link

TP 1 - Ejercicio 5 #2

Closed mcurrao closed 7 years ago

mcurrao commented 8 years ago

Realizar un script que escriba en un archivo, cada N segundos, un listado de los M procesos que más utilización de memoria tienen, especificando por cada uno de ellos la siguiente información: Identificador (PID) – Path del ejecutable – Memoria (Working Set). Tanto N como M deben ser pasados como parámetros al script, si N es igual a 0, entonces la información deberá guardarse sólo una vez. En caso de N mayor a cero, la información se actualizará cada N segundos. El intervalo de N segundos se debe controlar con un objeto Timer (System.Timers.Timer). No se puede utilizar sleep.

Criterios de corrección:

mcurrao commented 8 years ago

El evento del timer se está attacheando bien. Pero el timer en si no se está ejecutando. Jamás invoca al action.

mcurrao commented 8 years ago

Cuando el ejercicio pide

Tanto N como M deben ser pasados como parámetros al script [...] Validación correcta de parámetros

¿Quiere decir que son requeridos, o simplemente que tienen que ser pasados al script? Yo dejé a N como opcional, con 0 como valor default, y a M como requerido. Nomás para joder. Pero se podría dejar a M también como opcional.

mcurrao commented 8 years ago

Creo que encontré el problema. El script termina, por lo que el objeto timer muere (block lifespan). Entonces nunca llega a triggerear. Ahora, mi script tiene que quedar vivo hasta que alguien dessuscriba el evento. Pero no puedo usar esperas activas (supongo que se refiere a un while). Y tengo que dejarlo en bg, porque sino no ejecuta nunca el timer.

¿Alguna idea de como ver cuando desapareció un evento sin usar un while?

mcurrao commented 8 years ago

Feedback:

El archivo de salida está fijo, y en C:\ no tengo permisos para crear archivos, así que no funciona el script

En la consigna no lo especificaba... ¬¬