GTI-Grundlagen der technischen Informatik

Sämtliche Themen, welche relevant sind um die technische Informatik zu erlernen.

Sämtliche Themen, welche relevant sind um die technische Informatik zu erlernen.


Set of flashcards Details

Flashcards 178
Language Deutsch
Category Computer Science
Level Other
Created / Updated 16.11.2020 / 24.09.2023
Weblink
https://card2brain.ch/box/20201116_gtigrundlagen_der_technischen_informatik
Embed
<iframe src="https://card2brain.ch/box/20201116_gtigrundlagen_der_technischen_informatik/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Nach welchen Algorithmen/Strategien erfolgt das "Scheduling"? 

Primär wird zwischen verdrängendem (preemptive) und nicht verdrängendem (non-preemptive) Scheduling unterschieden. Beim nicht verdrängenden Scheduling darf ein Prozess nicht unterbrochen werden, bis er seine Aufgaben vollständig erledigt hat. Im Gegensatz dazu darf im verdrängenden Verfahren eine Vorrang-Unterbrechung stattfinden.

Es gibt unterschiedliche Scheduling Strategien wie (u.a.) Shortest Job First (SJF), Shortest Time Remaining Next (STRN), First In First Out (FIFO) oder Round-Robin (RR).

Normalerweise setzt ein Betriebssystem eine Kombination von Scheduling Algorithmen um. Häufig wird das Round-Robin-Verfahren als Scheduling-Strategie mit Prioritäten eingesetzt.

Welche Scheduling-Strategie ist die optimale, beste?

Es gibt unterschiedliche Metriken, um Scheduling-Strategien zu vergleichen. Wenn z.B. nur Verweilzeit betrachtet wird, könnte SJF als die optimale Strategie betrachtet werden.

Der Algorithmus von SJF ist vom Grundsatz her non-preemptive, was in den heutigen Betriebssystemen so nicht mehr implementiert ist. Die Frage wie das Betriebssystem erkennt wie viel Zeit ein Prozess braucht ist schwierig zu lösen.

Aber diese Strategie ist auch nicht die beste Strategie, wenn alle wichtigen Faktoren einer Scheduling-Aufgabe betrachtet werden.

Fairness: Die CPU-Zeit muss für alle Prozesse fair geteilt werden. Eine SJF-Strategie kann zum «Verhungern» von Prozessen führen können, d.h. es kann also Prozesse geben, die nie oder fast nie eine CPU-Zeiteinheit zugeteilt bekommen, da immer wieder durch kürzere Jobs unterbrochen werden.

Einige Jobs sind wichtiger als andere und sollten vom Betriebssystem als solche behandelt werden. Daher sollte die Scheduling-Strategie Prioritäten berücksichtigen.

Blocking: Wenn für einen Prozess eine Ressource, wie z.B. Zugriff auf einem Peripheriegerät, erforderlich ist, die derzeit nicht verfügbar ist, sollte der Scheduler in der Lage sein, dies zu handhaben und sicherzustellen, dass die anderen Prozesse davon nicht negativ beeinflusst werden.

Prioritäten: Unterschiedliche Prozesstypen haben unterschiedliche Laufzeitanforderungen. Ein Batchjob ohne Benutzerinteraktion könnte mit einer niedrigeren Priorität behandelt werden als ein Prozess, der eine Benutzerinteraktion erfordert. Daher sollte der Scheduler dies auch bei der Bearbeitung dieser Arten von Jobs berücksichtigen. Sie können beispielsweise ausgeführt werden, wenn nicht viel interaktive Aktivität vorhanden ist.

Normalerweise wird eine Kombination von Strategien für Scheduling in einem Betriebssystem umgesetzt. Für interaktive Jobs wird hauptsächlich RR mit Prioritäten umgesetzt.

 Was ist der Unterschied zwischen einem Thread und einem Prozess? 

Mehrere Threads können innerhalb eines Prozesses laufen. Alle Threads innerhalb eines Prozesses teilen sich den Adressraum und können gemeinsam auf Programmcode und Programmdateien zugreifen. Ein Thread wird einem Thread Control Block TCB zugeordnet und in einer Threadtabelle zusammengefasst. Wenn bei Threads die Ausführungseinheit ausgetauscht wird (Kontextwechsel), gibt es weniger «Overhead», da der Speicherbedarf eines TCBs viel kleiner ist als ein PCB. Dadurch kann den Kontextwechsel schneller gemacht werden. Normalerweise wird ein Thread innerhalb des Prozesses verwaltet, wo es erzeugt wurde. Hingegen ein Prozess wird vom Prozessverwaltung eines Betriebssystems verwaltet.

Jeder Prozess hat einen eigenen getrennten Adressraum. Threads hingegen teilen den Adressraum des Prozesses, der die Threads erzeugt hat. Die geteilten Speicher ermöglicht eine Kommunikation zwischen unterschiedlichen Threads eines Prozesses.

Was ist das Link Register?

LR wird verwendet, um den Rückgabeprogrammzähler (PC) zu speichern, wenn eine Unterroutine oder Funktion aufgerufen wird - beispielsweise wenn Sie die Anweisung branch and link (BL) verwenden

Was ist das Data Segment?

Als Datensegment bezeichnet man den Teil von Objektdateien oder eines laufenden Prozesses, in dem globale und statische Variablen abgelegt sind. Diese Variablen müssen beim Start des Programms bereits im Speicher vorhanden und initialisiert sein, außerdem ist ihr Speicherplatzbedarf bereits zur Übersetzungszeit bekannt. Daher wird bereits beim Übersetzen ein Datenblock erstellt, der später als Teil des Programms beim Starten in den Speicher geladen und sofort verwendet werden kann. Manchmal werden Daten-, BSS-, Stack- und Heap-Bereiche gemeinsam als „Datensegment“ bezeichnet.

Was sind General Purpose Register (GPR)?

General Purpose Register (GPR) sind universelle Register in denen Anweisungen ihre Operanden mit wahlfreiem Zugriff Aus- und Einlesen können. Die Registerdatei ist so konzipiert, dass Anweisungen in beliebiger Reihenfolge durch Angabe der Registernummer auf die Register zugreifen können. Vergleichbar dem wahlfreien Zugriff auf Speicheradressen.

Wozu dient der Program Counter einer CPU?

Wurde ein Befehl erfolgreich ausgeführt, geht der Hauptprozessor in der Befehlsfolge des Programms
weiter: Der Hauptprozessor liest von der im Programm Counter angegebenen Speicheradresse
den nächsten Befehl aus, erhöht den Zähler und führt den Befehl aus. Handelt es sich dabei um einen
Sprungbefehl, so wird der Zeiger entsprechend der Sprungadresse gesetzt. Bei einem Sprung mit
Rückkehrabsicht wird der Programm Counter in einem bestimmten Register oder auf dem
Returnstack gesichert und die Verarbeitung an der Einsprungadresse des Unterprogramms fortgesetzt.
Nach Beendigung des Unterprogramms wird der Programm Counter innerhalb eines
Rücksprungbefehls wieder auf den vorherigen Wert zurückgesetzt und damit die Ausführung an der
ursprünglichen Stelle des „unterbrochenen“ Programms fortgesetzt.

Was ist der Stack Pointer (SP)?

Ein Stack (Stapelspeicher, Kellerspeicher) ist ein wichtiges Hilfsmittel zur Realisierung von Unterprogrammen und Unterbrechungen. Dieser Speicherbereich ist - im Gegensatz zum allgemeinen Speicher - nicht mit einem wahlfreien Zugriffsverfahren zu erreichen, das Zugriffe in beliebiger Adressfolge ermöglicht. Der nächstfolgende Transfer vom oder zum Stack ist von der Adresse des vorhergehenden abhängig.

Was ist Push und Pop?

Bevor wir uns mit Unterprogrammen und Interrupts beschäftigen, müssen wir uns noch mit dem Stack (dt. „Stapel“) vertraut machen. Der Stack ist ein wichtiges Konzept bei der Assemblerprogrammierung.

Dazu stellen wir uns vor, wir wären Tellerwäscher in einem großen Hotel. Unsere Aufgabe besteht neben dem Waschen der Teller auch im Einräumen derselbigen ins Regal. Den erste Teller, den wir dort stapeln, bezeichnen wir als Teller 1, den nächsten als 2 usw. Wir nehmen an, dass wir 5 Teller besitzen.

Wenn wir nun wieder einen Teller benötigen, nehmen wir den obersten Teller vom Stapel. Das ist bei uns der Teller mit der Tellernummer 5. Benötigen wir erneut einen, dann nehmen wir Teller 4 vom Stapel – und nicht etwa Teller 1, 2 oder 3. Beim nächsten Waschen stellen wir zunächst Teller 4 und anschließend 5 (oder umgekehrt) auf den Stapel. Wir nehmen dabei immer den obersten Teller und nie einfach einen Teller aus der Mitte.

Das Konzept bei einem Stapel des Prozessors ist ganz ähnlich: Wir können immer nur auf das oberste Element des Stapels zugreifen. Ein Element können wir mit dem push-Befehl auf den Stapel legen. Mit dem pop-Befehl holen wir uns das oberste Element wieder vom Stapel.

Das Prinzip, dass wir das Element vom Stack holen, das wir zuletzt auf den Stapel gelegt haben, bezeichnet man als LIFO–Prinzip. Dies ist die englische Abkürzung für Last In First Out (dt. „zuletzt herein – zuerst heraus“).

Das folgende Programm legt 3 Werte auf den Stack und holt diese anschließend wieder vom Stapel:

Was ist ein Instruction Register (IR)? 

Ein Befehlsregister enthält einen Maschinenbefehl, der gerade ausgeführt wird. Im Allgemeinen befindet sich ein Register oben in der Speicherhierarchie. Eine Vielzahl von Registern erfüllt unterschiedliche Funktionen in einer Zentraleinheit (CPU) - die Funktion des Befehlsregisters besteht darin, den aktuell in der Warteschlange befindlichen Befehl zur Verwendung zu halten.

Was ist das Code Segment (CS)?

Das Codesegment ist der Teil eines Anwendungsprogramms, in dem die expliziten Maschinen-Codes (Opcodes) stehen, die an den Prozessor geleitet und dann ausgeführt werden. Ein Codesegment enthält also Anweisungen (Befehle) für den Rechner, die dieser ausführen soll.

Das Codesegment wird vom Compiler aus dem Quellcode der Anwendung übersetzt. Aus dem Codesegment kann man mit Hilfe eines Disassemblers wieder Quellcode (Assembler-Code) zurückgewinnen. Der Begriff „Codesegment“ bezeichnet sowohl den Anweisungsbereich in der Programmdatei, als auch den Bereich des Arbeitsspeichers mit dem zur Ausführung geladenen Programm.

Nach dem Laden des Programms durch das Betriebssystem arbeitet der Prozessor die Befehle im Codesegment Schritt für Schritt ab, bis in der Anwendung eine Abbruchbedingung eintritt, die die Beendigung der Anwendung einleitet.

Was ist das Status Register?

Das Statusregister (auch Zustandsregister, englisch condition code register (CCR), oder Programmstatuswort, englisch program status word (PSW)) ist ein spezielles Register im Rechenwerk eines Mikroprozessors. Da man diese Bits auch als Flags bezeichnet, wird das Statusregister auch Flagregister genannt. Es enthält eine Reihe von Flags, die von der arithmetisch-logischen Einheit (ALU) in Abhängigkeit von der zuletzt durchgeführten Rechenoperation (z. B. Überlauf, negatives Ergebnis) gesetzt werden. Einige Flags können auch durch direkte Anweisungen geändert werden. Manche Prozessoren – z. B. der 6502 – setzen die meisten Statusflags auch schon bei reinen Ladeoperationen.

Wie werden die Anzahl möglicher Zustände eines Bits (binary digits sprich Binärziffer)berechnet?

Bild 

Umrechnungstabelle Bytes

Bild

Wie wird ausgerechnet wieviel wieviel Zahlen n Bits darstellen können?

Bild 

Wie werden Minuszahlen in binär dargestellt?

Da der Computer nicht subtrahieren kann, benötigt er zur Darstellung von Minuszahlen 

eine andere Vorgehensweise. Dazu wird das "most significant bit" verwendet.

Somit gibt das vorderste Bit an, ob es sich um eine Plus- oder Minuszahl handelt.

Plus = 0

Minus = 1

Was ist das Einerkomplement?

Das Einerkomplement ist eine weiter Möglichkeit um Minuszahlen darzustellen.

Dazu werden die positiven Zahlen einfach invertiert. 

Bild

Was sind Embbeded Systems?

Eingebettete Systeme Viele Produkte mit denen wir täglich umgehen, enthalten einen oder mehrere Computer, häufig auf einem einzigen Chip integriert – sogenannte Mikrocontrol- ler. Diese messen, steuern und regeln technische Systeme, z. B. löst der Airbag-Controller unter bestimmten Bedingungen die Airbags im Auto aus oder die Motorsteuerung regelt die Kraftstoff-Verbrennung innerhalb eines Motors. In Autos und Flugzeugen wird bei den Mikrocontroller-Schaltungen auch von Steuergeräten (ECU = Electronic Control Unit) ge- sprochen. Diese Produkte werden häufig in sehr großer Stückzahl hergestellt, damit sind die Herstellungs- bzw. Stückkosten besonders wichtig. Die Rechenleistung der Hardware muss angemessen zum Regelungs- bzw. Steuerungsproblem sein, häufig wird Echtzeitfähigkeit erwartet, d. h. das System muss innerhalb eines bestimmten Zeitintervalls reagieren (also nicht notwendigerweise möglichst schnell). Daher sind noch heute einfache 4- oder 8-Bit Mikrocontroller im Einsatz.

Was sind Mobile Computer?

Mobile Computer wie Smartphones, Tablet-Computer und auch Laptops: Diese Geräte sind mit einem Akku ausgestattet. Die Betriebszeit eines solchen Computers sollte mit einer Akkuladung möglichst lang sein. Wichtiges Entwurfskriterium für die Hard- und Software ist daher der Stromverbrauch und die Möglichkeiten, während des Betriebs Strom einzusparen.
Dennoch wird von diesen Computern punktuell eine sehr hohe Rechen- und Speicherleistung erwartet: Mit einem Smartphone werden z. B. in kurzer Folge viele hochauflösende Digital- fotos und -filme gemacht oder es wird ein HD-Videofilm abgespielt. Die Sprachsteuerung erfordert ebenfalls hohe Rechen- und Speicherkapazität zur Analyse eines Audiosignals und zum Erkennen der Kommandos in menschlicher Sprache.
Ein mobiler Computer ist ein Gerät, das interaktiv genutzt wird. Wenn ein Benutzer den Touch-Bildschirm berührt, erwartet er eine sofortige Reaktion des Computers. Antwortzeiten, die eine interaktive Nutzung erlauben, sind daher besonders wichtig.

Was sind Hardware Server?

Hardware-Server Auf eine Server-Hardware greifen in der Regel sehr viele Clients gleichzeitig zu. Die Clients führen ähnliche Aufgaben mithilfe des Servers aus, z. B. Banküberweisungen, Buchkäufe, Volltextsuche oder sie rufen einfach nur ein paar statische Web-Seiten ab. Damit muss eine Server-Hardware möglichst viele gleichartige Aufgaben gleichzeitig erledigen. Für Server-Hardware ist der Durchsatz ein besonders wichtiges Entwurfskriterium, möglichst viele Anfragen müssen pro Sekunde beantwortet werden, möglichst viele Daten müssen pro Sekunde gespeichert oder möglichst viele Transaktionen müssen durchgeführt werden.

Was sind Einprozessor-Systeme?

Einprozessor-Systeme sind die klassischen Systeme mit nur einem Mikroprozessor (der CPU), welcher autonom den Programmfluss steuert und alle Operationen ausführt. Moderne CPU enthalten mittlerweile mehr als einen Rechenkern. Somit entwickeln sich auch Systeme mit nur einem Prozessor intern zu Multi-Core-Systemen mit vergleichbaren Eigenschaften und Problemen wie die unten genannten Multiprozessor-Systeme mit mehreren CPUs.

Was ist ein Befehlssatz?

Jede CPU hat einen Befehlssatz. Das sind die Maschinenbefehle, die sie ausführen kann. Die Art und Zusammenstellung der Befehle wird als Befehlssatzarchitektur (Instruction Set Architecture, ISA) bezeichnet. Wenn beispielsweise von einer x86-CPU gesprochen wird, ist keineswegs ein 8086-Prozessor gemeint, sondern ein Prozessor, der unter anderem denselben Befehlssatz ausführen kann wie der 8086-Prozessor aus dem Jahr 1978. Prozessoren mit x86-Befehlssatz finden sich in den meisten Desktop-Computern und Laptops. ARM (Advanced RISC Machines) ist ein zweiter bekannter Befehlssatz. Prozessoren mit ARM-Architektur finden sich in den meisten Smartphones und Tablet-Computern.
Die Optimierbarkeit der Hardware hängt mit den Eigenschaften des Befehlssatzes eng zusammen: Je einfacher der Befehlssatz einer CPU ist, desto leichter kann dessen Ausführung optimiert werden. Komplexe Befehle haben in der Regel komplexe Hardware zur Folge und lassen sich demzufolge schwieriger optimieren.

Was ist die allgemeine Aufgabe eines Prozessors?

Prozesse vorantreiben und abarbeiten

Aus welchen Komponenten besteht die von-Neuman-Architektur?

Bild

Welche Scheduling Ziele werden durch die CPU Angestrebt?

Bei der Vergabe der CPU werden bestimmte Scheduling-Ziele angestrebt:
– Fairness, d. h. für jeden Prozess eine garantierte Mindestzuteilung
– Effizienz durch möglichst volle Auslastung der CPU
– Die Antwortzeit soll minimiert werden
– Die Wartezeit von Prozessen soll minimiert werden
– Der Durchsatz soll optimiert werden
– Die Durchlaufzeit (Verweilzeit) eines Prozesses soll minimiert werden
– Die Ausführung eines Prozesses soll vorhersehbar und damit kalkulierbar
sein.

Was ist der Unterschied zwischen verdrängendem (pre- emptive) und nicht verdrängendem (non-preemptive) Scheduling?

Im non-preemptive, auch „run-to-completion“-Verfahren genannt, darf ein Prozess nicht unterbrochen werden, bis er seine Aufgaben vollständig erledigt hat. Das Verfahren ist natürlich nicht für konkurrierende Benutzer geeignet und auch nicht für Realtime-Anwendungen. MS-DOS und auch die ersten Windows-Systeme un- terstützten z. B. nur dieses Verfahren.
Im Gegensatz dazu darf im preemptive Scheduling eine Vorrang-Unterbrechung stattfinden. Rechenbereite Prozesse können somit suspendiert werden. Dies setzt natürlich eine Strategie zur Vergabe der CPU voraus, die vom Betriebssystem un- terstützt werden muss und in der Regel auf der Zeitscheibentechnik basiert. Dieses Verfahren ist für die Unterstützung konkurrierender Benutzer geeignet.

Welche Scheduling Varianten werden für Batch-orientierte-Prozesse verwendet?

Scheduling für Batch-orientierte Prozesse. Für Batch-orientierte Prozesse findet man u. a. folgende Scheduling-Verfahren zur Unterstützung der CPU-Zuteilung:
– First Come First Serve (FCFS)
– Shortest Job First (SJF), auch als Shortest Process First (SPF) bzw. Shortest
Process Next (SPN) bezeichnet
– Shortest Remaining Time Next (SRTN)

Welche Scheduling Verfahren werden für Dialog-orientierte-Prozesse verwendet?

Für die Unterstützung der CPU- Zuteilung zu Dialog-Prozessen gibt es u. a. folgende Scheduling-Algorithmen:
– Round Robin (RR)
– Priority Scheduling (PS)
– Garantiertes Scheduling und Fair-Share-Scheduling
– Lottery Scheduling

Wie funktioniert Round Robin?

RR ist im Prinzip FCFS (siehe Batch-Strategien) in Verbindung mit einer Zeitschei- be. RR geht davon aus, dass alle Prozesse gleich wichtig sind. Ein Prozess erhält ein bestimmtes Quantum (auch Zeitscheibe oder engl. time slice genannt) und wenn dieses abgelaufen ist, wird der Prozess unterbrochen und ein anderer Prozess er- hält die CPU. Der unterbrochene Prozess wird hinten in die Warteschlange einge- tragen und kommt erst dann wieder an die Reihe, wenn die anderen Prozesse ihr Quantum verbraucht haben oder aus einem anderen Grund unterbrochen wurden. Die Frage nach der Länge der Zeitscheibe ist von großer Bedeutung für die Leis- tung des Systems.

Wie funktioniert Priority-Scheduling?

PS wählt immer den Prozess mit der höchsten Priorität aus. Dies setzt natürlich die Verwaltung von Prioritäten voraus. Jedem Prozess Pi wird eine Priorität pi zuge- wiesen. Pi wird vor Pj ausgewählt, wenn pi größer als pj ist. Prozesse mit gleicher Priorität werden meist gemeinsam in einer Warteschlange verwaltet. Innerhalb der Prioritätsklasse kann dann im RR-Verfahren ausgewählt werden (siehe Multilevel- Scheduling).

Wie funktioniert garantiertes- bzw. Fairtrade-Scheduling?

Als garantiertes Scheduling oder Fair-Share-Scheduling bezeichnet man ein Verfahren, in dem jedem Prozess der gleiche Anteil der CPU zugeteilt wird. Gibt es also n Prozesse im System, so wird jedem Prozess 1/n der CPU-Leistung zur Verfügung gestellt. Bei diesem Verfahren muss festgehalten werden, wie viel CPU-Zeit ein Prozess seit seiner Erzeugung bereits erhalten hat. Diese Zeit wird in Relation zur tatsächlich vorhandenen CPU-Zeit gesetzt. Der Prozess, der das schlechteste Ver- hältnis zwischen verbrauchter und tatsächlich vorhandener CPU-Zeit hat, wird als nächstes ausgewählt und darf so lange aktiv bleiben, bis er die anderen Prozesse überrundet hat.

Was ist Lottery Scheduling?

Auch die zufällige Auswahl eines Prozesses wie etwa im Lottery Scheduling ist eine mögliche Strategie. Jede Scheduling-Entscheidung erfolgt dabei zufällig etwa in der Form eines Lotterieloses. Das System könnte z. B. n mal in der Sekunde eine Verlosung unter den Prozessen durchführen und dem Gewinner der Verlosung die CPU für m Millisekunden bereitstellen.

Welche Scheduling Verfahren werden für Realtime-Systeme verwendet?

Folgende Scheduling-Algorithmen für Realtime-Systeme sind u. a. bekannt:
– Earliest Deadline First (EDF) oder auch Minimal Deadline First genannt
– Polled Loop
– Interrupt-gesteuert

Was ist eine Interrupt Vektor Tabelle?

Interrupt-Vektor-Tabelle. ISRs werden in heutigen Systemen meist nicht direkt, sondern über einen Interrupt-Vektor adressiert. Die Interrupt-Vektoren sind meist in einer Interrupt-Vektor-Tabelle gespeichert. Ein Interrupt-Vektor ist also ein Eintrag in dieser Tabelle, der die Speicheradresse der Interrupt-Service-Routine enthält. Die Tabelle liegt an einer vordefinierten Stelle im Kernelspeicher. Der Index zur Adressierung in der Tabelle wird der CPU bei Auftreten einer Unterbrechung im- plizit durch den Interrupt-Controller anhand der belegten Adressleitungen über- mittelt. Jeder Interrupt-Quelle wird ein fester Index auf die Interrupt-Vektor- Tabelle zugeordnet. Dieser Index wird als Interrupt-Nummer bezeichnet. Die Ab-bildung des IRQ auf die Interrupt-Nummer übernimmt der Interrupt-Controller.

Was sind Benutzerthreads und Kernelthreads?

Bild

Welche der folgenden Aussagen zur Speicherplatzverwaltung sind richtig?

 

Die Speicherverwaltung eines Rechners umfasst folgende Bereiche:

Wählen Sie eine oder mehrere Antworten:

 

Jeder Prozess führt eine Prozesstabelle zur Verwaltung seiner Informationen.

 

Rechnen Sie die folgende Binärzahl in einen dezimalen Wert um:

01110102= ?

 

58

Welche der folgenden Aussagen zu Speicherhierarchien sind richtig?