Systemprogrammierung

Systemprogrammierung

Als Systemprogrammierung bezeichnet man das Erstellen von Softwarekomponenten, die Teil des Betriebssystems sind oder die möglichst eng mit dem Betriebssystem bzw. mit der darunter liegenden Hardware kommunizieren müssen.

Systemnahe Software dient als Abstraktionsschicht zwischen einer Applikation und dem Betriebssystem. Diese Schicht erleichtert den Zugriff auf die sehr einfach gehaltenen Betriebssystemfunktionen. Aus Performance- und Sicherheitsgründen ist der Zugriff auf das Betriebssystem auf das Notwendigste beschränkt. Der Programmierer muss sich selbst um Synchronisation (z. B. mittels Semaphore oder Shared Memory) und Interprozesskommunikation kümmern. Die Programmierung auf Betriebssystemebene ist dadurch umständlich und fehleranfällig.

Im Gegensatz dazu bevorzugen Applikationsentwickler Schnittstellen, die schnell, fehlertolerant und leicht zu verwenden sind. Das heißt, für den Applikationsprogrammierer steht die Funktionalität im Vordergrund, während ein Systemprogrammierer Aspekte wie Effizienz und Robustheit besonders berücksichtigen muss. Alle Hochsprachen kapseln die Funktionen der Systemprogrammierung, was eine effektive Anwendungsprogrammierung mit hohem Abstraktionsgrad ermöglicht, jedoch im Bereich der systemnahen Programmierung nicht zielführend ist.

Ein weiteres Beispiel für systemnahe Anwendungen sind Datenbankmanagementsysteme. Datenbanken benötigen einen sehr schnellen Zugriff auf Hardwareressourcen. Der Umweg über die Entwicklungs-APIs ist dabei nicht nur ein zusätzlicher Kostenfaktor. Solche APIs sind für die Bedürfnisse bestimmter Applikationen auch ungeeignet. Implementierungen von Datenbanken bevorzugen daher, selbst direkt mit dem System zu kommunizieren.

Systemprogrammierung wird häufig in vergleichsweise minimalistischen Sprachen wie C oder sogar Assembler durchgeführt. Die umfangreichen Hochsprachen wie C++ oder Pascal führen häufig zu großen und wenig effizienten Programmen, die für die systemnahe Programmierung ungeeignet sind. Ausnahmen bilden hier einige eingebettete Systeme, die direkt in Java programmiert werden können.


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Systemprogrammierung — sisteminis programavimas statusas T sritis automatika atitikmenys: angl. system programming vok. Systemprogrammierung, f rus. системное программирование, n pranc. programmation système, f …   Automatikos terminų žodynas

  • C-Code — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

  • C Programmiersprache — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

  • Programmiersprache C — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

  • C-Plusplus — C++ Paradigmen: imperativ, strukturiert, objektorientiert, generisch Erscheinungsjahr: 1983 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

  • C-plus-plus — C++ Paradigmen: imperativ, strukturiert, objektorientiert, generisch Erscheinungsjahr: 1983 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

  • C plus plus — C++ Paradigmen: imperativ, strukturiert, objektorientiert, generisch Erscheinungsjahr: 1983 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

  • Cplusplus — C++ Paradigmen: imperativ, strukturiert, objektorientiert, generisch Erscheinungsjahr: 1983 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

  • C++ — Paradigmen: Multiparadigmen (funktional, generisch, imperativ, objektorientiert, prozedural, strukturiert) Erscheinungsjahr: 1979 Entwickler: Bjarne Stroustrup …   Deutsch Wikipedia

  • C (Programmiersprache) — C Paradigmen: imperativ, strukturiert Erscheinungsjahr: 1972 Entwickler: Dennis Ritchie Bell Labs wichtige Implementierungen …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”