09 Operativni Sistemi - Nedelja IX

  • Upload
    -

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    1/60

    Operativni sistemi

    Deveto poglavlje: Virtuelna memorija

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    2/60

    Operativni sistemi

    Poglavlje 9: Virtuelna memorija

    Background Stranienje na zahtev

    Copy-on-Write

    Zamena strana

    Alokacija frejmova Thrashing

    Memorijski mapirani fajlovi

    Alokacija memorije kernelu

    Druga razmatranja

    Primeri operativnih sistema

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    3/60

    Operativni sistemi

    Ciljevi

    Opisati pogodnosti koje prua sistem virtuelne memorije

    Objasniti koncepte stranienja na zahtev, algoritama zamene strana i alokacijefrejmova

    Prodiskutovati o principu working-set modela

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    4/60

    Operativni sistemi

    Background

    Virtuelna memorija odvajanje korisnike logike memorije od fizike memorije. Samo deo programa treba da bude u memoriji za izvravanje

    Logiki adresni prostor moe zato biti daleko vei od fizikog adresnog prostora Dozvoljava da vie procesa dele adresni prostor Dozvoljava efikasnije kreiranje procesa

    Virtuelna memorija se moe primeniti kao: Stranienje na zahtev Segmentacija na zahtev

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    5/60

    Operativni sistemi

    Virtuelna memorija je vea od fizike memorije

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    6/60

    Operativni sistemi

    Deljena biblioteka kada se koristi virtuelna memorija

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    7/60

    Operativni sistemi

    Stranienje na zahtev

    Donosi stranu u memoriju samo kada je to neophodno Potrebno je manje I/O

    manje memorije je potrebno

    Bri odziv

    Vie korisnika

    Kada je potrebna strana referencira se invalid referenca abort

    nije-u-memoriji donesi u memoriju

    Lenji swapper nikada se ne zamenjuje-prebacuje strana u memoriju dok ta stranane bude potrebna

    Swapper koji radi sa stranama naziva se pager

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    8/60

    Operativni sistemi

    Transfer straniene memorije susednom prostoru na disku

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    9/60

    Operativni sistemi

    Valid-Invalid bit Svakom upisu-entry u tabelu strana validinvalid bit se pridruuje

    (v u-memoriji, i nije-u-memoriji) Inicijalno se validinvalid bit postavlja na i za sve upise-entries

    Primer jednog stanja tabele strana:

    Za vreme translacija adresa, ako je validinvalid bit za ulaz-entry u tabelu stranai pogrena strana (page fault)

    v

    v

    v

    v

    i

    ii

    .

    Frame # valid-invalid bit

    page table

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    10/60

    Operativni sistemi

    Tabela strana kada neke strane nisu u memoriji

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    11/60

    Operativni sistemi

    Pogrena strana (page fault)

    Ako postoji referenca-upuivanje na stranu, prvo referenciranje na tu stranu dae kao

    rezultat trap operativnom sistemu:page fault

    1. Operativni sistem trai u drugoj tabeli da odlui: Invalid referenca abort

    Samo nije u memoriji

    2. Trap

    3. Dobija se prazan frejm

    4. Ubaci se stranica u frejm

    5. Resetuju tabele

    -Postavlja bit ispravnosti = v

    6. Restartuje se instrukcija koja je prouzrokovala page fault

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    12/60

    Operativni sistemi

    Koraci u rukovanju Page Fault-om

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    13/60

    Operativni sistemi

    Performanse stranienja na zahtev Opseg pojave Page Fault-a 0 p 1.0

    ako jep = 0 nema page faults

    ako jep = 1, svaka referenca je fault

    Efektivno vreme pristupa Efective Access Time (EAT)

    EAT = (1 p) x memory access

    +p (page fault overhead

    + swap page out+ swap page in

    + restart overhead

    )

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    14/60

    Operativni sistemi

    Primer stranienja na zahtev

    Vreme pristupa memoriji = 200 nanosekundi

    Srednja vrednost vremena servisiranja page-fault-a = 8 milisekundi

    EAT = (1 p) x 200 + p (8 milisekundi)

    = (1 p x 200 + p x 8,000,000

    = 200 + p x 7,999,800

    Ako jedan pristup od 1,000 prouzrokuje page fault, onda je

    EAT = 8.2 mikrosekundi.

    Ovo je usporenje za faktor 40!!

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    15/60

    Operativni sistemi

    Kreiranje procesa

    Virtuelna memorija dozvoljava druge pogodnosti za vreme kreiranja procesa:

    - Copy-on-Write

    - Memorijsko-mapiranje fajlova

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    16/60

    Operativni sistemi

    Copy-on-Write

    Copy-on-Write (COW) dozvoljava i parent procesu i child procesu da

    inicijalno dele iste strane u memoriji

    Strana se kopira samo ako jedan od procesa modifikuje deljenu stranu.

    COW dozvoljava efikasnije kreiranje procesa poto se samo modifikovanestrane kopiraju

    Slobodne strane se alociraju iz pool-a strana koje se nisu koristile (zeroed-outpages)

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    17/60

    Operativni sistemi

    Pre nego to proces 1 modifikuje stranu C

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    18/60

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    19/60

    Operativni sistemi

    ta se deava ako ne postoji slobodan okvir?

    Zamena strane nai neku stranu u memoriji, koja se ne koristi esto i

    prebaciti je - zameniti (swap out) algoritam performanse algoritam koji e kao rezultat da da minimalan broj pogrenih

    strana - page faults

    Iste strane mogu biti doneene u memoriju vie puta

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    20/60

    Operativni sistemi

    Zamena strane

    Spreiti prekomernu alokaciju memorije modifikuju

    i page-fault servisnu rutinutako da ukljui zamenu strane

    Koristi se modify (dirty) bit za smanjenje overhead-a transfera strane samomodifikovane strane se upisuju na disk

    Zamena strane completes odvajanje izmeu logike i fizike memorije veavirtuelna memorija moe da se obezbedi na manjoj fizikoj memoriji

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    21/60

    Operativni sistemi

    Potreba za zamenom strane

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    22/60

    Operativni sistemi

    Osnovi zamene strana

    1. Nai lokaciju eljene strane na disku

    2. Pronai slobodan frejm:- Ako postoji slobodan frejm, iskoristiti ga- Ako ne postoji slobodan frejm, iskoristiti algoritam zamene strane

    za selekciju okvira rtve

    1. Doneti eljenu stranu u (novi) slobodni okvir; aurirati tabele strana ifrejmova

    2. Restartovati proces

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    23/60

    Operativni sistemi

    Zamena strane

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    24/60

    Operativni sistemi

    Algoritmi zamene strane elimo manju brzinu pojave pogrene stranice (page-fault stranica koja nije u memoriji)

    Algoritam dodele frejmova odreuje Koliko frejmova se dodeljuje svakom procesu

    Koje frejmove zameniti

    Algoritam zamene strane eli se najmanja brzina pojave page-fault-a i za prvi pristup i za ponovni pristup

    Evaluirati algoritam startujui ga na posebnom string-u memorijskih referenci (stringreferenciranja) i izraunati broj page faults za taj string

    String sadri brojeve strana, ne pune adrese Ponavljanje pristupa istoj strani ne prouzrokuje page fault

    U sledeim primerima string referenci je

    7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    25/60

    Operativni sistemi

    Graf pogrenih strana (page faults) u odnosu na broj frejmova

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    26/60

    Operativni sistemi

    First-In-First-Out (FIFO) algoritam

    Reference string: 7,0,1,2,0,3,0,4,2,3,0,3,0,3,2,1,2,0,1,7,0,1

    3 frejma (3 strane mogu biti u memoriji u isto vreme po jednom procesu)

    Ako se promeni reference string: na primer 1,2,3,4,1,2,5,1,2,3,4,5 Poveanje broja frejmova (vea memorija) moe da izazove vie page fault-a!

    Belady-jeva anomalija

    Kako voditi rauna o starosti strana? Koristiti FIFO red

    7

    0

    1

    1

    2

    3

    2

    3

    0

    4 0 7

    2 1 0

    3 2 1

    15 page fault-a

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    27/60

    Operativni sistemi

    FIFO zamena strana

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    28/60

    Operativni sistemi

    FIFO ilustracija Belady-jeve anomalije

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    29/60

    Operativni sistemi

    Optimalna zamena strana

    Zameni stranicu koja se najvie vremena "nee koristiti"

    Primer na donjoj slici sa optimalnim brojem page faulta-a 9

    Kako znate ta e se desiti u budunosti?

    Koristi se za merenje-odreivanje koliko je dobar va algoritam

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    30/60

    Operativni sistemi

    Least Recently Used (LRU) algoritam Koriste se podaci neposredno pre posmatranja

    Zamenjuje se strana koja se nije koristila u tom periodu

    Pridruuje se vreme korienja svakoj stranici

    12 faults better than FIFO but worse than OPT

    Primena brojaa Svaki ulaz-upis strane ima broja; svaki put kada se strana referencira kroz ovaj ulaz-upis-entry, kopira se

    vreme u broja

    Kada strana treba da se promeni, pogledaju se brojai da bi se odredilo koja treba da se promeni

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    31/60

    Operativni sistemi

    Use Of A Stack to Record The

    Most Recent Page References

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    32/60

    Operativni sistemi

    LRU aproksimacioni algoritmi

    Reference bit

    Svakoj strani se pridruuje bit, inicijalizovan na 0 Kada se strana referencira bit se postavlja na 1

    Zamenjuju se oni koji su 0 (ako postoje) Ne znamo redosled, meutim

    Druga ansa

    Potreban je reference bit Zamena clock-a

    Ako strana koja treba da se zameni (po redosledu clock-a) ima reference bit = 1 onda: postavi reference bit 0

    ostavi stranu u memoriji

    zameni sledeu stranu (po redosledu clock-a), prema istom pravilu

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    33/60

    Operativni sistemi

    Second-Chance (clock) algoritam zamene strane

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    34/60

    Operativni sistemi

    Counting algoritmi

    Odrava se broja-counter broja referenci koje su nainjene za svaku stranu

    LFU Algoritam: zamenjuje stranu sa najmanjim brojem-count

    MFU Algoritam: baziran na argumentu da je strana sa najmanjim brojem-count verovatno upravo doneta i jo nije koriena

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    35/60

    Operativni sistemi

    Alokacija frejmova

    Svaki proces treba minimalni broj strana

    Dve glavne eme alokacije fiksna alokacija alokacija prema prioritetu

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    36/60

    Operativni sistemi

    Fiksna alokacija

    Jednaka alokacija Na primer, ako postoji 100 frejmova i 5 procesa, daje sesvakom procesu 20 frejmova.

    Proporcionalna alokacija Alokacija prema veliini procesa

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    37/60

    Operativni sistemi

    Alokacija koriste

    i prioritete

    Koristi proporcionalnu alokacionu emu radije koristei prioritete negoveliinu

    Ako proces Pi generie page fault, selektuje se za zamenu jedan od njegovih frajmova

    selektuje se za zamenu frejm od procesa sa najmanjim prioritetnim brojem

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    38/60

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    39/60

    Operativni sistemi

    Thrashing

    Ako proces nema dovoljno stranica, verovatnoa pojave page-fault-a je

    veoma velika. Ovo dovodi do: malog iskorienja CPU-a

    operativni sistem misli da on treba da povea stepen " multiprogramming-a"

    drugi proces se dodaje sistemu

    Thrashing proces je zauzet prebacivanjem-swapping-om strana u i van

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    40/60

    Operativni sistemi

    Thrashing (nastavak)

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    41/60

    Operativni sistemi

    Strani

    enje na zahtev i thrashing

    Zato se stranienje na zahtev radi?

    Model lokaliteta Proces migrira sa jednog lokaliteta na drugi

    Lokaliteti se mogu preklapati

    Zato se thrashing pojavljuje?

    veli

    ina lokaliteta > ukupna veli

    ina memorije

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    42/60

    Operativni sistemi

    Slika lokacija-mesta referenciranja memorije

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    43/60

    Operativni sistemi

    Model radnog skupa (working-set)

    prozor radnog skupa

    fiksni broj referenciranja straneprimer: 10,000 instrukcija

    WSSi (radni skup procesa Pi) =ukupan broj strana referenciranih u najskorije vreme (menja se u vremenu)

    ako je isuvie malo, ne uzimaju se u obzir svi lokaliteti

    ako je isuvie veliko, preklapa se nekoliko lokaliteta ako je = zaokruie se itav program

    D = WSSi ukupan broj zahtevanih frejmova

    Ako jeD > m Thrashing, sledi, suspenduje se jedan od procesa

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    44/60

    Operativni sistemi

    Working-set model

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    45/60

    Operativni sistemi

    ema uestanosti pojave pogrene strane

    Uspostavlja se prihvatljiva brzina pojave page-fault-a If actual rate too low, process loses frame

    If actual rate too high, process gains frame

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    46/60

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    47/60

    Operativni sistemi

    Memorijski mapirana deljena memorijakod Windows operativnog sistema

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    48/60

    Operativni sistemi

    Alokacija kernel memorije

    Tretira se drugaije u odnosu na korisniku memoriju

    esto alocirana iz praznog-slobodnog memorijskog skladita (pool-a) Kernel zahteva memoriju za strukture razliitih veliina

    Neka memorija kernela treba da bude susedna-contiguous

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    49/60

    Operativni sistemi

    Buddy sistem

    Alocira memoriju iz segmenata fiksne veliine koji su sastavljeni od fizikisusednih strana

    Alocirana memorija koristi power-of-2 allocator Zadovoljava zahteve u jedinicama ija je veliina umnoak od 2

    Zahtev zaokruen na sledeu veu vrednost koja je umnoak 2

    Kada je potrebna manja alokacija od iskoristljive, tekui chunk se cepa na dvabuddies sledee nie vrednosti koja je umnoak 2

    Nastavlja se dok se ne dobije chunk odgovarajue veliine

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    50/60

    Operativni sistemi

    Buddy System alokator

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    51/60

    Operativni sistemi

    Slab alokator

    Alternativna strategija Slabje jedna strana ili vie fiziki susednih strana

    Cache se sastoji od jednog ili vie slab-ova Single cache za svaku jedinstvenu strukturu podataka kernel-a

    Svaki cache popunjen objektima koji su primerci strukture podataka

    Kada se ke kreira, popunjen je objektima oznaenim kao free Kada se strukture uskladite, objekti su oznaeni kao used Ako je slab pun korienih objekata, sledei objekat se alocira iz praznog slab-a

    Ako nema praznih slab-ova, alocira se novi slab

    Beneficije ukljuuju to da ne postoji fragmentacija i da su brzo zadovoljenimemorijski zahtevi

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    52/60

    Operativni sistemi

    Slab alokacija

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    53/60

    Operativni sistemi

    Drugi problemi-teme Prepaging

    Prepaging

    Da bi se smanjio veliki broj page faults koje se pojavljuju u startup-u procesa Prepage svih ili samo strana koje e procesu trebati, pre nego to se referenciraju

    Ali ako se prepaged strane ne koriste, I/O i memorija se "troe"

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    54/60

    Operativni sistemi

    Drugi problemi-teme Veliina strane

    Selekcija veliine mora da uzme u obzir: fragmentaciju

    veliinu tabele

    I/O overhead

    lokalitet

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    55/60

    Operativni sistemi

    Drugi problemi TLB

    TLB Reach - Koliina memorije kojoj se moe pristupiti TLB-a

    TLB Reach = (TLB veliina) X (Veliina strane)

    Idealno, working set svakog procesa je uskladiten u TLB Inae postoji veliki stepen pojave page faults

    Poveanje veliine strane Ovo moe da dovede do poveanja fragmentacije poto sve aplikacije ne zahtevaju

    veu veliinu strane Obezbediti vie veliina strana

    Ovo dozvoljava aplakacijama da zahtevaju vee veliine strana i mogunostnjihovog korienja bez poveanja fragmentacije

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    56/60

    Operativni sistemi

    Drugi problemi-teme Struktura programa

    Struktura programa Int[128,128] data;

    Svaki red je memorisan na jednoj strani Program 1

    for (j = 0; j

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    57/60

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    58/60

    Operativni sistemi

    Primeri operativnih sistema

    Windows XP

    Solaris

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    59/60

    Operativni sistemi

    Windows XP

    Koristi stranienje na zahtev sa clustering-om. Clustering donosi strane kojeokruuju faulting page.

    Procesima se pridruuje working set minimum i working set maximum Working set minimum je minimalan broj stranica koje procesu garantuju da ih

    ima u memoriji

    Procesu moe biti pridrueno maksimalno onoliko strana koliki je working setmaximum

    Kada koliina slobodne memorije u sistemu padne ispod granice, automaticworking set trimming se izvrava da bi restaurirao koliinu slobodnememorije

    Working set trimming uklanja strane iz procesa koji imaju vie strana od svog

    working set minimum-a

  • 7/25/2019 09 Operativni Sistemi - Nedelja IX

    60/60

    Operativni sistemi

    Solaris

    Odrava listu slobodnih strana za pridruenje faulting procesa

    Lotsfree granini parametar (koliina slobodne memorije) da bi poelo

    stranienje Desfree granini parametar da bi se povealo stranienje

    Minfree granini parametar da bi se izveo swapping

    Paging se izvrava sapageoutprocesom

    Pageout skenira strane koristei modifikovani clock algorithm Scanrateje brzina kojom se strane skeniraju. Opseg brzine je od slowscan do

    fastscan

    Pageout se poziva ee zavisno od koliine slobodne memorije koja je naraspolaganju