Notizen, Zusammenfassungen, Arbeiten, Prüfungen und Aufgaben für Informatik

Entwicklung der Computertechnologie und Peripheriegeräte

Informatik4,5 KB

Historische Entwicklung der Computertechnologie

Die Entwicklung der Computertechnologie ist geprägt von bahnbrechenden Innovationen, die die Art und Weise, wie wir Daten verarbeiten und mit Maschinen interagieren, grundlegend verändert haben.

Die Pioniere der Computerentwicklung

Der erste Computer wurde von dem englischen Mathematiker Charles Babbage entworfen, der das Prinzip der automatischen Datenverarbeitung klar erkannte:

  • Eingabe
  • Verarbeitung
  • Ausgabe

Danach entwickelte George Boole die Theorie der mathematischen Logik und Algebra, die seinen Namen trägt. Dank dieser Grundlagen wurde es möglich, über die Erarbeitung von Prozessen oder Programmen nachzudenken, die in Abhängigkeit von bestimmten Bedingungen andere Prozesse ausführen oder...

Weiterlesen "Entwicklung der Computertechnologie und Peripheriegeräte" »

Grundlagen der Computerprogramme und Softwareentwicklung

Informatik5,12 KB

Was sind Computerprogramme?

Computerprogramme (Wikipedia) sind Listen von Anweisungen, die von einem Computer ausgeführt werden. Diese reichen von wenigen Anweisungen für einfache Aufgaben bis hin zu hochkomplexen Listen, die auch Datentabellen umfassen können. Viele Programme enthalten Millionen von Anweisungen, von denen viele wiederholt ausgeführt werden. Ein moderner PC (Wikipedia) konnte bereits im Jahr 2005 rund 3 Milliarden Instruktionen pro Sekunde verarbeiten. Computer verdanken ihre außerordentlichen Fähigkeiten nicht der Ausführung komplexer Einzelbefehle, sondern der Anordnung von Millionen einfacher Anweisungen durch Programmierer (Wikipedia).

Die Rolle der Programmiersprachen

In der Praxis schreiben Menschen Anweisungen normalerweise...

Weiterlesen "Grundlagen der Computerprogramme und Softwareentwicklung" »

Programmierung: Von Quellcode zu ausführbaren Programmen

Informatik2,95 KB

Programmquellen und ihre Verarbeitung

Programmquellen sind Dateien, die Anweisungen enthalten, wie ein bestimmtes Programm ausgeführt werden soll. Diese müssen in Binärcode übersetzt werden, damit die CPU diese Anweisungen versteht. Daher sind Quellprogramme nicht direkt in Binärcode geschrieben. Zu der Systemsoftware für die Übersetzung dieser Quellen gehören:

  • Assembler
  • Compiler
  • Interpreter

Bevor diese Sprachübersetzer das Quellprogramm für die CPU übersetzen, müssen Fehler korrigiert werden.

Assembler

Assembler wandeln in Assemblersprache geschriebene Programme direkt in den entsprechenden Binärcode um.

Interpreter

Ein Interpreter übernimmt die Bearbeitung, Übersetzung und Ausführung eines in einer Hochsprache geschriebenen Programms....

Weiterlesen "Programmierung: Von Quellcode zu ausführbaren Programmen" »

Analyse von Cache- und virtuellem Speichermanagement

Informatik10,04 KB

Cache-Analyse: Separater vs. Unified Cache

Aufgabe: Angesichts der Daten der beigefügten Tabelle für Caches mit einer Blockgröße von 32 Bytes, und einer Reihe von Testprogrammen, bei denen 75 % der Zugriffe auf Instruktionen entfallen:

  1. Welches System hat eine geringere Fehlerrate (Miss-Rate): Ein System mit separatem 16 KB Instruktions-Cache und 16 KB Daten-Cache oder ein System mit einem einheitlichen 32 KB Cache?
  2. Berechnung der durchschnittlichen Zugriffszeit: Angenommen, ein Cache-Hit erfordert 1 Taktzyklus und ein Miss kostet 50 Zyklen (Miss-Penalty). Ein Hit beim Laden oder Speichern im Unified Cache erfordert einen zusätzlichen Zyklus. Wie hoch ist die durchschnittliche Speicherzugriffszeit in jedem Fall?
GrößeInstruktions-CacheDaten-
...
Weiterlesen "Analyse von Cache- und virtuellem Speichermanagement" »

Die Turing-Maschine: Definition, Funktionsweise und universelle Konzepte

Informatik7,5 KB

Die Turing-Maschine: Ein fundamentales Computermodell

Die Turing-Maschine ist ein von Alan Turing entwickeltes Computermodell. Sie wurde erstmals in seiner Arbeit „On Computable Numbers, with an Application to the Entscheidungsproblem“ vorgestellt, die 1936 von der London Mathematical Society veröffentlicht wurde. Diese Arbeit untersuchte Hilberts Frage, ob die Mathematik entscheidbar sei – also ob es eine Methode gäbe, die für jeden mathematischen Satz feststellt, ob er wahr oder falsch ist.

Turing konstruierte dieses formale Modell, um den Begriff des Algorithmus zu formalisieren, und bewies, dass es Probleme gibt, die von einer Maschine nicht gelöst werden können.

Beschreibung der Turing-Maschine

Eine Turing-Maschine besteht im Wesentlichen...

Weiterlesen "Die Turing-Maschine: Definition, Funktionsweise und universelle Konzepte" »

Sitzungsprotokoll: Dialogverwaltung und Spezifikation

Informatik2,41 KB

Der Access Point Transport-Service (APTS) tauscht Transportprimitive aus. Das Sitzungsprotokoll legt die Regeln für den Austausch von Daten und Steuerinformationen zwischen Peer-Instanzen fest, die über eine Sitzungsverkehrsanbindung verbunden sind. Die Beziehung zwischen dem Austausch von Primitiven und den Verfahren des Protokolls lautet wie folgt:

  • Wenn die Maschine eine Session Protocol Data Unit (SPDU) vom Transport Layer erhält, generiert sie eine Angabe oder Bestätigung für den Benutzer-Service (frühes Anzeichen oder Bestätigen).
  • Erhält der Benutzer eine Anfrage oder Antwort (Anfrage- oder Antwort-Primitiv), wird eine SPDU an den anderen Teilnehmer gesendet und/oder eine Transport-Service-Anforderung erzeugt.

Eine von der Sitzungsprotokollmaschine...

Weiterlesen "Sitzungsprotokoll: Dialogverwaltung und Spezifikation" »

Oracle: Tablespace, UNDO und Sicherheit — Fragen

Informatik6,9 KB

Fragen 1–50: Oracle-Konzepte (korrigiert)

  1. 1. Größe des Datenblocks

    8 bis 32 KB, aber wir haben von 2 bis 32 KB.

  2. 2. Tablespace wird zum Speichern
    • c) Daten logisch
  3. 3. Tabelle / Raum-System
    • b) speichert Daten im Dezember
  4. 4. Segmente

    Segmente, die in Oracle verwendet werden:

    • c) einen temporären und Rollback
  5. 5. Extended in Oracle
    • nutzen
    • c) zur Überwachung der Tablespace-Größe
  6. 6. Der Parameter pett
    • a) Mindestprozentsatz, der freigeräumt werden muss
  7. 7. Undo-Daten werden verwendet, um
    • d) Wiederherstellung von Transaktionen
  8. 8. Für den Wert Konsulat
    • e) keine
  9. 9. Der Definition folgende
    • a) Segmente
  10. 10. Teilweise verfügbar
    • a) enthält Informationen einer Transaktion im Zweifel
  11. 11. Der Parameter, der die Zeit angibt

    Der Parameter, der die Zeit angibt, in der

...

Weiterlesen "Oracle: Tablespace, UNDO und Sicherheit — Fragen" »

Speicherverwaltung: Paging und Segmentierung

Informatik3,01 KB

Paging-Grundlagen

Beim Paging kann es zu Speicherverlusten kommen, wenn die Seitengröße ungünstig gewählt ist. Dies führt zu interner Fragmentierung (verschwendeter Platz innerhalb einer Seite). Die übliche Seitengröße liegt zwischen 128 und 1024 Wörtern (512 bis 8192 Bytes).

Ladealgorithmen für Seiten

  • Load-on-Demand: Eine Seite wird erst geladen, wenn ein Seitenfehler auftritt. Dies schont die Bandbreite.
  • Vorspannung (Prepaging): Seiten werden präventiv in den Hauptspeicher geladen, basierend auf der Annahme, dass sie in naher Zukunft benötigt werden.

Seitenersetzungsalgorithmen

Die Verwaltung erfolgt durch das Betriebssystem. Theoretische Ansätze sind FIFO oder LRU, während in der Praxis oft LFU oder NUR eingesetzt werden.

Segmentierung

Im...

Weiterlesen "Speicherverwaltung: Paging und Segmentierung" »

C-Programmierung: Übungen zu Arrays, Zeigern und Strukturen

Informatik2,97 KB

1. Struktur für Autodaten definieren

Definieren Sie eine Struktur für die folgenden Angaben eines Autos: Marke, Kategorie (Kompakt/Familie), Modell, Hubraum und Baujahr.

Antwort:

struct Datos_auto {
    char marke[30];
    char modell[10];
    char kategorie[30];
    int jahr;
    int hubraum;
};

4. Array-Indexüberschreitung

Was passiert, wenn Sie einem Element eines Arrays einen Wert zuweisen, dessen Index die definierte Größe überschreitet?

Antwort: Daten werden überschrieben (Speicherzugriffsfehler oder undefiniertes Verhalten).

5. Bedeutung des Array-Namens

Wenn ein Array wie folgt deklariert ist: int liste[12];, was stellt liste dar?

Antwort: Der Name des Arrays (entspricht der Speicheradresse des ersten Elements).

6. Definition eines Strings

...
Weiterlesen "C-Programmierung: Übungen zu Arrays, Zeigern und Strukturen" »

C-Programm zum Auflisten von Verzeichnissen (ls-Nachbau) – Korrektur und Erklärung

Informatik4,75 KB

Verzeichnisinhalte mit C auflisten: Der ls-Befehl Schritt für Schritt

Das folgende C-Programm implementiert eine vereinfachte Version des Befehls ls. Es liest den Inhalt eines Verzeichnisses, ermittelt die Informationen zu jeder Datei und gibt sie je nach gewählten Optionen aus.

Definitionen und Konstanten

Zu Beginn werden die maximale Pfadlänge, die maximale Länge eines Dateinamens sowie die maximale Anzahl an Dateien festgelegt:

  • MAX_PATH 150
  • MAX_NOMBRE 32
  • MAX_FICHEROS 500

Die Struktur datosF

Die Struktur datosF speichert die Daten jeder Datei: Name, Größe, Inode, Benutzer, Gruppe und Berechtigungen.

struct datosF {
    char name[MAX_NOMBRE];
    long size;
    long inode;
    char *user;
    char *group;
    char permisos[10];
};

Funktion damePermisos

Die...

Weiterlesen "C-Programm zum Auflisten von Verzeichnissen (ls-Nachbau) – Korrektur und Erklärung" »