- Aprender
- Informática
- Ciencias de la computación
- Introducción a la informática
- Cómo funcionan las computadoras
Cómo funcionan las computadoras
PrincipianteUnidad 3 de 7 del curso Curso de Introducción a la informática
Lo que aprenderás
- Identifica los principales componentes de hardware de una computadora, explica el concepto de programa almacenado en el que se basa la arquitectura de von Neumann y describe cómo los buses y los dispositivos de entrada y salida conectan el conjunto.
- Identifica los componentes principales de una computadora y el concepto de programa almacenadoDistingue el hardware del software y describe la arquitectura de von Neumann: un procesador, una misma memoria para instrucciones y datos, entrada y salida, y las conexiones entre estos elementos.
- Explica cómo los buses transportan direcciones, datos y señales de controlDescribe las partes de direcciones, datos y control del bus del sistema, sigue una lectura y una escritura en memoria y calcula cómo el ancho del bus limita la memoria direccionable y la velocidad de transferencia.
- Clasifica los dispositivos de entrada y salida y explica cómo se conectan a la CPUClasifica los dispositivos según su función, explica la conversión entre señales analógicas y datos digitales y describe cómo los controladores de hardware y software, las interrupciones y el acceso directo a memoria permiten que dispositivos lentos trabajen con un procesador rápido.
- Identifica los componentes principales de una computadora y el concepto de programa almacenado
- Muestra cómo los transistores y las puertas lógicas realizan cálculos con bits, nombra los componentes de la CPU, sigue el ciclo de búsqueda, decodificación y ejecución y explica qué hace que un procesador sea más rápido que otro.
- Usa puertas lógicas para comprender cómo realiza cálculos el hardware con bitsLee las tablas de verdad de las puertas lógicas básicas, calcula la salida de un circuito pequeño y explica cómo las puertas construidas con transistores suman números y almacenan bits.
- Nombra los componentes de la CPU e indica la función de cada unoDescribe la unidad de control, la unidad aritmético-lógica, los registros de propósito general y los especiales, el reloj y los núcleos, y la función de cada uno cuando se ejecuta un programa.
- Sigue el ciclo de búsqueda, decodificación y ejecuciónSigue los pasos que repite la CPU para cada instrucción, observa los registros durante un programa breve y explica cómo los saltos y las interrupciones cambian lo que se ejecuta a continuación.
- Explica qué factores aumentan la velocidad de un procesadorCompara los efectos de la frecuencia de reloj, el número de núcleos, el tamaño de la caché y la segmentación de instrucciones, y estima cómo cambia cada uno el tiempo que tarda una tarea.
- Usa puertas lógicas para comprender cómo realiza cálculos el hardware con bits
- Describe el código máquina y los conjuntos de instrucciones, lee un programa breve en ensamblador y explica cómo los compiladores, ensambladores, enlazadores e intérpretes transforman el código fuente en un programa en ejecución.
- Lee código máquina y lenguaje ensambladorExplica qué contiene una instrucción de máquina, por qué un conjunto de instrucciones vincula los programas a una familia de procesadores y cómo el lenguaje ensamblador hace legible el código máquina.
- Explica cómo los compiladores y los intérpretes permiten ejecutar programas a partir del código fuenteCompara la compilación y la interpretación, sigue los pasos desde un archivo fuente hasta un ejecutable y explica el código de bytes, las máquinas virtuales y por qué el mismo programa puede ejecutarse en distintas computadoras.
- Lee código máquina y lenguaje ensamblador
- Compara la memoria principal con los distintos tipos de almacenamiento secundario, explica la jerarquía de memoria y el uso de la caché y elige un almacenamiento adecuado para una tarea.
- Describe la memoria principal y su direccionamientoExplica la RAM y la ROM, la volatilidad, las direcciones de byte y las unidades de capacidad, y por qué un programa debe estar en la memoria principal para ejecutarse.
- Compara tecnologías de almacenamiento secundarioExplica cómo conservan datos los discos duros, las unidades de estado sólido, los medios flash, los discos ópticos, la cinta magnética y el almacenamiento en la nube, y elige el almacenamiento según su capacidad, velocidad, coste, durabilidad y portabilidad.
- Explica la jerarquía de memoria y el uso de la memoria cachéOrdena los niveles, desde los registros hasta el almacenamiento de archivo, según su velocidad, tamaño y coste, explica por qué funcionan las cachés y calcula cómo los aciertos y fallos de caché afectan al tiempo medio de acceso.
- Describe la memoria principal y su direccionamiento
- Describe qué hace un sistema operativo, cómo se inicia una computadora y cómo el sistema operativo carga los programas en la memoria, los ejecuta en el procesador y los mantiene separados.
- Describe la función del sistema operativoExplica cómo el sistema operativo gestiona el procesador, la memoria, el almacenamiento y los dispositivos, proporciona una interfaz de usuario y un sistema de archivos y protege a los usuarios y los programas.
- Sigue el arranque de una computadora y la ejecución de un programaSigue la secuencia de arranque y cómo el sistema operativo carga un programa en la memoria y lo inicia, y explica cómo la memoria virtual mantiene separados los programas y les permite usar más memoria de la instalada.
- Describe la función del sistema operativo
Guía de estudio de Cómo funcionan las computadoras
1Los componentes de una computadora y las vías que los conectan
Una computadora resulta más fácil de entender cuando distingues las tareas de sus componentes. La entrada aporta datos, el procesador sigue instrucciones almacenadas, la memoria proporciona el contenido de trabajo y la salida presenta resultados. Las conexiones importan tanto como los componentes: sigue una dirección, un valor y una señal de control para ver cómo un procesador accede a la memoria y a los dispositivos; después, observa cómo los dispositivos más lentos solicitan atención.
1.1 Los componentes que hacen funcionar una computadora
Una computadora recibe entradas, sigue instrucciones para procesarlas, almacena datos y produce salidas. Estas funciones se aplican tanto a una computadora portátil como a un controlador oculto dentro de una lavadora. La diferencia está en la tarea y en los equipos conectados.
Componentes físicos y programas
El hardware es el equipo físico. El software está formado por programas y los datos con los que trabajan. La CPU es el chip del procesador, no toda la caja de la computadora. Una placa base la conecta con la RAM, el almacenamiento, una GPU, la alimentación y los puertos de dispositivos. La GPU se encarga de generar imágenes y de otras tareas que aplican operaciones similares a muchos valores. Un teléfono combina muchas de estas funciones en un sistema en un chip (SoC).
La RAM contiene las instrucciones y los datos que se están usando. Una unidad de almacenamiento conserva los programas y los archivos guardados sin alimentación. En una computadora descrita como equipada con 16 GB de memoria y un SSD de 512 GB, la primera capacidad describe la RAM y la segunda, el almacenamiento. Una unidad de mayor capacidad no proporciona más RAM de trabajo.
Un programa almacenado como datos
La arquitectura de von Neumann tiene una CPU, una memoria principal que contiene tanto instrucciones como datos, dispositivos de entrada/salida y buses que los conectan. John von Neumann describió este diseño en 1945 en el «Primer borrador de un informe sobre el EDVAC». Su idea central es el programa almacenado: las instrucciones son valores binarios en la memoria, listos para que la CPU los busque.
Las máquinas anteriores, como ENIAC, se configuraban para cada tarea mediante interruptores y cables. Cargar un programa nuevo permite que una máquina con programa almacenado cambie de tarea sin modificar el cableado. El Manchester Baby ejecutó un programa en memoria electrónica reescribible el 21 de junio de 1948.
La memoria no asigna un significado a cada patrón. El byte 01000001 puede representar el número 65, la letra «A» de ASCII o parte de una instrucción. Lo que la CPU o el programa hace con el patrón determina su significado. Durante la búsqueda de una instrucción, la CPU trata el patrón obtenido como una instrucción.
Por qué el procesador puede tener que esperar
Las instrucciones y los datos comparten la vía entre la CPU y la memoria principal. Además, la memoria los suministra más despacio de lo que la CPU puede usarlos. Esta restricción es el cuello de botella de von Neumann. Por eso, un procesador rápido puede pasar tiempo esperando el siguiente valor. Las cachés pequeñas y rápidas mantienen copias útiles cerca de la CPU y reducen muchas de estas esperas.
| Diseño | Instrucciones y datos | Consecuencia útil |
|---|---|---|
| Von Neumann | Comparten la memoria principal y su vía | Una memoria contiene una mezcla cambiante de código y datos. |
| Harvard | Tienen memorias y vías separadas | Se pueden buscar una instrucción y un dato al mismo tiempo. |
Los microcontroladores pequeños y los procesadores de señales suelen usar un diseño Harvard. Las CPU modernas de propósito general combinan ambas ideas: memoria principal compartida, pero cachés de nivel 1 separadas para instrucciones y datos.
Computadoras dentro de otros dispositivos
Un sistema embebido realiza una tarea específica dentro de un dispositivo mayor. Un termostato lee un sensor de temperatura, procesa la lectura y controla la calefacción. Su programa almacenado suele permanecer en memoria no volátil. Las funciones de procesador, memoria y entrada/salida siguen presentes, incluso sin teclado, pantalla o un sistema operativo completo de escritorio.
Puntos clave
- El hardware es el equipo físico; el software aporta programas y datos.
- La CPU es un componente distinto de la RAM, el almacenamiento y la caja de la computadora.
- Una computadora con programa almacenado busca instrucciones binarias guardadas en la memoria.
- Un patrón de bits adquiere su significado según cómo se use.
- Las cachés reducen la espera causada por el cuello de botella entre la CPU y la memoria.
1.2 Cómo viajan las direcciones, los valores y las órdenes
Un procesador necesita tres cosas para acceder a la memoria: una posición, el valor que se va a transferir y una orden que indique a la memoria qué hacer. Distinguir estas funciones facilita mucho el seguimiento de una transacción del bus.
Tres funciones en un bus del sistema clásico
Un bus es una vía de comunicación compartida. En un bus paralelo del sistema clásico, varios cables o pistas de una placa de circuitos transportan bits al mismo tiempo.
| Parte del bus | Qué transporta | Dirección en un acceso de la CPU a memoria |
|---|---|---|
| Bus de direcciones | La posición que se va a usar | Desde la CPU hacia la memoria o un dispositivo |
| Bus de datos | Una instrucción o un dato | Hacia la CPU en una lectura; desde ella en una escritura |
| Bus de control | Señales de lectura, escritura, sincronización e interrupción | Depende de la señal |
Una dirección identifica una posición; no es el valor almacenado allí. La dirección 200 puede contener 7 hoy y 9 más tarde sin cambiar de dirección. Una comparación útil es un buzón numerado: el número identifica el buzón, mientras que su contenido puede cambiar.
Sigue una lectura y una escritura
Para leer la dirección 200, la CPU coloca 200, en binario 11001000, en el bus de direcciones y envía una orden de lectura por el bus de control. La memoria devuelve el valor de esa posición, aquí 7, por el bus de datos. La CPU lo copia en un registro.
Para escribir 9 en la dirección 201, la CPU coloca 201 en el bus de direcciones, 9 en el bus de datos y una orden de escritura en el bus de control. La memoria sustituye el contenido de la posición 201. Enviar 201 por el bus de datos enviaría el valor equivocado; la dirección y el contenido tienen funciones diferentes.
El ancho de dirección limita el número de posiciones
Con bits de dirección hay direcciones diferentes. Si cada dirección identifica un byte, ese es también el número de bytes direccionables.
- 16 bits dan direcciones, o 64 KiB.
- 32 bits dan direcciones, o 4 GiB.
- Pasar de 20 a 21 bits duplica la capacidad de 1 MiB a 2 MiB.
Cada bit adicional duplica las combinaciones. Duplicar el número de bits de 16 a 32 multiplica el número de posiciones por ; no se limita a duplicarlo. Este cálculo da un límite de direccionamiento, no la cantidad de RAM realmente instalada.
El ancho de datos limita cada transferencia
Una vía de datos de 64 bits transporta 8 bytes en una transferencia. Una vía de 8 bits necesita cuatro transferencias para transportar un valor de 4 bytes. El ancho de banda mide cuántos datos pueden moverse por segundo:
A 1 millardo de transferencias por segundo, una vía de 8 bytes transporta 8 millardos de bytes por segundo, u 8 GB/s. El ancho de dirección controla cuántas posiciones pueden identificarse; el ancho de datos controla cuánto se mueve a la vez.
La palabra de máquina de una CPU es su tamaño natural de trabajo, habitualmente de 32 o 64 bits. Un procesador de 64 bits no exige que todas las conexiones tengan 64 cables. El rango de direcciones implementado también puede usar menos de 64 bits.
Los enlaces modernos mantienen las mismas funciones
Los canales de memoria, PCI Express y USB sustituyen un bus compartido por varios enlaces. PCI Express y USB son en serie: los bits viajan uno tras otro por pares de cables rápidos. Las direcciones, los valores y las órdenes se agrupan en mensajes. Siguen identificando un destino, transportando contenido y coordinando la transferencia.
Puntos clave
- Una dirección identifica una posición; los datos son el contenido que se transfiere.
- Las órdenes de lectura y escritura viajan como señales de control.
- Una dirección de n bits tiene 2ⁿ valores posibles; con direccionamiento por bytes, la capacidad es de 2ⁿ bytes.
- Cada bit de dirección adicional duplica el rango de direcciones.
- El ancho de banda equivale a los bytes por transferencia multiplicados por las transferencias por segundo.
- Los enlaces en serie transportan información de direccionamiento, datos y control en mensajes.
1.3 Cómo entran y salen los datos de una computadora
Un dispositivo de entrada aporta datos; un dispositivo de salida presenta un resultado o actúa a partir de él. La clasificación describe la función del dispositivo en el sistema. No describe su complejidad interna.
Clasifica la acción
Los teclados, las cámaras, los micrófonos, los lectores de códigos de barras y los sensores proporcionan entradas. Las pantallas, las impresoras, los altavoces y los actuadores proporcionan salidas. Un actuador cambia algo físico, como abrir una válvula o hacer girar un motor.
Algunos dispositivos cumplen ambas funciones. Una pantalla táctil detecta toques y muestra imágenes. Unos auriculares con micrófono combinan un micrófono con altavoces. Un adaptador de red envía y recibe datos. Las unidades de almacenamiento también realizan lecturas y escrituras mediante controladores de E/S, pero su finalidad principal es conservar datos, por lo que forman la categoría aparte de almacenamiento secundario.
Una impresora puede contener un procesador que convierte una página en puntos imprimibles. Sigue siendo un dispositivo de salida por lo que hace para la computadora. Un ratón inalámbrico proporciona entradas igual que uno con cable.
Convierte señales continuas en números
El sonido y la temperatura varían de forma continua: son señales analógicas. Un convertidor analógico-digital (ADC) mide una señal a intervalos regulares y codifica las muestras como números. Un convertidor digital-analógico (DAC) convierte valores digitales en una salida analógica, como la señal que acciona un altavoz.
Para un canal de audio muestreado 44 100 veces por segundo con 16 bits por muestra:
Esta es la tasa de datos de las muestras sin procesar. Cada segundo contiene 44 100 mediciones, y cada medición necesita 16 bits. El muestreo y la codificación permiten que una computadora almacene y procese la grabación.
Controlador de hardware y controlador de software
Los dispositivos se conectan mediante puertos o enlaces inalámbricos como USB, HDMI, Bluetooth o Wi-Fi. Un controlador de dispositivo de hardware es un circuito que gestiona la comunicación de bajo nivel y ofrece registros que la CPU puede leer o escribir. Un controlador de dispositivo de software traduce las solicitudes del SO a órdenes para el dispositivo. El primero es hardware; el segundo es software.
Deja que los dispositivos soliciten atención
Con el sondeo, el procesador comprueba repetidamente un registro de estado. Es sencillo, pero un dispositivo que suele estar inactivo puede provocar muchas comprobaciones sin ningún resultado útil.
Con una interrupción, el controlador de hardware avisa cuando se necesita atención. En el modelo sencillo de ciclo de instrucción, la CPU termina la instrucción actual, guarda el estado interrumpido y ejecuta una rutina de servicio de interrupción. Después restaura el estado guardado y continúa. Pulsar una tecla o terminar una lectura de disco puede activar esta secuencia.
Las personas y muchos dispositivos actúan mucho más despacio que una CPU. Una persona escribe solo unos pocos caracteres por segundo, mientras que un procesador puede ejecutar miles de millones de instrucciones por segundo. Las interrupciones permiten que la CPU trabaje entre eventos.
Para una transferencia grande, el acceso directo a memoria (DMA) permite que un dispositivo o un controlador DMA mueva un bloque directamente hacia la RAM o desde ella. La CPU configura la operación y trabaja en otra cosa. Una interrupción de finalización le indica cuándo está listo el bloque. El DMA evita que la CPU tenga que copiar cada byte; esta sigue participando en la preparación y la finalización de la transferencia.
Puntos clave
- Clasifica la entrada y la salida según la acción que se realiza para la computadora.
- Un ADC codifica la entrada analógica muestreada; un DAC produce una salida analógica.
- Un controlador de hardware es un circuito; un controlador de software es un programa.
- El sondeo comprueba repetidamente; una interrupción señala que se necesita atención.
- El DMA transfiere bloques entre un dispositivo y la RAM sin que la CPU copie cada byte.
2Cómo realiza su trabajo un procesador
Dentro de un procesador, los circuitos sencillos se combinan para formar una máquina capaz de seguir un programa. Empieza por las puertas que actúan sobre bits; después, identifica los registros y las señales de control que hacen avanzar una instrucción por la CPU. Un seguimiento breve permite ver cómo cambia el estado. La frecuencia de reloj, los núcleos, las cachés y la segmentación de instrucciones explican por qué realizar el mismo trabajo útil puede llevar tiempos distintos en sistemas diferentes.
2.1 De los interruptores a los cálculos
Las operaciones más pequeñas de una computadora proceden de circuitos que alternan entre dos niveles de señal. Una tensión alta representa 1 y una tensión baja representa 0. Estos niveles representan bits; un chip no reconoce el significado de una foto o una oración.
Las puertas convierten bits de entrada en una salida
Un transistor actúa como un interruptor controlado electrónicamente. Pequeños grupos forman puertas lógicas, cada una con una regla fija de entrada/salida. Una tabla de verdad enumera todas las combinaciones de entradas y sus salidas. Con dos entradas hay cuatro combinaciones; en general, entradas necesitan filas.
NOT invierte su única entrada. Las puertas de dos entradas se comportan así:
| A | B | AND | OR | XOR | NAND | NOR |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 |
AND necesita que ambas entradas sean 1. OR necesita al menos una, incluidas ambas. XOR necesita entradas diferentes. NAND invierte AND; NOR invierte OR. Interpretar OR como «una, pero no ambas» es confundirla con XOR.
Para evaluar (A AND B) OR (NOT C) con A = 1, B = 0, C = 0, avanza desde las entradas hacia la salida. A AND B da 0. NOT C da 1. Por último, 0 OR 1 da 1. Anota las salidas intermedias para que la última puerta reciba las entradas correctas.
Las puertas suman dígitos binarios
Un semisumador recibe dos bits. Su salida de suma es XOR y su salida de acarreo es AND. Para dos entradas de valor 1, el bit de suma es 0 y el bit de acarreo es 1: el resultado de dos bits es 10, que significa 2.
Un sumador completo también acepta un acarreo de la columna anterior. Encadenar estos circuitos permite a una ALU sumar números más largos. Sigue la suma de 0110 y 0011 desde la derecha:
- La columna de la derecha da 1, sin acarreo.
- La siguiente columna tiene dos valores 1: escribe 0 y lleva 1.
- La siguiente tiene 1, 0 y un acarreo de 1: escribe 0 y lleva 1.
- La de la izquierda tiene 0, 0 y un acarreo de 1: escribe 1.
El resultado es 1001, o 9. Un acarreo corresponde a la siguiente columna; omitirlo cambia el valor.
Las puertas pueden conservar un bit
La retroalimentación consiste en devolver la salida de un circuito a su entrada. Las puertas NAND o NOR con acoplamiento cruzado forman un biestable sensible al nivel que conserva un bit mientras haya alimentación. Un biestable disparado por flanco captura un bit nuevo en un flanco de reloj y mantiene las actualizaciones sincronizadas con el reloj del procesador. Los registros usan circuitos de almacenamiento sincronizados por reloj. Las celdas de caché SRAM usan circuitos de tipo biestable sensible al nivel; la DRAM almacena carga en condensadores.
NAND y NOR son, cada una, universales: cualquiera de los dos tipos de puerta por sí solo permite construir cualquier función lógica. Conectar ambas entradas de NAND a A da A NAND A, que actúa como NOT A.
Estas son capas de abstracción. Los transistores forman puertas; las puertas forman sumadores, registros y circuitos de control; estos forman un procesador que ejecuta instrucciones. Quien programa puede usar la capa de instrucciones sin diseñar los interruptores que hay debajo.
Puntos clave
- Las tablas de verdad enumeran todas las combinaciones de entradas.
- OR incluye el caso en que ambas entradas son 1; XOR lo excluye.
- Evalúa un circuito siguiendo las salidas de sus puertas intermedias.
- Un semisumador produce una suma XOR y un acarreo AND.
- La retroalimentación almacena bits; los flancos de reloj controlan las actualizaciones de los biestables disparados por flanco.
- NAND y NOR bastan, cada una por sí sola, para construir cualquier función lógica.
2.2 Los componentes de trabajo del procesador
La CPU, o procesador, ejecuta las instrucciones de un programa. Su unidad de control dirige el trabajo, su unidad aritmético-lógica realiza operaciones y sus registros guardan los valores que se necesitan de inmediato. Un reloj coordina los cambios en estos circuitos.
Dirigir el trabajo y realizarlo
La unidad de control busca una instrucción, la decodifica y emite señales de control. Puede indicar a la memoria que devuelva un valor, seleccionar dos entradas para la ALU y habilitar un registro para guardar el resultado. Coordina la operación; la ALU realiza la aritmética o la lógica.
Las operaciones de la ALU incluyen sumas, restas, comparaciones, desplazamientos de bits y puertas como AND y XOR. Los resultados también actualizan los indicadores de estado. Un indicador de cero señala un resultado de cero; un indicador de negativo registra un resultado negativo. Un salto puede comprobar un indicador para elegir la siguiente instrucción.
Los registros conservan el estado de trabajo inmediato
Los registros son posiciones de almacenamiento muy pequeñas y rápidas dentro del procesador. Un registro de propósito general suele contener una palabra. Por ejemplo, x86-64 ofrece 16 registros de propósito general para enteros, y ARM de 64 bits ofrece 31. Los programas los usan para mantener los valores cerca de la ALU.
El procesador del modelo didáctico permite ver las siguientes funciones:
| Registro | Función |
|---|---|
| Contador de programa, PC | Dirección de la siguiente instrucción que se buscará |
| Registro de direcciones de memoria, MAR | Dirección para la siguiente lectura o escritura en memoria |
| Registro de datos de memoria, MDR | Valor que se acaba de leer o que se va a escribir |
| Registro de instrucción actual, CIR | Instrucción que se está decodificando y ejecutando |
| Acumulador, ACC | Valor de trabajo y resultado de la ALU en la máquina didáctica |
El MDR también se llama registro búfer de memoria (MBR). El CIR también se llama registro de instrucciones (IR). Los chips reales organizan estas tareas de formas más complejas, pero el modelo te permite seguir el movimiento de una instrucción y sus datos.
El PC contiene una dirección, no un total de instrucciones completadas. Un salto puede hacerlo retroceder para repetir un bucle. El MAR y el MDR también son distintos: una dirección como 10 se coloca en el MAR; el valor almacenado en la dirección 10 se coloca en el MDR.
Un ciclo de reloj es un paso de sincronización
La frecuencia de reloj cuenta los pulsos por segundo y se mide en hercios (Hz). Un reloj de 3 GHz produce 3 mil millones de ciclos por segundo. La duración de un ciclo es:
Un pulso permite avanzar a partes de un circuito. Algunas instrucciones necesitan varios pasos de sincronización, y los procesadores modernos solapan el trabajo de varias instrucciones.
Más de un núcleo de procesamiento
Un núcleo tiene los recursos de control, aritmética, registros y caché necesarios para ejecutar un flujo de instrucciones. Cuatro núcleos pueden ejecutar cuatro flujos a la vez. Un programa se beneficia cuando su trabajo puede repartirse entre ellos; tener cuatro núcleos no divide automáticamente todas las tareas.
Una GPU tiene muchas unidades de procesamiento más pequeñas, adecuadas para realizar operaciones similares sobre muchos datos. Dibujar píxeles, procesar vídeo y algunos cálculos de aprendizaje automático tienen esta forma. Una CPU se adapta a una combinación más amplia de instrucciones y decisiones.
Piensa en una cocina: la unidad de control asigna acciones, la ALU las realiza, los registros guardan los ingredientes a mano y la memoria aporta más. La CPU sigue patrones de bits de forma mecánica; el significado útil procede del programa.
Puntos clave
- La unidad de control coordina las operaciones; la ALU realiza la aritmética y la lógica.
- Los indicadores registran condiciones, como un resultado de cero, para saltos posteriores.
- PC, MAR, MDR, CIR y ACC contienen distintas partes del estado de trabajo actual.
- Un ciclo de reloj es un paso de sincronización, no necesariamente una instrucción completada.
- Varios núcleos ayudan en trabajos que pueden ejecutarse en paralelo.
2.3 Sigue una instrucción a través de la CPU
El ciclo de búsqueda, decodificación y ejecución conecta los componentes del procesador para ejecutar un programa. Cada ciclo recibe una instrucción, determina su operación y la realiza. Un seguimiento registra los cambios en los registros y la memoria para que cada resultado tenga una causa visible.
Buscar la instrucción
En el procesador sencillo, la búsqueda sigue esta secuencia:
- Copiar el PC en el MAR.
- Colocar la dirección en el bus de direcciones y enviar una señal de lectura de memoria.
- Recibir la instrucción por el bus de datos en el MDR.
- Copiarla en el CIR.
- Avanzar el PC a la siguiente instrucción.
En la máquina didáctica, cada instrucción ocupa una posición, por lo que el PC aumenta en 1. Un procesador con direccionamiento por bytes avanza según la longitud de la instrucción en bytes. Durante la ejecución, el PC ya apunta más allá de la instrucción que se ha buscado.
Decodificar y después ejecutar
La unidad de control separa el código de operación, que especifica la operación, del operando, que aporta un valor, un registro o una dirección. Después envía las señales necesarias para ejecutar la instrucción. Una carga lee datos, una suma usa la ALU, un almacenamiento escribe datos y un salto cambia el PC. Algunas descripciones consideran la escritura del resultado una etapa independiente de escritura del resultado.
Seguir un programa completo
La máquina didáctica tiene un acumulador. Aquí, LOAD, ADD y STORE usan direcciones de memoria como operandos.
Address Instruction Data address Value
0 LOAD 10 10 7
1 ADD 11 11 5
2 STORE 12 12 0
3 HALT
Empieza con el PC en 0. Buscar LOAD 10 lleva el PC a 1. La ejecución coloca la dirección 10 en el MAR, lee 7 a través del MDR y establece el ACC en 7. El operando 10 identifica una posición; no es el valor que se carga.
Después se busca ADD 11 y el PC pasa a 2. La posición de memoria 11 aporta 5. La ALU suma 7 y 5 y deja el ACC en 12. Buscar STORE 12 hace avanzar el PC a 3. La ejecución coloca la dirección 12 en el MAR y el valor 12 en el MDR, y después escribe 12 en esa posición. El ACC permanece en 12. Por último, buscar HALT hace avanzar el PC a 4 y la ejecución detiene la máquina didáctica. Se han ejecutado cuatro instrucciones.
Los saltos sustituyen la siguiente dirección
JUMP 0 coloca 0 en el PC durante la ejecución, independientemente de su valor anterior. JUMPZ 6 salta solo cuando el ACC es cero. Si esa instrucción se buscó en la dirección 4, la búsqueda primero establece el PC en 5. Después, la ejecución establece el PC en 6 cuando el ACC es cero; en caso contrario, el PC permanece en 5. Así puede una secuencia elegir un camino o repetir un bucle.
Interrupciones y procesadores reales
En este modelo, la CPU comprueba si hay interrupciones entre instrucciones. Para atender una, guarda el PC y otros registros de trabajo, ejecuta la rutina de servicio y después restaura el estado guardado. El programa interrumpido se reanuda con sus propios valores y su siguiente dirección.
Una CPU no busca todo un programa fuente de una vez. Ejecuta instrucciones de máquina, a menudo varias por cada sentencia del código fuente. Las CPU modernas solapan y reordenan el trabajo interno manteniendo los resultados que exige el programa.
Puntos clave
- La búsqueda lee la instrucción a través del MAR y el MDR y la coloca en el CIR.
- El PC avanza durante la búsqueda; la ejecución de un salto puede sustituir esa dirección.
- Un operando de dirección debe usarse para leer el valor almacenado allí.
- STORE escribe el ACC en la memoria sin cambiar el ACC en esta máquina didáctica.
- La atención de interrupciones guarda y restaura el estado de trabajo interrumpido.
- Los procesadores reales solapan el trabajo manteniendo los resultados que exige el programa.
2.4 Por qué un programa termina antes
El rendimiento del procesador depende del trabajo que necesita un programa y de la rapidez con que la computadora lo completa. Importan la frecuencia de reloj, el trabajo útil por ciclo, el tiempo de espera y las oportunidades de trabajo en paralelo.
Frecuencia de reloj y número fijo de ciclos
Para una tarea que requiere un número conocido de ciclos de reloj:
Una tarea que necesita 6 mil millones de ciclos tarda 2 segundos a 3 GHz y 1,5 segundos a 4 GHz. La comparación mantiene fijo el número de ciclos. Entre diseños de procesador distintos, un programa puede necesitar cantidades diferentes de ciclos. Por eso, un chip de 3,5 GHz puede superar a uno de 4 GHz si completa más instrucciones útiles por ciclo.
Las frecuencias de reloj más altas también consumen más energía y producen calor. La reducción de frecuencia por temperatura baja la frecuencia cuando un procesador se calienta demasiado. Esto ayuda a explicar por qué las mejoras de rendimiento han procedido de algo más que aumentar los gigahercios.
Los núcleos solo dividen la parte paralela
Supón que una tarea tarda 10 segundos en un núcleo. Dos segundos deben realizarse en secuencia; ocho segundos pueden repartirse por igual entre cuatro núcleos. Si se ignora la sobrecarga de coordinación:
Dividir los 10 segundos completos entre cuatro da 2,5 segundos, pero divide incorrectamente el trabajo secuencial. Ni siquiera un número ilimitado de núcleos puede eliminar esos dos segundos. Varios núcleos también ayudan a ejecutar programas distintos al mismo tiempo, aunque cada programa use solo un núcleo.
La segmentación solapa etapas
En una segmentación de tres etapas, una instrucción se ejecuta mientras la siguiente se decodifica y otra se busca. Cada instrucción sigue pasando por las tres etapas. La mejora consiste en completar más instrucciones durante un período de tiempo.
Si cada etapa tarda un ciclo, diez instrucciones independientes tardan 30 ciclos sin solapamiento. Una segmentación ideal necesita tres ciclos para terminar la primera instrucción y uno más por cada instrucción restante:
Un salto puede volver inútiles las instrucciones ya buscadas. Descartar ese trabajo consume ciclos, por lo que los procesadores predicen los saltos. Las dependencias reales y las esperas de memoria también impiden que la segmentación alcance siempre su ritmo ideal.
Mantener abastecido el procesador
Una caché guarda copias cercanas de instrucciones y datos. Una mayor capacidad útil de caché puede reducir los accesos a la RAM, especialmente cuando un programa usa repetidamente un conjunto de trabajo que antes no cabía. Si ese conjunto ya cabe, la capacidad adicional puede ayudar poco.
El ancho de banda de memoria limita la rapidez con la que pueden llegar muchos valores. La velocidad del almacenamiento importa al abrir archivos o iniciar aplicaciones: pasar de un disco duro a un SSD puede reducir la demora aunque la CPU no cambie. El tamaño de palabra y las instrucciones que admite un procesador también influyen en las cargas de trabajo adecuadas para él.
Más transistores, distintos usos
La ley de Moore describe la observación de Gordon Moore, formulada por primera vez en 1965 y revisada en 1975, de que el número de transistores se duplicaba aproximadamente cada dos años. Esta tendencia histórica no es una regla según la cual los programas se vuelven el doble de rápidos a intervalos fijos. A medida que se ha ralentizado la reducción de tamaño, los diseñadores de chips han destinado transistores adicionales a núcleos, cachés, GPU y aceleradores especializados. Una comparación útil pregunta cuánto tarda la misma tarea en las mismas condiciones.
Puntos clave
- Compara el tiempo de ejecución de la tarea real, no solo la frecuencia de reloj.
- Más núcleos solo reducen el trabajo que puede repartirse entre ellos.
- La segmentación aumenta la tasa de instrucciones completadas al solapar sus etapas.
- La caché, el ancho de banda de memoria, el almacenamiento y el calor pueden limitar el trabajo útil de la CPU.
3Cómo se transforman los programas escritos en instrucciones de máquina
Un programa legible y las instrucciones que ejecuta una CPU son formas distintas del mismo trabajo previsto. El ensamblador muestra operaciones y saltos individuales; los compiladores y los intérpretes conectan el código de alto nivel con esas operaciones. Seguir la construcción de un programa permite ver por qué un archivo fuente difiere de un ejecutable, por qué importan las bibliotecas y por qué trasladar software a otra plataforma puede exigir una nueva construcción o un entorno de ejecución adecuado.
3.1 Leer las instrucciones que ejecuta un procesador
El código máquina consiste en instrucciones binarias para un tipo concreto de procesador. El lenguaje ensamblador escribe esas instrucciones con nombres legibles. Ambos describen operaciones mucho más cercanas al hardware que un lenguaje de alto nivel como Python o C.
Operaciones y operandos
Una instrucción contiene un código de operación que especifica qué hacer y normalmente uno o más operandos que especifican qué usar. Un operando puede identificar un registro o una dirección de memoria, o aportar un valor directamente. Su significado procede del formato definido de la instrucción.
Considera una codificación didáctica de 8 bits. Los primeros cuatro bits contienen un código de operación; los últimos cuatro contienen una dirección. Si LOAD es 0001, entonces LOAD 10 se convierte en 0001 1010, porque el decimal 10 es el binario 1010. Cuatro bits de código de operación permiten códigos de operación. Cuatro bits de dirección identifican las posiciones de 0 a 15. Esta codificación ilustra un formato limitado; los otros seguimientos de la máquina didáctica usan instrucciones escritas con direcciones mayores.
Una arquitectura del conjunto de instrucciones (ISA) define las instrucciones, codificaciones y registros que ofrece un procesador. x86-64, ARM y RISC-V son ejemplos. Las instrucciones A64 de ARM tienen 32 bits de longitud; las instrucciones x86-64 van de 1 a 15 bytes. El tamaño de palabra de un procesador de 64 bits no determina la longitud de todas sus instrucciones.
Un bucle legible
Un ensamblador convierte los mnemónicos y las etiquetas del lenguaje ensamblador en código máquina para una ISA. Entre los grupos útiles de instrucciones están la transferencia de datos, la aritmética y la lógica, el flujo de control y las operaciones de sistema o E/S.
Este programa con acumulador cuenta hacia atrás desde 3. SUB 21 resta el contenido de la dirección 21. JUMPZ salta si el ACC es cero.
0 LOAD 20
1 SUB 21
2 STORE 20
3 JUMPZ 5
4 JUMP 0
5 HALT
20 holds 3; 21 holds 1.
En la primera pasada, LOAD lee 3, SUB deja 2 y STORE guarda 2. La comprobación de cero no se cumple, por lo que JUMP 0 inicia otra pasada. La segunda pasada guarda 1 y vuelve al inicio. La tercera guarda 0, por lo que JUMPZ 5 va a HALT.
Las dos primeras pasadas usan cinco instrucciones cada una. La última usa cuatro antes de HALT, que también cuenta como instrucción: . Contar solo las seis líneas escritas omite las ejecuciones repetidas.
Una sentencia fuente, varias instrucciones
Una sentencia de alto nivel como total = price + tax puede convertirse en operaciones para cargar un valor, sumar otro y guardar el resultado. Los lenguajes de alto nivel expresan variables, decisiones, bucles y funciones sin nombrar cada registro. El ensamblador suele corresponder cada instrucción escrita con una instrucción de máquina y depende estrechamente de su ISA.
El código máquina de x86-64 no puede ejecutarse de forma nativa como código ARM. El código fuente puede recompilarse para ARM, o una capa de traducción o emulación puede resolver la incompatibilidad.
RISC y CISC
Los diseños RISC, como ARM y RISC-V, favorecen las instrucciones sencillas y regulares. Muchos usan instrucciones de longitud fija, pero RISC-V puede mezclar formas comprimidas de 16 bits con instrucciones estándar de 32 bits. Los diseños CISC, como x86, ofrecen instrucciones más complejas y de longitud variable. Los procesadores x86 modernos dividen las instrucciones en operaciones internas más sencillas. Estas etiquetas describen enfoques de diseño, no garantizan que una máquina sea más rápida.
Puntos clave
- Un código de operación selecciona una operación; los operandos especifican sus entradas o destinos.
- Una ISA define el contrato de código máquina que implementa un procesador.
- Un ensamblador traduce mnemónicos legibles a código máquina.
- Los bucles ejecutan algunas instrucciones repetidamente, por lo que el número de ejecuciones difiere del número de líneas.
- Los programas de alto nivel necesitan traducción o un intérprete implementado en código máquina.
- RISC y CISC describen estilos de conjuntos de instrucciones, con excepciones a las reglas sencillas sobre su longitud.
3.2 Del código fuente a un programa en ejecución
El código fuente es el texto legible de un programa. Un procesador ejecuta instrucciones de máquina, por lo que una herramienta debe conectar ambos. La compilación y la interpretación describen formas de hacerlo; muchas implementaciones reales las combinan.
Las herramientas de traducción
| Herramienta | Su trabajo |
|---|---|
| Ensamblador | Traduce ensamblador a código máquina |
| Compilador | Traduce código a otra forma, a menudo código máquina o código de bytes |
| Intérprete | Realiza las operaciones de un programa durante su ejecución |
La mayoría de los compiladores trabajan antes de que se inicie un programa. Un compilador en tiempo de ejecución (JIT) trabaja durante la ejecución. Un intérprete es a su vez un programa en código máquina: la CPU ejecuta el intérprete, que realiza las operaciones del programa fuente.
Sigue la construcción de un programa en C
La orden clang hello.c -o hello construye un ejecutable llamado hello a partir de hello.c. Una herramienta de construcción como make puede organizar las órdenes del compilador para quien programa. Las etapas principales son:
- Preprocesamiento: procesar directivas como
#include <stdio.h>, incorporando al código fuente las declaraciones de las cabeceras. - Compilación: traducir el código C a operaciones de nivel ensamblador.
- Ensamblado: codificar esas operaciones como código máquina en archivos objeto.
- Enlace: conectar el código objeto y las referencias a bibliotecas para producir un ejecutable.
Las cabeceras describen las interfaces de las bibliotecas; incluir una cabecera no copia por sí solo la implementación compilada de la biblioteca en el programa. El enlace proporciona la conexión con ese código. El enlace estático copia el código de biblioteca necesario en el ejecutable. El enlace dinámico registra dependencias de bibliotecas compartidas que se cargan y conectan cuando se necesitan.
El ejecutable está destinado a una ISA y a un formato de sistema operativo. Por eso, construirlo para un Mac con ARM y una computadora con Windows y x86-64 requiere construcciones nativas separadas. Modificar el código fuente también exige volver a construir un ejecutable compilado antes de que el cambio surta efecto.
Los errores ocurren en distintas etapas
Un compilador puede informar de errores de sintaxis, como la falta de un punto y coma en C, y de errores de tipo cuando el lenguaje comprueba los tipos. Una compilación correcta no demuestra que el programa resuelva el problema adecuado. Un error lógico produce un resultado incorrecto. Un error de ejecución ocurre mientras se ejecuta el programa, como dividir entre un valor de entrada que resulta ser cero.
Un intérprete sencillo puede llegar a un error solo después de haber ejecutado sentencias anteriores. Python comprueba primero la sintaxis de todo un archivo, pero un nombre no definido puede provocar un fallo solo cuando la ejecución llega a él. El método de traducción por sí solo no indica cuándo se detecta cada tipo de error.
Código de bytes y máquinas virtuales
Java compila el código fuente a código de bytes, instrucciones para la máquina virtual de Java (JVM). Cada plataforma compatible proporciona su propia JVM. Esta puede interpretar el código de bytes y compilar mediante JIT las secciones de uso frecuente al código máquina de la CPU local. El código de bytes sigue siendo portable porque la JVM específica de cada plataforma gestiona las diferencias de hardware.
CPython también compila Python a código de bytes y lo ejecuta con una máquina virtual. PyPy usa un compilador JIT, y los motores de JavaScript de los navegadores también usan compilación JIT. «Compilado» e «interpretado» describen implementaciones, no propiedades permanentes de un lenguaje.
El código nativo compilado de forma anticipada suele evitar el trabajo repetido de interpretación. La interpretación facilita el ciclo de modificar y ejecutar, mientras que el código de bytes y JIT combinan portabilidad con optimización durante la ejecución. En todas las vías, la CPU acaba siguiendo instrucciones de máquina y el SO carga en la memoria el código ejecutable necesario.
Puntos clave
- Los compiladores traducen código; los intérpretes realizan operaciones durante la ejecución.
- La construcción de un programa en C incluye preprocesamiento, compilación, ensamblado y enlace.
- El enlace estático incluye código de biblioteca; el enlace dinámico registra dependencias de bibliotecas compartidas.
- La compilación puede detectar errores de sintaxis y dejar sin detectar errores lógicos y de ejecución.
- El código de bytes se ejecuta mediante una máquina virtual específica de la plataforma.
- La compilación JIT traduce durante la ejecución; los lenguajes pueden tener implementaciones distintas.
- Los ejecutables nativos dependen tanto de una ISA como de un formato de sistema operativo.
4Memoria, almacenamiento y copias rápidas
El lugar donde una computadora guarda los datos influye tanto en si sobreviven a una pérdida de alimentación como en la rapidez con la que pueden usarse. Compara la RAM de trabajo con las unidades de almacenamiento persistente y después sigue la jerarquía desde los registros hasta los archivos de conservación. La elección del almacenamiento depende de los patrones de acceso y de la capacidad. La caché explica cómo un almacén pequeño y rápido puede evitar muchos accesos lentos, y una media ponderada muestra cuánto afectan los fallos al resultado.
4.1 La memoria de trabajo y sus direcciones
La memoria principal contiene las instrucciones y los datos disponibles en ese momento para la CPU. Para una aplicación corriente almacenada en un SSD, el SO lleva primero el código y los datos necesarios a la RAM. Después, la CPU busca instrucciones a través de su sistema de memoria y caché.
RAM, DRAM y SRAM
RAM significa memoria de acceso aleatorio: se puede acceder a una posición sin pasar por todas las anteriores. La RAM de trabajo normal es volátil, por lo que su contenido se pierde sin alimentación. Guardar un documento copia sus datos a un almacenamiento no volátil.
La memoria principal usa DRAM, que almacena bits como carga en pequeños condensadores. La carga se pierde poco a poco, por lo que las celdas necesitan refresco, normalmente dentro de un intervalo de refresco de 64 ms. La SRAM usa circuitos de transistores de tipo biestable sensible al nivel que conservan su estado mientras reciben alimentación. No necesita refresco, pero ocupa más espacio y cuesta más por bit. Su velocidad resulta adecuada para las cachés del procesador.
| Tipo | Conserva un bit mediante | Función habitual | ¿Conserva el contenido sin alimentación? |
|---|---|---|---|
| DRAM | Carga en un condensador | Memoria principal de trabajo | No |
| SRAM | Un circuito de tipo biestable sensible al nivel | Caché de la CPU | No |
| Memoria flash del firmware | Carga atrapada | Instrucciones de arranque | Sí |
La ROM, o memoria de solo lectura, es memoria no volátil asociada a instrucciones fijas, como el firmware. El firmware UEFI o BIOS moderno suele estar en memoria flash actualizable. La capacidad para archivos anunciada de un teléfono es almacenamiento flash, aunque una descripción la llame informalmente «ROM»; el teléfono escribe archivos allí de forma habitual.
Un byte tiene una dirección
En la memoria direccionable por bytes, cada dirección identifica un byte. Un entero de 4 bytes que empieza en la dirección decimal 1000 ocupa las posiciones 1000, 1001, 1002 y 1003. La siguiente posición libre es 1004. Las direcciones suelen escribirse en hexadecimal, como 0x7FFE0010, porque el hexadecimal representa los patrones de bits de forma compacta.
La dirección identifica dónde se encuentran los bytes. Leer el número escrito como dirección es distinto de leer el valor almacenado en esa dirección.
Las unidades de capacidad usan dos sistemas
Un byte contiene 8 bits. La b minúscula significa bits; la B mayúscula significa bytes.
| Unidad decimal | Bytes | Unidad binaria | Bytes |
|---|---|---|---|
| kB | 1000 | KiB | 1024 |
| MB | 1 000 000 | MiB | 1 048 576 |
| GB | 1 000 000 000 | GiB | 1 073 741 824 |
| TB | 1 000 000 000 000 | – | – |
Una unidad vendida como de 1 TB contiene bytes. En GiB, la cantidad es:
Algunas pantallas de sistemas operativos etiquetan esta cantidad binaria como «GB». La diferencia numérica procede del tamaño de la unidad; no demuestra que falte espacio.
La capacidad es distinta de la velocidad del procesador
Más RAM permite mantener listos más programas en ejecución y más datos a la vez. Cuando los datos de trabajo superan la RAM, el SO puede mover páginas al almacenamiento, lo que ralentiza el acceso. La RAM adicional ayuda a resolver esa escasez, pero no aumenta la frecuencia de reloj de la CPU. Eliminar archivos guardados libera almacenamiento. Cerrar programas o pestañas innecesarios puede liberar RAM de trabajo.
Puntos clave
- La RAM de trabajo es volátil; guardar transfiere los datos a un almacenamiento no volátil.
- La DRAM necesita refresco; la SRAM usa circuitos biestables sensibles al nivel y resulta adecuada para cachés rápidas.
- El firmware persiste sin alimentación y puede residir en memoria flash actualizable.
- Cada dirección de una memoria direccionable por bytes identifica un byte.
- El GB decimal y el GiB binario usan cantidades distintas de bytes.
4.2 Elegir el almacenamiento para la tarea
El almacenamiento secundario conserva programas y archivos sin alimentación. En comparación con la RAM, ofrece más capacidad a menor coste por byte, con un acceso más lento. Las distintas tecnologías de almacenamiento equilibran velocidad, coste, portabilidad y durabilidad.
Discos magnéticos y unidades de estado sólido
Una unidad de disco duro (HDD) almacena patrones magnéticos en platos giratorios. Un cabezal móvil busca la pista adecuada y después espera a que la parte deseada del plato gire hasta quedar debajo de él. Ambos movimientos añaden demora al acceso.
A 7200 revoluciones por minuto, una vuelta tarda:
La espera rotacional media es de media vuelta, unos 4,2 ms. Esta es solo la parte rotacional, no el tiempo completo de lectura; la búsqueda y la transferencia también llevan tiempo. Las partes móviles también hacen que un HDD en funcionamiento sea vulnerable a los golpes.
Un SSD almacena carga en celdas flash y no tiene partes móviles. Las lecturas aleatorias pequeñas tardan decenas de microsegundos en lugar de los milisegundos típicos del acceso a HDD. Los SSD son silenciosos, resisten golpes y resultan adecuados para computadoras portátiles. Los HDD suelen ofrecer un menor coste por terabyte para grandes colecciones.
Las celdas flash toleran un número limitado de ciclos de borrado y escritura. El controlador usa la nivelación del desgaste para repartir las escrituras entre las celdas. Las memorias USB, las tarjetas de memoria y el almacenamiento de los teléfonos también usan flash, aunque el controlador y la interfaz afectan a su rendimiento.
Discos ópticos y cinta
| Medio | Cómo almacena o lee los datos | Uso adecuado |
|---|---|---|
| CD, DVD, Blu-ray | Un láser lee marcas en una capa reflectante | Distribuir contenido multimedia o conservar un archivo en discos |
| Cinta magnética | Los datos siguen una secuencia a lo largo de una cinta | Grandes copias de seguridad y archivos de conservación |
Las capacidades típicas son de unos 700 MB para un CD, 4,7 GB para un DVD de una capa y 25 GB para un disco Blu-ray de una capa. Los medios ópticos son portátiles, pero lentos en comparación con las unidades modernas.
La cinta ofrece un bajo coste para grandes archivos de conservación. Su acceso secuencial implica que la unidad debe desplazar la cinta para llegar a un archivo distante. Los discos y los SSD proporcionan acceso directo, llegando a una posición seleccionada sin recorrer todos los datos anteriores. Por eso, la cinta resulta más adecuada para copias de seguridad masivas programadas que para una aplicación que abre repetidamente archivos pequeños dispersos.
El almacenamiento en la nube es un servicio
El almacenamiento en la nube guarda archivos en equipos de los centros de datos de un proveedor. Los medios subyacentes siguen siendo SSD, HDD o cinta. Una conexión de red añade demoras de acceso y transferencia. El servicio ofrece uso compartido, acceso remoto y copias fuera de las instalaciones, con cuotas periódicas y dependencia de los controles de acceso y la fiabilidad del proveedor.
Ajusta la elección al factor limitante
El tiempo de acceso es la demora hasta que empiezan a llegar los datos. La tasa de transferencia mide la rapidez con la que fluyen después. Muchas lecturas de archivos pequeños pagan repetidamente la demora de acceso; un único archivo grande y continuo da más importancia a la tasa de transferencia.
Un SSD resulta adecuado para los programas activos de una computadora portátil. Los HDD resultan adecuados para un servidor que almacena 20 TB de vídeo de forma económica. La cinta o un archivo en la nube sirven para los registros de una empresa a largo plazo, mientras que una memoria USB es práctica para transportar archivos. Elige según la capacidad, el tiempo de acceso, la tasa de transferencia, el coste por byte, el consumo energético, la fiabilidad y la portabilidad. Estar hecho de chips no convierte un SSD en RAM de trabajo: sigue siendo almacenamiento no volátil al que se accede mediante un controlador de almacenamiento.
Puntos clave
- El acceso a HDD incluye demoras de búsqueda y rotación; los SSD no tienen partes móviles.
- La nivelación del desgaste reparte las escrituras flash entre las celdas.
- La cinta proporciona acceso secuencial y resulta adecuada para grandes archivos de conservación.
- El almacenamiento en la nube usa almacenamiento físico al que se accede por una red.
- El tiempo de acceso y la tasa de transferencia miden partes distintas de una lectura.
- Elige el almacenamiento según el patrón de acceso de la tarea y sus necesidades prácticas.
4.3 Mantener los datos útiles cerca de la CPU
Una computadora combina varios tipos de almacenamiento porque ninguna tecnología reúne acceso rápido, gran capacidad y bajo coste. La jerarquía de memoria sitúa una pequeña cantidad de almacenamiento muy rápido cerca de la CPU y almacenes mayores y más lentos más lejos.
Los niveles de la jerarquía
Desde los más rápidos y pequeños hacia los más lentos y grandes, los niveles principales son registros, caché L1/L2/L3, RAM, SSD, HDD y almacenamiento de archivo. El coste por byte suele disminuir a medida que aumenta la capacidad.
| Nivel | Tiempo de acceso orientativo | Tamaño habitual |
|---|---|---|
| Registros | Una fracción de nanosegundo | Unos pocos kilobytes o menos |
| Caché L1 | Aproximadamente 1 ns | De decenas a cientos de kilobytes por núcleo |
| Caché L2 | Unos pocos ns | Hasta unos pocos megabytes |
| Caché L3 | Aproximadamente 10–20 ns | De varios a decenas de megabytes |
| RAM | Aproximadamente 50–100 ns | De varios a decenas de gigabytes |
| SSD | Aproximadamente 20–100 µs | De cientos de gigabytes a terabytes |
| HDD | Aproximadamente 5–10 ms | Varios terabytes |
Estos tiempos muestran la escala, no una especificación fija para todos los dispositivos. Si se usan 1 ns para L1, 100 ns para RAM y 10 ms para un disco, la RAM tarda unas 100 veces más que L1 y el disco unas 100 000 veces más que la RAM.
Aciertos, fallos y copias útiles
Una caché de CPU usa SRAM para guardar bloques copiados de la memoria principal. El hardware busca en los niveles de caché antes de acceder a la RAM. Un acierto encuentra el contenido solicitado en la caché. Un fallo exige buscarlo en un nivel más lento y puede traer una copia a la caché.
La tasa de aciertos es el número de aciertos dividido entre todos los accesos. Para 950 aciertos en 1000 accesos, es del 95 %. Un fallo no significa que falten datos o estén dañados; significa que la copia rápida no estaba disponible.
Por qué el acceso pasado predice el futuro
La localidad temporal significa que es probable que el contenido usado recientemente vuelva a usarse pronto. Un bucle lee repetidamente un contador y sus propias instrucciones. La localidad espacial significa que es probable que se usen pronto direcciones cercanas. Leer elementos consecutivos de una lista sigue este patrón.
Una caché trae una línea de caché completa, habitualmente de 64 bytes contiguos, aprovechando la localidad espacial. Varios niveles equilibran capacidad y tiempo de búsqueda: buscar en una única caché enorme llevaría más tiempo.
Calcula la demora media
Supón que una comprobación de caché tarda 1 ns y un acceso a RAM tarda 100 ns. Un fallo cuesta ambos tiempos, por lo que tarda 101 ns. Con una tasa de aciertos del 95 %:
Con una tasa de aciertos del 80 %:
La segunda media es veces mayor. Pondera el coste completo del acierto y el coste completo del fallo según la frecuencia con la que ocurre cada uno. Olvidar la comprobación de caché en un fallo cambiaría la respuesta de este modelo.
Cachés más allá del procesador
El SO guarda en caché contenido de archivos en la RAM. Un navegador guarda en caché archivos web descargados en el almacenamiento, y las redes de distribución de contenidos mantienen copias cerca de los usuarios. Todos reutilizan copias cercanas para evitar recuperaciones lentas repetidas. Borrar la caché de un navegador elimina archivos del navegador; no vacía los circuitos de caché de la CPU. Las cachés de CPU guardan pequeños bloques de memoria, no una biblioteca organizada de documentos completos.
Puntos clave
- La jerarquía equilibra la velocidad y el coste por byte con la capacidad.
- Un acierto de caché encuentra una copia rápida; un fallo busca en un nivel más lento.
- La localidad temporal reutiliza contenido; la localidad espacial usa direcciones cercanas.
- El tiempo medio de acceso pondera el coste completo de los aciertos y los fallos.
- Las cachés del navegador, de archivos y de la CPU usan la misma idea general en distintas capas.
5Cómo pone el sistema operativo a trabajar los componentes
Abrir una aplicación depende de algo más que un procesador y un archivo de programa. El sistema operativo asigna memoria, reparte tiempo del procesador, comprueba permisos y ofrece servicios de archivos y dispositivos. Sigue el arranque desde el firmware hasta el núcleo y después sigue un editor en ejecución por sus regiones de memoria, eventos de entrada y una solicitud de guardado. La memoria virtual conecta la visión de las direcciones de cada proceso con la RAM física que tiene permiso para usar.
5.1 Las tareas cotidianas del sistema operativo
Un sistema operativo (SO) gestiona el hardware y proporciona servicios a las aplicaciones. Windows, macOS y Linux se usan en computadoras personales y servidores; Android e iOS, en dispositivos móviles. El escritorio visible es solo una parte de este trabajo.
Gestionar recursos y ocultar detalles del hardware
Como gestor de recursos, el SO asigna tiempo del procesador, memoria de trabajo, archivos y dispositivos a programas y usuarios. Como abstracción, proporciona operaciones más sencillas que ocultan los detalles del hardware. Un editor de texto puede solicitar «abrir el archivo report.txt» sin elegir pistas de disco ni órdenes de dispositivo.
| Función | Qué hace el SO |
|---|---|
| Gestión de procesos | Inicia, planifica y termina programas en ejecución |
| Gestión de memoria | Asigna memoria y hace cumplir la separación |
| Gestión de archivos | Organiza archivos, carpetas y datos almacenados |
| Gestión de dispositivos | Se comunica con los dispositivos mediante controladores de software |
| Seguridad | Hace cumplir las reglas de cuentas y permisos |
| Comunicaciones de red | Proporciona servicios para intercambiar datos |
La interfaz de usuario permite a las personas solicitar este trabajo. Una interfaz gráfica de usuario (GUI) usa ventanas, iconos, menús e interacción táctil o un puntero. Una interfaz de línea de comandos (CLI) acepta órdenes escritas. Órdenes como ls en Linux y macOS o dir en Windows enumeran archivos; los programas de órdenes pueden combinar instrucciones para tareas repetitivas.
El núcleo controla las operaciones privilegiadas
El núcleo es la parte central del SO responsable del control del hardware y de los recursos protegidos. Las aplicaciones se ejecutan en modo usuario con privilegios restringidos. El código del núcleo se ejecuta en modo núcleo con mayores privilegios. Una aplicación solicita un servicio protegido mediante una llamada al sistema, como pedir al SO que lea un archivo.
El núcleo comprueba los permisos y realiza la acción autorizada. Una aplicación defectuosa no puede simplemente usar una instrucción normal de modo usuario para tomar el control de todos los dispositivos o leer la memoria protegida de otro proceso.
Repartir el tiempo del procesador
El planificador decide qué programa listo para ejecutarse recibe tiempo del procesador. Los turnos breves en un único flujo de procesamiento hacen que la reproducción de música y la edición de documentos parezcan simultáneas. Varios núcleos también permiten ejecutar trabajo en el mismo instante. Algunas CPU admiten multihilo por hardware dentro de un núcleo, pero compartir el tiempo sigue siendo necesario cuando hay más trabajo listo del que el hardware puede ejecutar a la vez.
Dar nombres a los archivos y controladores de software a los dispositivos
Un sistema de archivos registra el contenido de los archivos y metadatos como el tamaño, las fechas y los permisos. Las carpetas forman una jerarquía; una ruta identifica un archivo, por ejemplo /home/sam/notes.txt en Linux. NTFS, APFS y ext4 son ejemplos de sistemas de archivos.
Eliminar un archivo suele borrar su entrada de directorio y liberar su espacio para reutilizarlo. Eso es distinto de sobrescribir deliberadamente cada byte. A veces se pueden recuperar los datos antiguos, especialmente en HDD; una eliminación normal no garantiza un borrado seguro.
Un controlador de software traduce las solicitudes generales de dispositivos a órdenes que entiende un controlador de hardware. Los controladores estándar gestionan muchos teclados y memorias USB, mientras que algunos dispositivos requieren un controlador específico.
Clasificar el software según su función
El SO, los controladores y las utilidades, como las herramientas de copia de seguridad, son software de sistema. Los navegadores, editores, juegos y hojas de cálculo son software de aplicación. Los sistemas móviles dan prioridad a la duración de la batería, la interacción táctil y la separación entre aplicaciones; los servidores admiten servicios de red. Un SO de tiempo real cumple plazos de respuesta especificados para tareas de control. Los dispositivos embebidos muy sencillos pueden ejecutar un programa sin un SO completo.
Puntos clave
- El SO gestiona recursos compartidos y oculta los detalles del hardware tras servicios.
- Las llamadas al sistema solicitan servicios del núcleo desde aplicaciones con restricciones en modo usuario.
- El planificador reparte el tiempo del procesador entre el trabajo listo para ejecutarse.
- Los sistemas de archivos registran el contenido, los nombres, las rutas y los permisos de los archivos.
- Los controladores de software conectan las solicitudes generales del SO con órdenes específicas de cada dispositivo.
- El software de sistema hace funcionar y mantiene la computadora; las aplicaciones realizan las tareas del usuario.
5.2 Del encendido a un documento guardado
Iniciar una computadora e iniciar una aplicación implican etapas distintas. El arranque entrega el control al sistema operativo. Después, la carga de la aplicación crea un proceso en ejecución que usa el procesador, la memoria y los servicios del SO.
Empezar con instrucciones persistentes
Al encender, la RAM de trabajo no contiene ningún programa utilizable en ejecución. La CPU comienza con el firmware almacenado en memoria no volátil. En una PC moderna, el firmware UEFI prepara el hardware y realiza comprobaciones de arranque, a menudo llamadas autoprueba de encendido (POST). Selecciona un dispositivo de arranque e inicia un cargador de arranque. El cargador carga el núcleo del SO en la RAM y le transfiere el control. El núcleo prepara la gestión de memoria, los controladores de software y los servicios antes de que aparezca la pantalla de inicio de sesión o la pantalla de inicio.
Convertir un archivo de programa en un proceso
Un programa son instrucciones almacenadas. Un proceso es una instancia en ejecución, con memoria, estado de registros y recursos. Las instancias separadas de un mismo editor pueden mantener documentos distintos aunque hayan partido del mismo archivo de programa.
Para iniciar una aplicación, el SO comprueba el ejecutable y el permiso para ejecutarlo, crea un espacio de direcciones, carga el código y los datos necesarios al principio, prepara una pila y establece la dirección de la instrucción inicial. Pueden cargarse más páginas cuando se usen. El planificador da al proceso tiempo en la CPU, que ejecuta sus instrucciones de máquina.
Distintas regiones contienen distintos elementos
| Región | Contenido |
|---|---|
| Código | Instrucciones de máquina |
| Datos | Variables globales |
| Montículo de memoria | Memoria solicitada durante la ejecución del programa |
| Pila de memoria | Llamadas a funciones activas, valores locales y direcciones de retorno |
Llamar a una función añade información a la pila; regresar libera la parte de esa llamada. Las llamadas repetidas sin un punto de parada pueden agotar la pila y causar un desbordamiento de pila. Una fuga de memoria ocurre cuando un programa conserva memoria que ya no necesita, lo que hace crecer la memoria reservada que retiene. Usar mucha memoria no basta por sí solo para diagnosticar una fuga.
Separar las direcciones de las posiciones físicas
La memoria virtual da a cada proceso su propio espacio de direcciones. El SO y la unidad de gestión de memoria (MMU) de la CPU asignan direcciones virtuales a posiciones de RAM física en páginas, a menudo de 4 KiB. Dos procesos pueden usar 0x1000 para posiciones físicas distintas. Los permisos de acceso impiden lecturas o escrituras no autorizadas; el SO también puede permitir explícitamente páginas compartidas.
Un acceso prohibido provoca un fallo, que puede terminar el proceso. En Linux o macOS, un programa en C puede informar de un «fallo de segmentación». Una dirección virtual identifica una posición en el mapa de ese proceso, no necesariamente un byte de RAM con el mismo número.
Cuando la demanda de memoria es alta, el SO puede mover páginas inactivas a un archivo de intercambio o de paginación en el almacenamiento. Recuperar una página de ejemplo en 100 µs tarda unas 1000 veces más que un acceso a RAM de 100 ns. El movimiento repetido de páginas, llamado hiperpaginación, puede dominar el tiempo de ejecución. Reducir la demanda de memoria activa o añadir RAM puede ayudar.
Sigue una pulsación de tecla a través de las capas
Un controlador de hardware del teclado señala una interrupción. La rutina de servicio y el controlador de software del SO obtienen el evento y lo entregan al proceso del editor. El editor actualiza el documento en su memoria y pide a los servicios gráficos del SO que actualicen la pantalla. Guardar solicita al sistema de archivos que escriba el documento en el almacenamiento. Cuando termina el proceso, el SO recupera su memoria y sus recursos. Los datos guardados permanecen; los cambios mantenidos solo en la memoria del proceso desaparecen.
Puntos clave
- El firmware se inicia antes de que el cargador de arranque cargue el núcleo.
- Un proceso es una instancia de un programa en ejecución con su propio estado.
- El código, los datos, el montículo y la pila contienen distintas partes de un proceso.
- La memoria virtual asigna las direcciones de los procesos a la RAM y hace cumplir los permisos de acceso.
- El intercambio de páginas usa almacenamiento para las páginas; las transferencias frecuentes pueden causar hiperpaginación.
- Editar modifica la memoria de trabajo; guardar escribe el documento en el almacenamiento.
- El SO recupera los recursos de un proceso cuando este termina.
Ejemplos de Cómo funcionan las computadoras
1Sigue las vías dentro de una computadora
13 pasos
- 1IntroducciónSigue una acción sencilla
Abrir una foto implica varios componentes: la entrada solicita la acción, el almacenamiento conserva el archivo, la RAM contiene el contenido de trabajo y el procesador sigue instrucciones para mostrarla. Las instrucciones comparten la memoria con los datos, el diseño de von Neumann, de modo que una misma máquina puede realizar muchas tareas.
Separaremos esas tareas, seguiremos una transferencia de memoria y veremos cómo los dispositivos reciben atención (una interrupción) sin mantener a la CPU esperando. Estas funciones también describen un teléfono o un controlador dentro de un dispositivo mayor.
- 2ExplicaciónLocaliza los componentes de trabajo
La CPU ejecuta instrucciones. La RAM contiene las instrucciones y los datos actuales; un SSD o HDD contiene archivos persistentes. Los dispositivos de entrada aportan datos y los de salida presentan resultados o actúan sobre ellos.
La placa base conecta estos componentes. Un teléfono combina muchas funciones en un sistema en un chip. La caja completa de la computadora no es la CPU: el procesador es un componente dentro del sistema.
- 3Idea claveLos programas son contenido de la memoria
En el diseño de von Neumann, una misma memoria principal contiene instrucciones y datos. La CPU busca en ella instrucciones binarias, lo que permite que un programa nuevo cargado asigne una tarea distinta al mismo hardware.
Un patrón de bits no tiene un significado incorporado para la memoria. El byte
01000001podría representar 65, la letra «A» de ASCII o parte de una instrucción. Su uso aporta la interpretación. - 4DesafíoCambia la tarea
Un controlador de temperatura y una computadora portátil contienen procesadores, memoria y entrada/salida. ¿Por qué es el controlador un sistema embebido y qué permite a la computadora portátil pasar de editar texto a reproducir audio?
---reveal---
El controlador realiza una tarea específica dentro de otro dispositivo. La computadora portátil cambia de tarea ejecutando distintas instrucciones almacenadas. Las funciones del hardware se mantienen mientras el programa cambia el trabajo que realizan.
- 5AnalogíaElige un buzón y después su contenido
Piensa en las posiciones de memoria como buzones numerados. La dirección selecciona un buzón; los datos son lo que contiene. Una lectura solicita su contenido y una escritura lo sustituye.
En el bus del sistema clásico, el bus de direcciones selecciona la posición, el bus de datos transporta el contenido y el bus de control transporta la orden de lectura o escritura. Cambiar el contenido nunca cambia el número de la posición.
- 6EjemploLee la dirección 200
La CPU quiere el contenido de la dirección de memoria 200. Envía 200 por el bus de direcciones y activa una orden de lectura en el bus de control.
La memoria encuentra esa posición y coloca su contenido, aquí 7, en el bus de datos. La CPU recibe 7 en un registro. La dirección hizo la selección; los datos devueltos aportan el valor. No se realiza ninguna escritura, por lo que el contenido de la posición 200 sigue siendo 7.
- 7ExplicaciónCuenta posiciones y transferencias
Con 16 bits de dirección, la memoria direccionable por bytes tiene 65 536 posiciones, o 64 KiB. Añadir un bit de dirección duplica ese rango.
El ancho de datos responde a otra pregunta. Una vía de 64 bits mueve 8 bytes por transferencia. A mil millones de transferencias por segundo, su ancho de banda es de 8 GB/s. Más bits de dirección te permiten identificar más posiciones; más bits de datos te permiten mover más contenido en una transferencia.
- 8DesafíoDistingue los dos anchos
Un sistema didáctico direccionable por bytes tiene 11 bits de dirección y una vía de datos de 16 bits. ¿Cuánta memoria puede direccionar y cuántos bytes se mueven en una transferencia?
---reveal---
Puede direccionar bytes, o 2 KiB. La vía de datos transporta 2 bytes por transferencia porque cada byte tiene 8 bits. Multiplicar el número de direcciones por dos supondría incorrectamente que cada dirección identifica dos bytes.
- 9ExplicaciónConvierte entre señales y valores
Un micrófono aporta entrada y un altavoz proporciona salida. El sonido varía de forma continua, mientras que una computadora conserva valores digitales. Un ADC muestrea la entrada y codifica las mediciones como números; un DAC convierte los valores digitales de salida en una señal analógica.
Una pantalla táctil cumple dos funciones: detectar toques proporciona entrada y mostrar una imagen proporciona salida. Un dispositivo puede contener circuitos de procesamiento y seguir clasificándose por esa función.
- 10ConexiónLos controladores de hardware y software trabajan juntos
Un controlador de hardware es un circuito que se comunica con un dispositivo. Un controlador de software es un programa que convierte las solicitudes del SO en órdenes para ese controlador de hardware.
El sondeo pregunta repetidamente si el dispositivo está listo. Con una interrupción, el controlador de hardware avisa cuando se necesita atención. Para un bloque grande, el DMA puede mover contenido entre el dispositivo y la RAM mientras la CPU trabaja en otra cosa y después señalar la finalización.
- 11DesafíoEvita comprobaciones sin resultado
Un escáner envía una imagen grande a la RAM. La CPU configura la transferencia, continúa con otra tarea y recibe una señal de finalización. ¿Qué aportan el DMA y la interrupción, respectivamente?
---reveal---
El DMA mueve el bloque de la imagen sin que la CPU copie cada byte. La interrupción anuncia que la transferencia ha terminado para que el SO pueda atenderla. La CPU sigue organizando la transferencia; simplemente evita realizar por sí misma todo el trabajo de mover bytes.
- 12DesafíoRelaciona una lectura con un resultado
Un controlador de invernadero lee un valor digital de temperatura y lo lleva a la RAM, calcula una decisión y abre una válvula. ¿Cuáles son su entrada y su salida, y qué debe pasar entre la memoria y la CPU?
---reveal---
La lectura de temperatura es la entrada y la activación de la válvula es la salida. La CPU necesita tanto las instrucciones de control almacenadas como la lectura de la memoria. El direccionamiento selecciona esas posiciones, la transferencia de datos transporta su contenido y las señales de control coordinan el acceso.
- 13RepasoInterpreta el recorrido completo
Identifica primero la función: entrada, procesamiento, memoria de trabajo, almacenamiento persistente o salida. Después distingue la posición seleccionada del contenido que se mueve.
Las instrucciones almacenadas indican a la CPU qué hacer; los buses o enlaces modernos transportan direcciones, valores y órdenes. Los controladores de hardware y software conectan los dispositivos, mientras que las interrupciones y el DMA permiten que el trabajo lento o voluminoso de los dispositivos comparta una computadora rápida de forma eficiente.
2Construye y sigue una operación del procesador
19 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónHaz visible la ejecución
- 2ExplicaciónLee la regla de una puerta
- 3EjemploGenera un acarreo
- 4DesafíoEvalúa las salidas intermedias
- 5ConexiónConserva un resultado entre pasos
- 6ExplicaciónAsigna las tareas del procesador
- 7DesafíoDistingue la dirección del contenido
- 8ExplicaciónBusca la instrucción antes de usarla
- 9EjemploPrimera instrucción: cargar
- 10EjemploSegunda instrucción: sumar
- 11EjemploTercera y cuarta: almacenar y detener
- 12DesafíoRealiza o descarta un salto
- 13Idea claveReanuda tras una interrupción
- 14EjemploCompara un número fijo de ciclos
- 15EjemploDivide solo el trabajo paralelo
- 16ExplicaciónSolapa las etapas, no los significados
- 17DesafíoEstima una nueva tarea paralela
- 18DesafíoExplica por qué una segmentación rápida queda sin aprovechar
- 19RepasoRelaciona bits, estado y tiempo
3Sigue un programa desde el texto hasta la ejecución
13 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónDistingue las formas del programa
- 2ExplicaciónDivide una instrucción en campos
- 3ExplicaciónIdentifica el contrato del hardware
- 4EjemploPrepara una cuenta atrás
- 5EjemploCuenta las ejecuciones, incluida la salida
- 6DesafíoCambia el inicio y sigue la salida
- 7ExplicaciónConstruye antes de ejecutar
- 8ConexiónDecide dónde reside el código de biblioteca
- 9DesafíoExplica una construcción correcta con una salida incorrecta
- 10Idea claveLa interpretación también ejecuta código máquina
- 11DesafíoTraslada el programa a otra CPU
- 12DesafíoSigue dos vías hacia el mismo hardware
- 13RepasoMantén clara la tarea de cada capa
4Compara la memoria y calcula los efectos de la caché
14 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónHaz dos preguntas sobre los datos almacenados
- 2ExplicaciónDistingue el contenido de trabajo del persistente
- 3EjemploLee la unidad de capacidad
- 4DesafíoLocaliza el último byte
- 5ExplicaciónDistingue la espera del flujo de datos
- 6EjemploCalcula una parte de la demora de un disco
- 7DesafíoElige según el comportamiento del almacenamiento
- 8ExplicaciónDesciende por la jerarquía
- 9ConexiónPredice los siguientes bytes útiles
- 10EjemploIncluye las dos partes de un fallo
- 11EjemploCambia la tasa de aciertos
- 12DesafíoCalcula una nueva media de caché
- 13DesafíoElige la mejora pertinente
- 14RepasoAsocia el recurso con la necesidad
5Sigue el arranque, una pulsación de tecla y un guardado
15 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónSigue un editor a través del sistema
- 2ExplicaciónSolicita un servicio
- 3EjemploComparte el tiempo de ejecución
- 4DesafíoIdentifica el límite del SO
- 5ExplicaciónEmpieza antes del sistema operativo
- 6EjemploCrea la instancia en ejecución
- 7ExplicaciónAsigna tareas distintas a las regiones de memoria
- 8AnalogíaUsa un mapa privado de direcciones
- 9DesafíoMantén separadas las direcciones coincidentes
- 10Idea claveEl almacenamiento puede respaldar la memoria, lentamente
- 11EjemploEntrega el evento de tecla
- 12EjemploGuarda más allá de la vida del proceso
- 13DesafíoDistingue dos tipos de ralentización
- 14DesafíoRelaciona la protección de procesos con el guardado
- 15RepasoSigue los servicios en orden
Ejercicios de Cómo funcionan las computadoras
Set 1: Componentes, instrucciones y trabajo cotidiano con la computadora10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
10 corresponde a las salidas combinadas de suma y acarreo de un semisumador, no a la única salida de una puerta XOR.Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
LOAD 30 y la dirección 30 contiene 14. El PC empieza en 8. ¿Cuáles son el PC y el ACC después de ejecutar esta instrucción?Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
LOAD, ADD y otros mnemónicos de ensamblador en instrucciones binarias. ¿Qué tipo de herramienta es?Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
0x3000 para datos privados. Una guarda allí 9 y la otra guarda 22. ¿Por qué pueden mantenerse intactos ambos valores?Mostrar respuestaOcultar respuesta
Set 2: Conexiones, traducción y elección de memoria10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
JUMPZ 18 en la dirección 7 mientras el ACC es 4. ¿En qué dirección se busca a continuación?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
0010. ¿Cómo se codifica ADD 13?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 3: Seguimiento de decisiones y comparación del rendimiento10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
(A XOR B) AND (NOT C) cuando A = 1, B = 1 y C = 0?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
LOAD 40, SUB 41, STORE 40, JUMPZ 5, JUMP 0, HALT en las direcciones 0–5. La posición 40 empieza en 2 y la posición 41 contiene 1. Desde el PC en 0, ¿cuántas instrucciones se ejecutan, incluida HALT?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
LOAD 50, SUB 51, JUMPZ 4, ADD 51, STORE 52, HALT en las direcciones 0–5. Las posiciones 50 y 51 contienen ambas 6. ¿Qué queda almacenado en 52 cuando se detiene?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 4: Diagnóstico del comportamiento de los sistemas informáticos10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 5: Relación entre las instrucciones, la memoria y el sistema operativo10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
LOAD 19?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
Acceso directo a memoria
Acierto y fallo de caché
Acumulador
Almacenamiento en la nube
Almacenamiento secundario
Ancho de banda
Archivo ejecutable
Arquitectura de von Neumann
Arquitectura del conjunto de instrucciones
Arquitectura Harvard
B
Biestable disparado por flanco
Biestable sensible al nivel
Bus
Bus de control
Bus de datos
Bus de direcciones
C
Cargador de arranque
Ciclo de búsqueda, decodificación y ejecución
Ciclo de reloj
Cinta magnética
Código de bytes
Código de operación
Código fuente
Código máquina
Compilación en tiempo de ejecución
Compilador
Concepto de programa almacenado
Contador de programa
Controlador de dispositivo de hardware
Controlador de dispositivo de software
Convertidor analógico-digital
Convertidor digital-analógico
D
Desbordamiento de pila
Disco óptico
Dispositivo de entrada
Dispositivo de salida
DRAM
E
Enlace estático y dinámico
Enlazador
Ensamblador
Escritura del resultado
F
Firmware
Frecuencia de reloj
Fuga de memoria
H
Hardware
Hiperpaginación
I
Indicador de estado
Intercambio de páginas
Interfaz gráfica de usuario e interfaz de línea de comandos
ls en una línea de comandos para solicitar su lista de archivos.Intérprete
Interrupción
J
Jerarquía de memoria
L
Lenguaje ensamblador
Ley de Moore
Línea de caché
Llamada al sistema
Localidad espacial
Localidad temporal
M
Máquina virtual
Memoria caché
Memoria direccionable por bytes
Memoria virtual
Montículo de memoria
N
Nivelación del desgaste
Núcleo de procesamiento
Núcleo del sistema operativo
O
Operando
LOAD 10, el operando es la dirección 10, cuyo contenido se lee y se lleva al acumulador, ACC.P
Página de memoria
Palabra de máquina
Pila de memoria
Planificador
Proceso
Puerta AND
Puerta lógica
Puerta NAND
Puerta NOR
Puerta NOT
Puerta OR
Puerta XOR
R
RAM
Reducción de frecuencia por temperatura
Registro
Registro de datos de memoria
Registro de direcciones de memoria
Registro de instrucción actual
RISC y CISC
ROM
Rutina de servicio de interrupción
S
Salto
Segmentación de instrucciones
Semisumador
10.Sistema de archivos
/home/sam/notes.txt identifica un archivo de Linux sin revelar qué bloques de almacenamiento lo contienen.Sistema embebido
Sistema en un chip
Sistema operativo
Sistema operativo de tiempo real
Software
Sondeo
SRAM
T
Tabla de verdad
Tasa de aciertos
Tiempo de acceso y tasa de transferencia
Transistor
U
Unidad aritmético-lógica
Unidad de control
Unidad de disco duro
Unidad de estado sólido
Unidad de gestión de memoria
Unidad de procesamiento gráfico
Sobre esta unidad
Crea tus propios Materiales de Estudio
Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.