„Systemprogrammierung“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Aufgabenfelder: Wiki-Link bezüglich Anwendungsprogrammierung auf 'Anwendungsprogrammierer' statt 'Anwendungsprogramm'; Anwendungsprogramme selbst machen in diesem Kontext wenig Sinn, es geht um Programmierung dieser. ;-
Zeile 6:
Systemnahe [[Software]] dient als Abstraktionsschicht zwischen einer [[Anwendungsprogramm|Applikation]] und dem [[Betriebssystem]]. Diese Schicht erleichtert den Zugriff auf die sehr einfach gehaltenen Betriebssystemfunktionen. Aus [[Performance (Informatik)|Performance]]- und Sicherheitsgründen ist der Zugriff auf das Betriebssystem auf das Notwendige beschränkt. Der Programmierer muss sich selbst um Synchronisation (z. B. mittels [[Semaphor (Informatik)|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. Bei Applikationsprogrammierern 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 [[AnwendungsprogrammAnwendungsprogrammierer|Anwendungsprogrammierung]]ierung mit hohem [[Abstraktion]]sgrad ermöglicht, jedoch im Bereich der systemnahen Programmierung nicht zielführend ist.
 
Ein weiteres Beispiel für systemnahe Anwendungen sind [[Datenbankmanagementsystem]]e. Datenbanken benötigen einen sehr schnellen Zugriff auf Hardwareressourcen. Der Umweg über die Entwicklungs-[[Application Programming Interface|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.