Thursday, October 14, 2010

Lascurain o de la brevedad del poder


  1. !Qué divertido puede llegar a ser el teatro!, Fuí con Lucero a ver la obra "Lascurain o de la brevedad del poder" en el Teatro de la Paz y aprendí que el teatro puede llegar a ser una experiencia muy entrañable.

  2. El montar un servidor es tan fácil como instalar un proceso que haga precisamente eso: proveer de algún servicio a otros procesos. Aprendí que todo servicio requiere ser protegido contra ataques externos puesto que para funcionar necesariamente requieren abrir alguna "puerta". Par reqa observar tráfico http es necesario reconfigurar el wireshark para desencriptar las tramas.

  3. La medida del desempeño de un equipo de cómputo en cuanto a la ejecución de un programa en particular depende del parámetro que se esté evaluando, pero hay conceptos clave que son recurrentes: ciclos por segundo, ciclos por instrucción, número de instrucciones -> en cuanto a los ciclos por segundo interfieren tanto la tecnología empleada como la microarquitectura, siendo está última la responsable por la sincronización en la ejecución de las microinstrucciones , en los ciclos por instrucción están implicados el programador, el compilador y la arquitectura; el programador es responsable de crear sistemas que se ejecuten realizando el menor número de sentencias (aquí hay varias vertientes ya que los objetivos de un programador pueden variar, en mi caso por ejemplo prefiero claridad sobre economía), el compilador a su vez suele realizar optimizaciones adicionales sobre el código y su estructura, por último la arquitectura influye también en el peso del programa ya que no es lo mismo utilizar una arquitectura tipo CISC dónde en promedio las instrucciones requieren de un mayor número de ciclos de reloj, que usar una arquitectura RISC la cual en promedio emplea instrucciones simples pero eficientes.

  4. Una arquitectura RISC cómo la hemos visto hasta el momento en el ARC es bastante ineficiente ya que los ciclos fetch, instruction decodification, operands fetch, execution, etc., se llevan a cabo mientras la memoría está completamente ociosa y por si fuera poco en cada fetching se tiene que esperar a que la memoria le lleve las instruciones o los datos ya que está última es lentísima en comparación con el. Una solución a este problema se encuentra en el prefetching. El prefetching consiste en tener una serie de registros administrados por un controlador independiente de la unidad de control principal del procesador que se encarga de traer nuevas instrucciones de la memoria mientras el ciclo de operaciones trabajan con datos anteriores. Esta es una solución bastante útil hasta que nos encontramos con el dilema de los saltos, el procesador no tiene forma de decir previamente si una instrucción tipo branch se llevara a cabo o no por lo que si resulta afirmativa se tienen que descargar las instrucciones almacenadas en el mecánismo de prefetching. Afortunadamente la creatividad humana es tan grande que se han desarrollado diversos mecanismos de "predicción de saltos" por más esotérico que suene el término no están basados en otra cosa que estadística (por ejemplo si se está llevando a cabo un loop el procesador puede "darse cuenta" y tomar las medidas necesarias).

No comments:

Post a Comment