O GoConqr está de visual novo! Conte para nós o que você achou.

Flashcards

5.5 Computersysteme I, Anwendungen des Stapelzeigers

David Bratschke Informatik Alemão 83 flashcards

Flashcards do conjunto (83)

  1. 1Warum gibt es häufig zwei Stapelzeiger und wie heißen diese?Zum Schutz des Betriebssystems,
    diese heißen User-
    und Supervisor-
    Stapelzeiger
  2. 2Ergänze: Ein Stapel ist ein wichtiges Hilfsmittel, das die Verarbeitung von ....., ..... ermöglicht?Unterprogrammen (Subroutines) und
    Unterbrechungen (Interrupts)
  3. 3Auf welche zwei Arten kann ein Stapel grundsätzilch realisiert werden?entweder direkt in Hardware auf dem Prozessorchip
    oder
    mit Hilfe eines Stapelzeigers im Hauptspeicher
  4. 4Welchen Vorteile und Nachteile hat die Realisierung eines Stapels direkt in der Hardware im Prozessor?Vorteil: Geschwindigkeit
    Nachteil: braucht mehr Chipfläche
  5. 5Welchen Vorteil bietet die Realisierung des Stapels im Hauptspeicher?dass die Speichergröße des Stapels durch zusätzlichen Hauptspeicher beliebig vergrößert werden kann
  6. 6Ergänze: Ein Stapel arbeitet nach dem: ... -Prinzip?LIFO
    (Last in First Out)
  7. 7Welche zwei Operationen werden von einem Stapel unterstützt?PUSH und POP
  8. 8Was macht die PUSH-Operation beim systemeigenen Stapel?Diese legt ein Maschinenwort auf den Stapel
  9. 9Was macht die POP-Operation beim systemeigenen Stapel?Diese holt ein Maschinenwort vom Stapel
  10. 10Welche zwei Varianten zur Realisierung eines Stapels gibt es? Welche ist am meisten verbreitet?Beginnend am Ende des Hauptspeichers oder am Anfang,
    verbreitet ist der Beginn am Ende
  11. 11Was ist ein Stapel-Überlauf (Stack-Overflow)?Wenn der Stapel so groß wird, dass er in dem Daten, bzw. Programmbereich hineinragt
  12. 12Welche zwei Möglichkeiten gibt es, um den Stapelzeiger zu verändern?1. bei PUSH vor dem Schreiben in, bei POP nach dem Lesen
    oder
    2. bei PUSH nach dem Schreiben, bei POP vor dem Lesen
  13. 13Wann ist es nötig, andere Prozessorregister (als Datenregister) kurzzeitig auf dem Stack zwischenzuspeichern ( "bzw. zu retten") ?wenn diese Register von einem Unterprogramm oder einer Unterbrechung benutzt werden.
  14. 14Wie funktioniert das "Retten" auf dem Stack?die betreffenden Register mit PUSH-Operationen auf den Stapel gebracht. Vor dem Rücksprung an die Aufruf-bzw. Unterbrechungsstelle werden sie dann durch POP-Operationen in umgekehrter Reihenfolge in den Prozessor zurückgeholt.
  15. 15Ergänze: Die Zahl der PUSH- und POP-Operationen muss ...?in einem (Unter-) programm
    immer gleich sein
  16. 16Wozu dienen Unterprogramme (Subroutines)?(Wiederverwendbarkeit von Code)
    sich immer wieder wiederholende Befehlsfolgen / die gleichen Funktionen, können in einem Unterprogramm (engl. Subroutine) zusammen gefasst werden
  17. 17Welchen Vorteil bietet die Verwendung von Subroutinen?Dadurch wird nicht nur Speicherplatz gespart, sondern auch die Programmierung modularisiert.
  18. 18Auf welche zwei Arten können Parameter und Ergebnisse von Subroutinen übergeben werden?entwder über bestimmte Register oder über den systemeigenen Stapel
  19. 19Was ist eine Laufzeitbibliothek?diese enthält lauffähige Maschinenprogramme, die in Anwenderprogrammen eingebunden werden können.
  20. 20Was muss der Programmierer wissen, wenn er Unterprogramme über eine Laufzeitbibliothek einbinden möchte?die Einsprungadresse und
    die Schnittstelle für die Eingabe der Parameter bzw. Ausgabe der Ergebnisse kennen.
  21. 21Mit welchem Befehl wird ein Unterprogramm aufgerufen?mit dem CALL-Befehl
  22. 22Mit welchem Befehl wird ein Unterprogramm abgeschlossen?Mit dem RETURN-Befehl
  23. 23Welche vier Teilschritte werden bei einem CALL-Befehl ausgeführt, nachdem der CALL-Befehl selbst geholt und der Opcode dekodiert wurde?- PC wird inkrementiert: (PC++)
    Verzweigungsadresse in Adressregister retten:
    ( AR←Ziel)
    Rücksprungadresse auf Stapel legen:
    ( SP ←SP −1 ;M[SP] ←PC)
    - Startadresse des Unterprogramms aus AR in PC laden: ( PC ←AR)
  24. 24Welche Teilschritte werden bei dem RETURN-Befehl ausgeführt?die Rücksprungadresse wird durch eine POP-Operation vom Stapel geholt und in den Programmzähler geschrieben.
  25. 25Wie lauten die Teilschritte zur Ausführung des RETURN-Befehls in RTL-Notation?PC ←M[SP]
    SP ←SP +1
  26. 26Welches Mnemonic wird in der Regel für den RETURN-Befehl in Assemblersprachen verwendet?"RTS"
    (Return from Subroutine)
  27. 27Ergänze: Der RETURN-Befehl bewirkt eine Umkehrung von Schritt .... des CALL-Befehls.Nr. 3
  28. 28Kann Rekursion ebenfalls durch Subroutinen realisiert werden?Ja
  29. 29Was muss bei der rekursiven Verwendung von Subroutinen beachtet werden?diese sind nur dann zulässig, wenn die im Unterprogramm benutzten Registerinhalte zu Beginn auf den Stapel gerettet und am Ende des Unterprogramms durch POP-Befehle wiederhergestellt werden.
  30. 30Welchen Nachteil hat die Verwendung von Subroutinen?Der dynamische Aufbau einer Verbindung zwischen dem Haupt und Unterprogramm mit Hilfe der Befehle CALL und RETURN erhöht den Zeitbedarf zur Ausführung einer Funktion.
  31. 31Welches Mittel kann man für zeitkritische Anwendungen anstatt von subroutinen verwenden?Makros
  32. 32Wie funktioniert ein Makro im Gegensatz zu einem Unterprogramm?an Stelle eines CALL-Befehls werden alle Maschinenbefehle der auszuführenden Funktion eingefügt
  33. 33Welchen Vorteil bieten Makros gegenüber Unterprogrammen ?Es wird die Zeit für den Aufruf des Unterprogramms und für die Rückkehr zum Hauptprogramm eingespart
  34. 34Welchen Nachteil haben Makros gegenüber Unterprogrammen?erhöhter Speicherplatzbedarf
  35. 35Wie werden Assembler genannt, welche die Verwendung von Makros unterstützen?Makroassembler
  36. 36Was ist eine "Unterbrechung" (Interrupt)?Besondere Ereignisse inner- oder außerhalb des Prozessors, die zu einer Unterbrechung des normalen Programmablaufs führen
  37. 37Wie reagiert der Prozessor auf einen Interrupt?Der Prozessor verzweigt zu einem Programmteil, der auf das eingetretene Ereignis reagiert
    (Interrupt Service Routine)
  38. 38Wodurch unterscheiden sich Interrupts von Subroutinen?Durch die Art des Aufrufs.
    Es gibt keinen CALL-Befehl,
    sondern der Aufruf eines Interupts erfolgt durch intern oder extern erzeugte (Hardware)Signale
  39. 39Wann können die Hardwaresignale die zum Aufruf einer Interruptserviceroutine führen auftreten?Jederzeit, auch asynchron zum Prozessortakt
  40. 40Welche Anwendungsfälle gibt es für die Verwendung von Interrupts?- Ein-/Ausgabe
    - Zuteilung von Prozessorzeit durch das Betriebssystem
  41. 41Was sind Softwareinterrupts?Maschinenbefehle,
    welche die gleiche Wirkung haben wie durch Hardware ausgelöste Interrupts.
  42. 42Wozu werden Software-Interrupts verwendet?damit kann der Benutzer bestimmte I/O-Operationen aufrufen, die das Betriebssystem bereitstellt (System Calls) und die nur im System-Modus erlaubt sind.
  43. 43Was sind sog. "Traps" bzw. "Exceptions"?Softwarefehler, die zu kritischen Zuständen des Systems führen können und deshalb abgefangen werden müssen
  44. 44Was sind typische Exceptions, die durch geeignete Hardware abgefangen werden müssen?z.B.:
    Division durch 0,
    Überschreitung des darstellbaren
    Zahlenbereichs,
    Ausführen nicht existierender Maschinenbefehle
  45. 45Was sind Beispiele für externe Fehlerquellen, die ebenfalls Exceptions auslösen können?z.B. Einbruch der Betriebsspannung
    , Speicherdefekte,
    Verletzung von Zeitbedingungen bei Busprotokollen
  46. 46Wie werden i.d.R. Exceptions, die auf externe Fehlerquellen beruhen, abgefangen?In der Hardware, durch sogenannte Watchdogschaltungen
  47. 47Wie realisiert der Prozessor, dass er jederzeit auf ein Interruptrequest (IRQ) reagieren kann?die Ablaufsteuerung der Holephase muss erweitert werden,
    sodass eine Interruptanforderung zunächst in einem Flipflop zwischengespeichert werden kann (vereinfacht)
  48. 48Wie wird die Startadresse für die jeweilige Interruptserviceroutine festgelegt?Implizit, durch den Opcode des Interrupts
  49. 49Was ist der Interruptvektor?die Startadresse der Service-Routine zur Behandlung eines Interrupts
  50. 50Mit welchem Signal bestätigt der Prozessor dem anfordernden Gerät die Interrupt-Anforderung?Mit dem Quittungssignal:
    INTA (Interrupt Acknowledge)
  51. 51Wie nennt man den Status eines Interrupts, wenn dieser eine Anforderung an den Prozessor gesendet hat, diese allerdings noch nicht mit dem INTA Signal bestätigt wurde?Dann ist der Interrupt "hängend" (pending)
  52. 52Wann kann das IRQ-Flipflop bei der Behandlung von Interrupts zurückgesetzt werden?Mit dem INTA-Signal
  53. 53Was passiert mit dem Statusregister während der Behandlung eines Interrupts durch den Prozessor?Dieses wird zunächst auf den Stapel gerettet und vor Wiederaufnahme des eigentlichen Programms wiederhergestellt
  54. 54Wie wird die Sicherung des Statusregisters bei der Interruptbehandlung in der Regel realisiert?normalerweise automatisch durch die Ablaufsteuerung (Mikroprogramm)
  55. 55Welcher Befehl steht am Ende einer Interrupt-Service-Routine?Der RETI-Befehl
    ("Return from Interrupt")
  56. 56Wodurch unterscheidet sich der RETI-Befehl von einem Return-Befehl eines Unterprogramms?Es wird zusätzlich auch das zuvor auf den Stack gerettete Statusregister vom Stack geholt und zurückgeschrieben
  57. 57Welche zwei Probleme gilt es zu lösen, wenn ein Prozessor in der Lage sein soll, mehrere Interrupt-Quellen zu berücksichtigen?- Jedem Interrupt muss eine eigene Startadresse für die Service-Routine zugeordnet werden
    - Wenn mehrere Interrupts gleichzeitig hängend sind, muss eine Entscheidung getroffen werden, welcher Interrupt vorrangig bearbeitet wird
  58. 58Wie wird bei mehreren Interruptquellen i.d.R. entschieden, welcher Interrupt vorrangig bearbeitet wird?In der Regel durch eine Priorisierung.
    Ausserdem wird zwischen maskierbaren und nicht maskierbaren Interrupts entschieden.
  59. 59Was sind maskierbare Interrupts und wofür können diese sinnvoll sein?maskierbare Interrupts können vom Programmierer freigegeben oder gesperrt werden. Das kann z.B. für zeitkritische Programmabschnitte ratsam sein.
  60. 60Was sind nicht maskierbare Interrupts (NMI)?diese können nicht gesperrt werden. Sie dienen zur Fehlerbehandlung und müssen deshalb unverzüglich bearbeitet werden
  61. 61Was sind Beispiel für nicht maskierbare Interrupts?- Reaktion auf einen Abfall der Betriebsspannung (watchdog-Schaltung)
    - prozessorinterne Traps/Exceptions
    (Div by 0 , etc. )
  62. 62Welche drei Möglichkeiten gibt es die Startadresse der Service-Routine bei mehreren Interruptquellen zu bestimmen?1. die Abfragemethode,
    2. die Vektormethode,
    3. die Codemethode.
  63. 63Wie funktioniert bei mehreren Interruptquellen die "Abfragemethode" zum Bestimmen der Startadresse der Interruptserviceroutine?Das IRQ-Flag wird durch eine OR-Verknüpfung der einzelnen Anforderungsbausteine gesetzt. Ein Interrupthandler prüft dann nacheinander die Statusregister der Quellen und kennt die dazugehörenden Adressen der Serviceroutinen
  64. 64Wie kann eine Priorisierung von Interrupts bei der Abfragemethode (Polling) realisiert werden?Da der Interrupthandler die einzelnen Devices nacheinander abfragt, kann darüber auch eine Reihenfolge im Sinne von Prioritäten gesetzt werden
  65. 65Welchen Nachteil hat das Polling bzgl. der Erkennung von Interrupts?der hohe Zeitbedarf zur Abfrage der einzelnen Devices und die Ermittlung des richtigen Device Handlers
  66. 66Welche Methode zur Behandlung mehrerer Interruptquellen benötigt den meisten Hardwareaufwand?Die Vektormethode
  67. 67Was wird für die Vektormethode zur Behandlung mehrerer Interruptquellen zusätzlich zum Statusregister benötigt?ein extra Register (ISRQ) , wo die IRQs aufgefangen und mit einer Interrupt-Maske
    (IM) als Teil des Statusregisters bitweise AND-verknüpft werden können
  68. 68Wozu dient das ISRQ- Register bei der Vektormethode?darüber kann die Ablaufsteuerung der betreffenden Anforderungsleitung einen Maschinenbefehl zuordnen, der implizit die Startadresse für die Interrupt-Service-Routine festlegt
  69. 69Was ist der Vorteil der Vektormethode?damit können IRQs sehr schnell beantwortet werden, da die Startadresse des Device Handlers spätestens nach einem Befehlszyklus bekannt ist
  70. 70Was ist der Nachteil der Vektormethode zur Behandlung mehrerer Interruptquellen?dass jeder Anforderungsleitung nur ein Device Handler zugeordnet werden kann. Abhängig von ihrem momentanen Zustand benötigen Peripheriegeräte jedoch verschiedene Device Handler
  71. 71Welchen Vorteil bietet die Codemethode zur Behandlung von mehreren Interruptquellen?Diese bietet ein hohes Maß an Flexibilität
  72. 72Wie funktioniert die Codemethode bei Behandlung mehrerer Interruptquellen?Jedem \( IRQ_i \) wird ein Signal \( INTA_i \) zugeordnet, auf welches das Device mit einem Codewort auf dem Datenbus antwortet. Aus dem Codewort wird dann die Startadresse des Device Handlers bestimmt
  73. 73Auf welche zwei Arten kann der Prozessor bei der Codemethode aus dem Codewort eines Devices die Startadresse der Interruptserviceroutine ermitteln?Unterstützt der Prozessor vektorisierte Interrupts, so entspricht dem Codewort eine Vektornummer aus der Interrupt-Tabelle. Das Codewort kann aber auch einen CALL-Befehl darstellen, dann übergibt das Device im Anschluss daran die Startadresse direkt an den Prozessor
  74. 74Was ist ein Interruptcontroller?Eine Hardwarelösung zum Behandeln von Interruptrequests mit Prioritäten
    (bei mehreren Interruptquellen)
  75. 75Aus welchen Kernkomponenten besteht ein Interruptcontroller?Ein ISRQ-Register
    Ein Prioritätenencoder,
    Ein Vergleicher,
    Eine Ablaufsteuerung
    (mit Interrupttabelle)
  76. 76Was steht in der Interrupttabelle?Die Startadressen zu den verschiedenen Interrupts
  77. 77Welche Aufgabe hat der Prioritätenencoder im Interruptcontroller?Dieser gibt die Nummer der Anforderung mit der höchsten Priorität als Dualzahl aus. Wenn keine Anforderung hängend ist, wird eine 0 ausgegeben.
  78. 78Wofür ist der "IM"-Teil im Statusregister da?Zum maskieren oder desmaskieren der einzelnen Interrupts. Ist ein "IM"-Bit gesetzt, so wird das Signal des Requests aus dem IRQS-Register durch eine AND-Verknüpfung an den Prioritätenencoder weitergeleitet
  79. 79Wofür sind die "IS"-Bits im Statusregister da?Dort ist die aktuelle Prioritätsebene gespeichert, in der sich der Prozessor gerade befindet, nur IRQs mit höher Priorität als dieser können den Prozessor unterbrechen
  80. 80Wie muss der Prioritätenencoder im Interruptcontroller mit dem "IS"-Bits des Statusregisters verknüpft werden, damit der Prozessor abhängig von der jeweiligen Priorität des IRQ unterbrochen werden kann?Mit einem Vergleicher, nur wenn der Ausgang aus dem Prioritätenencoder größer als der Wert im "IS"-Teil ist, darf der Prozessor unterbrochen werden
  81. 81Was passiert nachdem das INTA-Signal für ein Interrupt (Steuerung durch Interruptcontroller) ausgelöst wurde?Die Rücksprungadresse wird zusammen mit dem alten IS-Code (Statusregister) auf den Stapel gerettet
  82. 82Was passiert bei der Interruptbehandlung mittels IR-Controller nachdem das "alte" Statusregister auf den Stapel gerettet wurde?1.) Startadresse der Service-Routine in den PC laden
    und
    2) IS-Teil des Statusregisters aktualisieren
  83. 83Wie wird eine IR-Service-routine bei IR-Behandlung mittels IR-Controllers abgeschlossen?Mit einem RETI-Befehl
    (Da dieser das alte Statusregister wiederherstellt)

Informações

Descrição
Informatik (Computersysteme I) FlashCards sobre 5.5 Computersysteme I, Anwendungen des Stapelzeigers, criado por David Bratschke em 24-11-2017.
Criado por
David Bratschke · nov 2017
Atualizado
27 nov 2017
Visualizações
92
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?