abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:11 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | Komunita

    V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).

    Ladislav Hagara | Komentářů: 0
    dnes 15:00 | Nová verze

    Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Pozvánky

    Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.

    jose17 | Komentářů: 0
    dnes 04:44 | IT novinky

    Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.

    Ladislav Hagara | Komentářů: 13
    včera 23:22 | Zajímavý software

    Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 7
    včera 22:22 | Zajímavý software

    V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Zajímavý článek

    Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."

    Ladislav Hagara | Komentářů: 1
    včera 12:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Nová verze

    Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (24%)
     (10%)
     (0%)
     (0%)
     (0%)
     (7%)
    Celkem 42 hlasů
     Komentářů: 4, poslední včera 22:41
    Rozcestník

    Jaderné noviny – 13. 11. 2014: Úvod do složených stránek

    16. 12. 2014 | Tadeáš Pelech | Jaderné noviny | 2291×

    Aktuální verze vývojového jádra: 3.18-rc4. Úvod do složených stránek.

    Obsah

    Aktuální verze vývojového jádra: 3.18-rc3

    link

    Aktuální vývojové jádro je 3.18-rc3. Vývojové jádro 3.18-rc3 vyšlo dne 9. listopadu (oznámení). Linus k tomu řekl:

    Tak se nám to konečně začíná zklidňovat. Vlastně to vypadalo opravdu klidně až do včerejška, kdy si někteří lidé zjevně řekli: „Hele, měl(a) bych svůj kód poslat Linusovi, aby ho přidal do rc4“, a tak třetina všech změn dorazila poslední den. Přesto však rc4 konečně vypadá, že do sebe začíná všechno pěkně zapadat. Teď tuhle verzi musíme stabilizovat.

    Stabilní aktualizace: Minulý týden nebyly vydány žádné stabilní aktualizace. Aktualizace verzí 3.17.3 (319 oprav!), 3.14.24 a 3.10.60 jsou v době vzniku tohoto textu v procesu kontroly, lze je očekávat nejdříve 14. října.

    Úvod do složených stránek

    link

    Když se editor LWN se probíral sadami oprav, které provádějí změny týkající se složených stránek, došlo mu, že jeho pochopení těchto stránek byl spíš slabší. Když se ponořil do zdrojových kódů, aby si rozšířil obzory, napadlo ho: svět musí být plný lidí, kteří by se hrozně rádi dozvěděli víc o složených stránkách. Pro všechny z vás, kteří mají na seznamu svých požadovaných životních úspěchů lepší pochopení tohoto tématu, přinášíme rychlý úvod do složených stránek v linuxovém jádře.

    Složená stránka je jednoduše seskupení dvou nebo více fyzicky souvislých stránek do jednoho celku, se kterým lze, v mnoha ohledech, zacházet jako s jednou větší stránkou. Slouží nejčastěji k vytvoření obrovské stránky použité v rámci subsystémů hugetlbfs nebo transparentní obrovské stránky (THP), ale objevují se i v jiných případech. Složené stránky mohou sloužit jako anonymní paměti nebo se dají použít jako vyrovnávací paměti v rámci jádra. Nemůžou se ale objevit v mezipaměti stránek, která je připravená jen na práci s jednotlivými stránkami.

    K přidělení složené stránky se používá volání funkce přidělení běžné paměti jako alloc_pages() s nastaveným alokačním příznakem __GFP_COMP a řádem alespoň jedna. Nelze vytvořit složenou stránku s řádem nula (jedna stránka) s ohledem na to, jak jsou složené stránky implementovány. („řád“ alokace je logaritmus o základu 2 z počtu stránek určených k přidělené; nula tak odpovídá jediné stránce, jedna dvěma stránkám, atd.).

    Složené stránky se liší od stránek vrácených z normálního požadavku na přidělení vyššího řádu. Například volání:

        pages = alloc_pages(GFP_KERNEL, 2);  /* bez __GFP_COMP */

    vrátí čtyři fyzicky souvislé stránky, které ale nebudou složené. Rozdíl je v tom, že vytvoření složené stránky zahrnuje vytvoření značného množství metadat; ta většinu nejsou potřeba, proto by se vytvářet nemusela a šetřilo by to nároky na systém.

    Jak tedy tato metadata vypadají? Vzhledem k tomu, že většina z nich je uložena v souvisejících strukturách page, lze předpokládat, že je to složité. Začněme s příznaky stránky. První (normální) stránka složené stránky se nazývá „vedoucí stránka“ (head); má nastaven příznak PG_head. Všechny ostatní stránky jsou „následující“ (tail); mají nastavený příznak PG_tail. Přinejmenším to platí v systémech, které příznaky stránek oplývají – tedy v 64bitových systémech. 32bitové systémy nemají žádné příznaky stránek nazbyt, takže se používá jiné schéma; všechny stránky ve složené stránce mají příznak PG_compound a následující stránky mají také nastaven příznak PG_reclaim. Bit PG_reclaim běžně používá kód mezipaměti stránek, ale vzhledem k tomu, že složené stránky nelze reprezentovat v mezipaměti stránek, tento příznak tady lze použít znovu.

    Kód řešící složené stránky se ale nemusí starat o různé konvence označování. Bez ohledu na to, která konvence se používá, vrátí volání PageCompound() hodnotu true, pokud je předaná stránka stránkou složenou. Vedoucí a následující stránky lze v případě potřeby rozlišit pomocí funkcí PageHead() a PageTail().

    Každá následující stránka obsahuje ukazatel na vedoucí stránku uložený v poli first_page struktury struct page. Toto pole zabírá stejně paměti jako pole private, zámek používaný, když stránka obsahuje položky stránkovací tabulky, nebo ukazatel slab_cache používaný, když stránku vlastní alokátor tabulky. Pomocnou funkci Compound_head() lze použít k nalezení úvodní stránky přiřazené ke všem souvisejícím následujícím stránkám.

    Tam je pár informací popisujících složené stránky jako celek: řád (velikost) stránky a destruktor používaný k vrácení stránky do systému, když již není potřeba. Nejprve by nás mohlo napadnout uložit tyto informace do struktury struct page vedoucí stránky, v ní ale na ně není žádné místo. Pořadí je místo toho uloženo v poli lru.prev ve struktuře page pro první následující stránku. Zatímco uniony se používají pro mnoho překrytých polí ve struktuře struct page, zde je pořadí jednoduše formulováno na typ ukazatele a pak uloženo do pole ukazatele. Podobně ukazatel na destruktor je uložen v poli lru.next struktury struct page první následující stránky. Kvůli tomuto rozšíření metadat složené stránky do druhé struktury page musí složená stránka obsahovat alespoň dvě stránky.

    Mimochodem, v jádře jsou deklarované pouze dva destruktory složených stránek. Ve výchozím nastavení se používá volání free_compound_page(); to vrací danou paměť alokátoru stránek. Subsystém hugetlbfs však používá volání free_huge_page(), kterým aktualizuje své záznamy.

    Ve většině případů nejsou složené stránky potřeba a lze použít obyčejné alokace; volající kód si musí pamatovat, kolik stránek má přiděleno, ale jinak nejsou metadata, která by byla uložena ve složené stránce, potřebná. Složená stránka je ale vhodná tehdy, když je důležité zacházet se skupinou stránek jako celkem, i když někdo odkazuje na jednu stránku v ní. Klasickým příkladem jsou transparentní obrovské stránky; pokud se uživatelský prostor pokusí změnit ochrany na části této obrovské stránky, je nutné uzamknout celou obrovskou stránku a rozdělit ji. Různé ovladače také používají složené stránky pro usnadnění správy větších vyrovnávacích pamětí.

    A to je v podstatě jediné, co odlišuje složené stránky od běžných alokací vyššího řádu. Většina vývojářů na složené stránky ve své oblasti jádra ani nenarazí. V případech, kdy je skutečně nezbytné nakládat se sadou stránek jako s jedinou jednotkou, však mohou být složené stránky součástí sady řešení.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    17.12.2014 07:36 Michal Kubeček | skóre: 72 | Luštěnice
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 11. 2014: Úvod do složených stránek
    Toto pole zabírá stejně paměti jako …

    Nejde o to, že zabírá stejně paměti, ale o to, že využívá stejné místo jako ostatní zmíněné hodnoty (je to union). Stejně paměti to ani být nemusí, protože třeba na x86_64 jsou pointery 64-bitové, zatímco spinlock má 32 nebo dokonce jen 16 bitů.

    alokátor tabulky

    Když už překladatel cítí potřebu vymýšlet vlastní překlady zavedených termínů, bylo by možné aspoň u prvního výskytu přidat do závorky původní termín? Kdyby v té větě nebylo jméno položky jako nápověda, tak bych bez originálu neměl šanci pochopit, o čem je řeč. U "mezipaměti stránek" bych na to časem asi přišel, ale podívat se bylo rychlejší. Jenže když se pro pochopení textu musím každou chvíli podívat do původního článku, tak ten překlad tak nějak ztrácí smysl.

    18.12.2014 08:16 aubi
    Rozbalit Rozbalit vše Re: Jaderné noviny – 13. 11. 2014: Úvod do složených stránek
    Ty zmeny v 3.17.3 budou az napresrok v rijnu? Zacali tu stabilizaci brat az tak vazne? ;-)
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.