Multitasking Abstraction Layer / iOS 4 Konzept adaptieren



  • welche programme fallen dir für die verschiedenen layer ein?



  • Layer 0: Textverarbeitung, IDEs, Dateibrowser
    Layer 1: Twitter-Client, Mail-Client
    Layer 2: Browser, IRC-Client, Messenger, Audiostream, Entpackprogramm



  • inwiefern hat es einen vorteil, die anwendung ganz zu stoppen, wenn sie eh nichts tut?


  • Mod

    Jede Task hat eine zeitscheibe. "Nichtstun" kostet auch CPU-Zeit bei Zuteilung.



  • Wenn ich das richtig verstehe, soll Prozessen auf Layer 0 gar keine CPU-Zeit mehr zugeteilt werden.



  • Das siehst Du nicht richtig, denn es wurde gesagt, das es nur gefreezed wird, wenn es "nicht den Fokus hat". Wenn es den Focus hat, also beispielsweise im Vordergrund ist, dann wird gerechnet.



  • Ah gut, ich hab es so aufgefasst, dass Programme den Layer wechseln. Naja gut, aber dann wird den Layer-0-Programmen im Hintergund keine CPU-Zeit zugewiesen, oder?



  • @erhard
    Jede Task hat eine zeitscheibe. "Nichtstun" kostet auch CPU-Zeit bei Zuteilung.

    die aussage entspricht nicht den tatsachen. nichtstun kostet auch nichts. wenn es das doch tut, ist das ein fehler in der implementierung.

    um die ganze sache zusammenzufassen: das zeug ist nicht neu und ist im endeffekt die standardimplementierung. jedes os macht das so und das sogar vollkommen automatisch, ohne dass irgendwelche layer explizit angegeben werden müssen. diese ganze sache ist nichts anderes als wieder mal ein versuch von apple, etwas komplett alltägliches als von ihnen erfunde entwicklung darzustellen. bitte fallt nicht auf pr-gags und werbekampagnen rein.


  • Mod

    Interessant wird es erst, wenn konkrete Aussagen zu Größe der Zeitscheibe und Priorität bezüglich der Zeit oder des Warteranges bis zur Zuteilung erfolgen. Wann komme ich als Task wieder dran und wieviel zusammenhängende CPU-Zeit erhalte ich dann?



  • Es kommt drauf an was man als "Nichtstun" bezeichnet. Gerade GUI Anwendungen besitzen meistens eine Schleife, in der nur Eingaben abgefragt werden. Solange keine Eingaben da sind tut das Programm also nichts, verbraucht aber CPU-Zeit.

    Schön wäre es natürlich wenn das Programm beim Abfragen von Eingaben blockiert und Schlafen gelegt wird, aber es gibt auch Situationen wo das nicht das gewünschte Verhalten ist. Also muss man beides anbieten und dem Anwendungsentwickler vertrauen, dass er die richtige Variante wählt. Bei einem Handy kann man davon ausgehen das sich die Anwendungen auf viel GUI und wenig Hintergrundberechnungen beschränken, und so das richtige Verhalten erzwingen, in dem man halt immer das Programm schlafen legt wenn es nicht den Fokus hat, und so keine Eingaben erwarten kann.


Anmelden zum Antworten