Saltar al contenido principal
LibreTexts Español

3.1: Un modelo de computación

  • Page ID
    125026
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    \( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)

    ( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\id}{\mathrm{id}}\)

    \( \newcommand{\Span}{\mathrm{span}}\)

    \( \newcommand{\kernel}{\mathrm{null}\,}\)

    \( \newcommand{\range}{\mathrm{range}\,}\)

    \( \newcommand{\RealPart}{\mathrm{Re}}\)

    \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)

    \( \newcommand{\Argument}{\mathrm{Arg}}\)

    \( \newcommand{\norm}[1]{\| #1 \|}\)

    \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)

    \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)

    \( \newcommand{\vectorA}[1]{\vec{#1}}      % arrow\)

    \( \newcommand{\vectorAt}[1]{\vec{\text{#1}}}      % arrow\)

    \( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vectorC}[1]{\textbf{#1}} \)

    \( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)

    \( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)

    \( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)

    \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)

    \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)

    Una computadora moderna es un sistema tremendamente complejo, con muchas cosas que entender a nivel del hardware, el sistema operativo y el software de programación (por ejemplo, Python). Es útil considerar un modelo de computación simplificado, que es básicamente una representación “caricatura” de una computadora que omite los hechos poco importantes sobre cómo opera, y se enfoca en los aspectos más importantes de lo que hace un programa de computadora.

    El paradigma estándar de la computación que utilizamos hoy en día es la arquitectura Von Neumann, que divide una computadora en tres unidades interconectadas: procesador, memoria y dispositivos de entrada/salida. Utilizaremos esto como base de nuestro modelo simplificado, con énfasis en el procesador y las partes de memoria.

    La memoria de una computadora es esencialmente un pedazo de espacio donde podemos almacenar números. Por ahora, no nos preocuparemos de cómo se organizan o formatean los contenidos de la memoria. El procesador puede leer uno o más números desde cualquier ubicación (o direcciones) en la memoria, realizar algunas operaciones básicas en ellos y luego escribir los resultados en cualquier otra dirección. También hacemos otras tres suposiciones importantes:

    1. La capacidad es efectivamente infinita; no nos preocupamos por acabarnos.
    2. La memoria es memoria de acceso aleatorio (RAM), lo que significa que el procesador puede acceder a cualquier dirección en la memoria, una tras otra, con la misma velocidad. (En la vida real, no todos los tipos de memoria son de acceso aleatorio. Las unidades de disco, por ejemplo, no lo son, porque el cabezal de escaneo debe moverse físicamente a diferentes posiciones para poder leer diferentes partes de la memoria. Sin embargo, los programas informáticos ordinarios pueden ignorar dichos detalles, que se dejan al sistema operativo para que los administre).
    3. El procesador sólo puede hacer una cosa a la vez. Por ejemplo, si le pides que lea dos números de la memoria, eso toma el doble de tiempo que leer un solo número de la memoria. (Nuevamente, las computadoras reales violan esta suposición hasta cierto punto; las computadoras ahora comúnmente tienen múltiples procesadores que pueden realizar múltiples operaciones simultáneamente. Nuestro modelo simple actual ignora estas complicaciones.)

    Un programa es un conjunto de instrucciones para el procesador. Por ejemplo, la siguiente línea de código es un programa (o parte de un programa) que le dice al procesador que sume cuatro números que actualmente están almacenados en la memoria, y guarde el resultado en otra dirección de memoria etiquetada como x:

    x = a + b + c + d
    

    Debido a que el procesador solo puede hacer una cosa a la vez, incluso una simple línea de código como esta implica varios pasos secuenciales. El procesador no puede leer simultáneamente las cuatro direcciones de memoria (correspondientes a a a a d); debe leerlas una a la vez. La siguiente figura muestra cómo el procesador podría llevar a cabo el programa de adición anterior:

    clipboard_e440775f6bbdaf388b04aeb93ed6a4748.png
    Figura\(\PageIndex{1}\): Una secuencia de pasos para sumar cuatro números, x = a + b + c + d. La memoria de la computadora se visualiza como una caja azul; las variables x y a a d corresponden a direcciones en memoria, mostradas como cajas verdes más pequeñas que contienen números. El procesador realiza las adiciones una a la vez.

    This page titled 3.1: Un modelo de computación is shared under a CC BY-SA 4.0 license and was authored, remixed, and/or curated by Y. D. Chong via source content that was edited to the style and standards of the LibreTexts platform; a detailed edit history is available upon request.