miércoles, 2 de febrero de 2011

RELACION ENTRE SOFWARE Y HARWARE

RELACION ENTRE SOFWARE Y HARWARE

RELACIÓN HARDWARE/SOFTWARE
El software es un elemento del sistema que es lógico, en lugar de físico. Por tanto el software tiene unas características considerablemente distintas a las del hardware:
 
El software se desarrolla no se fabrica en un sentido clásico. Aunque existen similitudes entre el desarrollo del software y la construcción del hardware, ambas actividades son fundamentalmente diferentes. En ambas actividades la buena calidad se adquiere mediante un buen diseño, pero la fase de construcción del hardware puede introducir problemas de calidad que no existen (o son fácilmente corregibles) en el software. Ambas actividades dependen de las personas, pero la relación entre las personas dedicadas y el trabajo realizado es completamente diferente para el software. Ambas actividades requieren la construcción de un «producto», pero los métodos son diferentes. Los costos del software se encuentran en la ingeniería.
Esto significa que los proyectos de software no se pueden gestionar como si fueran proyectos de fabricación.
A medida de los años ochenta, se introdujo el concepto de «fábrica de software» en la literatura. Es importante tener en cuenta que este término no implica que la fabricación del hardware y el desarrollo del software sean equivalentes. En vez de ello, el concepto de fábrica de software recomienda el uso de herramientas para el desarrollo automático del software.
El software no se «estropea». La Figura describe, para el hardware, la proporción de fallos como una función del tiempo. Esa relación, denominada frecuentemente «curva de bañera», indica que el hardware exhibe relativamente muchos fallos al principio de su vida (estos fallos son atribuibles normalmente a defectos del diseño o de la fabricación); una vez corregidos los defectos, la tasa de fallos cae hasta un nivel estacionario (bastante bajo, con un poco de optimismo) donde permanece durante un cierto período de tiempo. Sin embargo, conforme pasa el tiempo, los fallos vuelven a presentarse a medida que los componentes del hardware sufren los efectos acumulativos de la suciedad, la vibración, los malos tratos, las temperaturas extremas y muchos otros males externos. Sencillamente, el hardware comienza a estropearse.
 



El software no es susceptible a los males del entorno que hacen que el hardware se estropee. Los defectos no detectados harán que falle el programa durante las primeras etapas de su vida. Sin embargo, una vez que se corrigen, suponiendo que no se introducen nuevos errores. Sin embargo la implicación es clara, el software no se estropea. ¡Pero se deteriora!.
 
La mayoría del software se construye a medida, en vez de ensamblar componentes existentes. Consideremos la forma en la que se diseña y se construye el hardware de control para un producto basado en microprocesador. El ingeniero de diseño construye un sencillo esquema de la circuitería digital, hace algún análisis fundamental para asegurar que se realiza la función adecuada y va al catálogo de ventas de componentes digitales existentes. Cada circuito integrado (frecuentemente llamado un «CI» o «pastilla») tiene un número de pieza, una función definida y válida, una interfaz bien definida y un conjunto estándar de criterios de integración. Después de seleccionar cada componente, puede solicitarse la compra.
 
Por desgracia, los diseñadores del software no disponen de esa comodidad que acabamos de describir. Con unas pocas excepciones, no existen catálogos de componentes de software. Se puede comprar software ya desarrollado, pero sólo como una unidad completa, no como componentes que pueden reensamblarse en nuevos programas.

ADELANTOS EN SOFWARE Y HARWARE

Avances de Hardware

Procesadores de mayor velocidad

La velocidad de unidades de procesamiento se ha incrementado dramáticamente debido principalmente a la evolución de la tecnología de semiconductores. Las computadoras han progresado desde ejecutar aproximadamente 10.000 instrucciones por segundo (en la época de los primeros programas) a aproximadamente 1.000.000.000 en la actualidad. El aumento de velocidad ha sido del orden de magnitud de 100.000 veces. Imaginemos comparativamente si la velocidad de transporte hubiese aumentado en esa magnitud durante el mismo periodo de tiempo. Los aviones volarían a 100.000.000 millas por hora; un viaje al sol tomaría cerca de 1 hora de vuelo y un viaje a la estrella más cercana, Alpha Centauri, la cual está a 4,5 años luz de distancia, tomaría cerca de sólo 70 años.

Capacidad de Memoria

Memorias de mayor capacidad son el resultado de la rápida evolución en tecnología de semiconductores. Los primeros programas de ajedrez corrían en máquinas que utilizaban memorias de base magnética. A inicios de 1970 aparecen las memorias realizadas en base a semiconductores utilizadas en la serie de computadoras IBM 370. Así como la velocidad de los computadores se incrementó en un factor de aproximadamente 100.000, la capacidad de memoria creció en una proporción similar. Este hecho es particularmente importante en programas que utilizan tablas de transposición. A medida que aumenta la velocidad de la computadora memorias de capacidad proporcionalmente mayor son necesarias para mantener la cantidad extra de posiciones que son buscadas.

Tamaño de Palabras

El tamaño de palabras de bits ha logrado crecimientos bastante importantes sobretodo a nivel de pequeñas computadoras. Los procesadores Intel 80386 y 80486 están basados en palabras de 32 bits. En el otro extremo se utilizaron palabras de largo 64 bits, diseñadas especialmente para máquinas de ajedrez dado que el tablero, para buena fortuna de los programas ajedrecistas, posee exactamente 64 casillas. Palabras de largo aún mayor significaría que una mayor cantidad de información puede trasladarse dentro de la computadora en un ciclo de reloj pero su implementación es algo que involucra mucho costo. No es probable el que en el futuro las computadoras usen palabras de tamaño mayor a los 64 bits, pero se puede predecir que tendrán mayor capacidad de flexibilidad en la manipulación de palabras de rango 1 a 64 bits.

Computadoras de menor tamaño

Computadoras que en alguna ocasión ocupaban una pieza completa ahora ocupan sólo un escritorio siendo considerablemente más poderosas que las anteriores. Las unidades de proceso de las primeras computadoras de ajedrez ocupaban varias cabinas de tubos de vacío ocupando grandes volúmenes. Los microprocesadores de hoy en día ocupan menos de una pulgada siendo mucho mas poderosos.

Hardware Dedicado

El hardware de propósito especial para máquinas que jugasen ajedrez apareció por vez primera a mediados de los 70 iniciando un rápido proceso de sofisticación y mejoras. El primero de estos sistemas fue diseñado utilizando componentes que podrían ser clasificados como circuitos integrados de mediana escala. Cada chip estaba constituido por 10 a 100 componentes lógicas. Los circuitos más recientes han sido diseñados con tecnología VLSI. Uno de los ejemplos más populares fue el diseño de la computadora Deep Thought, la cual tanto en su generador de movimientos y función de evaluación poseían componentes a nivel de Hardware.
El programa OSTRICH fue el primero en participar en una competencia oficial de computadoras utilizando esta tecnología. Cinco computadoras serie Data General 16-bit Nova estaban conectadas mediante un paquete de comunicación de alta velocidad. En años subsiguientes 8 computadoras DG fueron utilizadas logrando un incremento de la velocidad de cálculo en un orden 5. Otros programas famosos que utilizaron multiproceso fueron CRAYBLITZ (1983 y 1984, procesador CRAY X-MP, 2 y 4 procesadores), CHESS CHALLENGER (1986, 20 microprocesadores 8086) y Deep Thought (1989, 3 procesadores de tecnología SUN y VLSI). DeepBlue para su match contra Kasparov utilizó un total de 2 frames RS6000 SP albergando 15 computadoras RS/6000 cada uno. Cada nodo contenía dos circuitos de ajedrez con 8 procesadores cada uno, lo que otorga en total 8x2x15x2 = 480 procesadores en el sistema completo.
Avances en Software SOFWARE 

Generador de Movimientos

La forma inicial de programar un generador de movimientos fue el generar mediante fórmulas matemáticas los movimientos legales de cada pieza sobre el tablero, obteniendo todas las posibilidades con tal de entregárselas como una lista al software de búsqueda. Esta propuesta fue mencionada por vez primera en el paper de Shannon [68] y se aplicó a prácticamente todos los programas de la época.

La idea inicial fue el que el programa generara sólo los mejores movimientos con tal de reducir drásticamente el árbol de variantes (estrategia "B", según la nomenclatura dada por Shannon) pero los resultados distaron de ser positivos puesto que el problema principal relacionado con este proceso fue que en las búsquedas en profundidad esta forma de generar los movimientos tomaba un tiempo excesivo, lo cual hacía muy lento el proceso global, motivo por el cual se buscaron otras formas de programar la generación de movidas en base a operaciones que la computadora pudiese realizar más rápidamente.

Sólo hasta principios de 1970 (gracias a la presencia de hardware y ambientes de desarrollo de mayor capacidad) se utilizó la técnica de los mapas de bits (bit-boards)la cual significó un gran avance en este proceso del juego de la máquina dado que se redujo la complejidad de operaciones a aquellas que son básicas para la máquina. A pesar de este avance, era clara la necesidad de implementar fuera del software esta función del programa, dado que la necesidad de hacer búsquedas más rápidas y profundas se basaba en un generador de alta velocidad, cosa que era muy difícil lograr a nivel de hardware.

Las mejoras en esta función del programa vinieron principalmente del lado del desarrollo de hardware específico para la generación de movimientos. En 1977 el programa "Belle" fue el primero en utilizar circuitos digitales para la generación de movimientos logrando aumentar su velocidad de búsqueda de 200 a 160.000 posiciones por segundo. El generador utilizado en Belle sirvió como punto de partida para máquinas más poderosas. El computador que derrotó a Kasparov en 1997, DeepBlue, tenía 30 procesadores IBM RS-6000 SP acoplados a 480 chips. Esta máquina fue capaz de lograr velocidades computacionales de 200 millones de posiciones por segundo.

Técnicas de Búsqueda

Las técnicas de búsqueda en el ajedrez han sido probablemente la parte más desarrollada en términos de investigación para la mejora de algoritmos dentro del proceso del juego. Es acá en donde el programa realiza el mayor esfuerzo en recolectar información suficiente para decidir por un movimiento.

Los algoritmos desarrollados para este fin han sido variados. La primera propuesta, presentada por Shannon, fue la búsqueda por fuerza bruta a profundidad fija, examinando todas las continuaciones posibles hasta cierto límite de movimientos. Esta búsqueda se realizaría mediante el algoritmo Minimax.

Hasta principios de los 70 los programas de ajedrez seguían basándose en los modelos de Shannon para realizar su proceso de búsqueda. Hasta ese momento el diseño de programas de ajedrez se focalizaba principalmente en el orden de los movimientos con tal de lograr la mejor "poda" de variantes: jaques, capturas, "movidas asesinas", amenazas y avances de peones pasados. Categorizando los movimientos en distintos grupos mediante amenazas tácticas (de corto plazo) o estratégicas (de largo plazo) se podía asegurar el que las variantes "forzadas" serían analizadas primero. Esta técnica lograba generar cortes o reducciones en el árbol de búsqueda para aquellas variantes que se clasificaban como innecesarias de analizar.

Función de Evaluación

Las primeras propuestas de función de evaluación estaban orientadas a tener una evaluación estática de la posición basada fundamentalmente en el concepto de material. Rápidamente se captó que esta evaluación no era suficiente, considerando que en el ajedrez existen factores estructurales los cuales afectarán a largo plazo el curso de la partida, por lo cual es muy probable que el programa no encuentre las consecuencias de esta situación en su búsqueda en profundidad. Estos aspectos, denominados "Posicionales" debieron incluirse en la función de evaluación.

Los primeros programas incluyeron algunos parámetros posicionales básicos, los cuales tenían un peso importante en la evaluación de la posición pero no igualable al peso que poseía el factor de material. El problema entonces de dar un adecuado "peso" a cada parámetro de la función de evaluación, y en qué momento de la partida darlo a uno u otro parámetro constituía un problema denominado carencia de "conocimiento ajedrecístico" cuya solución estaba en captar las impresiones de los jugadores humanos "expertos" y asimilarlas en el programa.

La inclusión de un mayor "conocimiento ajedrecístico" en los programas fue logrado mediante el trabajo conjunto entre programadores y maestros de ajedrez. Desafortunadamente, costó bastante el poder combinar de manera eficiente una idea de función de evaluación lo más completa posible con la mayor cantidad de parámetros de medición, pero a la vez muy rápida en su capacidad de cálculo.

HERRAMIENTAS DE UN TECNICO EN COMPUTADORES

Herramientas que todo técnico de computación debe tener



En todo el mundo hay técnicos de técnicos: los buenos, los malos, los mejores, etc. Aquí pretendo crear un espacio donde podamos ir agregando material para que todos seamos excelentes en el área. Nada es definitivo, por tanto las sugerencias y comentarios serán bienvenidos.

(Actualizado 15/12/10)

A continuación expongo la lista de herramientas básicas que todo técnico de soporte a computadores debería tener. Y si no las tienes aquí te indicaré como conseguirlas. Si tienes una herramienta excelente y no está aquí, pues déjala en el comentario que yo iré editando para completar la lista.

Herramientas Hardware:


No es mi intención hablar de marcas, cual es mejor o peor. Las imágenes son simplemente referenciales. Hablemos de las herramientas:

  • Juego de destornilladores: estria, plano, estrella, de todos los tamaños. Con punta magnetizada y normal. También recomiendo uno inalámbrico recargable, son excelentes para trabajos continuos.
  • Pinzas: siempre pasa que se cae un tornillo donde no debe.
 
  • Brazalete antiestático: si siempre se te pasa tocar el chasis para descargar tu carga estática o simplemente quieres ir por lo seguro, no te debe faltar.

  • Soplador: para limpieza del polvo es lo máximo, hay que recordar que se debe usar tapa bocas siempre que uses el soplador para remover el polvo de una PC. NOTA: cuidado con la sopladora, en algunos casos son de mucha presión y pueden dañar un computador, jamas usen un compresor (bomba de aire a presión).
  • Brocha: para limpiar esos sitios que el soplador no logro remover. De igual manera recomiendo el tapa bocas y cuidado al usar la brocha con componentes delicados como la tarjeta madre.
  • Kit de herramientas para redes: Pinza de impacto (ponchadora), Crimpeadora, probador de cables, pela cables, Alicate de corte, conectores RJ45.
  • Probador de Fuentes de Poder: herramienta que te permite descartar fallas en la fuente de un computador. Es mejor que cargar con una fuente de repuesto encima para pruebas. Recientemente adquirí el Coolmax tester y es mucho mas funcional y especifico que el anterior genérico que tenia, he desechado un lote de fuentes dañadas que tenia gracias a esta herramienta.
  • Switch KVM: si realizas trabajos en tu casa o tienes un área fija de trabajo, esta herramienta no te puede faltar, simplifica las conexiones (asi parezca lo contrario), redices espacios ya que con un solo monitor, teclado y mouse operas mas de un equipo mediante un switch. Además puedes realizar trabajos simultáneos. En mi experiencia recomiendo los usb ya que son plug&play, se conecta casi en cualquier momento al realizar el cambio.

  • Agenda digital o cuaderno: indispensable para llevar la lista y organización de clientes.

  • Convertidor IDE/SATA a USB: Muy importante esta herramienta, te permite hacer descarte de los puertos IDE/SATA de una tarjeta madre o un cable defectuoso, realizar respaldos de manera rápida y es bastante cómodo para transportar (y no es costoso).


  • Disco duro externo portátil: Aunque no es una herramienta muy económica ciertamente te puede ahorrar horas de trabajo, así como salvar el día. De vez en cuando nos toca aquel computador en que el disco duro esta pidiendo auxilio y aquí es cuando el disco portátil nos ayuda a respaldar esa data. Una idea para no tener que gastar mucho en un disco externo es comprar una caja externa IDE y usar algún disco duro IDE que nos sobre.
  • Pen drive: Usualmente nos hace falta algún programa por instalar o alguien tiene una mejor versión, es posible realizar respaldos pequeños o cargar cualquier información para el trabajo. Esta es la herramienta portátil mas flexible para llevar datos, aunque propensa a dañarse mas rápida que un disco duro. No debería faltar en nuestras herramientas.

  • Linterna Portátil LED: en ocasiones nos cuesta observar la posición del pin de la memoria, los puertos IDE o SATA de una tarjeta madre o simplemente examinar un computador desde una posición incomoda. El uso de una linterna puede evitarte graves accidentes.


  • Herramienta Multiuso: ¿te ha pasado que no traes las herramientas porque saliste apurado? Bueno a mi si. Afortunadamente siempre cargo una de estas herramientas que me ha salvado como mil veces y no únicamente arreglando computadoras. No necesariamente tienen que comprar las de marca que son costosas, en las tiendas por departamentos venden unas económicas y por lo menos a mi me han funcionado.
  • Switch o Router: en este punto no voy a debatir la marca ni modelo. Cabe aclarar que aunque es un complemento para que las computadoras se comuniquen entre si, pero también nos sirve como herramienta que en el área de trabajo no debe faltar. En ocasiones hay que probar puertos de red, conexiones inalambricas, es otro método de realizar respaldos, podemos poner a prueba un equipo navegando por Internet o la red local, etc. 
  • Pasta Térmica (Grasa siliconada, térmica): Gracias a nuestro colega Juan Jose Fanina, me recordó un elemento muy importante cuando se trata de mantenimiento de computadores, sobretodo al reemplazar un procesador. La pasta térmica incrementa la conducción de calor entre le procesador y fan cooler. Esto nos evitara el recalentamiento inusual del procesador.
  • Tornillos y Jumpers: siempre es necesario como técnico cargar con unos cuantos tornillos de las diferentes dimensiones porque sucede que estos pequeñines son muy escurridizos, también sucede que encontramos que faltan tornillos en lugares importantes (tornillo que sujeta el disco duro). Los Jumpers son necesarios para la configuracion de las unidades IDE bien sea para principal o secundario. Aunque con las unidades SATA esto ya no ocurre, las tarjetas madres poseen este tipo de conector que en el momento menos esperado nos puede faltar. No hace falta tener un saco con estos elementos pero si por lo menos para salir del apuro.
  • Bolso: Nadie se ha preguntado ¿Donde pensarán meter todas estas herramientas? Pues normalmente en un bolso tipo maletín, algunos prefieren los de mochila, pero ya es cuestión de gustos. En mi caso tengo desde cajas de herramientas, maletín y bolso. Procuro que sean de buena calidad porque ya me ha pasado que cualquier bolso no aguanta el trote. Como consejo para no cargar siempre con todos los bolsos, herramientas, trato de cuadrar el trabajo a realizar para saber que tengo que llevar, si por ejemplo es un mantenimiento normalmente cargo el soplador y las herramientas en el bolso tipo mochila, si tengo que hacer solo instalaciones llevo mi maletín, etc.
  • Área de Trabajo: es muy común que los técnicos seamos desordenados (yo lo soy), en mi hogar, tuve que habilitar un espacio exclusivo para tener todos los equipos, repuestos, discos y cuanta parafernalia computacional encontré. En los trabajos, las áreas deben ser lo mas productiva posible, el uso de KVM's nos permite ganar espacio y tiempo, gaveteros y cajones para organizar repuestos y herramientas. Consejar todo ordenado nos dará mayor productividad.
Herramientas Software:
Yo, particularmente tengo un estuche con CDs y DVDs, adicionalmente cargo mi Pendrive de 4 gb donde cargo actualizaciones de programas que no están en los discos. En este caso si podemos ser mas específicos ya que pueden ser determinantes en cuanto al tiempo que nos podemos ahorrar:

  • Windows Desatendidos: Con estos sistemas operativos te puedes ahorrar horas de trabajo, si es posible crea tu propio desantendido. Son una maravilla por integrar la mayoría de las aplicaciones mas comunes para casi todos los usuarios: nero, msn, mozilla, winrar, office, etc. Por ahora estoy utilizando la modificación de BJ por Guanaco 2009.1 . (Actualizado 03/10/10)Ya cree mi propia versión, por los momentos esta en prueba. Estoy utilizando una versión RTM de Windows 7 que contiene todas las versiones tanto 32 como 64 bits, me ha ido bien, con ocasionales sorpresas, como siempre windows nos colabora dándonos trabajo.
  • Hirens Boot CD: aqui encuentras de todo: reparar discos, particionar, imagen, reataurar claves... la lista es interminable, por eso es una excelente utilidad, si es posible intégralo a tu DVD con el windows desatendiodo.
  • Discos de Drivers: te pueden ahorrar el trabajo de tener que descargar los drivers. Aunque también con el disco de Hirens se hacen respaldos, es cuestión de gustos.
  • Wusus Offline (antes ctupdate): para descargar actualizaciones e instalarlas offline. Puedes usar un DVD regrabable y este programa te crea una ISO con todo lo que necesites de windows update. Ahora también permite exportar a pendrive.
  • Virtual Box y VmWare Workstation: siempre es bueno realizar pruebas antes de lanzarse con el usuario final, con estos programas creas maquinas virtuales y puedes realizar pruebas. Recientemente he cambiado a Virtual Box ya que cambien mi PC personal a SO 64 bits, responde de manera mas eficiente, cargando menos aplicaciones en el arranque en comparación con el VmWare.
  • Discos de Linux: Live CD de Knoppix es una buena herramienta si con windows no puedes dar con la solución.
  • R Studio: si bien el disco de Hirens hay toda clase de aplicaciones para recuperar datos, este pequeño programa me ha sacado los pies del barro. No pesa nada y recupera lo que el Ontrack nunca logro. Por tanto es un recomendado.
  • Google: si esta Internet disponible, el que todo lo sabe... jeje. Si se sabe utilizar generalmente se consigue respuesta al problema desconocido.
  • Logmein Free: para quienes realizan soporte remoto Logmein es un programa muy sencillo de utilizar y configurar, no requiere de configuraciones para la conexión (salvo que se use proxy). Dado que la aplicación utiliza el puerto 80 de Internet prácticamente no me ha dado problemas para dar asistencia. Solo requiere registro y ocasional publicidad en e-mail.

No hay comentarios:

Publicar un comentario