Multitasking

Ein multitaskingfähiges Betriebssystem (wie Windows) ist in der Lage, mehrere Aufgaben (Tasks, Prozesse) gleichzeitig zu bearbeiten.  So können Wartezeiten für ein bestimmtes Programm dazu genutzt werden um andere Prozesse zu bearbeiten. Es handelt sich dabei  nicht um echte Parallelverarbeitung, da eine CPU bisher nur einen Befehl auf einmal abarbeiten kann. Die Prozesse werden jedoch effizienter (in sog. Zeitscheiben) durch die Bearbeitung geschleust. Die Reihenfolge der Bearbeitung  wird durch den Scheduler festgelegt, der den Prozessen Prioritäten zuordnet. Dabei unterscheidet man die kooperative und die präemptive Methode: Kooperatives Multitasking und Präemptives Multitasking.  Vorläufer des Multitasking war die Multiprogrammierung, bei der Kontextwechsel der Anwendungen bei Peripheriezugriffen stattfanden um die dabei entstehenden Wartezeiten zu nutzen. Durch den Einsatz der Interruptsteuerung  wurde TSR-Programmierung (Terminate and Stay Resident) möglich. Der allgemeine Ablauf zeichnet sich dadurch aus, dass ein Prozess, der für einen anderen Prozess in die Warteposition versetzt wird, keine Informationen  über diesen oder andere Prozesse benötigt. Dadurch kann diesem Prozess, wenn die Ausführung fortgesetzt wird, ein definierter Prozesskontext zur Verfügung gestellt werden, unabhängig davon, ob sich dieser in der  Zwischenzeit für andere Prozesse verändert hat. Dazu wird der gesamte Prozesszustand vor der Unterbrechung auf einem Stack gespeichert. Bei Fortsetzung der Ausführung wird dieser gespeicherte Prozesszustand wieder geladen -  dieser Vorgang wird Taskwechsel genannt.

Kooperatives Multitasking
Das kooperative Multitasking funktioniert ähnlich wie der Aufruf von Prozeduren bei der prozeduralen  Programmierung. Es handelt sich um eine weiterentwickelte Form der TSR-Programmierung nach dem Konzept der  synchronen Interrupts. Das Multitasking wird im Betriebssystemkernel als zentrale Prozessverwaltung gesteuert. Das Betriebssystem weist jeder Anwendung eine Priorität zu, jedoch bestimmen die Prozesse selber, wann sie die  Kontrolle an den Kern zurückgeben. Die Anwendung mit der höchsten Priorität kann für sich die gesamte Rechenleistung bestimmen. 

Präemptives Multitasking
Auch beim präemptiven Multitasking werden vom Betriebssystem Prioritäten für die Programme vergeben, jedoch teilen sich die Prozesse die Rechenleistung, gegliedert nach Priorität. Ein einzelner Prozess kann  somit nicht die gesamte Rechenleistung beanspruchen. Das Betriebssystem steuert die Abarbeitungsfolge der Prozesse und weist ihnen Zeitscheiben (oder Zeitschlitze) zu. Ist die zugewiesene Zeit vergangen, so wird ein Prozess  angehalten um einen anderen zu starten. Die angehaltenen Prozesse werden inaktiv und dann wieder gestartet, sobald sich ein neuer Zeitschlitz für sie öffnet. Beim Scheduling der Prozesse können verschiedene Strategien angewendet werden.  Eine populäre Strategie ist die Anwendung von Vorrangwarteschlangen in Kombination mit der Round-Robin-Scheduling-Strategie. Die Auslastung des Systems ist besser verteilt und damit effektiver. 

Multitaskingfähige Betriebssysteme
Multitaskingfähige Betriebssysteme sind Windows, Unix, Linux, OS/2 oder Mac OS X und alle auf UNIX basierenden Betriebssysteme wie Solaris oder HP-UX.                         
Siehe auch:    Task   Thread   Multithreading   Multiuser   windows   linux   Kernel   Mac-OS-X   Solaris   

  Windows

Windows ist die Bezeichnung für eine Betriebssystemreihe von Microsoft. Die Oberfläche arbeitet mit der Fenster-Technik (Window). Windows 3.1 war nur eine Ausbaustufe von DOS, während Windows 95, 98 und NT  eigenständige Systeme sind. Der Datenaustausch erfolgt mit Hilfe der Techniken DDE und OLE. Windows ist multi-taskingfähig und unterstützt Plug & Play. Eine automatische Geräteerkennung und eine Treiberdatenbank sind ebenfalls an Bord.  Integriert sind der Internet Explorer und der Windows Mediaplayer (WMP), was auch gerichtliche Streitereien zwischen Microsoft und den Kartellbehörden (in einigen US-Bundesstaaten und der EU) nach sich zog. Streitpunkt war die Ausnutzung der  Quasi-Monopolstellung, um den Netscape Navigator oder andere Konkurrenzprodukte in die Knie zu zwingen.

Windows 1.0 bis Windows for Workgroups 3.11
Windows 1.0 (1985) war die erste GUI für DOS und sehr stark DOS-orientiert, ebenso wie Windows 2.0  (1987). Windows 3.0 kam 1992 in die Läden und ist ebenfalls eine grafische DOS-Erweiterung, enthält jedoch schon soviele Elemente eines Betriebssystems, dass es als eigenständiges Betriebssystem auf DOS-Basis angesehen werden kann.  Windows 3.0 verfügt über einen Real Mode (Kompatibilitätsmodus für Windows 2.0 Anwendungen bzw. für eine 8086-Architektur), einen Standard Mode (für  die Intel 80826 Architektur) und einen Extended Mode (für die Intel 80386 Architektur: kooperatives Multitasking, Adressierung grösserer Speicherbereiche). Windows 3.0 mit Multimedia Extensions (1991) bot Media Erweiterungen für digitalen Sound,  CD-Player, Bildschirmschoner und eine erweiterte Uhr. Windows 3.1 (1992) war kommerziell sehr erfolgreich und beinhaltete eine 32-Bit Farbpalette, Sound-Unterstützung, TrueType Typos und eine OLE-Schnittstelle welche Drag & Drop unterstützte.  Windows for Workgroups 3.1 (1992) und 3.11 (1993) stellten Netzwerkschnittstellen und Netzwerksoftware zur Verfügung: ein Peer-to-Peer Windows-Netzwerk über ein Microsoft-proprietäres NetBEUI-Protokoll sowie ab 3.11 auch TCP/IP, Windows Sockets  (Winsocks) für den Internetzugang via Standardmodem mit AT-Befehlssatz von Hayes Communications.

Windows NT
Mit Windows NT (Versionen 3.1 (1993), 3.5 (1994), 3.51 (1995) und 4.0 (1996)) wurde ein neuer Kernel eingeführt (NT-Kernel) und zukünftige  Windows Versionen basieren auf dem NT-Kernel und nicht mehr auf MS-DOS: Windows 2000 (NT 5.0, 1999: Professional, Server, Advanced Server, Datacenter Server), Windows Server 2003 (NT 5.2: Standard Edition, x64 Standard Edition (2005),  Enterprise Edition, x64 Enterprise Edition, Datacenter Edition, x64 Datacenter Edition, Web Edition), Windows XP (Codename: Whistler: NT 5.1, 2001: Starter Center Edition, Home Edition, Home Edition N (ohne Windows Media Player) Professional,  Professional N, Media Center Edition, PE (Preinstallation Environment/XP-Kernel), XP-x64 Edition (2005), WinFLP (Microsoft Windows Fundamentals for Legacy PCs (2006): Thin-Client Versionen von XP, Codename: Mönch, Eiger), XP Embedded)  und Vista (NT 6.0, 2007)). Auch bei so genannten Embedded PC-Lösungen kommt Windows zum Einsatz.  Hierfür gibt es die speziell angepassten Versionen der Reihe Windows Embedded. Die Funktionsweise unterscheidet sich nicht sonderlich vom normalen Betriebssystem,  lässt sich aber ohne die standardisierte Tastatur, die Maus oder den Bildschirm bedienen. Zum Einsatz kommen diese Systeme zum Beispiel in Kassen, in Bankautomaten, in Autos oder auch Digitalkameras. Meist wird der Kunde gar nicht mitbekommen,  dass er mit dem Betriebssystem Windows arbeitet, da sich die Benutzeroberfläche so sehr vom heimischen Computer unterscheidet.  Die Architektur von Windows NT 4.0 besteht nach Angaben von Microsoft aus einem modifizierten Mikrokernel. Dieser stelle eine Kombination aus einer Mikrokernel-Architektur mit einem mehrschichtigen Betriebssystem dar. 

Windows 9x, Neuerungen bei NT, Windows 2000 und Windows XP
Microsoft verfolgte eine Weile noch neben der NT-Linie weiterhin die DOS-basierten Windows-Versionen  (Windows 9x, ME) aus Gründen der Kompatibilität und wegen der besseren Eignung für Spiele. Windows 95 ist weitestgehend ein 32-Bit Betriebsystem und beruht auf MS-DOS. Technische Eigenschaften sind präemptives Multitasking bei 32-Bit Anwendungen.  Obwohl Windows 95 mit GDI (Graphics Device Interface) über eine Grafik-Programmierschnittstelle verfügt gilt die GUI eher als grafische Erweiterung von MS-DOS. Die Dateisystemerweiterung VFAT erlaubt längere Dateinamen (255 Zeichen  inklusive Speicherpfad). Vor allem die GUI und das Startmenü inklusive Taskleiste wurden zum Vorgänger erweitert. Ein erweiterter Windows-Explorer wurde eingeführt und ab Windows 95B gibt es auch eine FAT32-Unterstützung.  Windows 98 untertützt ebenso präemptives Multitasking und ist auch wie Windows 95 ein 32 Bit-Betriebssystem, dass aber auch 16-Bit Anwendungen unterstützt. Windows 98 hat als Grundlage MS-DOS 7.1 (16-Bit) und führte die WDM-Treiberarchitektur  (Windows Driver Model) ein, bessere USB- und AGP-Unterstützung sowie Advanced Configuration and Power Management Interface (ACPI) zur Unterstützung mehrerer Monitore und die Möglichkeit zur Partitionierung von Festplatten mit Partitionen > 2 GB durch  FAT32. Weitere Neuerungen sind der Active Desktop, eine neuer Windows Explorer (Uniform Naming Convention, besseres Networking via Explorer-Adresszeile, Integration des Internet Explorers). Windows 98 SE (Second Edition) enthielt weitere Verbesserungen  wie eine bessere USB-Unterstützung und ein besseres Netzwerkmanagement (Internetverbindungsfreigabe (Internet Connection Sharing (ICS). Mit Windows XP (eXPerience) wurden die zwei Linien  (NT, MS-DOS) zusammengeführt. Neuerungen bei NT (New Technology) waren das Filesystem NTFS oder die Portabilität auf andere Systeme. NT-Nachfolger Windows 2000 führte ADS (Active Directory Service), Kerberos, EFS (Encrypting  File System), L2TP (Layer 2 Tunneling Protocol), IPSEC, ACPI (Advanced Configuration and Power Interface), SmartCard-Unterstützung und eine erweiterte Treiberdatenbank ein. Windows 2000 und Windows 98 benutzen das gleiche  Treibermodell (WDM, Windows Driver Model). Windows XP bietet eine neue Benutzeroberfläche (GUI) "Luna", eine überarbeitete Systemsteuerung, ein Werkzeug zur Systemwiederherstellung, ein erweitertes Startmenü, die Möglichkeit zur Fernwartung über  Terminal Services (Remote Desktop Protocol (RDP)), NTFS 3.1, neue Funktionen zur Multimediadatenbearbeitung und -verwaltung uvam. Weitere Windows Version sind Windows Vista (ehemals Codename Longhorn) und Windows 7 sowie Windows 8 (2012).
Siehe auch:    Windows-Vista   Windows-7   Windows-8   FAT   NTFS   MS-DOS   Win-ini-und-System-ini-Datei   Mikrokernel   Active-Directory-Service   ReactOS