Fenton`s Datenmarke-Maschine


  Share  
|


Fenton stellte eine abstrakte Maschine her, die die Datenmarke-Maschine, um die Behandlung der impliziten Flüsse zur Ausführungszeit zu studieren genannt wurde. Jedes, das in dieser Maschine variabel ist, hatte eine verbundene Sicherheit Kategorie oder Umbau. Fenton schloß auch einen Umbau für den Programmkostenzähler mit ein (PC).

Die Einbeziehung des PC ließ Fenton implizite Flüsse als ausdrückliche Flüsse behandeln, weil Niederlassungen bloß Anweisungen zum PC sind. Er definierte die Semantik der Datenmarke-Maschine. In der folgenden Diskussion Zeilensprung bedeutet, daß die Anweisung nicht, push(x durchgeführt wird, bedeutet x), das variable x und seine Sicherheit Kategorie x auf den Programmstapel und pop(x zu drücken, x) Mittel, den oberen Wert und die Sicherheit Kategorie weg vom Programmstapel zu knallen und sie x und x zuzuweisen, beziehungsweise.

Fenton definierte fünf Anweisungen. Die Verhältnisse zwischen Durchführung der Anweisungen und den Kategorien der Variablen sind wie folgt.

  1. Die Stufensprunganweisung

    x: = x + 1  

    ist mit gleichwertig

    wenn PC < = x dann x: = x + 1; sonst 
    Zeilensprung  

  2. Die bedingte Anweisung

    wenn x = 0 dann goto n sonst x: = x 1  

    ist mit gleichwertig

    wenn x = 0 dann {push(PC, PC); PC = lub(PC, 
    x); PC: = n; } sonst {wenn PC < = x dann {x: = 
    x 1; } sonst Zeilensprung}  

    Dieses breitet sich aus und drückt den PC und seine Sicherheit Kategorie auf den Programmstapel. (wie üblich, wird der PC erhöht, damit, wenn er geknallt wird, das Anweisung Folgen, wenn Aussage. durchgeführt wird) Dieses nimmt den PC gefangen, der Informationen von x enthält (spezifisch, ist dieses x 0), beim Folgen goto.

  3. Die Rückkehr

    Rückkehr  

    ist mit gleichwertig

    pop(PC, PC);  

    Dieses bringt Steuerung zur Aussage zurück, die dem Letzten wenn Aussage folgt. Weil der Fluß der Steuerung zu dieser Aussage gekommen sein würde, enthält der PC nicht mehr Informationen über x, und die alte Kategorie kann wieder hergestellt werden.

  4. Der Verzweigungsbefehl

    wenn ' x = 0 dann goto n sonst x: = x 1  

    ist mit gleichwertig

    wenn x = 0 dann {wenn x < = PC dann {PC: = 
    n; } sonst Zeilensprung} sonst {wenn PC < = x dann {x: = 
    x 1; } sonst Zeilensprung}  

    Dieses breitet aus sich, ohne den PC auf dem Stapel zu speichern. Wenn die Niederlassung auftritt, ist der PC in einer höheren Sicherheit Kategorie als die bedingte Variable x, also ändert das Hinzufügen von von Informationen von x dem PC nicht die Kategorie Sicherheit des PC.

  5. Die Haltanweisung

    Halt  

    ist mit gleichwertig

    wenn der Programmstapel, der leer ist dann, 
    Durchführung anhalten  

    Der Programmstapel, der leer ist, stellt sicher, daß der Benutzer nicht Informationen einholen kann, indem er den Programmstapel betrachtet, nachdem das Programm angehalten hat (zum Beispiel, welches feststellen, wenn Aussage zuletzt genommen wurde).

BEISPIEL: Betrachten Sie das folgende Programm, in dem x zuerst 0 oder 1 enthält.

1. wenn x = 0 dann goto 4 sonst x: = x 1 2. 
wenn z = 0 dann goto 6 sonst z: = z 1 3. Halt 4. z: 
= z + 1 5. Rückkehr 6. y: = y + 1 7. Rückkehr  

Dieses Programm kopiert den Wert von x bis y. annehmen dieses x = 1 zuerst. Die folgende Tabelle zeigt den Inhalt des Gedächtnisses, der Sicherheit Kategorie des PC an jedem Schritt und der entsprechenden Bescheinigungüberprüfung.

x y z PC PC Stapel Bescheinigungüberprüfung
1 0 0 1 Niedrig
0 0 0 2 Niedrig Niedrig < = x
0 0 0 6 x (3, niedriges)
0 1 0 7 x (3, niedriges) PC < = y
0 1 0 3 Niedrig

Maschine Fentons faßt Störungen an, indem sie sie ignoriert. Nehmen Sie das, im Programm oben, y < = x an. Dann am fünften Schritt, fällt die Bescheinigungüberprüfung aus (weil PC = x). So wird die Anweisung und am Ende y = 0 unabhängig davon den Wert von x übersprungen. Aber, wenn die Maschine über Störungen berichtet, bedeutet die Fehlermeldung, die den Benutzer über den Ausfall der Bescheinigungüberprüfung informiert, daß das Programm versucht hat, Schritt 6 durchzuführen. Sie könnte tun so nur wenn sie die Niederlassung in Schritt 2 genommen hatte, das Bedeuten dieses z = 0. Wenn z = 0, dann die sonst Niederlassung von Aussage 1 nicht genommen worden sein könnte, die diese Bedeutung x = 0 zuerst.

Um diese Art des Abzugs zu verhindern, fährt Maschine Fentons fort angesichts der Störungen durchzuführen, aber ignoriert die Aussage die die Verletzung verursachen würde. Dieses wird den Anforderungen gerecht. Der Abbruch des Programms oder das Verursachen einer Ausnahme, die zum Benutzer sichtbar ist, würden auch Informationen veranlassen, gegen Politik zu fließen.

Das Problem mit dem Bericht von Störungen ist, daß ein Benutzer mit niedrigerem Abstand als die Informationen, welche die Störung verursachen, ableiten kann die Informationen vom Wissen, daß es eine Störung gegeben hat. Wenn die Störung geloggt wird, so daß die Eintragungen im Maschinenbordbuch und die Tätigkeit der Protokollierung, nur zu denen sichtbar sind, die ausreichenden Abstand haben, dann tritt keine Verletzung von Politik auf. Aber, wenn der Abstand des Benutzers genug hoch ist, dann der Benutzer kann die Störung ohne eine Verletzung von Politik sehen. So kann die Störung für den Systemverwalter (oder anderen passenden Benutzer) geloggt werden, selbst wenn sie nicht zum Benutzer angezeigt werden kann, der das Programm laufen läßt. Ähnliche Anmerkungen treffen auf jede mögliche Ausnahmetätigkeit, wie vorzeitige Beendigung zu.

dieses ist ein Artikel, der von Fred Foster hinzugefügt wird


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions