He estado leyendo los comentarios que aquí se barajan y había cosas que me parecían muy raras: se mezclan cosas como multiprocesamiento, multitarea, multihilos...
Todas estas son cosas que tienen un objetivo común: poder estar ejecutando varios trabajos al mismo tiempo, pero que no tienen nada que ver en otros sentidos.
Basándome en una de las biblias básicas de los Sistemas Operativos ( Sistemas Operativos. Silberschatz & Galvin. Ed. Addison Wesley ). Voy a intentar poner un cierto órden a algunas cosas.
Un sistema multitarea ES LO MISMO que un sistema de tiempo compartido. Este sistema permite ejecutar varios trabajos mientras la CPU conmuta entre ellos. La conmutación entre esos procesos es tan rápida que da la "sensación" de que todos ellos se están ejecutando a la vez.
El multiprocesamiento se da en sistemas con varios procesadores. Como se ha apuntado, básicamente hay dos tipos: el multiprocesamiento simétrico en el que cada CPU ejecuta una copia idéntica del sistema operativo, comunicándose unas y otras cuando sea necesario; y el asimétrico que se basa en asignar a cada procesador una tarea específica.
Ahora, cualquier persona que tenga ciertos conceptos de programación (y aunque no los tenga) puede decir que es capaz de crear aplicaciones multiproceso que corren en una máquina con un único procesador. Lógico, porque no es lo mismo un sistema multiproceso que una aplicación multiproceso. Y con los hilos, pasa lo mismo y más basándonos en que un hilo no es más que un proceso con ciertas peculiaridades que hacen que se le llamen "procesos ligeros".
Respecto al modo en que Windows en sus versiones NT gestiona sus procesos basándose en prioridades es, además de obvio, algo que utilizan todos los sistemas operativos modernos. Aunque bien es cierto que cada cual con sus peculiaridades, como es el caso de Linux que gestiona la CPU con algoritmos que se basan en PRIORIDADES y créditos para asignar los tiempos. Y en el caso de Windows, las prioridades son bastante estáticas. Las prioridades es un axioma en el diseño de gestores de procesos.
Sobre el tema de apropiación de ideas, hay que tener cuidado. No porque un sistema operativo incluya una característica quiere decir que ha sido el inventor de ella. De hecho hay cientos de características ya estudiadas, planteadas y diseñadas que no han sido implementadas en ningún sistema operativo actual. Únicamente teneis que coger un libro sobre teoría de sistemas operativos distribuidos en tiempo real y vereis que hay cosas que no existen implementadas todavía.
Por ejemplo, el gestor de procesos de Linux es una variación del gestor de procesos tradicional de los primeros sistemas operativos unix multitarea con ciertas variaciones. Pero el concepto que maneja es bastante anterior al sistema.
Y para terminar, a mi me encanta el software libre, de hecho soy un feliz usuario de la familia BSD de Unix (especialmente FreeBSD) y un encantado aventurero de los sistemas Linux. También me encanta la fontanería libre, la electricidad gratuita y la albañilería por la patilla; pero esos señores son bastante difíciles de convencer para trabajar por nada. Con esto quiero decir que el software de libre uso o el código libre es una opción, que nunca una obligación. A Microsoft se le puede culpar de muchas cosas, pero creo que no se le puede culpar por cobrar por sus productos.
Salu2.
P.D: No tengo ni idea sobre si Windows es o no es. Pero no veo aún ningún argumento para uno y otro lado. ¿En qué se basa cada uno para decir lo que dice?