Mājas Audio Kas ir segmentācijas kļūda (segmentāla)? - definīcija no tehopedijas

Kas ir segmentācijas kļūda (segmentāla)? - definīcija no tehopedijas

Satura rādītājs:

Anonim

Definīcija - ko nozīmē segmentācijas kļūme (segfault)?

Segmentācijas kļūda (segmentārā kļūda) ir kļūda, ko atdod aparatūra ar atmiņas aizsardzību un kas operētājsistēmai paziņo, ka ir noticis atmiņas piekļuves pārkāpums. Operētājsistēma parasti reaģē, izmantojot signālu, paziņojot pārkāpēju procesam par kļūdu, un pēc tam OS veic kaut kādas korekcijas. Tas notiek tāpēc, ka process vai programma mēģina piekļūt atmiņai, kas tai nav piešķirta.

Segmentācijas kļūme ir pazīstama arī kā piekļuves pārkāpums.

Techopedia izskaidro segmentācijas kļūdu (Segfault)

Segmentācijas kļūdu bieži izraisa kļūdas tāda procesa vai lietojumprogrammas programmēšanā, kurā programmai tiek novirzīta piekļuves atmiņa, kas netika piešķirta tai, bet gan citām programmām vai pašai sistēmai. Procesa laikā nav atļauts pieskarties atmiņai, kas tai nav rezervēta, jo pirms tās izmantošanas tai vienmēr jāpieprasa atmiņa. Tāpēc, nejauši pieskaroties atmiņai, kas tai nav piešķirta, notiek piekļuves pārkāpums.


Kļūdas var izraisīt arī rekursīva funkcija, kas var izmantot visu tai piešķirto kaudzītes vietu un ātri iejaukties tai nepiešķirtā atmiņā. Dažās sistēmās tas tiek uzskatīts par kaudzes pārpildi, bet citās tas ir vienkārši sava veida piekļuves pārkāpums.


Segmentācijas kļūdu var novērst process, izmantojot pielāgotu signālu apstrādātāju, taču bieži tiek izmantots OS noklusējuma signāla apstrādātājs, kā rezultātā parasti pārkāpjošais process tiek nepamatoti izbeigts, saukts par avāriju, vai OS piespiežot galveno izmešanu. .

Kas ir segmentācijas kļūda (segmentāla)? - definīcija no tehopedijas