Cómo funcionan las computadoras

Descubre qué ocurre dentro de una computadora cuando ejecuta un programa. Conoce los componentes del diseño de von Neumann y cómo los conectan los buses y los dispositivos, cómo las puertas lógicas y el procesador ejecutan instrucciones en el ciclo de búsqueda, decodificación y ejecución, y cómo se transforman los programas en código máquina. Compara la memoria y el almacenamiento, comprende por qué las memorias caché aceleran las computadoras y descubre cómo el sistema operativo inicia la computadora, carga los programas en la memoria y coordina el funcionamiento del conjunto.

PrincipianteUnidad 3 de 7 del curso Curso de Introducción a la informática

Lo que aprenderás

  1. 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 almacenado
      Distingue 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 control
      Describe 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 CPU
      Clasifica 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.
  2. 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 bits
      Lee 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 uno
      Describe 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ón
      Sigue 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 procesador
      Compara 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.
  3. 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 ensamblador
      Explica 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 fuente
      Compara 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.
  4. 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 direccionamiento
      Explica 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 secundario
      Explica 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.
  5. 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 operativo
      Explica 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 programa
      Sigue 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.

Guía de estudio de Cómo funcionan las computadoras

5 capítulos

1

Los 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ñoInstrucciones y datosConsecuencia útil
Von NeumannComparten la memoria principal y su víaUna memoria contiene una mezcla cambiante de código y datos.
HarvardTienen memorias y vías separadasSe 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 busQué transportaDirección en un acceso de la CPU a memoria
Bus de direccionesLa posición que se va a usarDesde la CPU hacia la memoria o un dispositivo
Bus de datosUna instrucción o un datoHacia la CPU en una lectura; desde ella en una escritura
Bus de controlSeñales de lectura, escritura, sincronización e interrupciónDepende 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 n bits de dirección hay 2n direcciones diferentes. Si cada dirección identifica un byte, ese es también el número de bytes direccionables.

  • 16 bits dan 216=65 536 direcciones, o 64 KiB.
  • 32 bits dan 232=4 294 967 296 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 216; 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:

ancho de banda=bytes por transferencia×transferencias 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:

44 100×16=705 600 bits por segundo

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.
2

Có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, n entradas necesitan 2n filas.

NOT invierte su única entrada. Las puertas de dos entradas se comportan así:

ABANDORXORNANDNOR
0000011
0101110
1001110
1111000

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:

  1. La columna de la derecha da 1, sin acarreo.
  2. La siguiente columna tiene dos valores 1: escribe 0 y lleva 1.
  3. La siguiente tiene 1, 0 y un acarreo de 1: escribe 0 y lleva 1.
  4. 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:

RegistroFunción
Contador de programa, PCDirección de la siguiente instrucción que se buscará
Registro de direcciones de memoria, MARDirección para la siguiente lectura o escritura en memoria
Registro de datos de memoria, MDRValor que se acaba de leer o que se va a escribir
Registro de instrucción actual, CIRInstrucción que se está decodificando y ejecutando
Acumulador, ACCValor 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:

13 000 000 000 s≈0,33 ns

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:

  1. Copiar el PC en el MAR.
  2. Colocar la dirección en el bus de direcciones y enviar una señal de lectura de memoria.
  3. Recibir la instrucción por el bus de datos en el MDR.
  4. Copiarla en el CIR.
  5. 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:

tiempo=ciclos necesariosciclos por segundo

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:

2+84=4 segundos

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:

3+(10−1)=12 ciclos

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.
3

Có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 24=16 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: 5+5+4+1=15. 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
HerramientaSu trabajo
EnsambladorTraduce ensamblador a código máquina
CompiladorTraduce código a otra forma, a menudo código máquina o código de bytes
IntérpreteRealiza 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:

  1. Preprocesamiento: procesar directivas como #include <stdio.h>, incorporando al código fuente las declaraciones de las cabeceras.
  2. Compilación: traducir el código C a operaciones de nivel ensamblador.
  3. Ensamblado: codificar esas operaciones como código máquina en archivos objeto.
  4. 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.
4

Memoria, 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.

TipoConserva un bit medianteFunción habitual¿Conserva el contenido sin alimentación?
DRAMCarga en un condensadorMemoria principal de trabajoNo
SRAMUn circuito de tipo biestable sensible al nivelCaché de la CPUNo
Memoria flash del firmwareCarga atrapadaInstrucciones de arranqueSí

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 decimalBytesUnidad binariaBytes
kB1000KiB1024
MB1 000 000MiB1 048 576
GB1 000 000 000GiB1 073 741 824
TB1 000 000 000 000––

Una unidad vendida como de 1 TB contiene 1012 bytes. En GiB, la cantidad es:

1012230≈931 GiB

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:

607200 s≈8,3 ms

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
MedioCómo almacena o lee los datosUso adecuado
CD, DVD, Blu-rayUn láser lee marcas en una capa reflectanteDistribuir contenido multimedia o conservar un archivo en discos
Cinta magnéticaLos datos siguen una secuencia a lo largo de una cintaGrandes 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.

NivelTiempo de acceso orientativoTamaño habitual
RegistrosUna fracción de nanosegundoUnos pocos kilobytes o menos
Caché L1Aproximadamente 1 nsDe decenas a cientos de kilobytes por núcleo
Caché L2Unos pocos nsHasta unos pocos megabytes
Caché L3Aproximadamente 10–20 nsDe varios a decenas de megabytes
RAMAproximadamente 50–100 nsDe varios a decenas de gigabytes
SSDAproximadamente 20–100 µsDe cientos de gigabytes a terabytes
HDDAproximadamente 5–10 msVarios 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 %:

0,95×1+0,05×101=6 ns

Con una tasa de aciertos del 80 %:

0,80×1+0,20×101=21 ns

La segunda media es 21÷6=3,5 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.
5

Có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ónQué hace el SO
Gestión de procesosInicia, planifica y termina programas en ejecución
Gestión de memoriaAsigna memoria y hace cumplir la separación
Gestión de archivosOrganiza archivos, carpetas y datos almacenados
Gestión de dispositivosSe comunica con los dispositivos mediante controladores de software
SeguridadHace cumplir las reglas de cuentas y permisos
Comunicaciones de redProporciona 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ónContenido
CódigoInstrucciones de máquina
DatosVariables globales
Montículo de memoriaMemoria solicitada durante la ejecución del programa
Pila de memoriaLlamadas 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

5 Lecciones Interactivas

1

Sigue las vías dentro de una computadora

13 pasos
Relaciona el diseño de programa almacenado con las transferencias de memoria y los eventos de dispositivos.
  1. 1
    Introducció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.

  2. 2
    Explicació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.

  3. 3
    Idea 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 01000001 podría representar 65, la letra «A» de ASCII o parte de una instrucción. Su uso aporta la interpretación.

  4. 4
    Desafí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.

  5. 5
    Analogí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.

  6. 6
    EjemploLee 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.

  7. 7
    Explicació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.

  8. 8
    Desafí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 211=2048 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.

  9. 9
    Explicació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.

  10. 10
    Conexió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.

  11. 11
    Desafí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.

  12. 12
    Desafí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.

  13. 13
    RepasoInterpreta 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.

2

Construye y sigue una operación del procesador

19 pasos
Avanza desde las salidas de las puertas hasta los registros, un programa breve y las estimaciones de rendimiento.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónHaz visible la ejecución
  2. 2
    ExplicaciónLee la regla de una puerta
  3. 3
    EjemploGenera un acarreo
  4. 4
    DesafíoEvalúa las salidas intermedias
  5. 5
    ConexiónConserva un resultado entre pasos
  6. 6
    ExplicaciónAsigna las tareas del procesador
  7. 7
    DesafíoDistingue la dirección del contenido
  8. 8
    ExplicaciónBusca la instrucción antes de usarla
  9. 9
    EjemploPrimera instrucción: cargar
  10. 10
    EjemploSegunda instrucción: sumar
  11. 11
    EjemploTercera y cuarta: almacenar y detener
  12. 12
    DesafíoRealiza o descarta un salto
  13. 13
    Idea claveReanuda tras una interrupción
  14. 14
    EjemploCompara un número fijo de ciclos
  15. 15
    EjemploDivide solo el trabajo paralelo
  16. 16
    ExplicaciónSolapa las etapas, no los significados
  17. 17
    DesafíoEstima una nueva tarea paralela
  18. 18
    DesafíoExplica por qué una segmentación rápida queda sin aprovechar
  19. 19
    RepasoRelaciona bits, estado y tiempo
3

Sigue un programa desde el texto hasta la ejecución

13 pasos
Lee un bucle de cuenta atrás y compara las construcciones nativas, la interpretación y el código de bytes.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónDistingue las formas del programa
  2. 2
    ExplicaciónDivide una instrucción en campos
  3. 3
    ExplicaciónIdentifica el contrato del hardware
  4. 4
    EjemploPrepara una cuenta atrás
  5. 5
    EjemploCuenta las ejecuciones, incluida la salida
  6. 6
    DesafíoCambia el inicio y sigue la salida
  7. 7
    ExplicaciónConstruye antes de ejecutar
  8. 8
    ConexiónDecide dónde reside el código de biblioteca
  9. 9
    DesafíoExplica una construcción correcta con una salida incorrecta
  10. 10
    Idea claveLa interpretación también ejecuta código máquina
  11. 11
    DesafíoTraslada el programa a otra CPU
  12. 12
    DesafíoSigue dos vías hacia el mismo hardware
  13. 13
    RepasoMantén clara la tarea de cada capa
4

Compara la memoria y calcula los efectos de la caché

14 pasos
Distingue la capacidad persistente, las demoras de almacenamiento y las copias rápidas útiles.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónHaz dos preguntas sobre los datos almacenados
  2. 2
    ExplicaciónDistingue el contenido de trabajo del persistente
  3. 3
    EjemploLee la unidad de capacidad
  4. 4
    DesafíoLocaliza el último byte
  5. 5
    ExplicaciónDistingue la espera del flujo de datos
  6. 6
    EjemploCalcula una parte de la demora de un disco
  7. 7
    DesafíoElige según el comportamiento del almacenamiento
  8. 8
    ExplicaciónDesciende por la jerarquía
  9. 9
    ConexiónPredice los siguientes bytes útiles
  10. 10
    EjemploIncluye las dos partes de un fallo
  11. 11
    EjemploCambia la tasa de aciertos
  12. 12
    DesafíoCalcula una nueva media de caché
  13. 13
    DesafíoElige la mejora pertinente
  14. 14
    RepasoAsocia el recurso con la necesidad
5

Sigue el arranque, una pulsación de tecla y un guardado

15 pasos
Observa cómo los servicios del SO, los procesos y la memoria virtual conectan el hardware con una aplicación.

Guarda esta unidad para seguir cada Lección Interactiva paso a paso.

  1. 1
    IntroducciónSigue un editor a través del sistema
  2. 2
    ExplicaciónSolicita un servicio
  3. 3
    EjemploComparte el tiempo de ejecución
  4. 4
    DesafíoIdentifica el límite del SO
  5. 5
    ExplicaciónEmpieza antes del sistema operativo
  6. 6
    EjemploCrea la instancia en ejecución
  7. 7
    ExplicaciónAsigna tareas distintas a las regiones de memoria
  8. 8
    AnalogíaUsa un mapa privado de direcciones
  9. 9
    DesafíoMantén separadas las direcciones coincidentes
  10. 10
    Idea claveEl almacenamiento puede respaldar la memoria, lentamente
  11. 11
    EjemploEntrega el evento de tecla
  12. 12
    EjemploGuarda más allá de la vida del proceso
  13. 13
    DesafíoDistingue dos tipos de ralentización
  14. 14
    DesafíoRelaciona la protección de procesos con el guardado
  15. 15
    RepasoSigue los servicios en orden

Ejercicios de Cómo funcionan las computadoras

50 Preguntas de Práctica en 5 sets

Set 1: Componentes, instrucciones y trabajo cotidiano con la computadora10 Preguntas de Práctica

Pregunta 1 de 10

Un termostato lee una temperatura y enciende un calefactor. ¿Qué lo convierte en un sistema informático embebido?
  1. Guarda sus lecturas solo mientras mantiene la alimentación.
  2. Ejecuta una tarea de control específica dentro de un dispositivo mayor.
  3. Conecta un dispositivo de entrada directamente a uno de salida.
  4. Ejecuta las mismas aplicaciones de propósito general que una computadora portátil.
Mostrar respuestaOcultar respuesta
Respuesta: B
Un sistema embebido es una computadora con una función específica dentro de otro dispositivo. El termostato procesa la entrada del sensor mediante instrucciones y controla una salida. Tener entrada y salida forma parte de la computación, pero eso por sí solo no distingue un sistema embebido de una computadora de propósito general.

Pregunta 2 de 10

La CPU escribe el valor 18 en la dirección de memoria 92. ¿Qué debe ir por el bus de direcciones?
  1. 18
  2. 110
  3. La orden de escritura
  4. 92
Mostrar respuestaOcultar respuesta
Respuesta: D
El bus de direcciones selecciona la posición, por lo que transporta 92. El valor 18 viaja por el bus de datos y una orden de escritura viaja por el bus de control. Confundir el contenido con el destino haría que el procesador seleccionara una posición incorrecta, aunque el valor se transfiriera correctamente.

Pregunta 3 de 10

Una máquina lee el código de barras de un paquete e imprime una etiqueta de envío. ¿Cómo deben clasificarse estas dos acciones?
  1. Leer el código de barras es entrada; imprimir la etiqueta es salida.
  2. Leer el código de barras es salida; imprimir la etiqueta es entrada.
  3. Leer el código de barras e imprimir la etiqueta son ambas entrada.
  4. Leer el código de barras e imprimir la etiqueta son ambas salida.
Mostrar respuestaOcultar respuesta
Respuesta: A
El código de barras aporta datos a la computadora, por lo que leerlo es entrada. La etiqueta impresa presenta un resultado, por lo que imprimirla es salida. Una impresora puede procesar internamente los datos de la página, pero ese trabajo interno no cambia su función de salida en este sistema.

Pregunta 4 de 10

Dos bits de entrada valen ambos 1. ¿Qué produce una puerta XOR de dos entradas?
  1. 1
  2. 10
  3. 0
  4. 11
Mostrar respuestaOcultar respuesta
Respuesta: C
XOR produce 1 solo cuando sus dos entradas son distintas, por lo que las entradas iguales 1 y 1 dan 0. OR daría 1 porque al menos una entrada es 1. El resultado 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

¿Qué componente del procesador realiza una resta?
  1. La unidad de control
  2. La ALU
  3. El contador de programa
  4. El registro de instrucciones
Mostrar respuestaOcultar respuesta
Respuesta: B
La unidad aritmético-lógica realiza restas y otras operaciones aritméticas y lógicas. La unidad de control decodifica la instrucción y coordina las señales que permiten realizar la resta, pero el cálculo corresponde a la ALU. El PC y el registro de instrucciones contienen direcciones e instrucciones, no los circuitos de resta.

Pregunta 6 de 10

En la máquina didáctica, la dirección 8 contiene 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?
  1. El PC es 8; el ACC es 14.
  2. El PC es 9; el ACC es 30.
  3. El PC es 9; el ACC es 14.
  4. El PC es 30; el ACC es 14.
Mostrar respuestaOcultar respuesta
Respuesta: C
La búsqueda hace avanzar el PC de 8 a 9 porque la instrucción ocupa una posición. Después, la ejecución lee el contenido de la posición 30 y deja el ACC en 14. Cargar 30 en el ACC confundiría el operando de dirección de la instrucción con el valor almacenado en esa dirección.

Pregunta 7 de 10

Una herramienta convierte LOAD, ADD y otros mnemónicos de ensamblador en instrucciones binarias. ¿Qué tipo de herramienta es?
  1. Un ensamblador
  2. Un intérprete
  3. Un enlazador
  4. Un cargador de arranque
Mostrar respuestaOcultar respuesta
Respuesta: A
Un ensamblador codifica las instrucciones de ensamblador como código máquina para un conjunto de instrucciones concreto. Un enlazador conecta archivos objeto y referencias a bibliotecas después del ensamblado; no traduce los mnemónicos a instrucciones. Un cargador de arranque, en cambio, lleva un sistema operativo a la memoria durante el arranque.

Pregunta 8 de 10

Un valor de 6 bytes empieza en la dirección de byte 800. ¿Cuál es la dirección de su último byte?
  1. 806
  2. 804
  3. 848
  4. 805
Mostrar respuestaOcultar respuesta
Respuesta: D
El primer byte usa la dirección 800, por lo que los cinco restantes usan de 801 a 805. Sumar el tamaño completo da 806, que es la siguiente dirección después del valor, no su último byte. En la memoria direccionable por bytes, la última dirección es la dirección inicial más el tamaño menos uno.

Pregunta 9 de 10

Un editor pide leer un archivo que el usuario tiene permiso para abrir. ¿Cómo solicita el editor este servicio protegido del SO?
  1. Apoderándose del modo núcleo.
  2. Mediante una llamada al sistema.
  3. Con órdenes directas a la unidad.
  4. Mediante su propio firmware.
Mostrar respuestaOcultar respuesta
Respuesta: B
Una llamada al sistema da al editor una vía controlada hacia un servicio del núcleo. El núcleo comprueba el acceso y realiza la operación de archivo mediante sus servicios de archivos y dispositivos. Permitir que una aplicación corriente cambie por sí misma a un modo núcleo sin restricciones anularía la protección que ofrece este límite.

Pregunta 10 de 10

Dos instancias separadas de un programa usan la dirección virtual 0x3000 para datos privados. Una guarda allí 9 y la otra guarda 22. ¿Por qué pueden mantenerse intactos ambos valores?
  1. Sus espacios de direcciones pueden asignarla a posiciones distintas de RAM.
  2. El SO guarda ambos en una página física y alterna turnos de CPU.
  3. Cada escritura cambia el número de dirección virtual del otro proceso.
  4. Ambos procesos comparten una asignación que conserva el valor más reciente.
Mostrar respuestaOcultar respuesta
Respuesta: A
Las direcciones virtuales se interpretan dentro del espacio de direcciones de cada proceso. La MMU y el SO pueden asignar la misma dirección escrita a páginas físicas distintas, por lo que los valores privados permanecen separados. Compartir el tiempo por sí solo no proporciona esta separación: guardar y restaurar registros de CPU no crea asignaciones de memoria separadas.
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

Un dispositivo direccionable por bytes aumenta su ancho de dirección de 12 bits a 14 bits. ¿Por qué factor aumenta su capacidad direccionable?
  1. 2
  2. 14/12
  3. 4
  4. 16
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un sensor muestrea un canal 24 000 veces por segundo usando 12 bits por muestra. ¿Cuál es su tasa de datos sin procesar?
  1. 288 000 bits/s
  2. 36 000 bits/s
  3. 2000 bits/s
  4. 2 304 000 bits/s
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

En la máquina didáctica, se busca JUMPZ 18 en la dirección 7 mientras el ACC es 4. ¿En qué dirección se busca a continuación?
  1. 7
  2. 18
  3. 4
  4. 8
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una tarea requiere 9 mil millones de ciclos en una CPU concreta que funciona a 3 GHz. Si se ignoran las esperas fuera de esos ciclos, ¿cuánto tarda?
  1. 0,33 s
  2. 3 s
  3. 6 s
  4. 27 s
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una instrucción didáctica de 8 bits usa cuatro bits de código de operación seguidos de cuatro bits de dirección. ADD es 0010. ¿Cómo se codifica ADD 13?
  1. 0010 1101
  2. 1101 0010
  3. 0010 1011
  4. 0010 0011
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

La construcción de un programa en C ha producido archivos objeto con código máquina, pero aún debe resolver sus referencias a bibliotecas para formar un ejecutable. ¿Qué etapa se necesita?
  1. Preprocesamiento
  2. Ensamblado
  3. Interpretación
  4. Enlace
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

¿Cuántos bytes hay en 2 KiB?
  1. 2000 bytes
  2. 256 bytes
  3. 2048 bytes
  4. 16 384 bytes
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un archivo de conservación lee una copia de seguridad grande completa una vez al año y prioriza el bajo coste por terabyte. Puede tolerar desplazar el medio hasta los datos. ¿Qué medio satisface esas necesidades?
  1. Caché SRAM
  2. Cinta magnética
  3. DRAM de memoria principal
  4. Un disco óptico de baja capacidad
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una búsqueda en caché tarda 2 ns y la RAM tarda 80 ns adicionales en caso de fallo. La tasa de aciertos es del 90 %. ¿Cuál es el tiempo medio de acceso?
  1. 8,2 ns
  2. 9,8 ns
  3. 82 ns
  4. 10 ns
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una computadora reproduce audio mientras un editor y un navegador se turnan en un único flujo de procesamiento. ¿Qué función del SO asigna esos turnos?
  1. Asignación de archivos
  2. Enumeración de dispositivos
  3. Planificación de procesos
  4. Compilación de código fuente
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

Dos computadoras tienen la misma CPU y velocidad de RAM. Una usa memorias separadas para instrucciones y datos con vías separadas. ¿Qué acceso simultáneo permite esa separación?
  1. Buscar todas las instrucciones de un programa.
  2. Guardar un archivo y conservarlo sin alimentación.
  3. Ejecutar dos instrucciones dependientes cualesquiera.
  4. Buscar una instrucción y un dato.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

¿Cuál es la salida de (A XOR B) AND (NOT C) cuando A = 1, B = 1 y C = 0?
  1. 1
  2. 0
  3. 10
  4. 11
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Una lectura de memoria ha colocado la dirección seleccionada en el MAR. ¿Qué registro recibe el contenido devuelto por la memoria en la CPU del modelo didáctico?
  1. MDR
  2. PC
  3. ACC
  4. CIR
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una tarea tarda 18 s en un núcleo: 3 s deben seguir siendo secuenciales y 15 s se reparten por igual entre cinco núcleos. Sin sobrecarga de paralelización, ¿cuánto tardaría en cinco núcleos?
  1. 3,6 s
  2. 3 s
  3. 6 s
  4. 15,6 s
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Un bucle didáctico tiene 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?
  1. 10
  2. 6
  3. 9
  4. 11
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un archivo de código de bytes de Java se ejecuta en dos familias distintas de procesadores, cada una con una JVM adecuada. ¿Qué gestiona las diferencias de hardware?
  1. Un ancho fijo de código de bytes que sustituye a la ISA.
  2. Un ejecutable nativo enlazado en el código de bytes.
  3. El SO ejecuta el código de bytes como código nativo.
  4. La implementación de la JVM específica de cada plataforma.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Dos unidades tienen la misma tasa de transferencia sostenida para un archivo grande. Una tiene un tiempo de acceso aleatorio mucho menor. ¿Por qué puede aun así abrir más rápido un directorio con miles de archivos diminutos?
  1. Los archivos diminutos aumentan la tasa de bytes sostenida de la unidad.
  2. Cada lectura separada puede incurrir en una demora inicial.
  3. Un tiempo de acceso menor omite todos los metadatos de archivos.
  4. Tasas sostenidas iguales dan tiempos de apertura iguales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un programa lee una lista en orden de direcciones. Después de obtener un elemento, la caché ya tiene varios elementos siguientes. ¿Qué propiedad explica este beneficio?
  1. Localidad temporal
  2. No volatilidad
  3. Localidad espacial
  4. Planificación secuencial
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un proceso lee ocho páginas. Seis ya están en la RAM y tardan 60 ns cada una. Dos requieren recuperar cada una del almacenamiento en 120 µs adicionales, seguidos del mismo acceso a RAM de 60 ns. ¿Cuál es el tiempo medio por página, si se ignoran otros costes?
  1. 30,06 µs
  2. 30 µs
  3. 120,06 µs
  4. 0,03 µs
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

La máquina didáctica tiene 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?
  1. 6
  2. 0
  3. 12
  4. 52
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

Una CPU más rápida apenas mejora una tarea que espera repetidamente datos de la memoria principal que no están en caché. ¿Qué cambio aborda más directamente el cuello de botella indicado?
  1. Una caché que guarde más datos reutilizados por la tarea.
  2. Una unidad de almacenamiento mayor con la misma velocidad de acceso.
  3. Una pantalla nueva con una mayor resolución de píxeles.
  4. Una frecuencia de reloj mayor con el mismo tiempo de espera de memoria.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Un sistema direccionable por bytes tiene 18 bits de dirección y una vía de datos de 32 bits. ¿Cuáles son su capacidad direccionable y sus bytes por transferencia?
  1. 32 KiB y 18 bytes.
  2. 256 KiB y 32 bytes.
  3. 256 KiB y 4 bytes.
  4. 1 MiB y 4 bytes.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

Un controlador de almacenamiento copia un bloque grande a la RAM tras la configuración de la CPU y después señala la finalización. Durante la transferencia, la CPU trabaja en otro proceso. ¿Qué mecanismo lo explica?
  1. DMA y sondeo repetido de la CPU.
  2. Copia por la CPU e interrupción.
  3. Copia por la CPU y sondeo repetido.
  4. DMA seguido de una interrupción.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Un semisumador de dos entradas recibe 1 y 1. ¿Cuáles son sus salidas de suma y acarreo?
  1. Suma 1, acarreo 0.
  2. Suma 0, acarreo 1.
  3. Suma 1, acarreo 1.
  4. Suma 0, acarreo 0.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una segmentación ideal tiene cuatro etapas de un ciclo cada una. Sin detenciones, ¿cuántos ciclos permiten completar siete instrucciones desde una segmentación vacía?
  1. 7
  2. 10
  3. 28
  4. 11
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un ejecutable nativo se inicia en su plataforma prevista, pero informa de que falta una biblioteca compartida necesaria. ¿Qué indica esto sobre su enlace con bibliotecas?
  1. Depende de código de biblioteca suministrado por separado durante la ejecución.
  2. Sus declaraciones de cabecera deben ensamblarse durante el arranque.
  3. Todo el código de biblioteca necesario está copiado en el ejecutable.
  4. Su texto fuente es el código que está buscando la CPU.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

La capacidad de una unidad de 500 GB se muestra en GiB. ¿Qué cantidad se aproxima más a su capacidad decimal anunciada?
  1. 500 GiB
  2. 512 GiB
  3. 537 GiB
  4. 466 GiB
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Un archivo se conserva en almacenamiento en la nube. ¿Dónde se guardan físicamente sus datos persistentes?
  1. En la RAM del usuario hasta el siguiente apagado.
  2. Solo en las señales de red que viajan hacia el usuario.
  3. En equipos de almacenamiento de los centros de datos de un proveedor.
  4. En la caché del procesador del usuario entre sesiones.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Una comprobación de caché tarda 3 ns y un fallo añade un acceso a RAM de 60 ns. De 200 lecturas, 150 son aciertos. ¿Cuál es el tiempo medio de lectura?
  1. 15 ns
  2. 17,25 ns
  3. 63 ns
  4. 18 ns
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Dos programas en modo usuario comparten una impresora, pero solo uno tiene permiso para imprimir. La impresora podría sustituirse después por otro modelo. ¿Qué reparto de trabajo hace cumplir el acceso y mantiene las órdenes del dispositivo fuera de las aplicaciones?
  1. El núcleo comprueba el acceso y coordina los trabajos; el controlador de software traduce las órdenes del dispositivo.
  2. El controlador de software comprueba nombres de archivos; cada aplicación coordina directamente los trabajos de la impresora.
  3. El núcleo traduce las órdenes específicas del modelo; cada aplicación se concede su propio acceso.
  4. La impresora elige los permisos de usuario; el planificador traduce las órdenes de la impresora.
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

Una resta de la ALU da cero. Un salto condicional posterior comprueba si ese resultado fue cero. ¿Qué información almacenada en la CPU permite tomar la decisión?
  1. El recuento de pulsos de reloj.
  2. El indicador de estado de cero.
  3. La dirección del operando.
  4. El ancho del bus de datos.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 2 de 10

Se acepta una interrupción después de terminar una instrucción, cuando el siguiente PC es 26 y el ACC es 17. La rutina de servicio usa el ACC. ¿Qué estado se necesita para reanudar correctamente el cálculo interrumpido?
  1. La dirección de la instrucción completada y los registros de la rutina de servicio.
  2. La dirección de la siguiente instrucción y los registros de la rutina de servicio.
  3. El siguiente PC guardado y los registros de trabajo originales.
  4. La dirección de inicio del programa y los valores de registro iniciales.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 3 de 10

En un núcleo, una tarea tarda 16 s. Doce segundos pueden ejecutarse en paralelo y cuatro segundos no. Si se ignora la sobrecarga, ¿qué mejora se obtiene al pasar de cuatro a seis núcleos?
  1. Baja de 7 s a 6 s.
  2. Baja de 4 s a 2,67 s.
  3. Baja de 7 s a 4,67 s.
  4. Baja de 12 s a 8 s.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 4 de 10

Una CPU usa un formato de 8 bits con cuatro bits de código de operación y cuatro bits de dirección directa. ¿Por qué ese formato sin cambios no puede codificar directamente LOAD 19?
  1. La dirección cabe si el código de operación se acorta en el mismo formato.
  2. Un operando LOAD siempre usa el ancho completo de la instrucción.
  3. Una CPU anfitriona de 64 bits amplía todos los operandos didácticos.
  4. El campo de dirección directa solo puede identificar de 0 a 15.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 5 de 10

Una persona modifica un archivo fuente en C y lo compila en un archivo objeto actualizado, pero omite el enlace. Se inicia el ejecutable antiguo y sus bibliotecas compartidas no han cambiado. ¿Qué paso de construcción falta y por qué persiste el comportamiento anterior?
  1. Volver a procesar las cabeceras; iniciar un ejecutable antiguo incorpora automáticamente los objetos nuevos.
  2. Volver a ensamblar el ejecutable antiguo; sus codificaciones de instrucciones cambian al modificar el código fuente.
  3. Volver a enlazar el objeto actualizado; el ejecutable antiguo aún contiene las instrucciones anteriores del programa.
  4. Volver a cargar las bibliotecas compartidas; sus instrucciones sustituyen todas las instrucciones modificadas del archivo objeto.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 6 de 10

Un usuario guarda un documento y después apaga normalmente la computadora. ¿Qué lugar conserva el documento guardado sin alimentación?
  1. El SSD u otro almacenamiento no volátil.
  2. El acumulador de la CPU hasta el siguiente arranque.
  3. Las celdas DRAM que contenían el documento abierto.
  4. La caché SRAM usada por el proceso del editor.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 7 de 10

Comprobar cualquiera de dos cachés tarda 2 ns. Un fallo añade 100 ns. Una acierta en el 92 % de las lecturas; la otra, en el 96 %. ¿Qué ocurre con el tiempo medio de acceso?
  1. Baja de 9,84 ns a 5,92 ns.
  2. Baja de 8 ns a 4 ns.
  3. Baja un 4 % desde 10 ns.
  4. Baja de 10 ns a 6 ns.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 8 de 10

Una tarea de control dedica 1 ms a un paso secuencial fijo y 6 ms a trabajo que se reparte perfectamente entre tres núcleos. Un requisito de tiempo real fija un plazo de 4 ms. Si se ignora la sobrecarga, ¿cuál es el tiempo ideal y se cumple el plazo?
  1. 3 ms, cumple el plazo.
  2. Unos 2,33 ms, cumple el plazo.
  3. 4 ms, cumple el plazo.
  4. 7 ms, incumple el plazo.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 9 de 10

Un proceso obtiene repetidamente memoria del montículo que ya no necesita y nunca la libera. Más tarde, las transferencias frecuentes de páginas al almacenamiento dominan su tiempo de ejecución. ¿Qué secuencia explica la ralentización?
  1. Un desbordamiento de pila conserva bloques antiguos del montículo y el intercambio causa hiperpaginación.
  2. Una fuga de memoria aumenta la demanda y el intercambio intenso causa hiperpaginación.
  3. Una fuga de memoria aumenta la demanda, pero las transferencias de página son búsquedas rápidas en la caché.
  4. Una fuga de memoria agranda los archivos guardados mientras la demanda de RAM no cambia.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

Pregunta 10 de 10

Una PC informa de que terminaron las comprobaciones de arranque del firmware, llega a un menú del cargador de arranque y después indica que falta la imagen del núcleo. Tras apagarla y volver a encenderla, la configuración del firmware sigue abriéndose. ¿Qué explica tanto la etapa de arranque completada como la disponibilidad de la pantalla de configuración?
  1. El núcleo inicializó sus controladores, pero no logró iniciar el cargador de arranque; el firmware permanece en la RAM.
  2. El cargador de arranque terminó de cargar el núcleo; la configuración del firmware se ejecuta desde la RAM del proceso anterior.
  3. El núcleo llegó al modo usuario antes de cargarse; el cargador de arranque recrea el firmware tras el apagado.
  4. El cargador de arranque se ejecutó, pero no cargó el núcleo; el firmware persistente aún puede ejecutarse.
Mostrar respuestaOcultar respuesta

Guarda esta unidad para ver esta respuesta.

¿Te atascas con una pregunta tuya? Ayuda con Tareas

Términos Clave

109 Términos Clave, cada uno con su definición

A

Acceso directo a memoria
El acceso directo a memoria permite que un dispositivo o un controlador DMA transfiera bloques hacia la RAM o desde ella sin que la CPU copie cada byte individual.
Después de configurar el DMA para transferir una imagen, la CPU puede realizar otro trabajo mientras se mueve el bloque.
Acierto y fallo de caché
Un acierto de caché encuentra el contenido solicitado en la caché; un fallo exige recuperarlo de un nivel más lento, lo que añade demora a ese acceso.
Un fallo al buscar un elemento de una lista puede cargar también sus bytes vecinos y permitir que los accesos posteriores acierten en la caché.
Acumulador
Un acumulador es un registro de trabajo que contiene resultados aritméticos o lógicos y aporta operandos en un diseño sencillo de procesador.
En una máquina acumuladora simple, ADD actualiza el ACC, mientras que STORE copia el ACC a la memoria sin cambiar su valor.
Almacenamiento en la nube
El almacenamiento en la nube es un servicio que conserva archivos en los equipos físicos de almacenamiento de un proveedor y permite acceder a ellos mediante una red.
Un archivo remoto puede compartirse entre dispositivos, pero leerlo depende de la conexión y del proveedor.
Almacenamiento secundario
El almacenamiento secundario conserva programas y datos sin alimentación y ofrece capacidad persistente con un acceso más lento que la memoria principal de trabajo.
Un archivo de aplicación permanece en el SSD después de que termine su proceso en ejecución y se recupere su RAM.
Ancho de banda
El ancho de banda es la cantidad de datos que una vía de comunicación puede transferir por segundo, a menudo expresada en bytes por segundo o bits por segundo.
Una vía más ancha puede mover más bytes por transferencia, lo que aumenta el ancho de banda si la tasa de transferencias es fija.
Archivo ejecutable
Un archivo ejecutable es un archivo de programa preparado para cargarse y ejecutarse que contiene código e información de apoyo en el formato esperado por una plataforma.
Un ejecutable nativo puede depender tanto de la ISA de su procesador de destino como del formato de archivo de su sistema operativo.
Arquitectura de von Neumann
La arquitectura de von Neumann sitúa las instrucciones de los programas y los datos en una misma memoria principal conectada a un procesador y a dispositivos de entrada/salida.
En el diseño clásico, una búsqueda de instrucción y una lectura de datos compiten por la vía compartida de memoria.
Arquitectura del conjunto de instrucciones
Una arquitectura del conjunto de instrucciones define las instrucciones, codificaciones y registros de un procesador y establece su interfaz de software en código máquina.
Una construcción nativa para ARM se destina a una ISA distinta de la de una construcción nativa x86-64 del mismo programa fuente.
Arquitectura Harvard
La arquitectura Harvard mantiene las instrucciones y los datos en memorias separadas con vías separadas, lo que permite un acceso de cada tipo al mismo tiempo.
Un microcontrolador puede buscar su siguiente instrucción mientras lee el valor de un sensor por su vía de datos.

B

Biestable disparado por flanco
Un biestable disparado por flanco es un circuito de almacenamiento sincronizado por reloj que captura un bit en un flanco de reloj y conserva ese estado entre actualizaciones.
Las filas de biestables disparados por flanco pueden contener valores de registros y actualizarse juntas en el flanco de reloj adecuado.
Biestable sensible al nivel
Un biestable sensible al nivel es un circuito de retroalimentación que puede conservar un bit mientras recibe alimentación y constituye un componente básico para almacenar estado digital.
Las puertas con acoplamiento cruzado devuelven sus salidas a las entradas de la otra para que el circuito pueda recordar su estado.
Bus
Un bus es una vía de comunicación compartida que transporta señales entre componentes de una computadora; un bus paralelo transporta varios bits a la vez.
Un bus del sistema clásico permite al procesador enviar una dirección de memoria y recibir el contenido almacenado allí.
Bus de control
El bus de control transporta señales de órdenes y sincronización que coordinan las transferencias, incluidas señales de lectura, escritura y solicitud de interrupción.
Una señal de escritura indica a la memoria que guarde el contenido del bus de datos en la posición seleccionada por el bus de direcciones.
Bus de datos
El bus de datos transporta instrucciones o valores que se transfieren entre el procesador, la memoria y los dispositivos, y permite lecturas y escrituras.
Una lectura de memoria devuelve un byte almacenado por el bus de datos después de seleccionar su posición.
Bus de direcciones
El bus de direcciones transporta la posición seleccionada para un acceso a memoria o a un dispositivo e identifica dónde corresponde el contenido transferido.
Durante una escritura de la CPU en la dirección 300, el bus de direcciones transporta 300 mientras el bus de datos transporta el valor.

C

Cargador de arranque
Un cargador de arranque es software de inicio que carga el núcleo del sistema operativo desde el almacenamiento a la memoria y le transfiere la ejecución.
Después de que el firmware prepare el hardware, el cargador de arranque lleva el núcleo a la RAM para que continúe el inicio del SO.
Ciclo de búsqueda, decodificación y ejecución
El ciclo de búsqueda, decodificación y ejecución es el proceso repetido de obtener una instrucción de máquina, interpretar su operación y realizarla.
Una instrucción LOAD debe buscarse primero antes de que su ejecución realice la lectura de datos por separado.
Ciclo de reloj
Un ciclo de reloj es un intervalo de sincronización de la señal de reloj del procesador que coordina cambios en los circuitos sin completar necesariamente una instrucción.
Un reloj de 3 GHz da unos 0,33 ns por ciclo, mientras que una instrucción puede implicar varios pasos internos.
Cinta magnética
La cinta magnética es un medio de almacenamiento persistente que registra datos siguiendo una secuencia y ofrece gran capacidad a bajo coste con acceso lento a posiciones concretas.
Un gran archivo de conservación puede aceptar la demora de desplazamiento necesaria para recuperar datos a los que solo se accede ocasionalmente.
Código de bytes
El código de bytes es una representación de instrucciones para una máquina virtual que permite distribuir un programa con independencia de una CPU física concreta.
Un archivo de código de bytes de Java puede ejecutarse mediante distintas implementaciones de la JVM en computadoras ARM y x86-64.
Código de operación
Un código de operación es la parte de una instrucción de máquina que especifica su operación, como cargar un valor, sumar o saltar.
En la codificación de una instrucción, cambiar el código de operación puede convertir una carga de datos en otra operación.
Código fuente
El código fuente es el texto legible de un programa, escrito en un lenguaje de programación antes de su traducción o interpretación.
Modificar un archivo fuente en C cambia su texto, pero el ejecutable nativo anterior permanece sin cambios hasta que se vuelve a construir.
Código máquina
El código máquina es la codificación binaria de las instrucciones que un procesador ejecuta directamente según su arquitectura del conjunto de instrucciones.
Un ejecutable x86-64 contiene codificaciones de instrucciones que un procesador ARM no puede ejecutar de forma nativa.
Compilación en tiempo de ejecución
La compilación en tiempo de ejecución traduce código a instrucciones de máquina nativas mientras se ejecuta el programa, a menudo centrándose en las partes ejecutadas con frecuencia.
Tras identificar un bucle de uso intenso, un entorno de ejecución puede compilarlo para que las repeticiones posteriores eviten la interpretación repetida.
Compilador
Un compilador traduce el código de un programa a otra representación, a menudo código máquina o código de bytes, de forma anticipada o durante la ejecución.
Un compilador anticipado puede transformar un programa en C en código para el procesador seleccionado como destino.
Concepto de programa almacenado
El concepto de programa almacenado significa que las instrucciones se representan como contenido binario en la memoria para que un procesador las busque y ejecute.
Cargar otro programa permite a la misma computadora editar un documento después de haber ejecutado un juego.
Contador de programa
El contador de programa contiene la dirección de la siguiente instrucción que se buscará; avanza durante la búsqueda y cambia cuando se realiza un salto.
Un salto de regreso a la dirección 0 sustituye la siguiente dirección secuencial del PC para que el programa pueda repetir un bucle.
Controlador de dispositivo de hardware
Un controlador de dispositivo de hardware gestiona la comunicación de bajo nivel del dispositivo y proporciona al sistema registros de estado y de datos.
Un controlador de almacenamiento recibe una solicitud de transferencia e informa cuando su bloque de datos ha llegado a la RAM.
Controlador de dispositivo de software
Un controlador de dispositivo de software traduce las solicitudes generales del sistema operativo a las órdenes que necesita un controlador de hardware concreto.
El controlador de software de una impresora convierte la solicitud de impresión del SO en órdenes que entiende la impresora conectada.
Convertidor analógico-digital
Un convertidor analógico-digital muestrea una señal analógica y representa los valores medidos como números digitales para su procesamiento informático.
Los circuitos de entrada de un micrófono convierten las mediciones del sonido en números que se almacenan como una grabación de audio.
Convertidor digital-analógico
Un convertidor digital-analógico transforma valores representados digitalmente en una señal analógica que puede accionar una salida, como un altavoz.
Reproducir una grabación almacenada requiere convertir sus muestras digitales en una señal para el altavoz.

D

Desbordamiento de pila
Un desbordamiento de pila ocurre cuando las necesidades de la pila de llamadas superan su espacio disponible, a menudo tras repetirse llamadas a funciones sin un punto de parada.
Una función que sigue llamándose a sí misma añade registros de llamadas hasta que el proceso agota el espacio disponible de la pila.
Disco óptico
Un disco óptico almacena datos como marcas que un láser lee en una capa reflectante y ofrece medios extraíbles como CD, DVD y discos Blu-ray.
Un DVD de una capa suele almacenar 4,7 GB, mientras que un disco Blu-ray de una capa suele almacenar 25 GB.
Dispositivo de entrada
Un dispositivo de entrada aporta datos a una computadora, incluidos los introducidos por una persona o las mediciones recogidas del mundo físico.
Un sensor de luz proporciona una entrada que un controlador usa para decidir si debe encender una lámpara.
Dispositivo de salida
Un dispositivo de salida presenta los resultados de una computadora o actúa físicamente a partir de ellos, por ejemplo mostrando una imagen o moviendo un actuador.
Una válvula es un dispositivo de salida cuando un controlador la abre en respuesta a una temperatura medida.
DRAM
La DRAM es memoria volátil que almacena bits como carga en condensadores y necesita refresco periódico, por lo que resulta adecuada para una memoria principal de gran capacidad.
Refrescar la DRAM restaura la carga antes de que su pérdida haga que los valores de bits almacenados dejen de ser fiables durante el funcionamiento.

E

Enlace estático y dinámico
El enlace estático copia el código de biblioteca necesario en un ejecutable; el enlace dinámico lo conecta con bibliotecas compartidas suministradas por separado.
Un programa con enlace dinámico puede no iniciarse si falta una biblioteca compartida compatible necesaria.
Enlazador
Un enlazador combina archivos objeto y resuelve referencias a bibliotecas para producir un ejecutable, usando código estático o dependencias de bibliotecas compartidas.
Una función externa sin resolver después del ensamblado requiere trabajo de enlace, no otra revisión de la sintaxis del código fuente.
Ensamblador
Un ensamblador traduce las instrucciones del lenguaje ensamblador a sus codificaciones de código máquina para la arquitectura del conjunto de instrucciones seleccionada.
El mnemónico de una suma se convierte en la instrucción binaria que la CPU de destino puede buscar y ejecutar.
Escritura del resultado
La escritura del resultado es la etapa de ejecución de una instrucción que coloca un resultado calculado en su registro o posición de memoria de destino.
Después de una operación aritmética, escribir el resultado en su destino lo deja disponible para instrucciones posteriores.

F

Firmware
El firmware es software de bajo nivel almacenado en memoria no volátil que controla hardware o aporta instrucciones de arranque antes de que se ejecute el SO principal.
El firmware UEFI prepara el hardware de una PC e inicia un cargador de arranque antes de que el núcleo se cargue en la RAM.
Frecuencia de reloj
La frecuencia de reloj es la tasa de ciclos de sincronización del procesador, medida en hercios; influye en el tiempo de ejecución junto con el trabajo realizado por ciclo.
Una tarea fija de seis mil millones de ciclos tarda 1,5 s a 4 GHz, pero distintos diseños de CPU pueden necesitar cantidades diferentes de ciclos.
Fuga de memoria
Una fuga de memoria es memoria retenida que un programa ya no necesita, pero no libera, lo que permite acumular reservas innecesarias.
Un programa de ejecución prolongada que abandona repetidamente memoria reservada innecesaria del montículo puede aumentar constantemente su consumo de memoria.

H

Hardware
El hardware es el equipo físico de un sistema informático, incluidos su procesador, placas de circuitos, chips de memoria, unidades de almacenamiento y dispositivos.
El teclado y los módulos de RAM de una computadora portátil son hardware, mientras que el editor de texto que se ejecuta en ella es software.
Hiperpaginación
La hiperpaginación es una ralentización grave que ocurre cuando el movimiento frecuente de páginas entre la RAM y el almacenamiento consume gran parte del tiempo de ejecución del sistema.
Cerrar aplicaciones que consumen mucha memoria puede reducir el tráfico de páginas y dejar más RAM para el trabajo activo restante.

I

Indicador de estado
Un indicador de estado es una condición almacenada en la CPU y establecida por una operación, como un resultado de cero o negativo, que puede comprobar una instrucción posterior.
Un salto condicional puede comprobar el indicador de cero para decidir si continúa o salta a otra dirección.
Intercambio de páginas
El intercambio de páginas mueve páginas de memoria entre la RAM y el almacenamiento de respaldo y permite que el contenido inactivo salga de la RAM para que otro trabajo use ese espacio.
Una página conservada en un archivo de intercambio debe recuperarse antes de que su contenido ausente pueda volver a usarse en la RAM.
Interfaz gráfica de usuario e interfaz de línea de comandos
Una GUI proporciona controles visuales, como ventanas e iconos; una CLI acepta órdenes escritas que también pueden combinarse en programas de órdenes.
Un usuario puede explorar una carpeta visualmente o usar ls en una línea de comandos para solicitar su lista de archivos.
Intérprete
Un intérprete es un programa que realiza las operaciones de otro programa durante la ejecución mediante su propia implementación en la computadora anfitriona.
La CPU ejecuta el código máquina de un intérprete mientras este implementa las operaciones de un programa de alto nivel.
Interrupción
Una interrupción es una señal que solicita la atención del procesador y provoca la ejecución de una rutina de servicio adecuada antes de reanudar el trabajo interrumpido.
Una transferencia de disco completada puede generar una interrupción para que el SO sepa que los datos solicitados están listos.

J

Jerarquía de memoria
La jerarquía de memoria combina almacenes pequeños y rápidos cerca de la CPU con niveles mayores y más lentos, equilibrando capacidad, velocidad y coste por byte.
Los registros y las cachés atienden el trabajo inmediato, mientras que la RAM, las unidades de almacenamiento y los archivos de conservación ofrecen almacenes progresivamente mayores.

L

Lenguaje ensamblador
El lenguaje ensamblador representa instrucciones de máquina mediante mnemónicos, nombres de registros y etiquetas legibles, estrechamente vinculados a una ISA concreta.
Una cuenta atrás escrita con LOAD, SUB y saltos muestra las operaciones que implementan su bucle.
Ley de Moore
La ley de Moore es la observación histórica de que el número de transistores de los chips creció aproximadamente al doble cada dos años durante un largo período.
Más transistores pueden proporcionar cachés mayores y núcleos adicionales sin duplicar la velocidad de todos los programas.
Línea de caché
Una línea de caché es el bloque de bytes contiguos de memoria que se lleva junto a una caché de CPU, habitualmente de 64 bytes en los procesadores modernos.
Buscar un byte solicitado puede copiar también bytes cercanos que las lecturas posteriores encontrarán sin otro acceso a RAM.
Llamada al sistema
Una llamada al sistema es una solicitud controlada de un programa al núcleo del sistema operativo para un servicio protegido, como el acceso a archivos o dispositivos.
El núcleo puede comprobar el permiso del usuario sobre un archivo antes de realizar la solicitud de lectura de una aplicación.
Localidad espacial
La localidad espacial es la tendencia a acceder a direcciones cercanas a una dirección usada recientemente, lo que hace útiles las copias de bytes vecinos.
Leer elementos consecutivos de una lista se beneficia cuando una búsqueda de línea de caché trae varios de ellos cerca.
Localidad temporal
La localidad temporal es la tendencia a volver a acceder pronto a instrucciones o datos usados recientemente, lo que hace útiles las copias conservadas.
Un bucle lee y actualiza repetidamente su contador y reutiliza el mismo contenido de trabajo durante un período breve.

M

Máquina virtual
Una máquina virtual de lenguaje es software que proporciona el entorno de instrucciones necesario para ejecutar código de bytes en una computadora física.
La JVM interpreta o compila el código de bytes de Java mediante una implementación construida para la plataforma anfitriona.
Memoria caché
Una caché de CPU es un almacén SRAM pequeño y rápido que contiene copias de bloques de instrucciones y datos de niveles de memoria más lentos para reutilizarlos rápidamente.
Un bucle puede encontrar repetidamente sus instrucciones en la caché en lugar de buscarlas en la RAM cada vez.
Memoria direccionable por bytes
La memoria direccionable por bytes asigna una dirección distinta a cada byte, por lo que un valor de varios bytes ocupa varias posiciones de dirección consecutivas.
Un valor de cuatro bytes que empieza en 1000 ocupa las direcciones de 1000 a 1003 y deja 1004 como siguiente posición.
Memoria virtual
La memoria virtual da a los procesos sus propios espacios de direcciones y asigna sus direcciones a memoria física mientras hace cumplir los permisos de acceso.
Dos procesos pueden usar la misma dirección virtual escrita mientras conservan sus valores privados en páginas de RAM distintas.
Montículo de memoria
El montículo es una región de memoria de un proceso usada para reservas solicitadas durante la ejecución, como el espacio para una colección que crece.
Un programa que construye una lista de tamaño variable puede obtener memoria del montículo a medida que recibe elementos adicionales.

N

Nivelación del desgaste
La nivelación del desgaste es una técnica del controlador flash que reparte las operaciones de borrado y escritura entre las celdas para distribuir su resistencia limitada a las escrituras.
Redirigir las escrituras repetidas entre distintas celdas ayuda a evitar el desgaste prematuro de una región actualizada con frecuencia.
Núcleo de procesamiento
Un núcleo de procesamiento es una unidad con los recursos de control, aritmética y estado de trabajo necesarios para ejecutar un flujo de instrucciones.
Cuatro núcleos pueden ejecutar trabajo separado al mismo tiempo cuando el sistema operativo tiene tareas listas.
Núcleo del sistema operativo
El núcleo es la parte central de un sistema operativo que controla los recursos privilegiados y hace cumplir el límite de protección que rodea a las aplicaciones.
Una aplicación en modo usuario solicita servicios de archivos al núcleo en lugar de emitir por sí misma órdenes sin restricciones a la unidad.

O

Operando
Un operando aporta una entrada o un destino de una instrucción, como un registro, una dirección o un valor inmediato, según lo definido por la instrucción.
En una instrucción como LOAD 10, el operando es la dirección 10, cuyo contenido se lee y se lleva al acumulador, ACC.

P

Página de memoria
Una página es un bloque de tamaño fijo usado en las asignaciones de memoria virtual y en el movimiento de contenido entre la RAM y el almacenamiento de respaldo.
Un sistema que usa páginas de 4 KiB asigna y recupera memoria en bloques que contienen 4096 bytes cada uno.
Palabra de máquina
Una palabra de máquina es el tamaño natural de datos que un procesador maneja en una operación, normalmente reflejado en el ancho de sus registros de propósito general.
Una palabra de 64 bits contiene ocho bytes, pero eso no exige que todas las conexiones usen 64 cables en paralelo.
Pila de memoria
La pila es una región de memoria de un proceso que registra las llamadas a funciones activas, incluidas las direcciones de retorno y los valores locales que necesitan esas llamadas.
Una llamada a una función añade su información de trabajo y el retorno libera la parte de la pila correspondiente a esa llamada.
Planificador
El planificador es el componente del SO que selecciona el trabajo listo para recibir tiempo del procesador y reparte los recursos de ejecución disponibles entre los procesos.
Los turnos breves permiten que un reproductor de música y un editor sigan avanzando en un único flujo de procesamiento.
Proceso
Un proceso es una instancia en ejecución de un programa con su propio estado de ejecución, espacio de direcciones y recursos gestionados por el sistema operativo.
Las instancias separadas de un editor pueden usar el mismo archivo de programa mientras mantienen estados de documentos distintos en la memoria.
Puerta AND
Una puerta AND produce 1 solo cuando todos sus bits de entrada son 1; cualquier entrada de 0 hace que su salida sea 0.
Una AND de dos entradas produce un bit de acarreo cuando un semisumador recibe dos bits de entrada que valen ambos 1.
Puerta lógica
Una puerta lógica es un circuito que recibe uno o más bits de entrada y produce un bit de salida según una regla fija, como AND o NOT.
Combinar puertas permite a un procesador comparar patrones de bits, calcular sumas y controlar adónde van los resultados.
Puerta NAND
Una puerta NAND invierte el resultado de AND y produce 0 solo cuando todas las entradas son 1; las puertas NAND por sí solas pueden implementar cualquier función lógica.
Conectar ambas entradas de una puerta NAND a un mismo bit hace que su salida sea el valor opuesto a ese bit.
Puerta NOR
Una puerta NOR invierte el resultado de OR y produce 1 solo cuando todas las entradas son 0; las puertas NOR por sí solas pueden implementar cualquier función lógica.
Cuando cualquiera de dos entradas es 1, su salida NOR es 0 porque su resultado OR sería 1.
Puerta NOT
Una puerta NOT invierte su único bit de entrada: produce 1 para una entrada de 0 y 0 para una entrada de 1.
Si una señal que entra en una puerta NOT es 0, la siguiente puerta conectada recibe 1 de su salida.
Puerta OR
Una puerta OR produce 1 cuando al menos una entrada es 1, incluido el caso en que todas las entradas son 1.
Dos entradas de valor 1 mantienen la salida OR en 1; interpretar esto como «una, pero no ambas» sería confundirla con XOR.
Puerta XOR
Una puerta XOR de dos entradas produce 1 cuando sus entradas son distintas y 0 cuando son iguales, e implementa la regla del bit de suma de un semisumador.
Un semisumador que recibe 1 y 1 tiene un bit de suma de cero procedente de XOR y un bit de acarreo procedente de AND.

R

RAM
La RAM es memoria de trabajo de lectura y escritura con acceso directo a las posiciones; la RAM habitual de una computadora es volátil y contiene instrucciones y datos en ejecución.
Un editor conserva el contenido actual de un documento en la RAM, mientras que una copia guardada reside en almacenamiento no volátil.
Reducción de frecuencia por temperatura
La reducción de frecuencia por temperatura disminuye la frecuencia de reloj del procesador cuando la temperatura es demasiado alta y protege el chip mientras reduce su ritmo de trabajo.
Un cálculo prolongado puede ralentizarse cuando la refrigeración no logra evacuar el calor producido a la frecuencia de reloj anterior.
Registro
Un registro es una posición de almacenamiento pequeña y muy rápida dentro del procesador que contiene un valor de trabajo inmediato, una dirección o una instrucción.
Mantener un contador de bucle en un registro evita recuperar repetidamente ese valor de trabajo de la memoria principal.
Registro de datos de memoria
El registro de datos de memoria contiene lo que se acaba de leer de la memoria o se va a escribir en ella; también se llama registro búfer de memoria.
Durante STORE, el MDR recibe el valor del acumulador antes de que ese valor se escriba en la posición seleccionada.
Registro de direcciones de memoria
El registro de direcciones de memoria contiene la posición seleccionada para una lectura o escritura en memoria y aporta la dirección del acceso.
Para leer un dato de la posición 20, una CPU coloca 20 en el MAR antes de solicitar la lectura.
Registro de instrucción actual
El registro de instrucción actual contiene la instrucción obtenida mientras se decodifica y ejecuta; también se llama registro de instrucciones.
Después de que una instrucción llegue al MDR, una CPU la copia al CIR para poder decodificar su operación.
RISC y CISC
RISC y CISC son estilos de diseño de conjuntos de instrucciones que favorecen, respectivamente, las operaciones sencillas y regulares y las operaciones más complejas.
Las formas comprimidas de RISC-V muestran por qué identificar un diseño RISC no determina una única longitud de instrucción.
ROM
La ROM es memoria no volátil asociada a contenido conservado y normalmente fijo; el firmware moderno suele usar en su lugar memoria flash actualizable.
Llamar «ROM» al espacio de archivos de un teléfono en el que se escribe con frecuencia confunde su almacenamiento flash con contenido fijo de arranque.
Rutina de servicio de interrupción
Una rutina de servicio de interrupción responde a una interrupción mientras se conserva el estado del programa interrumpido para reanudarlo después.
Una rutina de servicio del teclado ayuda a procesar un evento de tecla, tras lo cual puede continuar el cálculo interrumpido.

S

Salto
Un salto es una instrucción que cambia la dirección de la siguiente instrucción, de forma incondicional o solo cuando se cumple una condición indicada.
Una instrucción de salto si es cero, como JUMPZ, lleva a una CPU a su destino solo cuando el acumulador es cero durante la ejecución.
Segmentación de instrucciones
La segmentación de instrucciones solapa etapas de distintas instrucciones y aumenta la tasa a la que terminan una vez que la segmentación está llena.
Mientras una instrucción se ejecuta, otra puede decodificarse y una tercera puede buscarse en una segmentación de tres etapas.
Semisumador
Un semisumador suma dos bits de entrada y produce bits separados de suma y acarreo, usando XOR para la suma y AND para el acarreo.
Sumar dos bits de valor 1 produce acarreo 1 y suma 0, que representan el número binario de dos bits 10.
Sistema de archivos
Un sistema de archivos organiza el contenido almacenado en archivos y carpetas con nombre y registra sus posiciones, tamaños, fechas y permisos de acceso.
La ruta /home/sam/notes.txt identifica un archivo de Linux sin revelar qué bloques de almacenamiento lo contienen.
Sistema embebido
Un sistema embebido es una computadora integrada en un dispositivo mayor para realizar una tarea específica mediante su procesador, memoria y entrada/salida.
El controlador de una lavadora lee sensores y activa o desactiva el motor mediante un programa de control almacenado.
Sistema en un chip
Un sistema en un chip combina varias funciones de una computadora, como la CPU, los gráficos y los circuitos de control de dispositivos, en un único chip integrado.
Un teléfono usa un sistema en un chip para reunir muchas funciones de computación en un dispositivo pequeño y de bajo consumo energético.
Sistema operativo
Un sistema operativo gestiona los recursos de hardware y proporciona servicios que las aplicaciones usan para ejecutarse, acceder a archivos y comunicarse con dispositivos.
Un editor solicita un archivo por su nombre mientras el SO localiza sus datos y coordina el dispositivo de almacenamiento.
Sistema operativo de tiempo real
Un sistema operativo de tiempo real proporciona garantías especificadas de tiempo de respuesta para tareas cuya corrección depende de cumplir plazos.
Una respuesta de control industrial debe llegar antes de su plazo, aunque una respuesta posterior calculara el mismo valor.
Software
El software está formado por los programas y los datos con los que trabajan, y proporciona las instrucciones y la información que asignan tareas útiles al hardware.
Un editor de imágenes usa instrucciones de software para cambiar los valores de color almacenados de una fotografía.
Sondeo
El sondeo es la comprobación repetida del estado de un dispositivo para averiguar si tiene datos listos o ha completado una operación asignada.
Un procesador que comprueba una y otra vez un sensor inactivo dedica tiempo a comprobaciones que no devuelven datos nuevos.
SRAM
La SRAM es memoria volátil que conserva bits en circuitos de tipo biestable sensible al nivel sin refresco mientras recibe alimentación y proporciona almacenamiento rápido, pero costoso por bit.
Las cachés de la CPU usan SRAM para reducir las demoras de acceso, aunque cuesta más por byte que la DRAM de la memoria principal.

T

Tabla de verdad
Una tabla de verdad enumera la salida de un circuito para cada combinación posible de sus entradas y hace explícita la regla completa de entrada/salida.
Una puerta de dos entradas necesita cuatro filas porque sus dos bits tienen cuatro combinaciones de entrada posibles.
Tasa de aciertos
La tasa de aciertos es el número de accesos encontrados en una caché dividido entre el total de accesos y expresa con qué frecuencia está disponible la copia rápida.
Una caché que encuentra 950 de 1000 valores solicitados tiene una tasa de aciertos del 95 % y una tasa de fallos del 5 %.
Tiempo de acceso y tasa de transferencia
El tiempo de acceso es la demora hasta que empiezan a llegar los datos, mientras que la tasa de transferencia es la cantidad entregada por segundo una vez iniciada la transferencia.
Miles de archivos diminutos incurren en demoras repetidas de acceso, mientras que un archivo grande da más importancia a la tasa de transferencia sostenida.
Transistor
Un transistor es un componente controlado electrónicamente que actúa como interruptor en los circuitos digitales y ayuda a representar y manipular bits.
Los grupos de transistores implementan las reglas de las puertas usadas dentro de una unidad aritmético-lógica y sus registros.

U

Unidad aritmético-lógica
La unidad aritmético-lógica es el conjunto de circuitos de la CPU que realiza operaciones aritméticas, lógica bit a bit, desplazamientos y comparaciones, y registra condiciones del resultado.
Restar un valor de sí mismo produce cero, que la ALU puede registrar para un salto condicional posterior.
Unidad de control
La unidad de control coordina la ejecución de instrucciones: las busca y decodifica y emite señales hacia los demás componentes del procesador.
Para una instrucción ADD, la unidad de control selecciona los operandos mientras la ALU realiza la suma.
Unidad de disco duro
Una unidad de disco duro almacena bits magnéticamente en platos giratorios y usa un cabezal móvil que introduce demoras de búsqueda y rotación.
Leer archivos pequeños dispersos hace que un HDD incurra repetidamente en demoras antes de transferir cada bloque.
Unidad de estado sólido
Una unidad de estado sólido usa celdas flash no volátiles sin partes móviles y proporciona acceso aleatorio rápido a programas y archivos persistentes.
Un SSD resulta adecuado para los archivos activos de una computadora portátil porque el acceso rápido y la resistencia a los golpes ayudan durante el uso portátil.
Unidad de gestión de memoria
La unidad de gestión de memoria es hardware de la CPU que traduce direcciones virtuales mediante asignaciones establecidas por el SO y comprueba los permisos de acceso.
Un acceso a una posición protegida provoca un fallo cuando la asignación del proceso no permite la operación solicitada.
Unidad de procesamiento gráfico
Una unidad de procesamiento gráfico es un procesador especializado en trabajo con un alto grado de paralelismo que aplica operaciones similares a muchos valores de datos.
Actualizar muchos píxeles de una imagen resulta adecuado para el procesamiento con GPU porque el trabajo contiene muchos cálculos similares.

Sobre esta unidad

Por StudeliInformar de un error

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.

Comenzar