Paging in Operating System (OS): Co je, Výhody, Příklad

⚡ Chytré shrnutí

Stránkování je technika správy paměti, která ukládá procesy do stránek pevné velikosti a načítá je do stejně velkých rámců fyzické paměti, což umožňuje operačnímu systému používat nesouvislou paměť, vyhnout se externí fragmentaci a rychlejšímu přístupu k datům.

  • 📄 Definice: Stránkování rozděluje logickou paměť na stránky pevné velikosti a fyzickou paměť na stejné rámce, mapováníping jedna stránka na jeden snímek.
  • 🗺️ Tabulka stránek: Operační systém používá tabulku stránek k převodu každého logického čísla stránky na adresu jeho fyzického rámce.
  • 🛡️ Ochrana: Platný/neplatný bit v každém záznamu tabulky stránek chrání paměť a označuje, ke kterým stránkám má proces přístup.
  • (Tj. Výhody: Stránkování odstraňuje externí fragmentaci a umožňuje swapováníping mezi stejně velkými stránkami a rámečky jednoduché a rychlé.
  • ⚠️ Kompromisy: Stránkování může způsobit vnitřní fragmentaci a režii tabulky stránek, zatímco segmentace místo toho používá segmenty s proměnnou velikostí, které odpovídají struktuře programu.
  • 🤖 Úhel umělé inteligence: Strojové učení ladí rozhodnutí o nahrazování stránek a Copilot pomáhá s psaním kódu pro stránkování a překlad adres.

Paging in Operasystém

Co je stránkování v OS?

Stránkování je úložný mechanismus, který umožňuje operačnímu systému načítat procesy ze sekundárního úložiště do hlavní paměti ve formě stránek. Při stránkování je hlavní paměť rozdělena na malé bloky fyzické paměti s pevnou velikostí, které se nazývají rámce. Velikost rámce je udržována stejná jako velikost stránky, aby se dosáhlo maximálního využití hlavní paměti a zabránilo se externí fragmentaci. Stránkování se používá pro rychlejší přístup k datům a je to logický koncept.

Příklad stránkování v OS

Abychom pochopili, jak se stránky mapují na rámce, zvažte jednoduchý příklad. Pokud je velikost hlavní paměti 16 KB a velikost rámce je 1 KB, pak je hlavní paměť rozdělena do kolekce 16 rámců o velikosti 1 KB každý.

V systému existují 4 samostatné procesy, a to A1, A2, A3 a A4, každý o velikosti 4 KB. Zde jsou všechny procesy rozděleny do stránek o velikosti 1 KB, takže operační systém může uložit jednu stránku do jednoho rámce.

Na začátku procesu zůstávají všechny rámce prázdné, takže všechny stránky procesů jsou uloženy souvisle.

Příklad stránkování v operačním systému se stránkami načítanými souvisle

V tomto příkladu vidíte, že bloky A2 a A4 jsou po určité době přesunuty do stavu čekání. Proto se osm rámců vyprázdní a do těchto prázdných bloků lze načíst další stránky. Proces A5 o velikosti 8 stránek (8 KB) čeká ve frontě připravenosti.

Příklad stránkování v operačním systému s procesem načteným do nesouvislých rámců

V paměti je nyní k dispozici osm nesouvislých rámců a stránkování nabízí flexibilitu ukládání procesu na různá místa. To umožňuje operačnímu systému načíst stránky procesu A5 místo A2 a A4.

Co je ochrana proti stránkování?

Proces stránkování je chráněn vložením dalšího bitu nazývaného bit platnosti/neplatnosti. Ochrana paměti při stránkování je dosažena přiřazením ochranných bitů ke každé stránce. Tyto bity jsou přiřazeny ke každému záznamu v tabulce stránek a určují ochranu povolenou na odpovídající stránce.

Výhody stránkování

Zde jsou výhody použití metody stránkování:

  • Je to snadno použitelný správy paměti algoritmus.
  • Není potřeba externí fragmentace.
  • výměnaping je snadné přepínat mezi stejně velkými stránkami a rámečky stránek.

Nevýhody stránkování

Zde jsou nevýhody a nevýhody stránkování:

  • Může to způsobit vnitřní fragmentaci.
  • Tabulky stránek spotřebují další paměť.
  • Víceúrovňové stránkování může vést k režii odkazu na paměť.

Co je segmentace?

Segmentace funguje téměř podobně jako stránkování. Jediný rozdíl mezi nimi je, že segmenty mají proměnnou délku, zatímco u stránkovací metody mají stránky vždy pevnou velikost.

Segment programu obsahuje hlavní funkci programu, datové struktury, obslužné funkce atd. Operační systém udržuje tabulku mapování segmentů pro všechny procesy. Obsahuje také seznam volných bloků paměti spolu s jejich velikostí, čísly segmentů a umístěními paměti v hlavní paměti nebo virtuální paměť.

Výhody segmentace

Zde jsou výhody a přínosy segmentace:

  • Nabízí ochranu v rámci segmentů.
  • Sdílení můžete dosáhnout tím, že segmenty odkazují na více procesů.
  • Nezpůsobuje vnitřní fragmentaci.
  • Segmentové tabulky spotřebovávají méně paměti než stránkování.

Nevýhody segmentace

Zde jsou nevýhody a nevýhody segmentace:

  • V metodě segmentace jsou procesy načítány a odstraňovány z hlavní paměti. Volný paměťový prostor je proto rozdělen na malé části, což může způsobit problém s externí fragmentací.
  • Je to nákladný algoritmus pro správu paměti.

Nejčastější dotazy

K chybě stránky dochází, když proces požaduje stránku, která se aktuálně nenachází v hlavní paměti. Operační systém proces pozastaví, načte stránku ze sekundárního úložiště do volného rámce a poté obnoví provádění.

Tabulka stránek je datová struktura, kterou operační systém uchovává pro každý proces. Mapuje každé logické číslo stránky na fyzický rámec, který danou stránku obsahuje, což umožňuje správný překlad adres během provádění.

TLB je malá, rychlá mezipaměť, která ukládá nedávnou mapu stránek po rámec.pings. Zrychluje překlad adres tím, že se u často navštěvovaných stránek vyhne úplnému vyhledávání v tabulce stránek v paměti.

Stránka je blok procesu v logické paměti o pevné velikosti, zatímco rámec je blok fyzické paměti stejné velikosti. Stránkování načte každou stránku do přesně jednoho volného rámce.

Stránkování na vyžádání načítá stránku do paměti pouze tehdy, když se na ni proces skutečně odkazuje, namísto načítání celého procesu předem. To šetří paměť a urychluje spuštění procesu.

Vnitřní fragmentace plýtvá prostorem uvnitř alokovaného rámce, když jej stránka zcela nezaplní. Vnější fragmentace zanechává rozptýlené volné mezery mezi alokacemi. Stránkování odstraňuje vnější fragmentaci, ale stále může způsobovat fragmentaci vnitřní.

Modely strojového učení předpovídají budoucí odkazy na stránky, aby řídily rozhodnutí o nahrazování stránek a předběžném načítání. Tyto techniky umělé inteligence si kladou za cíl snížit míru selhání stránek a zlepšit využití paměti v datových centrech a cloudových systémech.

Ano. GitHub Copilot dokáže generovat kód pro FIFO, LRU a optimální nahrazování stránek a také simulace stránkování v jazyce C. Javanebo PythonVždy ověřte počet chyb a mezních případů, než se spolehnete na výstup.

Shrňte tento příspěvek takto: