Bueno, lo de que Es imposible en una arquitectura monoprocesador, tener dos tareas ejecutandose al mismo tiempo no es del todo cierto. Por ejemplo, te cito la ejecución de instrucciones anidadas (no recuerdo si el nombre técnico es ese, hace tiempo que dejé la facultad)
Esto consiste en lo siguiente: El microprocesador descompone la instrucción a ejecutar en (normalmente) 4 pasos: lectura, obtención de datos, ejecución y e/s.
De esta forma, en un micro "normalito", tenías 4 instrucciones "dentro" del micro, cada una en una fase, y cada instrucción podía ser de un programa distinto. Eso sí, en "ejecución" propiamente dicha sólo hay una instrucción cada vez. Sin embargo, esta división en "fases" de la instrucción puede ser considerado multitarea por el hecho de que existen varias tareas en proceso de ejecución dentro del micro.
Para lograr esto, no sólo es necesario un micro capaz de hacerlo (que aparecieron hace ya bastante tiempo si mal no recuerdo), sino además un SO capaz de soportarlo.
Mal que le pese a algunos, y sin ánimo de defender o atacar a nadie, Windows 3.x NO permitía esta división de instrucciones, por lo que no podría ser considerado multitarea, a deferencia de los SO Unix (o basados en él) que sí permitían dicha división de las instrucciones y, por tanto, sí podían ser considerados multitarea.
Lo que hacía Windows 3.x (como ya han comentado en algún sitio), era que metía varios programas en memoria, pero sólo ejecutaba uno de ellos (todas las instrucciones una tras otra, sin posibilidad de intercalar instrucciones de otro programa) hasta que dicho programa "decidía" que podía pasar a esperar en memoria un nuevo "turno" de ejecución.
Re:Multitarea
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Jueves, 08 Septiembre de 2005, 13:44h )
Bueno, lo de que Es imposible en una arquitectura monoprocesador, tener dos tareas ejecutandose al mismo tiempo no es del todo cierto. Por ejemplo, te cito la ejecución de instrucciones anidadas (no recuerdo si el nombre técnico es ese, hace tiempo que dejé la facultad)
Esto consiste en lo siguiente: El microprocesador descompone la instrucción a ejecutar en (normalmente) 4 pasos: lectura, obtención de datos, ejecución y e/s.
De esta forma, en un micro "normalito", tenías 4 instrucciones "dentro" del micro, cada una en una fase, y cada instrucción podía ser de un programa distinto. Eso sí, en "ejecución" propiamente dicha sólo hay una instrucción cada vez. Sin embargo, esta división en "fases" de la instrucción puede ser considerado multitarea por el hecho de que existen varias tareas en proceso de ejecución dentro del micro.
Para lograr esto, no sólo es necesario un micro capaz de hacerlo (que aparecieron hace ya bastante tiempo si mal no recuerdo), sino además un SO capaz de soportarlo.
Mal que le pese a algunos, y sin ánimo de defender o atacar a nadie, Windows 3.x NO permitía esta división de instrucciones, por lo que no podría ser considerado multitarea, a deferencia de los SO Unix (o basados en él) que sí permitían dicha división de las instrucciones y, por tanto, sí podían ser considerados multitarea.
Lo que hacía Windows 3.x (como ya han comentado en algún sitio), era que metía varios programas en memoria, pero sólo ejecutaba uno de ellos (todas las instrucciones una tras otra, sin posibilidad de intercalar instrucciones de otro programa) hasta que dicho programa "decidía" que podía pasar a esperar en memoria un nuevo "turno" de ejecución.