Adresní prostor

Z Wikipedie, otevřené encyklopedie

Adresní prostor je v informatice označení pro souvislý rozsah fyzických nebo virtuálních adres, adresou síťového uzlu, periferního zařízení, sektoru pevného disku nebo jiným fyzickým či logickým zařízením. V Internetu spravuje adresní prostor IP adres organizace IANA, která je přiděluje po blocích (menších adresních prostorech) ISP a ti je dále přidělují svým zákazníkům (resp. počítačům připojených do Internetu).[1]

Popis

Adresní prostor je tvořen sadou jedinečných identifikátorů, díky kterým nemůže dojít k záměně jednotlivých adres. Například pro adresní prostor fyzických osob by se takový adresní prostor skládal ze sady míst, například čtvrť, ulice, obec a stát. Identifikátory adresy mohou být podobné, ale dokud se neshodují všechny (například ulice, město a stát), pak ukazují na jiné místo v adresním prostoru. Jako příklad lze uvést adresu „náměstí Míru, číslo popisné 100“, kterou však nalezneme v různých městech. Nebo třeba i v městech se stejným názvem, ale v různých státech. Jako příklad adresního prostoru v počítačové branži lze uvést URL adresy, u kterých soubor s určitým názvem (například index.html) může existovat na mnoha internetových doménách.

Příklady

Typické příklady adresních prostorů:

Překlad adres

Identifikátory z jednoho adresního prostoru jsou, obecně vzato, fyzicky umístěny jinde, než identifikátory z jiného adresního prostoru. Například „dům 27 na Václavském náměstí v Praze“ je úplně jiný, než jakýkoli (nejen č. p. 27) dům na jiném „Václavském náměstí“.

Občas ale dochází k vzájemnému překrývání adresních prostorů (stejné fyzické identifikátory existují v obou prostorech). Nejsou-li adresní prostory správně umístěny, je nutné provádět překlad adres. Například v případě překladu z virtuálních paměťových adres na fyzické dochází k překladu z virtuálního adresního prostoru do fyzického. Jedna fyzická adresa a jedna či více různých adres virtuálních pak ukazují na stejný bajt RAM.

Modely adresace paměti

Nejeden programátor upřednostňuje ploché rozložení paměti (anglicky flat memory model), což je model adresace, při kterém není rozlišován prostor pro strojový kód, data a virtuální pamětí. Jinak řečeno, číselně shodné ukazatele odkazují vždy na jeden a ten samý bajt RAM ve všech třech adresních prostorech.

Mnohé rané počítače ovšem ploché rozložení paměti nepodporovaly. Například stroje založené na harvardské architektuře vyžadovaly, aby úložiště strojového kódu bylo fyzicky oddělené od úložiště dat.

Dnešní moderní digitální signálové procesory (jako například Motorola 56000) mají tři oddělená úložiště – pro strojový kód (anglicky program storage), společné úložiště (anglicky coefficient storage) a úložiště dat (anglicky data storage). Některé z běžných instrukcí získávají data ze všech tří úložišť zároveň – menší počet úložišť (i kdyby tato v součtu byla o shodné velikosti) by výrazně zpomalila běh těchto instrukcí.

Modely adresace v raných x86 procesorech

První počítače založené na architektuře x86 přistupovaly k adrese s využitím dvou čísel: segmentu paměti a offsetu (posunu od začátku) v daném segmentu. S některými segmenty bylo automaticky nakládáno jako se segmenty kódu – tyto pak byly vyhrazeny pro instrukce programu. Jiné byly nazývány segmenty zásobníku, další pak datovými segmenty. Ačkoli účel těchto segmentů byl různý, jejich rozdílné použití nebylo pomocí ochrany paměti chráněno a vyžadováno.

Ploché rozložení paměti je dnes preferovaným řešením pro mnoho programátorů. Začátky segmentů jsou nastaveny na nulu (první bajt virtuální paměti) a pro adresaci se používají pouze offsety (posunutí, indexy od začátku paměti). Ochranu pak v moderních operačních systémech, zejména na architektuře x86, zajišťuje technika stránkování paměti.

Reference

  1. IPv4 Address Space Registry [online]. Internet Assigned Numbers Authority (IANA), March 11, 2009 [cit. 2009-03-15]. Dostupné online. (English) 

V tomto článku byl použit překlad textu z článku Address space na anglické Wikipedii.