Diskussion:Fenstersystem
mögliche Ergänzung für Liste
[Quelltext bearbeiten]gehört nicht auch der Presentation Manager von OS/2 mit dazu? --212.185.199.2 22:26, 21. Jan. 2014 (CET)
Multitasking, Multithreading, Event-Queue ist Murks
[Quelltext bearbeiten]https://paste.ofcode.org/35FB4KBsyw4ibxYSSUcGe7F Mein bescheidener Versuch. Fenstersysteme funktionieren höchstens mit kooperativem Multitasking, und sie müßten sich gegenüber dem Kernel auch vollkommen sperren können. Sperren sie sich aber vollkommen ab, kommt der Kernel nicht mehr zum Aufruf und es hängt das komplette System. Tja, Konzeptionsfehler?!?!?! Das kann nicht immer gutgehen. Googelt mal nach "atomaren Transaktionen". Wurde z.B. ein Fenster gepuffert minimiert und geht darin ein Modalfenster auf, während es schon in der Taskleiste versenkt ist... die Eventqueue oder die Message-Queue ist Schrott. Man muß immer sicherstellen, daß alle gemeinsamen Veränderungen in einem Schritt gemeinsam durchgeführt werden können und sie unabhängig von den restlichen Variablen sind. "Atomare Transaktionen" gelten nicht bloß für Datenbanken, sondern auch für Fenstersysteme und für so Zeug wie Maya oder SCUMM. Alle Variablen, die mit einer Unterbrechungssperre verändert werden, müssen unabhängig sein von den restlichen Zuständen. Und Mutex-Objekte sollten auch in der Lage sein, eine Taskidentifikation der aufrufenden Routine zu empfangen, um in einer Spinlock-Schleife sich sicher alles selber schnappen zu können. Und es funktioniert trotzdem nicht. "CLI" ist kein Allheilmittel. Klickt man in Notepad auf Datei/Öffnen, während es eine große Textdatei einfügt und versenkt es dabei gepuffert in der Taskleiste... ist es hinterher öfters korrumpiert. Ich meine, Deadlocks und so ein Schrott sind grundsätzlich immer möglich und da kann man das Unix noch so toll konzipieren, erst recht mit dem Speicherschutz im Kernel zusammen und dann auch noch mit der bescheuerten Message- oder Eventqueue ist niemals garantiert, daß sich das System nicht alle lange Weile mal wieder aufhängt. Keine Ahnung, aber Multithreading ist wohl er nicht für medizinische oder so "Konferenzsysteme" geeignet. Habe ich jetzt wohl geblickt.