Re: Virtuell Maschine Kategorie: CC2-Unit & Appl.Board / CC2-Station (von Dietmar Weickert - 11.05.2004 17:02) | ||
Als Antwort auf Virtuell Maschine von Micha - 11.05.2004 12:48 | ||
| ||
Hallo Micha! > bin neu an der Steuerung und wollte mal genau wissen was eigentlich die virtuelle Maschine ist? Die VM ist ein im Betriebssystem integrierter Interpreter, der vom C2-Compiler erzeugte Hex-Files abarbeitet. Das bedeutet, dass der C2-Compiler keine direkten Prozessor-Instruktionen erzeugt, sondern einen Meta-Code, der zur Laufzeit interpretiert wird. Der Vorteil dieser Vorgangsweise ist, dass der erzeugte Meta-Code im Allgemeinen kürzer ist als direkter Prozessorcode derselben Funktionalität, da eine ganze Sequenz von Prozessor-Befehlen in einem einzelnen VM-Befehl gebündelt werden kann. Der Nachteil ist die langsamere Verarbeitung durch den Interpreter-Overhead. > Des Weiteren, wie lang dauert eine "Virtuelle Maschinen Operation"? Dies benötige ich in Verbindung > mit den Threads um die Prioritäten gezielt und sicher festlegen zu können! Darauf gibt es keine allgemein gültige Antwort. Ein VM-Befehl wird durch eine Reihe von Prozessor- Befehlen interpretiert, die noch dazu jeweils unterschiedlich viele Taktzyklen zur Verarbeitung benötigen. Um diese Frage zu beantworten müsste man daher für alle VM-Befehle analysieren, wie sie von der VM abgearbeitet werden, und danach die Taktzyklen der einzelnen Prozessorbefehle addieren. Diesen Aufwand hat sich wohl noch nie jemand angetan. (Anm.: Auch dabei kann es noch immer zu Uneindeutigkeiten kommen, wenn z.B. ein Speicherzugriff mit Segmentwechsel länger dauert als einer ohne. Das hängt vom alles Prozessor ab, ich kenne den der CC2 nicht genau genug.) Abgesehen davon: In welcher Form hängt die Verarbeitungszeit der VM-Befehle mit den Prioritäten deiner Threads zusammen? > Ich hoffe mir kein einer Helfen. Ich hoffe ich konnte dir zumindest die VM ein bisschen näher bringen. :-) Beste Grü�e, Dietmar. | ||
Antwort schreiben Antworten: Re: Virtuell Maschine (von Micha - 12.05.2004 9:06) |