Hydrax

marzo 13, 2009 at 7:48 am (crusoe, informática)

Últimamente publico poco y es que estoy bastante liado, entre las prácticas de la facultad y el proyecto Crusoe -un saludo chicos! :P- no doi para mucho más. Después de bastantes días rayado con el plugin de las narices para modelar agua en ogre -Me refiero a Hydrax- y restructurar el makefile para que el esqueleto del programa fuera más amigable entre Juanmi y yo conseguimos dar con el problema y solucionarlo.

Para todo aquel que le de una un excepción tal que le suelte un parrafo enorme diciendo que se vaya a la linea 1087 de no se cual archivo cpp porque no tiene inicializadas ciertas variables en realidad lo que tiene que hacer es ir a HydraxDemo.hdx y cambiar la opción de shader que usa. activando la de Cg y quitando HLSL o GSLS creo recordar.

Bueno eso está solucionado, ahora han surgido algunos problemillas más que espero resolvamos pronto aunque tiene más pinta de ser de la demo que trae hydrax para testear que ha sido bien instalado que otra cosa ya que peta en el FrameListener.

Bueno, un saludo a todos que yo me voy a prácticas de base de datos 2

Anuncios

Permalink Dejar un comentario

Solucionado problema con espacios en blanco y Alt Gr del mathematica

marzo 6, 2009 at 12:20 am (informática)

Bueno hace ya algún tiempo que no posteo nada y es que últimamente he estado muy liado con la Universidad, exámenes, prácticas y un proyecto nuevo en el que me he metido, vamos a programar una aventura gráfica !!!

Bueno a lo que iba, hace poco me instalé el Mathematica 7.0 y tuve un problemita y es que cada vez que pulsaba “Alt Gr” el mathematica introducía un espacio en blanco que tenía que borrar a mano, un latazo vaya y tras mucho buscar soluciones dí con una y es la siguiente.

Vamos a /usr/local/Wolfram/Mathematica/7.0/SystemFiles/FrontEnd/TextResources/X

Entonces abrímos el archivo KeyEventTranslations.tr y añadimos literalmente lo siguiente:

Item[KeyEvent[“ISO_Level3_Shift”],
FrontEndExecute[{FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],
Sequence[], After]}]
],

Solucionado!!! Espero que os sea de ayuda, un saludo 🙂

Permalink 6 comentarios

jdownloader

diciembre 28, 2008 at 11:47 pm (informática)

Que decir… desde hace un tiempo he dejado de usar las descargas p2p de tipo emule y demás para pasarme a la descarga directa desde servidores tales como megaupload, rapidshare, etc.

La verdad es que era algo coñazo bajar ciertos archivos que estaban cortados en trescientos mil trozos pero desde que conocí el programa jdownloader todo es más fácil, y lo mejor de todo es que es multiplataforma. Yo lo disfruto con mi Debian con tan solo poner java -jar jdownloader.jar

Tuve un problema con java, pero con poner sudo update-alternatives –config java y elegir la opción correcta todo se solucionó =)

Un saludo a todos!

Permalink Dejar un comentario

Documentación en español…

diciembre 6, 2008 at 2:07 pm (informática)

Ayer me disponía a aprender como utilizar la STL cuando me di cuenta de la escasa -por no decir nula- documentación en español sobre la standard template library, me produce bastante pena ver como todos los tutoriales o manuales que pueden conseguirse de forma gratuita están en inglés, que bueno al fin y al cabo todo aquel programador -o proyecto de programador- que quiera adquirir nuevos conomientos encontrará en inglés las mejores herramientas de documentación pero siempre hay algún que otro buen tutorial en español, pero no fue así o almenos no encontre sobre la STL.

A fin de resolver este problema estoy creando un pequeño tutorial sobre la STL, es bastante modesto y no creo que ocupe mucho mas de quince folios y trae algunos ejemplos de las funciones miembro que pueden ser mas ambiguas, no obstante espero tenerlo acabado para mitad de esta semana y que le valga a más de uno para aprender a usar una de las herramientas más potentes a la hora de utilizar estructuras de datos en C++.

Un saludo a todos.

Permalink Dejar un comentario

Algoritmos de planificación.

noviembre 17, 2008 at 8:47 pm (informática)

Bien he tenido que hacer un trabajito para la facultad explicando en que consiste los algoritmos de planificación así que dejo por aquí parte del trabajo «Faltan los ejercicios y diagramas que no subo porque no estoy seguro de que estén bien : P»

Espero que os valga a más de uno.

  • El algoritmo de planificación FIFO «First In First Out» trabaja de una forma no apropiativa en el sentido formal de la palabra, a pesar de esto trata de forma poco equitativa a los procesos “cortos” frente a los “largos” ya que si se disponen diversos procesos largos antes en la cola el trabajo de un proceso que necesite poco tiempo de estancia puede alargarse de forma indefinida.

    Debido a que el algoritmo anteriormente hace que pueda demorarse de forma excesiva los procesos cortos suele utilizarse como esquema secundario.


  • El algoritmo SPN «Shortest Process Next» trabaja con la política de el primero el proceso con tiempo de procesamiento más corto. De esta forma se consigue que los procesos más cortos se situen por delante de los largos. Esto ofrece un beneficio frente al algoritmo FIFO puesto que da un tiempo de procesamiento más óptimo, no obstante este metodo puede dar ciertos problemas ya que puede ocurrir que estén entrando constantemente procesos cortos haciendo así que los procesos más largos no lleguen nunca a procesarse.

    Además ha de conocerse una estimación sobre el tiempo de procesamiento pora cada proceso


  • El algoritmo Round-Robin o turno giratorio trabaja mediante expulsiones basandose en el reloj. Realiza una interrupción cada cierto tiempo, esta división de tiempo es llamada quantum.

    Los quantum deben ser ligeramente mayores al tiempo requerido para una iteración o función típica del proceso ya que si es menor se necesitarán almenos dos quantums de tiempo. Además si los quantums o cuantos se toman de gran tamaño la perdida de eficiencia será considerable degenerando este algoritmo finalmente en uno de tipo FIFO.

    Este algoritmo es efectivo en sistemas de tiempo compartido y de proposito general. Una desventaja es que trata de forma desigual a los procesos limitados por el procesador y a los procesos limitados por E/S ya que estos últimos tienen normalmente ráfagas de procesador más cortas que los procesos limitados por procesador acarreando así un rendimiento ineficiente por parte de los procesos limitados por E/S.


  • El algoritmo SRT «Shortest Remaining Time» es una versión expulsiva de SPN. La idea que sigue dicho algoritmo es que el planificador escoge los procesos de menor tiempo de proceso restante llegando al punto de que si un nuevo proceso creado se une a la cola y tiene un tiempo restante al proceso en ejecución este último es expulsado para ejecutar el nuevo proceso. Al igual que SPN este algoritmo necesita una estimación de tiempo de proceso para realizar la función mencionada.

    El SRT penaliza entonces a los procesos largos pudiendo llegar a crear problemas de inanición puesto que puede darse el caso en que estén entrando procesos a la cola de listos de un tiempo de procesamiento menor a los procesos largos, así pues estos no llegarían a procesarse.


  • El algoritmo HRRN «Highest Response Ratio Next» corrige algunas deficiencias de SPN, particularmente el retraso excesivo de trabajos largos y el favoritismo excesivo para los trabajos cortos. HRN es un disciplina de planificación no apropiativa en la cual la prioridad de cada proceso no sólo se calcula en función del tiempo de servicio, sino también del tiempo que ha esperado para ser atendido. Cuando un trabajo obtiene el procesador, se ejecuta hasta terminar.

    Con este algoritmo los procesos cortos tendrán preferencia no obstante los procesos con tiempo de procesamiento más largo no se desatenderán haciendo así que no puedan darse problemas de inanición.

  • Cuando no se puede averiguar el tiempo estimado de servicio de varios procesos no puede utilizarse los algoritmos SPN, SRT y HRRN así pues se puede utilizar otra forma para establecer ciertas prioridades para los trabajos más cortos es penalizar a los trabajos que han estado más tiempo ejecutandose.

    La forma en que trabaja este algoritmo es mediante expulsión y se utiliza un mecanismo de prioridades dinámico. Se crean varias colas de prioridades, de esta forma un proceso que acabe de entrar al sistema se colocará en la cola de más prioridad, después de su primera expulsión pasará a la una segunda cola de listos con una prioridad menor que la primera. De esta forma cada vez que un proceso sea expulsado pasará a estar en una cola de listos de una prioridad menor hasta que llegue a una cola de mínima prioridad siguiendo esta última una poĺitica de turno rotatorio pues no puede descender más.

    Uno de los grandes problemas de este algoritmo es que puede ser ineficiente e incluso ocurrir inanición para procesos largos si no paran de entrar nuevos procesos en el sistema, una forma de solucionar dicho problema es variar los tiempos de expulsión en cada cola.

    Por ejemplo la primera cola tendría una unidad de tiempo mientras que la segunda tendría dos unidades de tiempo y así hasta la cola n.

    A pesar de la solución mencionada puede darse el caso de inanición para procesos grandes, para evitar esto puede moverse a los procesos a colas de mayor prioridad después de permanecer cierto tiempo en su cola actual.

La mayoría de los algoritmos de planificación apropiativos emplean el uso de prioridades de acuerdo con algún criterio. Cada proceso tiene una prioridad asignada y el planificador seleccionará siempre un proceso de mayor prioridad antes que otro de menor prioridad.

Permalink 7 comentarios