Sep 14, 2011

Practical part

15 comments:

  1. Sería bueno que pusieran un sleep para detener un poco el proceso.

    ReplyDelete
  2. ya que implementaste los conditional variables seria bueno ver la ejecucion de algun producer-consumer o filosofos.

    ReplyDelete
  3. sleep en donde? Y detener el proceso para qué?

    ReplyDelete
  4. apoyo la idea de jorge, creo que a los threads de prueba que pusiste en la ultima diapositiva les podrías implementar alguno de esos para que deje de darte esas salidas raras que mencionabas de los test threads

    ReplyDelete
  5. El problema de la última diapositiva tiene que ver más con la manera en la cuál nachOS accesa a la memoria, a pesar de las opciones de Sincronización que se tengan por alguna razón nachOS lee lugares no válidos de memoria mezclando las ejecuciones o algo asi... algo mal en el archivo AdressSpace.cc creo.

    Y la función sleep no es muy necesaria ya que el thread termina por si solo en una cantidad mínima de tiempo, eso sería más útil en el problema de Producer-Consumer, donde si se necesita un delay para ver los diferentes pasos de la ejecución ya que los threads se mantienen activos hasta que matas el proceso... pero eso es otra historia...

    ReplyDelete
  6. Asi de la forma como corrieron el userprog es como deberiamos de correrlo todos :) en que se apoyaron para desarrollarlo? podrian mostrarnos el codigo?

    ReplyDelete
  7. Everardo el error de la ultima diapositiva es como dijo Juan es por como nachOS accesa a la memoria pero en realidad ya esta solucionado como se puede ver en la presentación

    David el código viene en la presentación o que parte del código avisanos para subirla :D

    ReplyDelete
  8. Me refiero al del userprog que corre en la ultima diapositiva :)

    ReplyDelete
  9. Lo de las salidas raras de los test ya estaba resuelto.

    El codigo que ejecutamos son simples impresiones de numeros enteros.
    Test1:

    int n;
    for (n=9;n>5;n--)
    PrintInt(n);

    Test2:

    int n;
    for (n=20;n<=25;n++)
    PrintInt(n);

    ReplyDelete
  10. Gracias Isaias seria interesante debugear el NachOS y que mostrara como carga los userprogs ademas de como crea y maneja los threads, me pregunto si es la misma secuencia que al correr algo dentro del sistema...

    ReplyDelete
  11. Si mal no recuerdo para ver mensajes de DEBUG en la version 4.0 de nachos escrita en C++ es:
    ./userprog/nachos -d

    ReplyDelete
  12. Mmmmm puede que sea igual a la da de java entonces trata poniendo: /userprog/nachos -d tc :)

    ReplyDelete
  13. De hecho mejor agrega: "-d tc" al final de todo lo que ya tienes despues de -rs 5.

    ReplyDelete
  14. Para correr verdaderos userprogs uno tiene que rifarse toda una programación extrema :).
    Por algo el autor nos recomienda leer TODO el código para asimilar la forma en la cual nachos interactua con todas las clases, headers y esas cosas deliciosas que lo integran.
    La secuencia es diferente, debes crear tus excepciones, tus funciones de IO, funciones para manejo de archivos, etcétera.

    ReplyDelete
  15. Puntos extra a Jorge, JC, Isaias, David.

    ReplyDelete