www.wikidata.de-de.nina.az
Bei Computern tritt eine Schutzverletzung von englisch segmentation fault oder segmentation violation kurz segfault oder Zugriffsverletzung engl access violation auf wenn ein Computerprogramm auf eine Ressource insbesondere auf Speicher zuzugreifen versucht die vor einem solchen Zugriff geschutzt ist bzw nicht erreichbar sein soll Hierbei sendet der Kernel ein Signal zum Prozess der den Fehlgriff ausgelost hat was im Normalfall in dessen Beendigung resultiert Der Speicherschutz moderner Betriebssysteme und die Memory Protection Units der Mikrocontroller sind Vorkehrungen fur andere Prozesse und das Betriebssystem Das Fenster informiert uber eine Schutzverletzung eines Programms unter Windows 3 1Nicht jeder fehlerhafte Speicherzugriff lost die Ausnahmebedingung Schutzverletzung aus Ein und derselbe Programmfehler kann abhangig vom allgemeinen Systemzustand und damit mehr oder weniger zufallig einen Absturz wegen Schutzverletzung auslosen zu arithmetisch falschen Rechenergebnissen oder anderen unerwunschten Systemverhalten fuhren oder auch ganz folgenlos bleiben Die englische Bezeichnung segmentation fault stammt aus einer Zeit in der Speicherbereiche durch Segmentierung vor unerlaubtem Zugriff geschutzt wurden Heute werden andere Schutzmechanismen verwendet insbesondere Paging der Terminus segmentation fault hat sich aber unverandert erhalten Der segmentation fault ist nicht zu verwechseln mit dem page fault Seitenfehler der lediglich das Programm so lange unterbricht bis die fehlende Seite vom Sekundarspeicher in den Hauptspeicher geladen wurde Unter Unix lost segmentation violation die Ausnahmebedingung SIGSEGV Ausnahme dezimal 11 hexadezimal B 0x0B aus 1 Bei IA 32 bzw x86 Prozessoren wird eine Speicherzugriffsverletzung als Allgemeine Schutzverletzung Ausnahme dezimal 13 hexadezimal D 0x0D bezeichnet die uber einen Interrupt ausgelost wird 2 Beispiele BearbeitenMassenhaftes Auftreten von Schutzverletzungen deutet auf konzeptionelle Schwachen eines Betriebssystems eines Treibers einer Programmiersprache oder eines Programms hin Einem breiten Publikum in Erinnerung geblieben ist die Fehlermeldung Allgemeine Schutzverletzung in gefolgt von einer Hexadezimal Adresse mit der Programme unter fruhen Microsoft Windows Versionen haufig absturzten der sog Blue Screen of Death Ein Grund fur gehauftes Auftreten von Schutzverletzungen kann auch defekter Arbeitsspeicher oder andere defekte Hardware sein Dabei werden durch Hardwarefehler unbeabsichtigte Adressen angesprochen z B genugt es ein einzelnes Bit einer Adresse zu wechseln Auch Ubertakten oder ein fehlerhaft programmierter Geratetreiber kann solche Fehler auslosen ohne dass dafur ein Defekt notwendig ist Beispiel eines C Programmes das so gut wie immer und auf jedem System eine Schutzverletzung auslost int main void Initialisiere den Zeiger ptr mit der Speicheradresse 0 Das ist erlaubt obwohl diese Adresse zu einem geschutzten Bereich gehort int ptr int 0 Nun versuche irgendeinen Wert z B 42 in die Adresse 0 zu schreiben Das wird eine Schutzverletzung auslosen ptr 42 return 0 Einzelnachweise Bearbeiten Quelltext der UNIX Header Datei bits signum generic h Sourceware org abgerufen am 23 Juli 2023 Klaus Wust Mikroprozessortechnik Grundlagen Architekturen und Programmierung von Mikroprozessoren Mikrocontrollern und Signalprozessoren 3 Auflage Vieweg Teubner Verlag Wiesbaden 2009 ISBN 978 3 8348 0461 7 S 174 179 Abgerufen von https de wikipedia org w index php title Schutzverletzung amp oldid 237735572