Segment kodu

Z Wikipedii, wolnej encyklopedii

Segment kodu (znany również jako text segment albo po prostu text) – obszar pamięci zawierający kod maszynowy przeznaczony do wykonania przez procesor komputera. Segment kodu może być umieszczony w pamięci operacyjnej komputera poprzez załadowanie fragmentu (sekcji w przypadku formatu pliku ELF) pliku wykonywalnego zawierającego instrukcje maszynowe.

W niektórych architekturach komputerów segment kodu jest przechowywany w obszarze pamięci tylko do odczytu, dzięki czemu w przypadku konieczności usunięcia segmentu kodu z pamięci operacyjnej przez mechanizm pamięci wirtualnej nie ma potrzeby zapisywania zawartości segmentu kodu do pamięci masowej. Przywrócenie segmentu kodu do pamięci operacyjnej następuje przez ponowne pobranie go z pliku wykonywalnego.

Segment kodu zapisany w pamięci tylko do odczytu może być używany przez kilka procesów (np. przez kilka równocześnie wykonywanych kopii tego samego programu lub w formie biblioteki współdzielonej).

W przypadku, gdy architektura komputera pozwala na modyfikację kodu programu podczas jego wykonania (tzw. kod samomodyfikujący się) - wówczas segment kodu jest umieszczany w pamięci umożliwiającej zapis. Tak zmodyfikowany segment kodu podlega zapisaniu w pamięci masowej w przypadku korzystania z pamięci wirtualnej.

W architekturze x86 podczas wykonywania programu segment kodu jest wskazywany przez rejestr segmentowy CS.

Bibliografia[edytuj | edytuj kod]