Ist für Windows 7 ein neuer Taskmanager notwendig?
Gerade eben habe ich einen interessanten Blog-Beitrag zum Thema Windows 7 und dessen Multicore-Fähigkeiten gefunden. Da das nächste Betriebssystem aus dem Hause Microsoft (das eigentlich gar nicht so richtig neu ist) mit bis zu 256 Prozessorkernen zurechtkommen wird, stellt sich Blog-Autor Doug Holland die Frage, ob der Windows Taskmanager noch das passende Tool ist für solch eine Fülle an CPUs.
Das ist sicherlich nicht ganz ernst gemeint, macht aber die Herausforderungen sehr anschaulich, vor der die Entwicklergemeinde stehen wird, sobald Windows 7 auf dem Markt ist und das Programmieren von neuer Software für maximal 256 Cores ansteht. Dann gibt es nämlich nur noch eins: die richtigen Tools kaufen und parallelisieren, was das Zeug hält. Andernfalls wird aus dem Multicore-Riesen ein lahmer Singlecore-Zwerg, der von der sequenziell programmierten Anwendung jämmerlich ausgebremst wird.
Wie gut, dass es hierfür schon einiges gibt und weitere Tools kommen werden. Die Rede ist beispielsweise von den Threading Building Blocks, Thread Checker, Parallel Studio, Visual Studio 2010 und weiteren nützlichen Hilfsmitteln, mit denen die Parallelprogrammierung zwar kein Klacks wird, vieles sich aber vereinfachen lässt.
Ach ja: Für das Problem mit dem unterdimensionierten Windows Taskmanager hat einer der Kommentatoren einen nützlichen Tipp parat: Virtualisierung. Soll heißen, dass sich einfach mehrere Prozessorkerne zu einem virtuellen Prozessor zusammenfassen lassen. Dann passt die Taskmanager-Anzeige auch wieder auf einen 19-Zöller und die Anschaffung eines 30-Zoll-Monitors kann noch einmal verschoben werden …
Windows 7 und seine Multicore-Fähigkeiten
Während ich das hier schreibe, versuche ich (bis dato erfolglos) die Beta-Version von Windows 7 auf meinen Rechner zu laden. Ich will einfach mal mit eigenen Augen sehen – vor allem aus Entwicklersicht – was der Vista-Nachfolger alles so drauf hat. Das soll ja so einiges sein.
Die ursprüngliche Aussage, Windows Vista und Windows 7 würden sich unter der Haube kaum unterscheiden, hat man in Redmond mittlerweile revidiert. Denn das Win32-System ist vor allem für eine größere Zahl an Prozessoren nicht ausgelegt. Und genau hier musste etwas geschehen, um dem Multicore-Trend gerecht werden zu können.
Dies gilt vor allem für Serversysteme, die mehr als 32 Prozessorkerne nutzen. Hierfür ist nämlich der sogenannte Dispatcher, also Lastverteiler, von Windows Vista und Windows Server 2003 nicht ausgelegt. Diese Hürde kann Microsoft demnächst mithilfe eines dritten Thread-Zustands in Windows 7 überwinden: Pre-Waitung nennt sich das, was einzelne Aufgaben (Threads) in einen Zustand versetzt, der zwischen “Waiting” und “Execute” liegt. Damit lassen sich Wartezeiten zwischen zwei Threads natürlich erheblich reduzieren.
Aber auch die Abhängigkeiten, die sich beim parallelen Speicherzugriff unter Windows ergeben können, sollen laut Microsoft mithilfe von Windows 7 deutlich reduziert werden, sodass in Zukunft wohl weniger Race Conditions und Dead Locks zu erwarten sind. Vor allem, wenn man mit Tools wie dem Thread Checker dafür sorgt, dass die Anwendung störungsfrei auf mehreren Prozessorkernen ausgeführt wird.
Videotipp: Dass Microsoft das Thema Parallelprogrammierung auch aus Entwicklersicht sehr am Herzen liegt, zeigt das Video-Interview, das wir auf der Microsoft Tech-Ed Developers 2008 in Barcelona mit Steve Teixeira gedreht haben, der sich mit seinem Team um die Entwicklung von Visual Studio 2010 kümmert.


