Bestes OS für Multithreading?

also … SMP ist weniger Thema des OS, sondern mehr ein Thema der Prozessor-Architektur - da gehts um gemeinsame Addressraeume und so schnickschnack …

Scheduling ist vielleicht eher das Thema auf welches du dich beziehst.

Du schimpfst hier so auf Windows (zu unrecht) in der Vergangenheit war vielmehr Threading unter Unixoiden das Problem, weil dort Threads nur sehr schwierig bis garnicht, die CPU entzogen werden konnte, solange die Threads alive waren.

hier ein bisschen Literatur:

Umsetzung von Java-Threads im Betriebssystem

Ist sicher alles kein triviales Thema - ich bin aber immernoch der Meinung, dass Du Dich hier verzettelst. Ohne ein konkretes Problem - also Aufgabe - macht es wenig Sinn, entweder das optimale Host-System zu finden, oder die Software auf das Host-System zu optimieren. Es seien auch die verschiedenen Windows-Systeme angedacht - ein Windows-Server-OS arbeitet z.B. anders als ein Desktop-Windows.

Für die Postgres-DB mag Windows durchaus wieder “ungeeigneter” als ein Unixoid sein - was zwar nix mit dem Thema hier zu tun hat - aber deutlich zeigt, dass es nicht “das beste OS” fuer alles gibt.

doch - in Jeder.

fork(): Es werden quasi nur die Prozessinformationen kopiert und das geht schnell. … solange niemand selbigen ändert.

was wohl den aller haeufigsten Fall darstellen sollte. … schoen ist, dass die Prozesse schnell da sind … das hilft uns hier aber nicht sehr

Absturz: Das ist sogar ein gravierender Nachteil. Wie will man in so einer Umgebung die Datensicherheit garantieren können?

das sage ich ja … das ist eine andere Eigenschaft die durchaus ein Nachteil des Threadings darstellt … man muss halt sauberer implementieren …

Und schon sind wir wieder beim Thema des Threads:
Wenn zwei Threads, die auf dem gleichen Prozessor laufen, zu synchronisieren sind, passiert das im L1 oder L2 Cache des Prozessors.

die selbe situation hat das system auch bei parallelen prozessen zu lösen …

Was ist, wenn das massiv parallel auf vielen Cores betrieben wird? Dann muss jedweger schreibender - und ggf. auch diverse lesende (Stichwort: volatile Daten) - Speicherzugriff der Threads miteinander synchronisiert werden, über Prozessorebenen hinweg.

für diese speziellen aufgabenfelder gibt es entsprechende compiler - oder auch entsprechende prozessor-architekturen in kombination mit compilern für MMP …

Auch das ist ein Lock, aber dieser Lock ist nur in Threads notwendig, nicht bei getrennten Prozessen. Da die Anzahl der notwendigen Locks mit der Anzahl der Threads und Cores ansteigt, kann das die Abarbeitung sogar mehr ausbremsen als die möglichen Verluste durch getrennte Prozesse.

falsche annahme …

Bleibt festzuhalten: sowohl Threads wie auch getrennte Prozesse haben ihre Vor- und Nachteile.

ja … das bestreitet niemand - ich sagte ja auch nicht, dass threads grundsaetzlich vorzuziehen sind … legt man wert auf performance → threads …

Man sollte diese gut gegeneinander abwägen. Pauschale Aussagen, was schneller oder besser ist, kann man ohne Kentniss des Anwendungsfalls nicht treffen.

doch - schneller sind threads … sicherer sind prozesse - man muss halt wissen, was man will

es koennte aber auch sein, dass wir aneinander vorbeireden - du hast eine sehr unixoide perspektive auf das thema … user-mode-threads und kernel-mode-threads … ausserdem sind da viele systemaufrufe blockierend - was natuerlich zu locks fuehrt … wenn man aber eine anwendung entwickelt, dann muss man wissen, dass man die locks selbst in der hand hat - und entsprechend wissen sollte was man tut … die welt ist nicht linux

hier - zum verzetteln :slight_smile:

SMP Management und Scheduling-Prinzipien und und und … verschiedener gängiger Betrübssysteme

Operating Systems: Internals and … - Google Bücher

nachtrag:
dort ist z.b. auch beschrieben, dass gerade unter windows threads eines prozesses auf mehrere prozessoren verteilt werden koennen … Seite 187 …

scheint aber auch nicht unbedingt eine vollstaendige lektuere zu sein - z.B. auch unter windows gibt es sog. user-mode threads - genannt fibre - die nutzt nur niemand wirklich - daher wohl ohne relevanz … hmm

Sorry Symbiont. Deine Beiträge beleuchten nur ganz allgemein gehaltene Dinge die oftmals auch nur in fragwürdiger Weise referenziert sind, sie sind es nicht wehrt damit auch nur annähernd auseinander zu setzen :angry:

Es interessiert sich hier kein Schwein für irgendein allgemeines Buch zur Threadprogrammierung.Hier geht es um das SMP und Design von Betriebssystemen wir Solaris und Linux.Du hast offensichtlich keine Ahnung wie Du die bereits geposteten Messungen und Detailfragen zuordnen sollst. Das Du Windows Server für ein tolles Multicore oder SMP Betriebssystem hälst, zeigt nur einmal mehr das Du von der Materie so gut wie keine Ahnung hast.