2009-03-12 6 views
4

Sagen wir, wir haben ein Programm, das Benutzereingaben oder andere unvorhersehbare Ereignisse zu beliebigen Zeitpunkten bekommt.Irgendein Name für dieses Konzept?

Für jede Art von Ereignis sollte das Programm einige Berechnungen durchführen oder auf eine Ressource zugreifen, was ziemlich zeitaufwendig ist, um berücksichtigt zu werden. Das Programm sollte so schnell wie möglich ein Ergebnis ausgeben. Wenn die nächsten Ereignisse eintreffen, kann es akzeptabel sein, vorhergehende Berechnungen zu löschen und neue anzufangen.

Um es weiter zu komplizieren, könnten einige Berechnungen/Ressourcenzugriffe voneinander abhängig sein, d. H. Daten erzeugen, die in anderen Berechnungen verwendet werden können.

Was wichtig ist, wir kennen das Muster, in dem diese Ereignisse normalerweise auftreten. Zum Beispiel: ihre relative Häufigkeit zueinander, oder eine gemeinsame Reihenfolge und Zeitintervalle, in denen sie auftreten.

Die Aufgabe besteht darin, einen Algorithmus zu erstellen, der das Problem auf die statistisch effizienteste Weise behandelt. Ansätze, die zu suboptimalen Lösungen führen, können mehr als ausreichend sein.

Gibt es ein Konzept, das solche Algorithmen entwickelt?


Beispiel:

Ein tabbed Internet-Browser.

Wenn Sie aufgefordert werden, verschiedene Webseiten in mehreren Registerkarten zu laden, sollten Sie entscheiden, ob die Seite in eine aktive Registerkarte mit höherer Priorität geladen werden soll, um nur den sichtbaren Teil der Seite darzustellen oder die ganze Seite vorzurendern zuerst zu tun - vorrendern die ganze Seite für die aktiven Registerkarte oder andere Registerkarten machen stattdessen usw.

(ich weiß nichts darüber, wie Browser tatsächlich funktionieren, aber es unter der Annahme, auf diese Weise wird nicht schaden)

Antwort

4

Was Sie beschreiben, ist eine priorisierende Anwendung Scheduler. Sie müssten genauer bestimmen, welcher Algorithmus am besten wäre, aber here ist eine Liste, die Sie möglicherweise nützlich finden.

0

Ich werfe Stichworte: Planung mit Vorkaufsrecht? Prefetching, double-buffering

0

Ich weiß nicht viel darüber, aber das klingt nach etwas, das für die reactor patern verwendet werden kann.