Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.

Podobné prezentace


Prezentace na téma: "Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003."— Transkript prezentace:

1 Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003

2 Kapitola 8 Správa paměti

3  rozdělení paměti pro použití více procesy a dohled nad jejím používáním  paměť je nutné alokovat efektivně, aby mohlo být spuštěno co nejvíce procesů  procesy musí mít přístup pouze do té části paměti, která jim byla přidělena

4 Požadavky na správu paměti  Relokace (přemístění) programu  programátor neví, ve které oblasti operační paměti bude program umístěn při provádění  provádění programu může být pozastaveno, program odložen na disk a pak vrácen do jiné oblasti operační paměti  paměťové odkazy v programu musí být převedeny z logických adres (uváděných v kódu programu) na aktuální adresy fyzické operační paměti

5 Požadavky na správu paměti  Ochrana  proces nesmí být schopen pracovat s paměťovými místy jiného procesu bez povolení  kontrolu nelze provést v kódu programu  program může být přemisťován  kontrola musí probíhat během provádění programu!

6 Požadavky na správu paměti  Sdílení  někdy je nutné dovolit více procesům přístup ke stejné (společné) oblasti paměti  je výhodné, jestliže procesy provádějící tentýž program používají tutéž kopii programu v paměti  výrazná úspora paměti  méně časté odkládání na disk

7 Požadavky na správu paměti  Logická organizace  programy jsou psány modulárně  jednotlivé moduly vyžadují rozdílný stupeň ochrany  read-only, execute-only  moduly lze sdílet  dynamicky spojované knihovny

8 Požadavky na správu paměti  Fyzická organizace  oblast paměti, která je k dispozici, nemusí pro program a data stačit  technika překrývání (overlaying) umožňuje, aby různé moduly programu používaly stejnou oblast paměti  sekundární paměť (disková) je levnější, má mnohem větší kapacitu a je trvalá  její obsah zůstane zachován i po vypnutí napájení (energeticky nezávislá)

9 Pevné dělení (Fixed Partitioning)  dostupná paměť je rozdělena na oddíly (partitions) s pevnými hranicemi  oddíly mohou být  stejně velké  různě velké

10 Pevné dělení se stejně velkými oddíly  všechny oddíly jsou stejně velké  jakýkoliv proces, vyžadující oblast paměti menší nebo rovnou velikosti oddílu, lze zavést do kteréhokoliv volného oddílu  když jsou obsazeny všechny oddíly, může OS některé oddíly uvolnit odložením procesu (swap out) na disk  pokud se program nevejde do jednoho oddílu, musí programátor použít překrývání (overlays)

11  jakkoliv krátký program obsadí celý paměťový oddíl  operační paměť nelze využívat efektivně  tomuto jevu se říká vnitřní fragmentace (internal fragmentation) 8 M Operating System Pevné dělení se stejně velkými oddíly

12  oddíly mají různou velikost  redukuje problémy s pevnou velikostí oddílů  ale neodstraňuje je úplně... Operating System 8 M 12 M 8 M 6 M 4 M 2 M Pevné dělení se různě velkými oddíly

13 Umísťovací algoritmus  Oddíly pevné velikosti  protože jsou všechny oddíly stejně velké, lze použít kterýkoliv volný oddíl  Oddíly rozdílné velikosti  procesům se přiděluje paměť tak, aby se minimalizovala vnitřní fragmentace  procesu se přiděluje nejmenší oddíl, do kterého se proces ještě vejde  procesy čekající na přidělení paměti tvoří frontu (nebo více front)

14 Samostatná fronta pro každý oddíl New Processes Operating System  proces lze zavést do paměti pouze když je příslušný oddíl volný  zbytečně blokuje procesy, které by se mohly provádět ve větších, právě volných oddílech

15 Společná fronta procesů čekajících na paměť  při zavádění procesu do paměti, je použit nejmenší volný oddíl, do kterého se proces ještě vejde  ale nemusí to být nejmenší použitelný oddíl  rychlejší, ale za cenu větší vnitřní fragmentace Operating System New Processes

16 Dynamické dělení  proměnný počet i velikost oddílů  procesu je přiděleno přesně tolik paměti, kolik potřebuje  při ukončení nebo odložení procesu vznikají v paměti díry (Holes)  uvolněnou oblast lze použít pouze pro proces, který potřebuje stejný nebo menší objem paměti  při použití procesem s menšími požadavky na paměť představuje zbytek nepoužité paměti opět díru  menší než původní a proto obtížněji využitelnou  tomuto jevu říkáme vnější fragmentace (external fragmentation)  lze odstranit defragmentací  sražením všech oblastí obsazených procesy těsně k sobě, aby opět vznikla souvislá oblast volné paměti

17 Příklad dynamického dělení OS 128 K 896 K Process K 576 K Process K Process K 352 K 128 K OS

18 Příklad dynamického dělení OS Process K Hole Process K 288 K 64 K Process K Process K 288 K 64 K Process K Process 3288 K 64 K 128 K 96 K Process 2 Hole OS Process K

19 Operating System 320 K Process 3288 K 64 K Process K 96 K Operating System Process 3288 K 64 K Process K 96 K Process 2224 k 96 K Příklad dynamického dělení

20  OS musí rozhodnout, který volný blok přidělí procesu  algoritmus nejlépe padnoucí (Best-fit)  vyber blok, jehož velikost je nejblíže požadavku  stejný nebo nejbližší větší  nejméně výkonná metoda  dosahuje se nejmenší možná fragmentace, protože je vždy použit nejmenší vyhovující blok  fragmenty jsou malé, ale rychle přibývají, proto se musí často provádět setřesení (compaction) obsazené paměti Umísťovací algoritmus

21  algoritmus první padnoucí (First-fit)  paměť se prohledává od začátku a procesu se přidělí první volný blok, který vyhovuje požadavku  rychlejší než best-fit  prohledávání zpomaluje výskyt velkého počtu obsazených bloků (bez děr) na začátku paměti  tato oblast ze pokaždé zbytečně prohledává

22  algoritmus další padnoucí (Next-fit)  paměť se prohledává od místa, kam se naposledy umísťovalo, a procesu se přidělí první volný blok, který vyhovuje požadavku  nejčastěji umísťuje na konci paměti, kde je obvykle nejvíce volného místa  má tendenci dělit velké bloky paměti na menší  dokud je zbytek bloku dostatečně velký, umísťuje další proces hned za předchozí  velký blok volné paměti na konci lze získat setřesením paměti Umísťovací algoritmus

23 Porovnání umísťovacích algoritmů After Compaction 216K Requsted block size = 16K Last allocated block (14K) 8K 12K 6K 8K 14K 6K 2K 20K Next Fit Best Fit First Fit After placement Free block Allocated block Before placement 8K 12K 22K 18K 6K 8K 14K 36K

24 Relokace (přemísťování)  aktuální umístění programu v paměti je určeno při zavedení programu  proces může být umístěn v různých oddílech a proto se mohu absolutní adresy během provádění měnit  když se novému procesu nebo procesu odloženému na disk přiděluje paměť  když se provede setřesení (compaction) paměti

25 Typy adres  Logická adresa  odkaz na paměťové místo nezávislý na aktuálním přidělení paměti  k získání fyzické adresy je nutný překlad (translation)  Relativní adresa  adresa vyjádřená jako relativní pozice vzhledem k nějakému známému místu  Fyzická adresa  absolutní nebo aktuální adresa  absolutní adresa umožňuje trvale přístup k určitému místu fyzické paměti  aktuální adresa umožňuje přístup k určitému místu fyzické paměti pouze po dobu platnosti přiřazení

26 HW podpora relokace Process image in main memory Absolute address Process Control Block Program Data Stack Base Register Bounds Register Relative address Interrupt to operating system Addrer Comparator Process image in main memory Absolute address Process Control Block Program Data Stack Base Register Bounds Register Relative address Interrupt to operating system Adder Comparator vypočtená absolutní adresa nesmí ležet mimo tuto oblast ! pokud leží mimo, vyvolá se přerušením OS

27 Registry používané během provádění  Bázový registr (Base register)  počáteční adresa paměti alokované procesu  Mezní registr (Bounds register)  koncová adresa paměti alokované procesu  obsah registrů nastavuje OS při zavádění procesu do paměti  při spuštění nového procesu  při obnovení odloženého procesu

28 Registry používané během provádění  při výpočtu absolutní adresy se obsah bázového registru přičte k relativní adrese  výsledek výpočtu (absolutní adresa) se v komparátoru porovná s obsahem mezního registru  pokud absolutní adresa leží mimo meze, generuje se přerušení  je to nepřípustná adresa a operační systém musí na tuto situaci reagovat

29 Stránkování (Paging)  paměť se rozdělí na malé části stejné velikosti – rámce (frames)  logická paměťová oblast procesu se rozdělí na stejně velké části jako paměť - stránky (pages)  operační systém udržuje pro každý proces tabulku přiřazení stránek a rámců  tabulka obsahuje údaje o umístění rámce v paměti pro každou stránku procesu  adresa paměti se skládá z čísla stránky a ofsetu na stránce  ofset = relativní adresa vzhledem k začátku stránky)

30 Frame A.0 A.1 A.2 A A.0 A.1 A.2 A.3 B.0 B.1 B.2 Frame Stránkování (Paging)

31 A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C A.0 A.1 A.2 A.3 C.0 C.1 C.2 C A.0 A.1 A.2 A.3 C.0 C.1 C.2 C.3 D.0 D.1 D.2 D.3 D.4 Stránkování (Paging)

32 Příklad stránkovacích tabulek Process A Process B Process C Process D Free Frame List 13 14

33 Segmentace  všechny segmenty všech programů nemusí mít stejnou délku  maximální délka segmentu je omezená  adresa se skládá ze dvou částí – čísla segmentu a ofsetu  protože segmenty nemají stejnou délku, podobá se segmentace dynamickému dělení paměti


Stáhnout ppt "Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003."

Podobné prezentace


Reklamy Google