Unidad 3: hardware computacional

 Concepto de hardware

El hardware es la parte física de un ordenador o sistema informático, está formado por componentes eléctricos , electrónicos y mecánicos.Cualquier parte del equipo como llaves , cerraduras,cadenas y piezas de la computadora en sí , se llama hardware .



  

Unidades de información y procesamiento


Las unidades de procesamiento son una forma de medir el consumo de recursos de sitios y aplicaciones dentro de la estructura Grid. Esto nos da la idea de cuan "pesado" es un sitio web
o una aplicación. 

                  Fundamentos de bit, byte y sus derivados

 Bit: es la unidad mínima de la información empleada en la informática, en cualquier dispositivo digital. puede representar dos valores 0, 1.

Vamos a hablar de 10 múltiplos:

KiloByte (KB)
MegaByte (MB)
GigaByte (GB)
TeraByte (TB)
PetaByte (PB)
ExaByte (EB)
ZetaByte (ZB)
YotaByte (YB)
XentaByte (XB)
WektaByte (WB)

KiloByte
1 024 Bytes = 2^10

MegaByte
1 024 KB
1 048 576 Bytes = 2^20

GigaByte
1 024 MB
1 048 576 KB
1 073 741 824 Bytes = 2^30



TeraByte

1 024 GB
1 048 576 MB
1 073 741 824 KB
1 099 511 627 776 Bytes = 2^40


PetaByte

1 024 TB
1 048 576 GB
1 073 741 824 MB
1 099 511 627 776 KB
1 125 899 906 842 624 Bytes = 2^50


ExaByte

1 024 PB
1 048 576 TB
1 073 741 824 GB
1 099 511 627 776 MB
1 125 899 906 842 624 KB
1 152 921 504 606 846 976 Bytes = 2^60


ZetaByte

1 024 EB
1 048 576 PB
1 073 741 824 TB
1 099 511 627 776 GB
1 125 899 906 842 624 MB
1 152 921 504 606 846 976 KB
1 180 591 620 717 411 303 424 Bytes = 2^70


YotaByte

1 024 ZB
1 048 576 EB
1 073 741 824 PB
1 099 511 627 776 TB
1 125 899 906 842 624 GB
1 152 921 504 606 846 976 MB
1 180 591 620 717 411 303 424 KB
1 208 925 819 614 629 174 706 176 Bytes = 2^80


XentaByte

1 024 YB
1 048 576 ZB
1 073 741 824 EB
1 099 511 627 776 PB
1 125 899 906 842 624 TB
1 152 921 504 606 846 976 GB
1 180 591 620 717 411 303 424 MB
1 208 925 819 614 629 174 706 176 KB
1 237 940 039 285 380 274 899 124 224 Bytes = 2^90


WektaByte

1 024 XB
1 048 576 YB
1 073 741 824 ZB
1 099 511 627 776 EB
1 125 899 906 842 624 PB
1 152 921 504 606 846 976 TB
1 180 591 620 717 411 303 424 G
1 208 925 819 614 629 174 706 176 MB
1 237 940 039 285 380 274 899 124 224 KB
1 267 650 600 228 229 401 496 703 205 376 Bytes = 2^100

Y a la vez, 1 Byte son 8 bits (8 ceritos o unos).

Hertz y sus múltiplos


Los microprocesadores manejan velocidades de proceso de datos en el sistema, y eso se llama Hertz. Esta velocidad es la velocidad de reloj y a medida que va subiendo el nivel de velocidad, es mejor el rendimiento del microprocesador.

Entonces, cuando en una publicidad de una computadora que diga que tiene un microprocesador por ejemplo de 3.1 Ghz, quiere decir que esa es su velocidad de procesamiento.

La velocidad de un procesador se mide en Hertz y, mientras mayor es el número de hertz con que trabaja la computadora, tiene mayor velocidad en los procesos. En realidad, los megahertz y los Gigahertz indican la velocidad del reloj interno que posee todo microprocesador. Éste establece el número de pulsos que se efectúan en cada segundo. Cuanto mayor sea el número de pulsos, mayor será la velocidad del microprocesador.

Hertzio (Hz):
Unidad de medida de la frecuencia electromagnética. Se utiliza para medir la velocidad de los procesadores. Equivale a un ciclo por segundo. En informática se utiliza para dar una idea de la velocidad del microprocesador, indicando cual es la frecuencia de su clock (componente de los microprocesadores que genera una señal cuya frecuencia es utilizada para enmarcar el funcionamiento del procesador: a mayor frecuencia mayor velocidad).

Megahercio (Mhz): Unidad de medida de frecuencia. Su unidad base es el hercio. En los procesadores expresa el número de pulsos eléctricos desarrollados en un segundo (Mega=millón). Sus múltiplos empleados son el Gigahercio (Ghz) y el Terahercio (Thz).

Gigahercio (Ghz): Unidad de medida de frecuencia múltiplo del hercio que equivale a mil millones de hercios.


Terahercio (Thz): Unidad de medida de frecuencia múltiplo del hercio que equivale a un billón de hercios. Otros múltiplos superiores serían el Petahercio (Phz), el Exahercio (Ehz) y el Zetahercio (Zhz) hoy por hoy no utilizados.

Estándares de codificación

Justificación

La forma de escribir código es propia de cada programador y completamente diferente a la forma de cualquier otro. De la forma usada depende la facilidad para entender el código y retomar ciertas partes realizadas por otros integrantes, así como la depuración de las mismas.
A continuación se enumeran las normas a seguir en la codificación, junto con ejemplos, así como las justificaciones de los mismos.
Por último señalar que casi todas las reglas de codificación aquí empleadas se basan en el estándar de GNOME, definido en el documento ``GNOME programming guidelines'', que, a día de hoy, puede encontrarse en
http://developer.gnome.org/doc/guides/programming-guidelines.

Normas de codificación


                                                               Generales

Todo el código para este sistema se desarrollará en lenguaje C, usando la librería Glib 2.0. Así pues, se recuerda que todos los tipos usados en el código deben ser los proporcionados por Glib (esto es, a modo de ejemplo, se usará gint y gchar, en lugar de int y char).
Además, las librerías de desarrollo para entorno gráfico usadas serán las de Gnome 2.0.

                                                               Indentación

Todo el código desarrollado tendrá una indentación de 8 espacios. Esta indentación es la utilizada en el kernel de linux.
Un ejemplo de indentación correcta es el siguiente:
        while (( i < longitud) && (!encontrado) ) {

                // Obtenemos la lista de la posicion i
                lista_aux = g_list_nth (lista_listas, i);
                
                // Selecionamos el primer elemento de cada lista de dentro de la lista.
                particion = (TipoEspacioUsuario *) ((GList *) lista_aux->data)->data;

                if (! strcmp (particion->particion->str, usuario->particion->str)) {
                        encontrado = TRUE;
                }else
                        i++;
        }
Y un mal ejemplo es el siguiente:
        while (( i < longitud) && (!encontrado) ) {

         // Obtenemos la lista de la posicion i
         lista_aux = g_list_nth (lista_listas, i);
               
         // Selecionamos el primer elemento de cada lista de dentro de la lista.
         particion = (TipoEspacioUsuario *) ((GList *) lista_aux->data)->data;

         if (! strcmp (particion->particion->str, usuario->particion->str)) {
           encontrado = TRUE;
         }else
           i++;
        }
La razón principal de tener una buena indentación es que solo necesitas un primer vistazo para ver la estructura general del código.
Además, usando indentación a 8 espacios, si el código comienza a extenderse a la derecha más de lo debido, por ejemplo por anidación de bucles o estructuras de control, probablemente esto significa que debe rescribirse el código de una manera más legible.

                                                          Nombrado de los símbolos

Es interesante seguir un buen nombrado para las funciones para así evitar usar nombres establecidos en otras partes, además de facilitar la lectura del código.
Las funciones tienen que seguir el siguiente esquema de nombrado:
modulo_submodulo_nombre_funcion ().
Un buen ejemplo de esto es el siguiente:
        gchar * rule_conf_obtener_dato (gchar * clave, EnumRuleConf tipo);
Y un mal ejemplo sería:
        gchar * rcobdato (gchar * c, EnumRuleConf t);
Las funciones se escriben en minúsculas y separados con guiones de suelo, y los argumentos que reciben son descriptivos.
Los elementos que componen un tipo enumerado van escritos en mayúsculas y con guiones de suelo, así como las macros.
       typedef enum {RULE_CONF_GENERAL, 
                     RULE_CONF_CLIENT, 
                     RULE_CONF_SERVER} EnumRuleConf;
Por otro lado, los tipos definidos por los programadores van escritos con la primera inicial de cada palabra que lo conforme en mayúscula y el resto en minúscula, juntando todas las palabras. Por ejemplo EnumRuleConf.Además, para las funciones o variables internas de una librería y que no van a ser exportadas, sería interesantes seguir el mismo esquema de nombrado pero anteponiendo dos guiones de suelo, dejando claro así, que es una función de uso interno y evitando que el nombre de función colisione con otro símbolo definido fuera.
        gchar * __rule_report_obtener_fecha_actual ()
Por último, a la hora de elegir nombres para las variables, estos tienen que ser descriptivos y tener una relación con la función que desempeñan. Por tanto, los nombres es mejor que sean largos y descriptivos como: tiempo_en_segundos o lista_de_listas en lugar de t o l.
Comentario de código

Todas las funciones tienen que estar documentadas explicando que realiza cada un de ellas. Para ello se utilizará el estandar de documentación de gnome. Más tarde se usará la herramienta gtk-doc, que generará la documentación de todas las funciones desarrolladas.
El formato de documentación tiene la siguiente forma:
    /**
     * nombre_funcion:
     * @par1:  descripción del parámetro 1
     * @par2:  descripción del parámetro 2
     *
     * Descripción de la función.  Puede incluir referencias a los parámetros
     * como @par1 y su fuente será ajustada correctamente en la salida.
     * Las constantes pueden ser referidas como %constante
     * 
     * valor de retorno: un entero y su descripción
     */
     int function_name (int par1, char * par2)
     {
     }
Dentro del paquete gnome-libs se incluye la herramienta gnome-doc.el que es un script para emacs que facilita los comentarios de las funciones. Para instalarlo simplemente añadir la siguiente línea al fichero .emacs:
        (load-file "/ruta_al_script/gnome-doc.el")
Para invocar al script, hay que situarse dentro de la función a comentar y usar C-x 4 h.Por otro lado, a lo largo de todo el código deben aparecer comentarios indicando su funcionalidad.
A la hora de documentar el código realizado, un buen ejemplo sería el siguiente:
        // Creamos el informe final
        cadena_aux2 = g_string_new (NULL);
        g_string_sprintf (cadena_aux2, "%s/resultado-%s.tex", dir_final, fecha);

        informe_rule = rule_report_new (cadena_aux2->str);

        // Cargamos los modulos instalados en el sistema
        modulos_servidor = rule_module_cargar (RULE_MODULES_SERVER);
                
        // Ejecutamos todos los módulos que sean de tipo servidor.
        while ((manejador = rule_module_siguiente (modulos_servidor))) {
                        
                // Generamos la sección latex resultado.
                seccion_resultado = manejador (dir_final);
                        
                rule_report_add_section (informe_rule, seccion_resultado);
                
        }

        // Cerramos el informe. Todo el latex ya está escrito.
        rule_report_end (informe_rule);
Y un mal ejemplo es el siguiente:
        g_string_sprintf (cadena_aux2, "%s/resultado-%s.tex", dir_final, fecha);
        
        informe_rule = rule_report_new (cadena_aux2->str);

        modulos_servidor = rule_module_cargar (RULE_MODULES_SERVER);
                
        while ((manejador = rule_module_siguiente (modulos_servidor))) {
                        
                // Generamos la sección latex resultado.
                seccion_resultado = manejador (dir_final);
                        
Las razones de comentar el código son que facilitan el trabajo de entender lo escrito, no solo a otros programadores, sino tambíen al programador que lo escribió.
Por otra parte, escribir código que está siendo documentado te evidencia que el programador tiene una idea clara de lo que hay que escribir. Si no se tiene claro lo que comentar, es probable que no se tenga claro lo que hay que escribir.
En este punto, tal vez, se debería de dedicar tiempo a pensar más detenidamente qué es lo que se va a realizar.
                rule_report_add_section (informe_rule, seccion_resultado);
                
        }
        rule_report_end (informe_rule);

                                                            Espacio dentro del código

Es muy importante que a la hora de escribir código, se dejen los espacios de separación entre los elementos para poder leer con soltura. Un buen ejemplo sería el siguiente:
       // Creamos el usuario con los datos obtenidos
       usuario = g_new(TipoEspacioUsuario, 1);

       usuario->nombre = g_string_new ("Ficheros de sistema");
       usuario->particion = g_string_new (cadena_aux);
       usuario->espacio = espacio_acumulado;

       lista_part = g_list_append (lista_part, usuario);
Y un mal ejemplo sería el siguiente:
       // Creamos el usuario con los datos obtenidos
       usuario=g_new(TipoEspacioUsuario,1);
       usuario->nombre=g_string_new("Ficheros de sistema");
       usuario->particion=g_string_new(cadena_aux);
       usuario->espacio=espacio_acumulado;
       lista_part=g_list_append(lista_part,usuario);
La razón es obvia. El código sin espacios es completamente ilegible.
No debe ser causa de preocupación el meter espacios en el código, además de espacios entre las líneas mismas de código. El código compilado final va a ocupar lo mismo, por tanto es preferible agrupar líneas de código que tiene que ver con una acción y meter espacios para dar claridad al código.
Mientras más legible sea el código, más se ahorrará en tiempo de depuración y en la extensión del mismo.
                                                                  Código robusto

Hay que conseguir que el código desarrollado sea robusto, especialmente en librerías. Se tienen que comprobar todos los datos, para que en caso de mal uso de la librería que se está desarrollando, no se rompa de manera inesperada. Para ello, todas las funciones tendrán la siguiente estructura:
        tipo_a_devolver nombre_funcion (argumentos) 
        {
                g_return_val_if_fail (condicion, valor);

                return valor_a_devolver
        }
Y para el caso de funciones void.
        void nombre_funcion (argumentos) 
        {
                g_return_if_fail (condicion);

                return valor_a_devolver
        }
Las funciones g_return_val_if_fail y g_return_if_fail se utilizarán para comprobar si los datos enviados son correctos. Así tendremos una llamada a estas funciones por cada condición que se desee comprobar antes de ejecutar el código de la función.
Por otro lado, existirán partes dentro del código que no deberían ser alcanzables o condiciones que tienen que cumplirse para el correcto funcionamiento. Por tanto se debe de utilizar:
        g_assert (condicion);
para comprobar condiciones de ejecución, y:
        g_assert_not_reached ();
para comprobar que el código no llega a zonas a las que no debería llegar.

Clasificación del hardware típico de una pc

                                                 
El típico hardware que compone una computadora personal es el siguiente:

Su chasis o gabinete o case
La placa madre, que contiene: CPU, cooler, RAM, BIOS, buses (PCI, USB, HyperTransport, CSI, AGP, etc)
Fuente de alimentación
Controladores de almacenamiento: IDE, SATA, SCSI
Controlador de video
Controladores del bus de la computadora (paralelo, serial, USB, FireWire), para conectarla a periféricos
Almacenamiento: disco duro, CD-ROM, disquetera, ZIP driver y otros
Tarjeta de sonido
Redes: módem y tarjeta de red

El hardware también puede incluir componentes externos como:

Teclado
Mouse, trackballs
Joystick, gamepad, volante
Escáner, webcam
Micrófono, parlante
Monitor (LCD, o CRT)
Impresora
Distintas clasificaciones del hardware

Clasificación por la funcionalidad del hardware

Hardware básico: dispositivos necesarios para iniciar la computadora. Los más básicos son la placa madre, la fuente de alimentación, el microprocesador y la memoria. Se podrían incluir componentes como monitor y teclado, aunque no son estrictamente básicos.
Hardware complementario: aquellos dispositivos que complementan a la computadora, pero que no son fundamentales para su funcionamiento, como ser, impresora, unidades de almacenamiento, etc.




 Dispositivos de entrada y salida 


Las computadoras electrónicas modernas son una herramienta esencial en muchas áreas: industria, gobierno, ciencia, educación,..., en realidad en casi todos los campos de nuestras vidas.
El papel que juegan los dispositivos periféricos de la computadora es esencial; sin tales dispositivos ésta no sería totalmente útil. A través de los dispositivos periféricos podemos introducir a la computadora datos que nos sea útiles para la resolución de algún problema y por consiguiente obtener el resultado de dichas operaciones, es decir; poder comunicarnos con la computadora.
La computadora necesita de entradas para poder generar salidas y éstas se dan a través de dos tipos de dispositivos periféricos existentes:
• Dispositivos periféricos de entrada.
• Dispositivos periféricos de salida.

DISPOSITIVOS:
Los dispositivos son regímenes definibles, con sus variaciones y transformaciones. Presentan líneas de fuerza que atraviesan umbrales en función de los cuales son estéticos, científicos, políticos, etc. Cuando la fuerza en un dispositivo en lugar de entrar en relación lineal con otra fuerza, se vuelve sobre sí misma y se afecta, no se trata de saber ni de poder, sino de un proceso de individuación relativo a grupos o personas que se sustrae a las relaciones de fuerzas establecidas como saberes constituidos.

LOS DISPOSITIVOS DE ENTRADA/SALIDA:
Son aquellos que permiten la comunicación entre la computadora y el usuario.
DISPOSITIVOS DE ENTRADA:
Son aquellos que sirven para introducir datos a la computadora para su proceso. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los dispositivos de entrada convierten la información en señales eléctricas que se almacenan en la memoria central.
Los dispositivos de entrada típicos son los teclados, otros son: lápices ópticos, palancas de mando (joystick), CD-ROM, discos compactos (CD), etc. Hoy en día es muy frecuente que el usuario utilice un dispositivo de entrada llamado ratón que mueve un puntero electrónico sobre una pantalla que facilita la interacción usuario-máquina.

DISPOSITIVOS DE SALIDA:
Son los que permiten representar los resultados (salida) del proceso de datos. El dispositivo de salida típico es la pantalla o monitor. Otros dispositivos de salida son: impresoras (imprimen resultados en papel), trazadores gráficos (plotters), bocinas, entre otros...

ALMACENAMIENTO.


El almacenamiento es la manera de cómo se guarda información en una computadora, existen dos formas de almacenar información, una de ellas es el Almacenamiento Primario, en el cual interviene la memoria de la computadora, ya que es el espacio que tenemos disponible para guardar toda la información que introducimos; siempre y cuando tenga un suministro constante de energía eléctrica, ya que de no ser así toda esa información se pierde.

En este tipo de almacenamiento intervienen los SIM Y DIM dispositivos que nos permiten ampliar la capacidad de memoria de nuestro equipo:
PC. Almacenamiento primario y secundario
El otro tipo es el Almacenamiento Secundario, el cual consiste en almacenar la información en forma permanente hasta que el usuario lo requiera, para ello nos debemos de auxiliar de algunos dispositivos de almacenamiento como son:

- Disquetes.
- Discos compactos.
- Discos duros.
- Cintas magnéticas.
- Memorias portátiles
- Etc.

    Bus de datos , bus de direcciones y control


Un bus de datos es un dispositivo mediante el cual al interior de una computadora se transportan datos e información relevante.

Para la informática, el bus es una serie de cables que funcionan cargando datos en la memoria para transportarlos a la Unidad Central de Procesamiento o CPU. En otras palabras, un bus de datos es una autopista o canal de transmisión de información dentro de la computadora que comunica a los componentes de dicho sistema con el microprocesador. El bus funciona ordenando la información que es transmitida desde distintas unidades y periféricos a la unidad central, haciendo las veces de semáforo o regulador de prioridades y operaciones a ejecutar.

 Su funcionamiento es sencillo: en un bus, todos los distintos nodos que lo componen reciben datos indistintamente, aquellos a los que estos datos no son dirigidos los ignoran y, en cambio, aquellos para los cuales los datos tienen relevancia, los comunican.
Desde el punto de vista técnico, un bus de datos es un conjunto de cables o conductores eléctricos en pistas metálicas sobre la tarjeta madre o "mother" del ordenador. Sobre este conjunto de conductores circulan las señales que conduce los datos.

Existen distintos tipos de buses. El bus de direcciones, por ejemplo, vincula el bloque de control de la CPU para colocar datos durante procesos de cómputo. El bus de control, por otro lado, transporta datos respecto de las operaciones que se encuentra realizando el CPU. El bus de datos propiamente dicho, transporta información entre dispositivos de hardware como teclado, mouse, impresora, monitor y también de almacenamiento como el disco duro o memorias móviles.

En diferentes tipos de ordenadores se emplean diversos tipos de buses. Para PC, por ejemplo, son comunes el PCI, ISA, VESA, MCA, PATA, SATA y otros como USB o Firewire. En Mac, en cambio, se utilizan los mismos u otros como el NuBus.
     

Puertos



En informática, un puerto es una interfaz a través de la cual se pueden enviar y recibir los diferentes tipos de datos.

La interfaz puede ser de tipo física (hardware) o puede ser a nivel lógico o de software, en cuyo caso se usa frecuentemente el término puerto lógico (por ejemplo, los puertos de redes que permiten la transmisión de datos entre diferentes computadoras).

Puertos externos de una placa base de una computadora:

(1) conector Mini-DIN 6 para puerto PS/2 (verde) de mouse.
(2) conector Mini-DIN 6 para puerto PS/2 (violeta) de teclado.
(3) conector registered jack para puerto RJ-45 de red Ethernet.
(4) dos puertos Universal Serial Bus (puerto serie) para conector USB tipo A hembra.
(5) conector D-sub (DE-9M) para puerto COM (comunicaciones).
(6) conector D-Sub (DB-25H) para puerto LPT (impresoras antiguas).
(7) conector D-Sub (DE-15H) para puerto VGA.
(8) conector D-Sub (DA-15H) para puerto MIDI.
(9) tres conectores jack de 3,5 mm para entrada/salida de audio (como altavoces, micrófono, parlantes, auriculares, etc).
Se denomina “puerto lógico” a una zona o localización de la memoria de acceso aleatorio (RAM) de la computadora que se asocia con un puerto físico o un canal de comunicación, y que proporciona un espacio para el almacenamiento temporal de la información que se va a transferir entre la localización de memoria y el canal de comunicación.

Puertos de Internet

En el ámbito de Internet, un puerto es el valor que se usa, en el modelo de la capa de transporte, para distinguir entre las múltiples aplicaciones que se pueden conectar al mismo host, o puesto de trabajo.

Aunque muchos de los puertos se asignan de manera arbitraria, ciertos puertos se asignan, por convenio, a ciertas aplicaciones particulares o servicios de carácter universal. De hecho, la IANA (Internet Assigned Numbers Authority) determina las asignaciones de todos los puertos comprendidos entre los valores [0, 1023] (hasta hace poco, la IANA sólo controlaba los valores desde el 0 al 255). Por ejemplo, el servicio de conexión remota telnet, usado en Internet se asocia al puerto 23. Por tanto, existe una tabla de puertos asignados en este rango de valores y que son los servicios y las aplicaciones que se encuentran en el listado denominado Selected Port Assignments.

De manera análoga, los puertos numerados en el intervalo [1024, 65535] se pueden registrar con el consenso de la IANA, vendedores de software y otras organizaciones. Por ejemplo, el puerto 1352 se asigna a Lotus Notes.

Puerto serie

El puerto serie por excelencia es el RS-232, que utiliza cableado simple desde 3 hilos hasta 25 y que conecta computadoras o microcontroladores a todo tipo de periféricos, desde terminales de computadoras a impresoras y módems, pasando por mouses. La interfaz entre el RS-232 y el microprocesador generalmente se realiza mediante el circuito integrado 82C50.

El RS-232 original tenía un conector tipo D de 25 pines, sin embargo, la mayoría de dichos pines no se utilizaban por lo que IBM incorporó desde su PS/2 un conector más pequeño de solamente 6 pines, que es el que actualmente se utiliza. En Europa la norma RS-422, de origen alemán, es también un estándar muy usado en el ámbito industrial.

Uno de los defectos de los puertos serie iniciales era su lentitud en comparación con los puertos paralelos, sin embargo, con el paso del tiempo, han ido apareciendo multitud de puertos serie con una alta velocidad que los hace muy interesantes ya que tienen la ventaja de un menor cableado y solucionan el problema de la velocidad con un mayor apantallamiento. Son más baratos ya que usan la técnica del par trenzado; por ello, el puerto RS-232 e incluso multitud de puertos paralelos están siendo reemplazados por nuevos puertos serie como el USB, el Firewire o el Serial ATA.

Los puertos serie sirven para comunicar la computadora con la impresora, el ratón o el módem, sin embargo, el puerto USB sirve para todo tipo de periféricos, desde ratones a discos duros externos, pasando por conexiones bluetooth. Los puertos sATA (Serial ATA): tienen la misma función que los IDE, (a éstos se conecta, la disquetera, el disco duro, lector/grabador de CD y DVD) pero los sATA cuentan con una mayor velocidad de transferencia de datos. Un puerto de red puede ser puerto serie o puerto paralelo.
Los puertos PCI1 (Peripheral Component Interconnect) : son ranuras de expansión de la placa base de la computadora en las que se pueden conectar tarjetas de expansión: de sonido, de vídeo, de red, etcétera. La ranura o slot PCI se sigue usando hoy en día y podemos encontrar bastantes componentes (la mayoría) en el formato PCI. Dentro de las ranuras PCI está el PCI-Express. Los componentes que suelen estar disponibles en este tipo de ranura son:

Capturadoras de televisión

Controladoras RAID
Tarjetas de red, inalámbricas, o no
Tarjetas de sonido

El PCI express : es un nuevo desarrollo del bus PCI que usa los conceptos de programación y los estándares de comunicación existentes, pero se basa en un sistema de comunicación serie mucho más rápido que PCI y AGP. Posee nuevas mejoras para la especificación PCIe 3.0 que incluye una cantidad de optimizaciones para aumentar la señal y la integridad de los datos, incluyendo control de transmisión y recepción de archivos, PLL improvements, recuperación de datos de reloj, y mejoras en los canales, lo que asegura la compatibilidad con las topolgías actuales.4 (anteriormente conocido por las siglas 3GIO, 3rd Generation I/O), este sistema es apoyado, principalmente, por Intel, que empezó a desarrollar el estándar con el nombre de proyecto Arapahoe después de retirarse del sistema Infiniband. Tiene velocidad de transferencia de 16x (8GB/s) y se utiliza en tarjetas gráficas.

Puertos de memoria

A estos puertos se conectan las tarjetas de memoria RAM. Los puertos de memoria son aquellos puertos, o bahías, donde se pueden insertar nuevas tarjetas de memoria, con la finalidad de extender la capacidad de la misma. Existen bahías que permiten diversas capacidades de almacenamiento que van desde los 256MB (megabytes) hasta 4GB (gigabytes). Conviene recordar que en la memoria RAM es de tipo volátil, es decir, si se apaga repentinamente la computadora los datos almacenados en la misma se pierden. Dicha memoria está conectada con la CPU a través de buses de muy alta velocidad. De esta manera, los datos ahí almacenados se intercambian con el procesador a una velocidad unas 1000 veces más rápida que con el disco duro

Puertos inalámbricos

Las conexiones en este tipo de puertos se hacen sin necesidad de cables, a través de la conexión entre un emisor y un receptor, utilizando ondas electromagnéticas. Si la frecuencia de la onda, usada en la conexión, se encuentra en el espectro de infrarrojos se denomina puerto infrarrojo.


Símbolo del puerto USB.

A través del cable USB no sólo se transfieren datos, además es posible alimentar dispositivos externos. El consumo máximo de este controlador es de 2,5 vatios. Los dispositivos se pueden dividir en dispositivos de bajo consumo (hasta 100 mA, es decir, miliamperios) y dispositivos de alto consumo (hasta 500 mA). Para dispositivos que necesiten más de 500 mA será necesaria alimentación externa. Hay que tener en cuenta, además, que si se utiliza un concentrador y éste está alimentado, no será necesario realizar consumo del bus. Una de las limitaciones de este tipo de conexiones es que la longitud del cable no debe superar los 5 m y que este debe cumplir las especificaciones del estándard USB iguales para las versiones 1.1 y la 2.0.


Puertos de hardware en una computadora.

Bluetooth
DIN (Deutsches Institut für Normung, “Instituto Alemán de Normalización”)
Mini-DIN
DE-9, D-sub (D-subminiatura)
PS/2 (puerto estándar desde la computadora IBM Personal System/2)
USB (Universal Serial Bus)
Puertos para audio, video o multimedia[editar]

Salidas de una tarjeta gráfica: HDMI, VGA y DVI.
Bluetooth
DisplayPort
DVI (Digital Visual Interface)
Euroconector
HDMI (High-Definition Multimedia Interface)
Jack, para parlantes y micrófonos
MIDI (Musical Instrument Digital Interface)
Puerto de juegos
RCA (Radio Corporation of America)
S-Video (Separated-Video)
VGA (Video Graphics Array)

Puertos para redes

Medios de transmisión alámbricos:
Puerto de red
RJ (Registered jack)
RS-232 (Recommended Standard 232), es un conector de tipo DB-25 o DE-9
Medios de transmisión inalámbricos:
Bluetooth
IrDA (Infrared Data Association)
Wi-Fi (Wireless Fidelity)
Puertos para unidades de almacenamiento[editar]
ATA o PATA (Advanced Technology Attachment o Parallel Advanced Technology Attachment)
IDE (Integrated Drive Electronics)
SATA o Serial ATA (Serial Advanced Technology Attachment)
SCSI (Small Computer System Interface)
SAS o Serial Attached SCSI
USB (Universal Serial Bus)

Puertos de alimentación de energía

Conector IEC
Enchufe
Molex
USB


 Reloj del sistema

Entrar al enlace para saber sobre este tema :

Comentarios

Entradas populares de este blog