abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Zajímavý software

    Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.

    Ladislav Hagara | Komentářů: 1
    včera 17:33 | Nová verze

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 8
    včera 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

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

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Nová verze

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    včera 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    24.4. 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 13
    24.4. 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (16%)
    Celkem 779 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

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

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

    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.