Secuencialidad simultánea

Seguro que en este momento, se encuentra usted realizando varias tareas simultáneamente en su ordenador. Por ejemplo, tiene abierto su cliente de correo, un procesador de textos y el navegador de Internet. Piénselo: mientras escribe un correo, edita un documento y navega por la red, y todo al mismo tiempo. Imagine que se aburre y decide abrir un juego. Está utilizando cuatro programas a la vez. ¿A la vez?

Todos utilizamos muchas aplicaciones al mismo tiempo cuando usamos el ordenador. Sin embargo, ésto es relativamente reciente: hasta la aparición de los sistemas modernos los ordenadores nunca fueron antes capaces de ejecutar varios programas al mismo tiempo… ésta característica, surgida a finales de los 70, se conoce como multitarea, y es la capacidad que tienen las máquinas de hacer muchas cosas a la vez, o mejor dicho, de simular que hacen muchas cosas a la vez.

Así que su ordenador le engaña: puede parecerle que los programas se ejecutan todos simultáneamente, pero un ordenador sigue siendo una máquina secuencial: esto quiere decir que sólo puede ejecutar las instrucciones de una en una. Aunque como lo hace muy muy rápido nos da la impresión de que lo hace todo a la vez… y si lo piensa, verá que la idea es muy sencilla: imagine que ordena a su computador que ejecute The Gimp y Firefox, así de seguido… Su sistema operativo (Linux, Windows o lo que use) se encargará de ir “intercalando” instrucciones de uno y de otro, de tal modo que parezca que se están ejecutando a la vez.

Y ahora llega lo más interesante, que es el porqué de todo esto: el éxito de estas técnicas se basa en lo que llamamos escalas de tiempo: lo que para nosotros es un instante, para un procesador funcionando a 1 GHz puede ser una eternidad. Así, vamos a suponer un ordenador, donde:

  • una instrucción tarda en ejecutarse 1 microsegundo (0,000001 segundos)
  • una lectura o una escritura en un disco duro tarda 1 milisegundo (0,001 segundos)
  • un intervalo entre dos pulsaciones de tecla dura 0,5 segundos

Son datos normales y corrientes de cualquier ordenador anticuado. El tiempo de referencia que tomamos es el tiempo que tarda en ejecutarse una instrucción: para nosotros ese tiempo apenas es inteligible, no podemos sentir su paso, ya que nosotros pensamos en el tiempo en unidades mayores, más acordes a nuestros parámetros biológicos.

De hecho, pensamos en segundos. Así que vamos a considerar que una intrucción tarda 1 segundo en ejecutarse (es decir, lo mismo, pero en otra escala de tiempos). Entonces tendríamos que, en nuestro computador “humanizado”:

  • una instrucción que se ejecuta dura 1 segundo
  • una lectura o una escritura en un disco duro tarda ¡17 minutos!
  • un intervalo entre dos pulsaciones de tecla dura ¡¡6 días!!

¡6 días! Y eso que pensamos que tecleamos tremendamente rápido :-P ¿se imaginan al ordenador? Cada seis días le llegaría una carta “Han pulsado la S”… podría enviar la respuesta, llamar a la pantalla tranquilamente para que mostrara una S, escribirla en la memoria, incluso guardarla en el disco duro… y aún así le sobrarían varios días. Podría dedicar todo ese tiempo para ejecutar el Firefox, el buscaminas y todos esos programas que teníamos trabajando…

En las diferentes escalas temporales de los humanos y los ordenadores se encuentra la razón del éxito del llamado tiempo compartido (varios usuarios utilizando el mismo equipo) y de la multitarea (varias aplicaciones sobre el mismo ordenador). Cómo se organice nuestro procesador, cómodamente sentado en su despacho, para atender a tantas peticiones es otra historia, y esa historia no es nada sencilla (puedo asegurárselo… :-P)

Aviso automático: este post procede de Segmentation Fault, el blog padre de Nosololinux, así que puede que algunas alusiones y referencias no tengan mucho sentido aquí. Es lo que hay.
Publicado en Sistemas Operativos | 14 comentarios

Artículos relacionados

14 comentarios

Suscríbete a los comentarios (RSS) o enlaza este artículo.

  1. 14 de marzo de 2006 a las 11:42 pm

    Misslucifer escribió:

    Entiendo. Entonces los hombres, ¿también sois máquinas secuenciales o hay otra explicación por la cual no podéis hacer más de una cosa a la vez? :P

  2. 15 de marzo de 2006 a las 9:50 am

    Pau escribió:

    ¡Lo sabía! Jajaja lo siento mucho, pero ahí me adelanté a tus pensamientos :P

    Estuve por añadir como conclusión:
    “Ésto nos lleva a que las mujeres son las únicas máquinas verdaderamente paralelas que existen”… aunque entonces habría salido alguno diciendo que hay ordenadores con varios procesadores, ignorando que, por muchos procesadores que haya, cada procesador sigue ejecutando las instrucciones de una en una :P (me tomo la venganza por anticipado)

    ¡Saludos!

  3. 15 de marzo de 2006 a las 10:02 am

    Misslucifer escribió:

    Que malo es conocerse ;)

  4. 15 de marzo de 2006 a las 11:57 am

    Trebol-A escribió:

    Pues no sé los demás, pero siempre me he considerado monotarea (mono: de mono, tarea: de tarea). La multitarea mejor dejarsela a las maquinas y a las mujeres, perdon, corrijo: a algunas maquinas y a las mujeres.

    Pd: Muy didáctico ;)

  5. 15 de marzo de 2006 a las 1:31 pm

    Ñita escribió:

    Muy interesante!!!
    Ayer mi alumno de 14 años me preguntó lo que era Linux, y gracias a tu otro post pude explicarselo mejor. Gracias.
    Aun asi, yo tengo una pregunta sobre esto: Como decide el procesador que instruccion tiene que atender en cada momento, para que todos los programas que se están ejecutando tengan “su oportunidad de progresar en la vida”? xD
    Es decir, va rotando entre los programas que tiene abiertos..?
    Y tranquilos: los chicos tambien sois multitarea. Normalmente estais respirando y haciendo la digestion al mismo tiempo que hablais :P Alguna parte del cerebro tendra que controlar eso, no?

  6. 15 de marzo de 2006 a las 2:10 pm

    Pau escribió:

    Yo me considero multitarea, pero a veces lo hago todo tan mal que acabo decidiéndome por hacer las cosas de una en una :-P

    Ñita: me alegro muchísimo de resultar útil y de divulgar “la buena nueva” de Linux jejeje…

    Por otro lado, te diré que tu duda es muy razonable e interesantísima; tanto que voy a dedicarle otro post :-)

    ¡Saludos y muchas gracias a todos!

  7. 15 de marzo de 2006 a las 6:41 pm

    Patxi escribió:

    Me ha gustado mucho el post y el cambio de escala temporal.

    Ahora sólo falta convencer a todos mis jefes de que, si me quieren multitarea, lo mejor es que me den inputs equiespaciados cada 6 días.

    Saludos,

    Patxi

  8. 16 de marzo de 2006 a las 11:11 pm

    sQuaLl escribió:

    Hoy en dia los ordenadores ejecutan 4, 5, 6 o más instrucciones al mismo tiempo, aunque eso sí, no dejan de permanecer al mismo programa, lo que llamamos procesamiento segmentado. Lo que dices de procesamiento paralelo, ejecutas las instrucciones de una en una en cada CPU, pero varias a la vez, tantas como procesadores tengas, lo que te permite ejecutar varios programas a la vez, o varios threads.
    Aunque los ordenadores con procesamiento paralelo no son de uso domestico comun por ahora, no dejan de existir, y aun me dejo los superescalares, los clusters (varios ordenadores trabajando conjuntamente), etc. Aunque los dual core de AMD ya hace algun tiempo que estan en el mercado, y si no han salido ya les faltara poco a los dual core de Intel.
    Eso se merece otro artículo tuyo creo :P

  9. 17 de marzo de 2006 a las 7:48 pm

    Manuel escribió:

    Pues la verdad es que ya e gustaría para muchas cosas tener un cerebro como un ordenador, porque me resulta a veces muy difícil hacer 2 cosas bien y con precision. Saludos,

    Manuel

  10. 6 de julio de 2006 a las 8:06 pm

    ARTH escribió:

    La impresión que yo tengo es:
    *Hay tareas que requieren creatividad
    *Hay tareas que son hábitos

    Para hombres y mujeres nos es sencillo tener múltiples hábitos a la vez que variadas actividades creativas simultáneas.

    Mi chamba es de las de CREATIVITY, así que me voy despacito, despacito avanzando entre todos los pendientes.

    SOY GAUSS

  11. 27 de marzo de 2007 a las 12:14 am

    Nosololinux » Premios Nosolohoygan 2007 escribió:

    [...] para una duda publicada en una entrada relacionada por los pelos, Secuencialidad simultánea. En principió debió ser resuelta en el consultorio NSL, pero me niego a atender peticiones en un [...]

  12. 18 de abril de 2007 a las 1:06 pm

    Nosololinux » El reparto de procesador escribió:

    [...] escribí el post sobre la secuencialidad, nunca pensé que terminaría escribiendo ésto. Sin embargo, creo que es una muestra más del [...]

  13. 26 de abril de 2007 a las 12:28 pm

    Nosololinux » La dura vida de los procesos escribió:

    [...] crean subprocesos para que éstos se encarguen de ciertas tareas auxiliares y aprovechar la famosa simultaneidad. Se trata de una forma de entender la vida bastante interesada: tengo hijos para que me ayuden en [...]

  14. 6 de abril de 2008 a las 12:45 pm

    nosololinux » Bucles infinitos escribió:

    [...] no son otra cosa que conjuntos de instrucciones que el ordenador “comprende” y ejecuta secuencialmente. Por ejemplo, imaginemos un programa formado por tres instrucciones que se leerán en orden [...]

Escribe un comentario

Actualidad Ajedrez Citas Cultura libre Curiosidades Curso de ética ingenieril Echando una mano Hardware y electrónica Humor I Love Mac Inclasificable Indignado me ando Informática teórica Ingeniería del software Inteligencia artificial Internet Libros Mundo friki Nosololinux Segmentation Fault Seguridad Sistemas Operativos

Acerca de

Nosololinux es un blog sobre ciencia y tecnología, y más concretamente, sobre electrónica, sistemas informáticos, inteligencia artificial y cosas del estilo. El humor tampoco falta.

Nosololinux se distribuye bajo licencia Creative Commons

Creative Commons License