Was ist Polling in der Informatik und welche Vor- und Nachteile hat es?
Polling ist ein Verfahren, bei dem ein Prozessor oder ein Programm in regelmäßigen Abständen aktiv prüft, ob ein bestimmtes Ereignis eingetreten ist (z. B. ob ein Gerät Daten bereitstellt).
Beispiel: Eine CPU fragt regelmäßig ein Eingabegerät ab, ob neue Daten vorliegen.
Vorteile:
Einfach zu implementieren
Keine Interrupt-Steuerung nötig
Nachteile:
Ineffizient bei seltenen Ereignissen (verbraucht CPU-Zeit)
Kann zu Verzögerungen führen
Nicht geeignet für Echtzeitanwendungen
Vergleich: Polling ist das Gegenteil von Interrupts, bei denen das Gerät den Prozessor informiert, wenn es bereit ist.
Was ist ein Interrupt in der Informatik und wie funktioniert er?
Ein Interrupt (Unterbrechung) ist ein Signal, das den Prozessor dazu veranlasst, seine aktuelle Tätigkeit zu unterbrechen, um eine wichtige Aufgabe sofort zu bearbeiten – z. B. das Eintreffen von Daten.
Funktionsweise:
Gerät sendet Interrupt-Signal an die CPU
CPU unterbricht aktuellen Prozess (speichert Zustand)
Führt Interrupt-Service-Routine (ISR) aus
Danach Rückkehr zum ursprünglichen Prozess
Effizient: CPU wird nur bei Bedarf unterbrochen
Schnelle Reaktion auf Ereignisse
Ressourcen schonender als Polling
Komplexere Programmierung
Mögliches Risiko von Race Conditions oder Prioritätsproblemen
Vergleich: Im Gegensatz zum Polling reagiert die CPU beim Interrupt ereignisgesteuert, nicht durch ständiges Abfragen.
Was ist ein Embedded System und welche Merkmale zeichnen es aus?
Ein Embedded System (eingebettetes System) ist ein spezieller Computer, der in ein größeres technisches System integriert ist und dort spezifische Aufgaben übernimmt.
Merkmale:
Speziell für eine bestimmte Funktion entwickelt
Meist ressourcenbeschränkt (CPU, RAM, Energie)
Echtzeitverhalten oft erforderlich
Häufig kein klassisches Betriebssystem oder nur ein kleines (RTOS)
Hohe Zuverlässigkeit und Stabilität nötig
Eingebettet in Geräte wie Waschmaschinen, Autos, Medizintechnik, IoT-Geräte
Beispiele:
ABS-Steuerung im Auto
Herzschrittmacher
Smartwatches
Industrieroboter
Abgrenzung: Im Gegensatz zu PCs sind Embedded Systems nicht allgemein programmierbar – sie erledigen meist nur eine Aufgabe.
Was ist ein RTOS und wie unterscheidet es sich von einem klassischen Betriebssystem?
Ein RTOS (Real-Time Operating System) ist ein Betriebssystem, das speziell für echtzeitkritische Anwendungen entwickelt wurde. Es garantiert, dass bestimmte Aufgaben innerhalb definierter Zeitgrenzen ausgeführt werden.
Deterministisches Verhalten (vorhersagbare Reaktionszeiten)
Prioritätsbasierte Tasksteuerung
Unterstützung für Multitasking & Interprozesskommunikation (z. B. Semaphoren, Queues)
Minimale Latenzzeiten
Ressourcenoptimiert (speziell für Embedded Systems)
Beispiele für RTOS: FreeRTOS, VxWorks, Zephyr, µC/OS, QNX
Unterschied zum normalen OS (z. B. Windows, Linux):
RTOS: Reaktionszeit ist kritisch – z. B. in Medizintechnik oder Automobilen
Klassisches OS: Optimiert für Durchsatz und Benutzerfreundlichkeit – z. B. auf PCs
Typen von Echtzeitsystemen:
Harte Echtzeit: Verspätung = Systemversagen (z. B. Airbag-Steuerung)
Weiche Echtzeit: Verspätung = Qualitätseinbußen (z. B. Video-Streaming)
Was bedeutet „noncompliant“ in der IT und welche Risiken entstehen dadurch?
„Noncompliant“ bedeutet, dass ein System, Gerät, Benutzer oder Prozess nicht den geltenden Vorschriften, Standards oder Richtlinien entspricht.
Typische Bereiche der Non-Compliance:
Sicherheitsrichtlinien (z. B. unverschlüsselte Datenübertragung)
Datenschutzgesetze (z. B. DSGVO, HIPAA)
Lizenzverstöße (z. B. unlizenzierte Software)
IT-Standards (z. B. ISO 27001, PCI-DSS)
Ein veralteter PC ohne aktuelle Patches
Ein Benutzer mit zu vielen Berechtigungen
Einsatz von Cloud-Diensten ohne Zustimmung der IT
Risiken:
Sicherheitslücken & Angriffe (z. B. durch Malware)
Rechtliche Konsequenzen & Bußgelder
Imageverlust & Vertrauensverlust bei Kunden
Betriebsunterbrechungen
Maßnahmen gegen Noncompliance:
Regelmäßige Audits und Penetration Tests
Automatisiertes Patch-Management
Schulungen & klare Richtlinien
Monitoring- und Compliance-Tools
Was bedeutet „compliant“ in der IT und warum ist Compliance wichtig?
„Compliant“ bedeutet, dass IT-Systeme, Prozesse, Software und Mitarbeiter alle geltenden Gesetze, Vorschriften, Standards und internen Richtlinien einhalten.
Typische Compliance-Vorgaben in der IT:
Datenschutzgesetze: z. B. DSGVO (EU), HIPAA (USA)
IT-Sicherheitsstandards: z. B. ISO/IEC 27001, NIST, BSI-Grundschutz
Branchenspezifische Regeln: z. B. PCI-DSS (Zahlungskarten), SOX (Finanzen)
Ziele von IT-Compliance:
Datenschutz und Datensicherheit gewährleisten
Gesetzliche Vorgaben einhalten
Reputationsschutz und Kundenvertrauen
Rechtliche und finanzielle Risiken vermeiden
Beispiele für „compliant“:
Verschlüsselung sensibler Daten
Protokollierung von Zugriffen auf Systeme
Regelmäßige Schulungen für Mitarbeiter
Lizenzkonforme Softwareverwendung
Maßnahmen zur Einhaltung:
Interne Audits und Risikoanalysen
Einsatz von GRC-Tools (Governance, Risk & Compliance)
Compliance Officer oder Datenschutzbeauftragte
✅ Merksatz:„Compliant“ heißt: Alles ist regelkonform – technisch, organisatorisch und rechtlich.
Was bedeutet „prozedural“ in der Programmierung und wie unterscheidet es sich von anderen Programmierparadigmen?
Procedural programming is a programming paradigm, classified as imperative programming, that involves implementing the behavior of a computer program as procedures that call each other. The resulting program is a series of steps that forms a hierarchy of calls to its constituent procedures.
Imperatives Programmieren ist ein Programmierparadigma, bei dem der Programmierer Schritt für Schritt angibt, wie ein Problem zu lösen ist. Es beschreibt konkrete Anweisungen, die der Computer nacheinander ausführt.
Fokus auf Zustandsänderungen (z. B. Variablen ändern sich im Programmverlauf)
Verwendung von Kontrollstrukturen wie Schleifen, Bedingungen, Zuweisungen
Programme bestehen aus Befehlsfolgen (Anweisungen)
Beispiele für imperative Sprachen:
C, C++, Java, Python (in imperativer Nutzung)
Imperativ: Wie soll das Ziel erreicht werden?
Deklarativ: Was soll erreicht werden? (z. B. SQL, HTML, funktionale Sprachen)
✅ Merksatz:„Imperativ heißt: Sag dem Computer genau, was er tun soll – Schritt für Schritt.“
Was ist der Unterschied zwischen prozeduralem und imperativem Programmieren und wie hängen sie zusammen?
Imperatives Programmieren ist ein Oberbegriff für Programmierstile, bei denen der Programmablauf durch Anweisungen zur Zustandsänderung beschrieben wird.
Prozedurales Programmieren ist eine Unterform des imperativen Programmierens, bei der Programme durch Prozeduren bzw. Funktionen (Subroutinen) strukturiert werden.
Imperativ = Wie? Schrittweise Befehle
Prozedural = Imperativ + Struktur durch Funktionen
Beispiel:
Imperativ: x = x + 1 (Anweisung, wie sich der Zustand ändert)
x = x + 1
Prozedural: Diese Anweisung ist in einer Funktion gekapselt, z. B. def inkrement(x): return x + 1
def inkrement(x): return x + 1
Merkmal
Imperativ
Prozedural
Stil
Schritt-für-Schritt
Strukturiert durch Prozeduren
Modularisierung
Nicht zwingend
Ja, durch Funktionen
Wiederverwendbarkeit
Gering
Höher
Beispiele
Assembly, einfache C
C, Pascal, frühes Python
✅ Merksatz: Prozedural ist eine strukturierte Form des imperativen Programmierens – mit Funktionen statt nur Befehlsfolgen.
Was ist deklarative Programmierung und wie unterscheidet sie sich von imperativer Programmierung?
Deklarative Programmierung beschreibt was das Programm erreichen soll, nicht wie es erreicht wird. Der Fokus liegt auf der Spezifikation des gewünschten Ergebnisses, ohne genaue Schritte zu definieren.
Beschreibt das Ziel oder die Logik
Keine expliziten Anweisungen zur Steuerung des Programmflusses
Höhere Abstraktionsebene als imperativ
SQL (Datenabfragen)
HTML (Struktur von Webseiten)
Funktionale Programmierung (z. B. Haskell)
Logikprogrammierung (z. B. Prolog)
Vergleich zu imperativ:
Aspekt
Deklarativ
Fokus
Wie (Schritt für Schritt)
Was (Ziel/Ergebnis)
Steuerfluss
Explizit durch Programmierer
Wird vom System bestimmt
C, Java, Python (imperativ)
SQL, HTML, Haskell, Prolog
✅ Merksatz: Deklarativ sagt: „Was soll passieren?“ – Imperativ sagt: „Wie soll es passieren?“
Was bedeutet „deterministisch“ in der Informatik?
Deterministisch bedeutet, dass ein System oder Algorithmus bei gleichen Eingaben immer dasselbe Ergebnis liefert und sein Verhalten vorhersehbar ist.
Keine Zufallsfaktoren oder unvorhersehbare Zustände
Feste Ablaufreihenfolge
Gleiche Eingabe → gleiche Ausgabe
Ein deterministischer Algorithmus sortiert immer gleich
Ein deterministisches Endlicher Automat (DEA) folgt immer einem klaren Pfad
Gegenteil: Nicht-deterministisch = Verhalten kann variieren, z. B. durch Zufall oder parallele Prozesse.
✅ Merksatz: Deterministisch heißt: Immer das gleiche Ergebnis bei gleichen Bedingungen.
Was ist ein Client in der IT und welche Rolle spielt er?
Ein Client ist ein Gerät oder Programm, das Dienste oder Ressourcen von einem Server anfragt und nutzt.
Wichtige Merkmale:
Fordert Leistungen vom Server an (Request)
Führt meist Benutzerinteraktionen durch (z. B. Webbrowser, E-Mail-Client)
Kann Software (Client-Software) oder Hardware sein (PC, Smartphone)
Arbeitet in Client-Server-Architekturen
Webbrowser (z. B. Chrome) fordert Webseiten vom Webserver an
E-Mail-Programm ruft Nachrichten vom Mailserver ab
Datei-Explorer auf dem PC greift auf Netzwerkdateien zu
Abgrenzung:
Client = Anfrager
Server = Anbieter von Diensten/Ressourcen
✅ Merksatz:Clients fragen an, Server liefern aus – zusammen bilden sie verteilte Systeme.
——
Ein Server kann gleichzeitig auch als Client agieren, wenn er selbst Dienste von einem anderen Server anfragt.
Ein Webserver (Server für Webseiten) fragt Daten bei einer Datenbank ab (hier ist er Client der Datenbank).
In Microservices-Architekturen ist ein Service oft Server für andere Services, aber Client beim Abrufen von Daten von anderen Services.
Fazit: Die Rollen Client und Server sind kontextabhängig und können von einem System gleichzeitig oder abwechselnd übernommen werden.
Zuletzt geändertvor 9 Tagen