50
03/30/22 1 Operativni sistemi

P6.ppt

Embed Size (px)

Citation preview

Page 1: P6.ppt

04/21/23 1

Operativni sistemi

Page 2: P6.ppt

04/21/23 2

Sadržaj

Uvod Dinamičke stranice Stranični prekid Struktura tabele stranica Algoritmi zamene stranica Poređenje FIFO i LRU

Page 3: P6.ppt

04/21/23 3

Sadržaj - nastavak

NRU algoritam Algoritam druge šanse Satni algoritam Višenivoske tabele stranica Veličina stranice Virtuelne i fizičke adrese - primeri

Page 4: P6.ppt

04/21/23 4

CPUCPU

reg.reg.

KEŠ

memorijamemorija diskdisk

veličina:brzina:$/Mbyte:Veličina linije:

32 B1 ns

8 B

Registar Keš Memorija Memorija diska

32 KB-4MB2 ns$125/MB32 B

1024 MB30 ns$0.20/MB4 KB

100 GB8 ms$0.001/MB

veće, sporije, jeftinije

8 B 32 B 4 KB

keš Virtuelna memorija

Hijerarhija memorije

Page 5: P6.ppt

04/21/23 5

Virtuelne memorije

Izloženi modeli upravljanja memorijom polazili su od pretpostavke da se program pre početka izvršavanja nalazi u memoriji, što znači da je manji od raspoložive memorije

U mnogim slučajevima nije potrebno da se za vreme izvršavanja programa sve procedure ili podaci nalaze u memoriji, pa su razvijene posebne programerske tehnike koje zaobilaze ograničenja OS sa izloženim modelima upravljanja memorijom

Opšte rešenje problema upravljanja memorijom treba da omogući izvršavanje programa proizvoljne veličine - OS sa virtuelnom memorijom

Page 6: P6.ppt

Virtuelna memorija

rešava problem eksterne fragmentacije rešava problem povećanja potrebne memorije rešava problem ograničenja veličine memorije

Page 7: P6.ppt

04/21/23 7

VIRTUELNA MEMORIJA

Virtuelna memorija - konceptualno razdvajanje korisničke logičke memorije od fizičke memorije. Tako možemo imati veliku virtuelnu memoriju na sistemu sa malom fizičkom memorijom.

Virtuelnamemorija

Memorijskopreslikavanje

Fizičkamemorija

Disk

Pojedinačne stranice

Page 8: P6.ppt

04/21/23 8

Virtuelna memorija - prikaz

Virtuelni adresni prostor

Program

Fizički adresni prostor

Glavna memorija

Virt. stranica

Virt. stranica

Virt. stranica

Fiz. stranica

Fiz. stranicaOkvir stranice

Stranica na disku

Stranica na disku

Stranica na disku

Disk

Stranica nije mapirana u glavnu memoriju.

Page 9: P6.ppt

04/21/23 9

Virtuelno adresiranje

Virtuelna (logička) adresa se preslikava u stvarnu adresu koristeći tabelu stranica

Veličina fizičke adrese je ograničena veličinom memorije

Šta ograničava veličinu virtuelne adrese??

Broj stranice

Tabelastranica

Pomeraj

PomerajBroj okvira

Virtuelna adresa

Fizička adresa

Page 10: P6.ppt

04/21/23 10

Virtuelna memorija povećava veličinu memorije

Virtuelna memorija može biti veća od fizičke memorije

Dati proces može da koristi više memorije

Ograničena je samo veličinom “swap” prostora na disku

Više programa može da se napuni u isti virtuelni memorijski prostor

Tabela stranica preslikava virtuelne adrese u adrese fizičke memorije

Page 11: P6.ppt

04/21/23 11

Virtuelna memorija – korišćenje hardvera

Hardver preslikava virtuelne adrese u fizičke memorijske adrese

magistrala

Memorija

Diskkontrole

r

CPU

MMU

šalje virtuelne adrese do MMU

šalje fizičke adrese do memorije

Page 12: P6.ppt

04/21/23 12

“Swap” memorija na disku

Stranice koje nisu u glavnoj memoriji su memorisane unutar posebnog prostora na disku – “swap” prostor

Stranice

0

4 6

3

Tabela stranica

6

43

0

7

5

21

“Swap” prostor

Glavna memorija Disk

Page 13: P6.ppt

04/21/23 13

Thrashing – sistem više vremena “swap”-uje stranice nego što izvršava kod

proces Bproces A

proces D proces C

Translac.

adresa

Memorijski okviri

“swap” disk

prelaz na proces B, za koji je mali broj stranica napunjen u glavnoj mem. Zatim na procese C, D, A

Page 14: P6.ppt

04/21/23 14

Tehnika preklapanja

• Tehnika međusobnog preklapanja ("overlay"), omogućava da se definišu konkurentni delovi koda ili podataka, za koje ne postoji istovremena potreba prilikom izvršavanja

• Informacije o konkurentnim delovima programa ugradio bi program za povezivanje u program na način koji omogućava da se tokom izvršavanja pojedini delovi koda ili podataka izbacuju iz memorije na disk, a na njihovo mesto u iste memorijske lokacije sa diska unose druge procedure ili podaci i tako omogući da se izvrši program koji je po veličini bio veći od raspoloživog dela memorije

Page 15: P6.ppt

04/21/23 15

Preklapanje i OS• Opšte rešenje: Mehanizam za preklapanje se ugrađuje u OS koji

koristi mehanizme segmenata i/ili stranica• Ako OS koristi mehanizam segmenata, na početku rada se samo

segment glavnog programa unosi u memoriju, a neki drugi segment u trenutku kada se eksplicitno pojavi potreba za segmentom koji nije u memoriji

• Ako OS koristi mehanizam stranica na početku rada u memoriju se unosi samo početna stranica programa, a neka druga se unosi u trenutku kada instrukcija koja se izvršava zahteva pristup stranici koja nije u memoriji

• Ako u memoriji nema mesta za novi segment (ili stranicu) vrši se izbacivanje nekog segmenta (stranice) iz memorije i ubacivanje traženog segmenta (stranice)

Page 16: P6.ppt

04/21/23 16

IMPLEMENTIRANJE VIRTUELNE MEMORIJE

Postoje dva opšta pristupa za implementiranje virtuelne memorije: pomoću segmenata i pomoću stranica Rad sa segmentima: memorija se deli u segmente različite veličine Virtuelna adresa ima dve komponente: broj segmenta i pomeraj (offset) Osnovna jedinica za prenošenje između primarne i sekundarne memorije je segmentRad sa segmentima omogućava programeru veću kontrolu nad jedinicama transfera u odnosu na rad sa stranicamaNedostatak segmentne organizacije: eksterna fragmentacija

Page 17: P6.ppt

04/21/23 17

IMPLEMENTIRANJE VIRTUELNE MEMORIJE POMOĆU STRANICA

Organizacija memorije u obliku stranica: memorija se deli na stranice koje imaju fiksnu veličinu Osnovna jedinica za prenošenje između primarne i sekundarne memorije je stranica Kod rada sa stranicama program za upravljanje virtuelnom memorijom ima potpunu kontrolu i odgovornost za transfer stranica Smeštanje stranica u primarnu memoriju je fleksibilnije od smeštanja segmenata Segmentnu organizaciju memorije je teže koristiti i teže implementirati od organizacije u obliku stranica

Page 18: P6.ppt

04/21/23 18

Virtuelna memorija organizovana u stranice (dinamičke stranice)

• Osnovna razlika između mehanizma upravljanja memorijom pomoću statičkih i dinamičkih stranica je u pogledu unošenja

• Kod dinamičkih stranica unošenje u memoriju vrši se isključivo po zahtevu ("demand paging"), jer u tabeli stranica postoje stranice i sa “nil” vrednošću pokazivača na pripadajući memorijski blok

• Kada se u toku izvršavanja programa traži pristup adresi koja pripada strani koja nije u memoriji dolazi do prekida programa, stranični prekid (page fault)

Page 19: P6.ppt

04/21/23 19

Postupak izvršavanja instrukcije kod dinamičkih stranica

1. Ako je programska adresa kojoj se pristupa u memoriji, nastavi sa izvršavanjem instrukcije, inače idi na korak 2 

2. Prekini izvršavanje programa 

3. Nađi slobodan memorijski blok. Ako takav blok ne postoji izbaci jednu od stranica dodeljenih programu i tako oslobodi blok

4. Pronađi na disku stranicu kojoj se pristupa i upiši je u raspoloživ blok

5. Ažuriraj tabelu stranica (upiši adresu bloka u koji je smeštena stranica) 

6. Iniciraj izvršavanje instrukcije koja je izazvala prekid

Page 20: P6.ppt

04/21/23 20

Stranični prekid

Pojavljuje se kada proces pristupa stranici koja nije u memoriji

Memorijapuna?

Pokrenutinovi spreman

proces

Ažurirati tabelustranica

Blokirati tekućiproces

Izbaciti stranicuIz memorije

da

ne

Učitati stranicu sadiska

Stranicanapunjena?

Označiti procesda je spreman

da

ne

Početak procesiranja straničnog prekida Procesiranje kada se stranicanapuni

Page 21: P6.ppt

04/21/23 21

Procesor signalizira kontroleru

Čitanje bloka veličine P počev od adrese X na disku i upisivanje u memoriju počev od adrese Y

Čitanje počinje

Direktan memorijski pristup (DMA)

Pod kontrolom U/I kontrolera

U/I kontroler signalizira završetak

Prekid rada procesora

OS nastavlja suspendovani proces

diskDiskdiskDisk

Memorija-U/I magistralaMemorija-U/I magistrala

ProcesorProcesor

KešKeš

MemorijaMemorijaU/I

kontroler

U/Ikontroler

Reg

(2) DMA prenos

(1) Iniciranje čitanja bloka

(3)Čitanjezavršeno

Servisiranje straničnog prekida

Page 22: P6.ppt

04/21/23 22

STRUKTURA TABELE STRANICA

Najveći broj operativnih sistema za svaki proces kreira posebnu tabelu stranica. U kontrolnom bloku procesa se čuva i pokazivač na tabelu stranica procesa. Kod savremenih računara sa velikim kapacitetom memorije broj okvira stranica je veći od milion. Tabeli stranica se mora pristupiti kod svakog referenciranja memorije.Za čitanje jednog bajta iz memorije potrebna su dva čitanja.

Page 23: P6.ppt

04/21/23 23

TLB bafer

TLB (Translation Look-aside Buffer) – Asocijativna memorija koja se koristi u radu sa tabelama stranica (keš memorija za tabelu stranica). Sadrži broj stranice i broj okvira. Broj asocijativnih registara u TLB-u je između 8 i 2048 Ukoliko broj stranice nije u TLB-u tada se mora pročitati tabela stranica sa diska da bi se dobio broj okvira Kod savremenih računara procenat pogađanja je do 98%

Page 24: P6.ppt

04/21/23 24

Algoritmi zamene stranica

• Algoritmi zamene stranica rade sa diskom, pa su smene stranica vremenski “skupe” operacije (ms u odnosu na ns u radu sa memorijom!!!) i loš algoritam značajno degradira performanse sistema

• Dobri algoritmi za zamenu stranica uče iz iskustva. Na osnovu istorije “ponašanja” programa pokušavaju da predvide njegovo buduće “ponašanje”

• Najpoznatiji algoritmi zamene stranica– FIFO (First In First Out) – LRU (Least Recently Used)– OPT (Optimal)

Page 25: P6.ppt

04/21/23 25

FIFO algoritam

• FIFO algoritam izbacuje stranu koja je najduže boravila u memoriji

• Primer rada FIFO algoritma u dva slučaja – kada su programu dodeljena samo dva

memorijska bloka – kada su programu dodeljena tri memorijska

bloka

Page 26: P6.ppt

04/21/23 26

Trag adresa

• Trag adresa - redosled brojeva strana kojima je program u toku izvršavanja pristupio

• Masno podvučeni su brojevi strana koje su izazivale stranične prekide

• U okvirima su prikazani brojevi strana koje se trenutno nalaze u memoriji, pri čemu su “najstarije” stranice, kandidati za izbacivanje, označene sa zvezdicom

Page 27: P6.ppt

04/21/23 27

Rad FIFO algoritma za zamenu stranica

1*

3

-

1*

3

4

1

-

-

1*

3

4

1*

3

4

5

1

4*

5*

1

3

5

3*

4

5*

1

3

2

1*

3

2

5

3*

2*

5

1

2

1*

3

3

5*

1

3

5*

1

Tragadresa 1 3 4 1 4 5 1 3 5 2 3 5 1 3 5

Okvir 1

Okvir 2

Okvir 3

1*

3

4

3*

1

-

4*

1

4*

1

5

1*

5*

3

5

1*

5*

3

2

3*

2*

5

1

5*

2

3*

1*

3

5

3*

Tragadresa 1 3 4 1 4 5 1 3 5 2 3 5 1 3 5

Okvir 1

Okvir 2

(a) Programu su dodeljena dva okvira

(b) Programu su dodeljena tri okvira

Page 28: P6.ppt

04/21/23 28

Analiza rada FIFO algoritma

• Broj straničnih prekida opada sa povećanjem broja blokova dodeljenih programu • za dva bloka relativna frekvencija straničnih

prekida je 74%, • za tri bloka 67%

• Anomalija FIFO algoritma - za isti trag adresa pri povećanju broja dodeljenih blokova može doći do povećanja broja straničnih prekida !

Page 29: P6.ppt

FIFO zamena stranica

Page 30: P6.ppt

FIFO Belady-eva anomalija

Page 31: P6.ppt

04/21/23 31

LRU algoritam zamene stranica

• LRU algoritam izbacuje stranu koja je najduže nekorišćena

• Primer rada LRU algoritma sa istim tragom adresa i istim brojem memorijskih blokova kao u slučaju FIFO algoritma

Page 32: P6.ppt

04/21/23 32

Rad LRU algoritma za zamenu stranica

1*

3

-

1*

3

4

1

-

-

1

3*

4

1

3*

4

1

5

4*

1

5*

3

1*

5

4

1*

5

3

2

5

3*

2*

5

3

1

5

3*

2

5*

3

1

5*

3

1*

5

3

Tragadresa 1 3 4 1 4 5 1 3 5 2 3 5 1 3 5

Okvir 1

Okvir 2

Okvir 3

1*

3

4

3*

1

-

4*

1

4

1*

5*

1

3

1*

5

4*

3*

5

2

5*

5

3*

5*

1

2*

3

3

1*

3*

5

Tragadresa 1 3 4 1 4 5 1 3 5 2 3 5 1 3 5

Okvir 1

Okvir 2

(a) Programu su dodeljena dva okvira

(b) Programu su dodeljena tri okvira

Page 33: P6.ppt

04/21/23 33

Poređenje FIFO i LRU

• Razlika se uočava u pristupima memoriji kod kojih je strana kojoj se pristupa već u memoriji, jer strana sigurno postaje “najsvežija”, pa za LRU neka druga strana je kandidat za izbacivanje

• Pri manjem broja blokova moguće je da FIFO algoritam pokaže bolje performanse (manji broj straničnih prekida) dok sa povećanjem broja blokova LRU algoritam pokazuje bolje rezultate (relativna frekvencija straničnih prekida za dva bloka iznosi 94%, a za tri okvira pada na 47%)

• LRU spada u algoritme kod koji FIFO anomalija nije moguća

Page 34: P6.ppt

04/21/23 34

LRU algoritam – primer 2

Trag

012

Trag

0123

Page 35: P6.ppt

LRU zamena stranica

Page 36: P6.ppt

04/21/23 36

Ostali algoritmi zamene stranica

• FIFO i LRU algoritmi spadaju u klasu algoritama kod kojih se programu unapred odredi određen broj memorijskih blokova

• OPT algoritam zamenjuje onu stranicu koja se u budućnosti najduže neće koristiti. Ovaj algoritam ostvaruje najbolji broj straničnih prekida, ali njegova implementacija u praksi nije moguća.

• Postoje i složeniji algoritni kod kojih se broj blokova dodeljen programu menja (raste i opada) u toku jednog izvršavanja

Page 37: P6.ppt

OPTIMALNI algoritam zamene stranica

Page 38: P6.ppt

04/21/23 38

NRU (Not Recently Used) algoritam

• Kriterijum za izbacivanje stranice – ona kojoj nije skoro pristupljeno.

• Uvode se dva bita za svaku stranicu: bit R za pristup i bit M za upis (stranica je ažurirana).

• Hardverski sat svakih 20 ms generiše prekid i automatski se svi R biti postavljaju na nulu.

• Pri učitavanju virtuelne stranice u glavnu memoriju bit M se postavlja na nulu.

• Hardverski sat ne resetuje M bite, već samo pri učitavanju nove virtuelne stranice.

Page 39: P6.ppt

04/21/23 39

NRU (Not Recently Used) algoritam - nastavak

• Postoje 4 klase fizičkih stranica (na osnovu R i M bita):

00 – nije bilo pristupa u poslednjih 20 ms i nije bilo modifikacije sadržaja,

01 – nije bilo pristupa u poslednjih 20 ms ali je bilo modifikacije sadržaja,

10 – bilo je pristupa u poslednjih 20 ms i nije bilo modifikacije sadržaja i

11 – bilo je pristupa u poslednjih 20 ms i bilo je modifikacije sadržaja.

• Ovo je ujedno i redosled izbacivanja stranica iz glavne memorije.

Page 40: P6.ppt

04/21/23 40

Algoritam druga šansa (“Second chance”)

• Algoritam predstavlja poboljšanje FIFO algoritma. • Dodatak u listi deskriptora: R bit koji označava da li je

bilo pristupa stranici u poslednjih 20 ms. • Ako je kod prvog elementa liste R bit postavljen na

jedinicu, tada se bit R postavlja na nulu i deskriptor se prebacuje na kraj liste.

• Ovaj postupak se ponavlja dok se ne pronađe stranica koja se može izbaciti.

• Kada su svi R biti postavljeni na nulu, algoritam se ponaša kao FIFO.

Page 41: P6.ppt

04/21/23 41

Algoritam druga šansa (“Second chance”) - nastavak

• Kada su svi R biti postavljeni na jedinicu moguća je situacija da ni jedna stranica ne može da se izbaci iz glavne memorije.

• Ovo se rešava tako što se nakon jednog prebacivanja prvog elementa liste na kraj liste onemogućava postavljanje R bita na jedinicu (čak iako se u međuvremenu pristupi toj stranici).

Page 42: P6.ppt

04/21/23 42

Satni algoritam

• Satni algoritam – poboljšanje algoritma druge šanse • Deskriptori stranica se povezuju u kružnu listu • Pokazivač pokazuje na deskriptor najstarije stranice • Ako je R bit postavljen na jedinicu, tada se on

postavlja na nulu i pokazivač se pomera na sledeći deskriptor

• Ako je R bit postavljen na nulu, ubacuje se nova stranica, ažurira se pokazivač da pokazuje na nju i pomera se pokazivač kružne liste na sledeći element

• Na ovaj način se poboljšavaju performanse u odnosu na prethodni algoritam

Page 43: P6.ppt

04/21/23 43

• Dato:• 4KB (212) veličina stranice• 32-bit adresni prostor• 4-byte PTE (page table entry)

• Problem:• Potrebna je tabela stranica veličine 4 MB!

• 220 *4 bajtova• Rešenje

• Višenivoske tabele stranica• npr, 2-nivoska tabela

• Tabela 1 nivoa: 1024 rekorda, od kojih svaki pokazuje na tabelu stranica 2 nivoa.

• Tabela 2 nivoa: 1024 rekorda, od kojih svaki pokazuje na stranicu

Tabela

1 nivoa

...

Tabele

2 nivoa

Višenivoske tabele stranica

Page 44: P6.ppt

04/21/23 44

Veličina stranice

Ako je suviše velika pojavljuje se fragmentacija i nekorišćeni delovi stranice.

Ako je suviše mala održavanje tabele stranica postaje značajno, tj. U/I aktivnost postaje vremenski zahtevna.

Obično je veličina stranice stepen broja 2.

Tipična veličina stranice je

od 512 B do 8 KB

Page 45: P6.ppt

04/21/23 45

Veličina stranice - nastavak

Veoma male stranice povećavaju broj straničnih prekida

Velike stranice ograničavaju broj “rezidentnih” procesa

Ako je veličina logičkog adresnog prostora 2m, veličina stranice 2n adresibilnih jedinica, tada n bita manje težine predstavlja pomeraj unutar stranice, a m-n bita veće težine logičke adrese određuje broj stranice.

Page 46: P6.ppt

04/21/23 46

Zavisnost broja straničnih prekida od veličine stranice

Male stranice: memorija sadrži samo ono što je potrebno (mali broj straničnih prekida)Veće stranice: memorija sadrži i delove koji joj nisu potrebni (broj straničnih prekida se povećava) Broj straničnih prekida opada kada je veličina stranice jednaka veličini procesaBroj prekida zavisi i od broja okvira koji su dodeljeni po procesu

Page 47: P6.ppt

04/21/23 47

Algoritmi za rad sa dinamičkim stranicama kod savremenih operativnih sistema

Veličina fizičke memorije koja je dodeljena procesu varira u vreme izvršavanja procesa (broj okvira stranica). Koliko memorije treba dodeliti procesu?

Veličina dodeljene memorije se menja u zavisnosti od faze procesa.Broj straničnih prekida ne sme biti veliki.

Savremeni modeli se zasnivaju na radnom skupu (“working set“) stranica. Radni skup stranica je skup aktivnih stranica u datom vremenskom intervalu. Proces p treba preneti u memoriju i da bude aktivan ako se može dodeliti dovoljan broj okvira stranica za ceo radni skup.

Page 48: P6.ppt

04/21/23 48

Dodela memorije procesima

MOGUĆA REŠENJA SU: svakom procesu dodeliti isti broj stranica,

dodela memorije na osnovu veličine procesa,

dodela memorije na osnovu prioriteta procesa

Page 49: P6.ppt

04/21/23 49

PRIMER 1:Ako procesor ima 32-bitne virtuelne adrese, 28-bitne fizičke adrese i stranice veličine 2 KB, koliko bita se može koristiti za redne brojeve virtuelnih i fizičkih stranica? 

Odgovor: Za offset unutar jedne stranice je potrebno 11 bita. 21 bit za redne brojeve virtuelnih stranica (32-11) 17 bita za redne brojeve fizičkih stranica (28-11)

Page 50: P6.ppt

04/21/23 50

PRIMER 2:Dati sistem ima 48-bitne virtuelne adrese, 36-bitne fizičke adrese i 128 MB glavne memorije. Ako sistem koristi stranice veličine 4096 bajtova, koliko virtuelnih i fizičkih stranica sistem može da podrži? Koliki je broj okvira stranica u glavnoj memoriji?  

Odgovor: Za offset unutar jedne stranice je potrebno 12 bita. Virtuelni adresni prostor može da podrži 236 virtuelnih stranica. Fizički adresni prostor može da podrži 224 fizičkih stranica. Broj okvira stranica je 32,768, tj. (128 MB : 4 KB).