Was passiert in einem Multicore-Prozessor mit dem Inhalt des Cache eines Kerns (z. B. L1), wenn in diesem Cache ein Kontextwechsel stattfindet? Ist das Verhalten von der Architektur abhängig oder ist es ein allgemeines Verhalten, das von allen Chipherstellern befolgt wird?
Nachdem ich mehrere Quellen gelesen habe, bin ich immer noch verwirrt über Threads auf Benutzer- und Kernelebene. Bestimmtes: Threads können sowohl auf Benutzerebene als auch auf Kernelebene vorhanden sein Was ist der Unterschied zwischen der Benutzerebene und der Kernelebene?
Ich lerne CPU's und weiß, wie es ein Programm aus dem Speicher liest und seine Anweisungen ausführt. Ich verstehe auch, dass ein Betriebssystem Programme in Prozessen trennt und sie dann so schnell abwechselt, dass Sie glauben, dass sie gleichzeitig ausgeführt werden, aber tatsächlich läuft jedes Programm alleine in der CPU. …
Ich habe eine Reihe von Paaren. Jedes Paar hat die Form (x, y), sodass x, y zu ganzen Zahlen aus dem Bereich gehören [0,n). Wenn also n 4 ist, dann habe ich die folgenden Paare: (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) Ich habe schon die Paare. Jetzt muss ich eine …
In Richard Gabriels berühmtem Aufsatz The Rise of Worse is Better stellt er karikaturisierte Versionen der Designphilosophien MIT / Stanford (Lisp) und New Jersey (C / Unix) in Bezug auf Einfachheit, Korrektheit, Konsistenz und Vollständigkeit gegenüber. Er führt das Beispiel des "PC-Verlierer-Problems" an ( das an anderer Stelle von Josh …
Nun, das ist eine allgemeine Frage. Und wenn jemand es implementierungsspezifisch machen möchte, dann bevorzuge ich Unix-bezogene Sachen. Aber zuerst müssen folgende Probleme allgemein bekannt sein: Ich habe gelesen, dass ein einzelner Prozess mehrere Threads haben kann. Mehrere Threads desselben Prozesses teilen sich die Dinge. Ich möchte wissen, was sie …
In vielen Referenzen zu Betriebssystemen wird angegeben, dass bei kooperativem (im Gegensatz zu präventivem) Multitasking ein Prozess die CPU so lange hält, bis er sich explizit freiwillig ausschaltet. Wenn ein laufender Prozess eine E / A-Anforderung ausführt, die nicht sofort erfüllt werden kann (z. B. eine noch nicht verfügbare Tastatureingabe), …
Unter Linux sind die Dateien /dev/randomund/dev/urandom Dateien die blockierenden bzw. nicht blockierenden Quellen für pseudozufällige Bytes. Sie können als normale Dateien gelesen werden: $ hexdump /dev/random 0000000 28eb d9e7 44bb 1ac9 d06f b943 f904 8ffa 0000010 5652 1f08 ccb8 9ee2 d85c 7c6b ddb2 bcbe 0000020 f841 bd90 9e7c 5be2 eecc …
Betrachten wir ein Speichersegment (dessen Größe bei Bedarf wie eine Datei wachsen oder schrumpfen kann), für das Sie zwei grundlegende Speicherzuweisungsoperationen mit Blöcken fester Größe ausführen können: Zuweisung eines Blocks Freigeben eines zuvor zugewiesenen Blocks, der nicht mehr verwendet wird. Außerdem darf sich das Speicherverwaltungssystem nicht in aktuell zugewiesenen Blöcken …
Durch meine Lektüre über Betriebssysteme (Lesen des Grundmaterials auf Wikipedia, technischen Websites usw.) habe ich erfahren, dass das Betriebssystem ein Programm ist, mit dem Programme und Anwendungen auf effiziente und sichere Weise mit der Hardware interagieren können. Ich bin jedoch verwirrt darüber, wie das Betriebssystem den Betrieb des Computers überwacht, …
Ich denke, ich weiß, was ein "hartes" Echtzeit-Betriebssystem ist. Es ist ein Betriebssystem mit einem Scheduler, der einen Vertrag mit dem Anwendungsprogrammierer bereitstellt. Ein Antrag enthält eine Frist für jede Ressourcenzuweisungsanforderung. Wenn die Terminanfragen möglich sind , garantiert der Scheduler, dass jede Ressource der anfragenden Anwendung vor dem Termin zugewiesen …
Ein Mikrokernel implementiert alle Treiber als User-Space-Programme und implementiert Kernfunktionen wie IPC im Kernel. Ein monolithischer Kernel implementiert die Treiber jedoch als Teil des Kernels (läuft zB im Kernel-Modus). Ich habe einige Behauptungen gelesen, dass Mikrokerne langsamer sind als monolithische Kernel, da sie die Nachrichten verarbeiten müssen, die im Benutzerbereich …
Nehmen wir an, wir haben zwei Zahlen lll und und wollen für l \ le i, \, j \ le r finden .max ( i ⊕ j ) l ≤ i ,rrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r Der naive Algorithmus überprüft einfach alle möglichen Paare; Zum Beispiel in Ruby hätten wir: def …
Angenommen, ich möchte ein Betriebssystem erstellen, das auf einem sehr kleinen nativen unteren Kernel basiert, der als Interpreter / Laufzeit für verwalteten Code fungiert, und auf einem größeren oberen Kernel, der in einer nicht-nativen Maschinensprache (Java-Bytecode, CIL usw.) kompiliert wurde. Beispiele für ähnliche Betriebssysteme wären Singularity und Cosmos . Welche …
Einige Hypervisoren optimieren die Speichernutzung mit einer Methode, die als Ballooning bezeichnet wird (zumindest nennt KVM das so). Diese Methode dedupliziert den Speicher zwischen VMs und setzt gemeinsame Seiten auf schreibgeschützt, wobei beim Schreiben kopiert wird. Dies ist das Gegenteil eines Gabelrufs. Ist es möglich, Prozesse auf Betriebssystemebene zu implementieren …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.