El hardware es el conjunto de componentes físicos que constituyen un ordenador y que mediante conexiones con dispositivos auxiliares permiten realizar las funciones de procesamiento, almacenamiento y transferencia de datos.
El procesamiento consiste en recibir datos, realizar cálculos y operaciones con los mismos, el almacenamiento consiste en almacenar datos durante un periodo de tiempo y la transferencia consiste en enviar los resultados procesados al exterior.
El hardware son los elementos físicos que se pueden tocar. Sirven para realizar tareas que se resuelven mediante el software, algunos elementos hardware son: la caja donde está la placa base, el procesador, la memoria, el disco duro, etc. También se consideran hardware los dispositivos de entrada y salida como la pantalla, el teclado, el ratón, etc.
Una de las funciones del sistema operativo es controlar y gestionar el uso del hardware del ordenador: procesador, dispositivos de E/S, memoria principal, tarjetas gráficas y el resto de periféricos.
Veamos los principales componentes hardware que tiene un equipo.
Procesador
También conocido como CPU (Central Processing Unit, unidad central de procesamiento), es el cerebro del ordenador. Su función es leer instrucciones y ejecutarlas, estas instrucciones configuran un conjunto de datos codificados en binario que se almacena en la memoria. Todos los programas se componen de instrucciones, cada instrucción se ejecuta mediante un ciclo básico de ejecución que es el período que tarda el procesador en ejecutar una instrucción.
La CPU funciona del siguiente modo: obtiene la obtiene la primera instrucción de la memoria, la decodifica para determinar el código de operación y los datos, después la ejecuta y en algunos casos almacena el resultado. Este proceso se ejecuta continuamente hasta que se leen todas las instrucciones del programa.
Un concepto importante al hablar de CPU y que nos permite comprender algunas de sus funciones es la arquitectura.
Una arquitectura indica qué hace un ordenador y define el conjunto de instrucciones (serie de instrucciones que hacen referencia al conjunto básico de comandos e instrucciones que un microprocesador comprende y puede llevar a cabo) y cómo se codifican, los datos que maneja, los registros internos, etc. Cada arquitectura es distinta aunque puede haber características similares entre arquitecturas.
Para una arquitectura puede haber distintas organizaciones. La organización define cómo realiza las funciones un ordenador.
Por último, la realización del ordenador se encarga de implantar físicamente una organización, un ejemplo de realización es la frecuencia básica del procesador que describe la velocidad a que los transistores de este se abren y cierran. La frecuencia básica del procesador es el punto de operación donde se define la TDP (potencia de diseño térmico). La frecuencia se mide en gigahertz (GHz) o mil millones de ciclos por segundo.
Otro tipo de realización es la frecuencia turbo máxima indica la frecuencia de un solo núcleo a que el procesador puede operar. La frecuencia se mide en gigahertz (GHz) o mil millones de ciclos por segundo.
Un ejemplo de lo explicado anteriormente pueden ser son las implementaciones de x86-64 (x86-64 está basada en la extensión del conjunto de instrucciones x86 para manejar direcciones de 64 bits): AMD64 e Intel 64 en el caso de Intel 64 (la arquitectura Intel 64 mejora el desempeño permitiendo que los sistemas direccionen más de 4 GB de memoria física y virtual) tiene las organizaciones Core 2 Duo, Core 2 Quad, y Core 2 Extreme, etc. La realización de un Core 2 Quad puede ser de 3,40 GHz, 3,80 GHz, etc.
Los procesadores contienen núcleos, un núcleo describe el número de unidades de procesamiento independientes en un componente computacional individual (matriz o chip).
Un concepto importante es el hilo, o hilo de ejecución, es un término de software para la secuencia de instrucciones de orden básico que puede pasar por o procesarse en un núcleo de CPU individual.
Los procesadores actuales poseen tecnologías avanzadas que permiten realizar tareas como la virtualización, Hyper-Threading, etc. Un ejemplo son los procesadores Intel que tienen las siguientes tecnologías avanzadas:
- Tecnología Intel Turbo Boost
- Tecnología Hyper-Threading Intel
- Tecnología de virtualización Intel® (VT-x)
- Tecnología de virtualización Intel® para E/S dirigida (VT-d)
- Intel VT-x con tablas de páginas extendidas (EPT)
- Intel Transactional Synchronization Extensions
- Tecnología Intel SpeedStep
- Tecnologías de monitoreo térmico
- Acceso a memoria rápida Intel
- Intel Flex Memory Access
- Tecnología Intel Identity Protection
- Programa Intel de imagen estable para plataformas (SIPP)
- Tecnología Intel de respuesta inteligente
En Linux se puede obtener información de los procesadores mediante los siguientes ficheros o comandos
1 2 3 4 5 6 7 8 9 10 11 |
# Información acerca del procesador: su tipo, marca, modelo, rendimiento, etc. /proc/cpuinfo # Muestra información del procesador, la arquitectura, frecuencia, los cores, threads por core, etc. lscpu # Información muy detallada sobre el hardware lshw # Número de unidades de procesamiento disponibles nproc |
Ejemplos
Información sobre la arquitectura
1 2 |
bash -c "lscpu | grep 'Architecture'" bash -c "lscpu | grep '64-bit' | cut -d',' -f2 | cut -d'-' -f1" |
Información sobre la organización
1 |
bash -c "cat /proc/cpuinfo | grep 'model name' | cut -d':' -f2 |cut -d'@' -f1 | uniq" |
Información sobre la realización
1 |
bash -c "cat /proc/cpuinfo | grep 'model name' | cut -d':' -f2 |cut -d'@' -f2 | uniq" |
Información sobre los procesadores
1 |
bash -c "cat /proc/cpuinfo" |
Número de núcleos
1 |
bash -c "cat /proc/cpuinfo | grep 'cpu cores' | cut -d':' -f2 | uniq" |
Número de procesadores lógicos
1 |
bash -c "cat /proc/cpuinfo | grep 'siblings' | cut -d':' -f2 | uniq" |
Carga del procesador
1 |
bash -c 'w | head -1 | cut -d":" -f4 | cut -d"," -f1' |
Otras características de los procesadores
Caches del procesador (L1, L2, L3)
1 2 3 |
bash -c "lscpu | grep 'Cache L1' | cut -d':' -f2" bash -c "lscpu | grep 'Cache L2' | cut -d':' -f2" bash -c "lscpu | grep 'Cache L3' | cut -d':' -f2" |
Hyperthreading
1 |
grep -o '^flags\b.*: .*\bht\b' /proc/cpuinfo | tail -1 | grep "ht" |
Virtualización
1 |
bash -c "lscpu | grep 'Virtualization' | cut -d':' -f2" |
Ejercicios
Información sobre el procesador
1 |
bash -c "cat /proc/cpuinfo" |
Saber si el procesador es Intel
1 |
bash -c 'if grep -q "Intel" /proc/cpuinfo;then echo Intel; else "No Intel"; fi' |