Scheduling



  • Hallo,

    preemptive scheduling bedeutet doch ein Prozess A mittlerer Prio rechnet gerade. Dann kommt ein Prozess B mit hoeherer Prio und entreisst ihm die CPU. Natuerlich muss vorher noch der Kontext gesichert werden. Solange Prozess B rechnet kommt Prozess A nicht mehr zum Zuge. Bedeutet das realtime ?



  • Nein.

    Unter Echtzeit versteht man grob, dass die Dauer eines Vorgangs vorhersehbar ist. Bei deinem Scheduler wäre das z.B. nicht gegeben wenn ein Prozess C mit noch höherer Priorität kommt, wäre die Dauer der Abarbeitung von Prozess B nicht mehr vorhersagbar.



  • Nicht direkt. Echtzeit heisst, dass ein Prozess (hier 😎 maximal eine Zeit t_max warten muss bis er drankommt. Das ist prinzipiell auch ohne Unterbrechung möglich, nämlich dann wenn (hier) A maximal die Zeit t_max benötigt und nicht mehr. Die Unterbrechung ist typischerweise aber nötig um die Echtzeitanforderungen zu erfüllen, eben weil t_A meist > t_max ist.



  • wie kann man denn dann Echtzeit garantieren wenn nicht ueber die Prioritaet.



  • Wenn du zeitkritische Echtzeit-Programme schreiben willst, dann nimm dir ein Echtzeit-OS. Normalerweise wird jedes "normale" OS (z.B. Win) früher oder später deinen Prozess durchs Scheudling unterbrechen, also kannst du nie sicher sein, dass du in Echtzeit dabei bist. Prozesse mit höhrer Prio werden vom Scheudeler zwar bevorzugt, aber eine Echtzeitgarantie hast du nie.



  • bei harter Echtzeit z.B Airbag waere das aber fatal



  • (Ed.) Kommt drauf an wer dahinter sitzt. 😉
    Afaik sollte die 'Lösung' dafür Kooperatives Multitasking sein.

    Und: was hat das mit Airbags zu tun.... ?
    Die haben afaik kein herkömmliches OS o.ä. Das ist ein spezielles eingebettetes System, das ein speziell dafür konzipiertes OS (kann man das so bezeichnen ?) besitzt. Denkst du ganz im Ernst ein Flugzeug oder PKW hat bspw. Windows 😃 ?

    Sicherheit geht vor.
    Stell dir mal ein Windows-Airbag vor, der jedes mal ein "Sind Sie sicher, dass Sie die ausgewählte Aktion durchführen könnten ? Daten könnten verloren gehen." ausspuckt, wenn du einen Crash o.ä. hast 😃 😃



  • blurry333 schrieb:

    wie kann man denn dann Echtzeit garantieren wenn nicht ueber die Prioritaet.

    Nur über Hardware. Auf normaler PC-Hardware ist Echtzeit im Prinzip gar nicht garantierbar, weil ein Mainboard die CPU jederzeit in den System Management Mode schalten kann, was auch das Betriebssystem nicht verhindern kann.



  • blurry333 schrieb:

    wie kann man denn dann Echtzeit garantieren wenn nicht ueber die Prioritaet.

    Na ohne Prioritaet. Du solltest dir Windows aber nicht als Vorbild fuer Echtzeitsysteme hernehmen.

    weil ein Mainboard die CPU jederzeit in den System Management Mode schalten kann, was auch das Betriebssystem nicht verhindern kann

    Tolle Argumentation. 🙄 Ich kann Echtzeit nicht garantieren, weil meine Hardware kaputt gehen kann. Unter solchen Rahmenbedingungen ist kein System echtzeitfaehig.



  • knivil schrieb:

    weil ein Mainboard die CPU jederzeit in den System Management Mode schalten kann, was auch das Betriebssystem nicht verhindern kann

    Tolle Argumentation. 🙄 Ich kann Echtzeit nicht garantieren, weil meine Hardware kaputt gehen kann. Unter solchen Rahmenbedingungen ist kein System echtzeitfaehig.

    Selber 🙄
    Der System Management Mode wird gerne verwendet um Bugs in der Hardware wieder geradezubügeln. Oder um USB Legacy Emulation zu machen und vermutlich noch viele andere Dinge.
    Es geht also nicht darum dass irgendwas kaputtgeht, das wird vom Hersteller schon so geliefert.
    Und mit der nächsten Revision des Chipsets/BIOS/... könnte wieder alles anders sein.



  • Mit der gleichen Sorgfalt wie Echtzeitsysteme programmiert werden, sollte auch die Hardware ausgewaehlt werden.



  • knivil schrieb:

    Mit der gleichen Sorgfalt wie Echtzeitsysteme programmiert werden, sollte auch die Hardware ausgewaehlt werden.

    -> die Sorgfalt der Programmierung für das System ist 0 -> die Hardware is' für'n Arsch

    :p

    Obwohl: eigentlich ist auch das richtig. Wenn die Systeme Instabilität aufweisen, soll auch keine teure Hardware für Dreck verschwendet werden.



  • knivil schrieb:

    Mit der gleichen Sorgfalt wie Echtzeitsysteme programmiert werden, sollte auch die Hardware ausgewaehlt werden.

    Hab' ich nicht bestritten.
    Ich sag nur: SMM hat mit "kaputt" nicht unbedingt was zu tun, wie du behauptet hattest.


Log in to reply