seminarski rad operativni sistemi - miodrag kovačević - it 161-2011

44
Univerzitet u Novom Sadu Tehnički fakultet »Mihajlo Pupin«, Zrenjanin Student: Miodrag Kovačević Broj indeksa: IT – 161 / 2011 Smer: Informacione tehnologije u obrazovanju SEMINARSKI RAD Operativni sistemi Virtuelna memorija Profesor: prof. dr Branko Markoski

Upload: marija-maki-kovacevic

Post on 24-Jul-2015

375 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Univerzitet u Novom SaduTehnički fakultet »Mihajlo Pupin«, ZrenjaninStudent: Miodrag KovačevićBroj indeksa: IT – 161 / 2011Smer: Informacione tehnologije u obrazovanju

SEMINARSKI RAD

Operativni sistemi

Virtuelna memorija

Profesor: prof. dr Branko MarkoskiAsistent: dr Željko Stojanov

Page 2: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Zrenjanin, jun 2012. godinaTehnički fakultet »Mihajlo Pupin«, Zrenjanin

Seminarski rad iz predmeta Operativni sistemi, školska 2011/2012 godina

VIRTUELNA MEMORIJA

Miodrag Kovačeviće-mail: [email protected]

APSTRAKT

Upravljanje memorijom predstavlja složen međusobni odnos između hardvera procesora i softvera operativnog sistema. Prvenstveno ćemo se najpre usredsrediti na hardverski aspekt virtuelne memorije, razmatrajući upotrebe straničenja i segmentacije i straničenja kombinovanog sa segmentacijom. Zatim se bavimo i pitanjima koja obuhvataju svojstva virtuelne memorije zasnovane na straničenju.

HARDVER I UPRAVLJAČKE STRUKTURE

Poređenjem jednostavnog straničenja i jednostavne segmentacije sa jedne, sa fiksnim i dinamičkim deljenjem na particije sa druge strane, vidimo osnovu za fundamentalan proboj u oblasti upravljanja memorijom. Za taj proboj ključne su dve karakteristike straničenja i segmentacije:

1. Sve memorijske reference unutar procesa su logičke adrese kojie se dinamički prevode u fizičke adrese u vreme izvršavanja. To znači da proces može da se zameni u radnoj memoriji i uklanjenjem iz nje, tako da zauzima različite oblasti glavne memorije u različitim trenutcima u toku izvršavanja;

2. Proces može da se razbije na izvestan broj delova (stranica ili segmenata) i ti delovi ne moraju da budu smešteni jedan pored drugog u radnoj memoriji u toku izvršavanja. To dozvoljava kombinacija dinamičkog prevođenja adresa u vreme izvršavanja i upotrebe tabele stranica ili segmenata.

Sada dolazimo do proboja. Ako su prisutne dve prethodne karakteritike, nije potrebno da sve stranice ili svi segmenti procesa budu u radnoj memoriji u toku izvršavanja. Ako se deo (stranica ili segment) koji sadrži sledeću instrukciju za donošenje i deo u kome je sledeća lokacija podataka kojoj treba da se pristupi nalaze u radnoj memoriji, tada izvršavanje može da se nastavi, u najamnju ruku u tom trenutku.

Za sada možemo da govorimo u opštim pojmovima, pa ćemo koristiti termin deo da bi smo se pozvali na stranicu ili segment, zavisno od toga da li se radi o straničenju ili segmentaciji. Uzmimo primer da je neophodno da se donese nov proces u memoriju. Operativni sistem počinje sa donošenjem samo jednog dela ili nekoliko delova, da bi se uključio deo početnog programa i početnih podataka na koje se te instrukcije pozivaju. Deo procesa koji je stvarno u glavnoj

2

Page 3: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

memoriji u bilo kom trenutku definiše se kao rezidentni skup procesa. Kako se proces izvršava sve je jednostavno dok se memorijske reference odnose na lokacije koje su u rezidentnom skupu. Koristeći tabelu segmenata ili stranica, procesor uvek može da odredi da li je to slučaj. Ako procesor naiđe na logičku adresu koja nije u radnoj memoriji, on generiše prekid koji ukazuje na grešku u pristupu memoriji. Operativni sistem stavlja prekinuti proces u blokirano stanje i preuzima upravljanje. Da bi izvršavanje tog procesa moglo kasnije da se nastavi, operativni sistem će u glavnu memoriju morati da donese deo procesa koji sadrži logičku adresu koja je prouzrokovala grešku pristupa. U tu svrhu operativni sistem izdaje zahtev čitanja U/I diska. Pošto izda U/I zahtev, operativni sistem može da rasporedi drugi proces za izvršavanje dok se izvodi U/I diska. Jednom kada se traženi deo donese u glavnu memoriju, izdaje se U/I prekid koji vraća upravljanje operativnom sistemu, a on vraća proces na koji se to odnosi u stanje spremnosti.

Postoje dve implikacije ovakve strategije rada:

1. Više procesa može da se održava u glavnoj memoriji. Zbog toga što ćemo učitati neke od delova bilo kog određenog procesa, ima mesta za više procesa. To dovodi do efikasnijeg iskorišćenja procesora, zato što je verovatnije da će najmanje jedan od brojnih procesa biti u stanju spremnosti u bilo kom određenom trenutku.

2. Proces može biti veći od ukupne glavne memorije. Na ovaj način jedno od najosnovnijih ograničenja u programiranju je odstranjeno. Bez šeme o kojoj smo govorili programer mora da bude svestan koliko memorije ima na raspolaganju, ako je program koji piše suviše veliki, programer mora da smisli načine kako da strukturira program u delove koji mogu da se učitavaju posebno, u nekoj vrsti strategije preklapanja. Sa virtuelnom memorijom zasnovanom na straničenju ili segmentaciji taj posao se ostavlja operativnom sistemu i hardveru. Što se tiče programera on radi sa ogromnom memorijom, čija je veličina pridružena skladištu diska. Operativni sistem automatski učitava delove procesa u radnu memoriju po potrebi.

Zbog toga što se proces izvršava samo u radnoj memoriji, ona se zove stvarna memorija, ali programer ili korisnik vidi potencijalno mnogo veću memoriju onu koja je dodeljena na disku, ova memorija se naziva virtuelna memorija. Virtuelna memorija dozvoljava efikasno multi programiranje i oslobađa korisnika nepotrebnih tesnih ograničenja radne memorije

Termin virtuelna memorija obično se pridružuje sistemima koji koriste straničenje, mada se virtuelna memorija zasnovana na segmentaciji takođe koristi, a kao kombinacija dobrih svojstava razvijena je i treća osnova virtuelne memorije a to je kombinovani sistem straničenja sa segmentacijom.

Virtuelna memorija je strategija dodele memorije, koja dozvoljava da samo deo programa koji se izvodi bude u radnoj memoriji. Osnovna prednost ovakvog pristupa je da program može biti i veći od radne memorije. Tako korisnički program može poprimiti proizvoljnu veličinu, a sistem za upravljanje memorijom preslikava logički prostor korisnika u ograničeni prostor u radnoj memoriji. Ovakav sistem za upravljanje memorijom nije jednostavno realizovati. Loša implementacija ovakvog sistema može značajno smanjiti performanse ukupnog računarskog sistema. U ovom radu razmatraće se realizacija straničenja na zahtev (demand paging), njena složenost i cena.

3

Page 4: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Virtuelna memorija je tehnika koja dozvoljava izvršenje procesa čiji delovi mogu biti smešteni na sekundarnim memorijama, to jest diskovima. Virtuelna memorija formira apstrakciju u vidu logičke memorije, koju čine radna i sekundarna memorija, i razdvaja korisničku logičku memoriju od fizičke. Količina raspoložive fizičke memorije više ne ograničava problem, pa programeri mogu da pišu programe bez korišćenja tehnike preklapanja (engl. overlay), podrazumevajući ekstremno veliki adresni prostor. Pri tome, virtuelna memorija omogućava izvršenje programa većih od same fizičke memorije. Omogućava da više procesa dele adresni prostor, omogućava i mnogo efikasnije kreiranje procesa.

.

Slika 1. Grafički prikaz virtuelne i fizičke memorije

Kod velikog broja savremenih računara ne postoji jedan prema jedan korespondencija između adresa koje se generišu u programu i adresa operativne memorije. Adrese koje se generišu u programu zovu se virtuelne adrese, a adrese operativne memorije realne adrese. Opseg adresa koje se generišu u programu se zove virtuelni adresni prostor, a opseg adresa operativne memorije realni adresni prostor.

U ovim razmatranjima se uzima da se kompletan virtuelni adresni prostor dodeljuje svakom procesu. Kompletni programi i podaci svakog procesa nalaze se na disku, a samo njihovi delovi za kojima u određenom trenutku postoji potreba dovlače se sa diska i smeštaju u neki deo operativne memorije. Zbog toga kod ovih računara postoji potreba da se za svaki proces vodi evidencija o tome koji se njegovi delovi nalaze u operativnoj memoriji i u kom njenom delu. To se obično realizuje pomoću posebnih tabela koje se formiraju u operativnoj memoriji za svaki proces i koje se nazivaju tabele preslikavanja. U zavisnosti od toga kako se virtuelni adresni prostor radi dovlačenja sa diska u operativnu memoriju deli na delove, razlikuju se tri tipa virtuelnih memorija, i to virtuelne memorije sa straničnom, segmentnom i segmentno-straničnom organizacijom.

Kod virtuelnih memorija stranične organizacije virtuelni adresni prostor se deli na delove fiksne veličine koji se nazivaju stranice, a realni adresni prostor se deli na delove fiksne veličine koji se nazivaju blokovi. Veličina stranice odgovara veličini bloka. Pojedine stranice svih procesa se po potrebi smeštaju u raspoložive blokove operativne memorije. Kada se svi blokovi operativne

4

Page 5: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

memorije popune stranicama različitih procesa, neka od tih stranica se vraća na disk da bi se oslobodio blok u operativnoj memoriji za neku novu stranicu.

Kod virtuelnih memorija segmentne organizacije virtuelni adresni prostor se deli na delove promenljive veličine koji se nazivaju segmenti. Pojedini segmenti svih procesa se po potrebi smeštaju u delove operativne memorije koji po veličini odgovaraju veličinama segmenata koji se u njih smeštaju. Kada je kompletna operativna memorija popunjena segmentima različitih procesa, jedan ili više segmenata se vraća na disk da bi se u operativnoj memoriji oslobodio prostor dovoljan za smeštanje segmenta koji se dovlači.

Kod segmentno-stranične organizacije virtuelne memorije virtuelni adresni prostor se deli na delove promenljive veličine koji se nazivaju segmenti, a onda se segmenti dele na delove fiksne veličine koji se nazivaju stranice. Realni adresni prostor se deli na delove fiksne veličine koji se nazivaju blokovi. Veličina stranice odgovara veličini bloka. Pojedine stranice pojedinih segmenata svih procesa se po potrebi smeštaju u raspoložive blokove operativne memorije. Kada se svi blokovi operativne memorije popune stranicama segmenata procesa, neka od stranica se vraća na disk da bi se oslobodio blok za neku novu stranicu nekog segmenta nekog procesa. Razdvajanjem virtuelnog i realnog adresnog prostora javlja se potreba za preslikavanjem virtuelnih adresa u realne korišćenjem tabela preslikavanja. S obzirom da se sve tabele preslikavanja nalaze u operativnoj memoriji, preslikavanje virtuelnih adresa u realne bi drastično usporilo vreme izvršavanja instrukcija. To je razlog što kod računara sa virtuelnom memorijom postoje posebne jedinice, koje će se u daljem tekstu nazivati jedinice za preslikavanje, čiji je zadatak da ubrzaju postupak preslikavanja virtuelnih adresa u realne. U daljem tekstu se daju osnovne karakteristike virtuelnih memorija.

ORGANIZACIJA VIRTUELNE MEMORIJE

Postoje tri osnovne vrste organizacije virtuelnih memorija, i to:

1. Stranična,2. Segmentna, i3. Segmentno-stranična.

U daljem tekstu se daju samo one osobine svake od navedenih organizacija virtuelne memorije koje su relevantne za realizaciju jedinica za preslikavanje.

Stranična organizacija

Kod stranične organizacije virtuelne memorije virtuelna adresa ima dva polja: broj stranice (page) dužine p bita i adresa reči u stranici (word) dužine w bita. Kako je veličina virtuelnog adresnog prostora 2p+w reči, a stranice 2w reči, to su veličine polja page i word p i w bita, respektivno. Kod stranične organizacije virtuelne memorije realna adresa ima dva polja: broj bloka (block) dužine b bita i adresa reči u bloku (word) dužine w bita. Kako je veličina realnog adresnog prostora 2b+w reči, a bloka 2w reči, to su veličine polja block i word b i w bita, respektivno. Struktura virtuelne i realne adrese i dužine u bitovima delova virtuelne i realne adrese su prikazani na sledećoj slici:

5

Page 6: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Slika 2 Virtuelna adresa, realna adresa i tabela stranica za straničnu organizaciju VM

Tabela stranica (PT) jednog procesa je data na prethodnoj slici. Tabela stranica ima poseban ulaz za svaku stranicu procesa. U njima se nalaze informacije neophodne za preslikavanje stranica virtuelnog adresnog prostora procesa u blokove fizičke memorije. Te informacije se nazivaju deskriptori stranica. S obzirom da u virtuelnom adresnom prostoru procesa ima 2p

stranica, to i tabela stranica ima 2p ulaza. Početna adresa tabele stranica sadržana je u posebnom registru procesora koji se naziva

ukazivač na PT (PTP). Na osnovu sadržaja ukazivača na PT i broja stranice, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora stranice, a time i do informacija neophodnih za preslikavanje. U operativnoj memoriji postoji posebna tabela stranica svakog procesa. Početne adrese tabela stranica svih procesa čuva operativni sistem.

Prilikom prebacivanja procesora sa procesa na procesa operativni sistem, najpre, čuva kontekst procesa kome se oduzima procesor, a potom, restaurira kontekst procesa kome se dodeljuje procesor. Tom prilikom se u ukazivač na PT upisuje početna adresa tabele stranica procesa kome se dodeljuje procesor. Time se obezbeđuje da jedinica za preslikavanje pristupa tabeli stranica procesa kome je dodeljen procesor.

6

Page 7: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Polja deskriptora stranice su:

V (1 bit)—stranica u memoriji,D (1 bit)—stranica modifikovana,block (b bita)—broj bloka idisk (d bita)—adresa na disku.

Polje V označava da li je data stranica u operativnoj memoriji. Postavlja ga operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako je postavljen, da formira realnu adresu i nije postavljen, da generiše prekid.

Polje D označava da li je data stranica modifikovana. Postavlja ga jedinica za preslikavanje ako je bilo operacija upisa u datu stranicu. Koristi ga operativni sistem onda kada odabere datu stranicu za zamenu i to ako je postavljen, da datu stranicu vrati na disk nije postavljen, da datu stranicu ne vraća na disk.

Polje block označava broj bloka operativne memorije u kome se nalazi data stranica. Vrednost u ovom polju ima smisla jedino ako je polje V postavljeno. Polje block postavlja operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje, i to ako je polje V postavljeno, da formira realnu adresu. Polje disk označava adresu date stranice na disku.

Polje disk postavlja operativni sistem prilikom formiranja tabele stranice datog procesa. Koristi ga samo operativni sistem i to radi lociranja date stranice na disku prilikom dovlačenja stranice sa diska u odabrani blok operativne memorije vraćanja modifikovane stranice iz bloka operativne memorije odabranog za zamenu na disk. Uzeto je da je veličina adrese stranice na disku d bitova. Preslikavanje virtuelne u realnu adresu za slučaj da je stranica u memoriji realizuje se kompletno hardverski i to pomoću jedinice za preslikavanje. Ovo preslikavanje se realizuje u sledećim koracima:

Polje page virtuelne adrese predstavlja broj ulaza u tabelu stranica u kome se nalazi deskriptor date stranice. S obzirom na to da deskriptor stranice zauzima 2l reči potrebno je broj ulaza u tabelu stranica pretvoriti u pomeraj u odnosu na početak tabele stranica. To se realizuje pomeranjem ulevo za l mesta sadržaja polja page vitruelne adrese. Sadržaj registra ukazivač na PT predstavlja početnu adresu tabele stranica. Pomeraj u odnosu na početak tabele stranica formiran u prethodnom koraku se sabira sa sadržajem registra ukazivač na PT i time dobija adresa deskriptora date stranice. Počev od formirane adrese treba očitati odgovarajući broj reči da bi se došlo do polja V i block koja koristi jedinica za preslikavanje. Polje V deskriptora ukazuje na to da li je data stranica u memoriji. Stoga se, najpre, sa adrese formirane u prethodnom koraku čita prva reč u kojoj se nalazi polje V deskriptora i vrši provera da li je ovo polje postavljeno. Za slučaj kada je stranica u memoriji utvrdiće se da je polje V postavljeno, pa se produžava sa sledećim koracima:

Polje block deskriptora sadrži broj bloka u kome se nalazi data stranica. Stoga se sada čita potreban broj reči deskriptora da bi se do njega došlo. Konkatenacijom polja block iz deskriptora stranice i polja word iz virtuelne adrese formira se realna adresa. U slučaju da stranica nije u memoriji realizuju se samo prva tri od četiri koraka za slučaj kada je stranica u memoriji. U koraku tri se u ovom slučaju utvrđuje da polje V nije postavljeno, pa se generiše prekid. Svi koraci do generisanja signala prekida, uključujući i njegovo generisanje, realizuju se hardverski pomoću jedinice za preslikavanje. Sve ostalo, što za ovaj slučaj potom treba uraditi, radi se softverski i to radi poseban deo operativnog sistema.

7

Page 8: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Ovo se realizuje u sledećim koracima: Oduzima se procesor datom procesu, njegov kontekst čuva i proces stavlja u red blokiranih procesa. Organizuje se dovlačenje date stranice sa diska u neki od blokova operativne memorije. Dodeljuje se procesor nekom od radno sposobnih procesa. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom procesu. Dovlačenje stranice sa diska u neki od blokova operativne memorije se realizuje u sledećim koracima:

Traži se blok u koji će se smestiti data stranica. Pri tome se izvršava jedan od sledeća dva koraka:

a.) Ukoliko ima slobodnih blokova po nekom algoritmu se odlučuje koji blok treba dodeliti datoj stranici;

b.) Ukoliko nema slobodnih blokova po nekom algoritmu se odlučuje koju stranicu treba izbaciti iz operativne memorije da bi se blok u kome se ona nalazi oslobodio i dodelio datoj stranici.

Ukoliko je stranica odabrana za izbacivanje modifikovana mora se vratiti na disk pre nego što se blok u kome se ona nalazi koristi da se u njega dovuče nova stranica. Adresa na disku stranice odabrane za izbacivanje dobija se iz polja disk deskriptora date stranice. Po završenom vraćanju date stranice na disk, u polje V deskriptora stranice koja je vraćena na disk upisuje se nula.

Dovlači se data stranica sa diska u odabrani blok operativne memorije. Adresa date stranice na disku dobija se iz polja disk deskriptora stranice. Po završenom dovlačenju date stranice sa diska u polje block deskriptora stranice upisuje se broj bloka, a u polje V jedinica. Proces za koji je dovučena stranica prevodi se u red radno sposobnih procesa. U nekom trenutku dati proces ponovo dobija procesor. Dati proces ponovo generiše adresu za koju je bilo utvrđeno da je iz stranice koja nije bila u memoriji. Pošto je sada data stranica u memoriji ponavljaju se koraci za slučaj kada je stranica u memoriji.

Segmentna organizacija

Kod segmentne organizacije virtuelne memorije virtuelna adresa ima dva polja: broj segmenta (segm) dužine s bita i adresa reči u segmentu (word) dužine w bita. Kako je veličina virtuelnog adresnog prostora 2s+w reči i sastoji se od 2s segmenata maksimalne veličine 2w reči, to su veličine polja segm i word s i w bita, respektivno. Kako je veličina realnog adresnog prostora 2a reči to je veličina realne adrese a bita. Struktura virtuelne i realne adrese i dužine u bitovima delova virtuelne i realne adrese su prikazani na sledećoj slici.

Tabela segmenata (ST) jednog procesa je data na slici. Tabela segmenata ima poseban ulaz za svaki segment procesa. U njima se nalaze informacije neophodne za preslikavanje segmenata virtuelnog adresnog prostora procesa u delove fizičke memorije veličine segmenata. Te informacije se nazivaju deskriptori segmenata. S obzirom da u virtuelnom adresnom prostoru procesa ima 2s

segmenata, to i tabela segmenata ima 2s ulaza. Početna adresa tabele segmenata sadržana je u posebnom registru procesora koji se naziva ukazivač na ST (STP). Na osnovu sadržaja ukazivača na ST i broja segmenta, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora segmenta, a time i do informacija neophodnih za preslikavanje. U fizičkoj memoriji postoji posebna tabela segmenata svakog procesa. Početne adrese tabela segmenata svih procesa čuva operativni sistem. Prilikom prebacivanja procesora sa procesa na procesa operativni sistem, najpre, čuva kontekst procesa kome se oduzima procesor, a potom, restaurira kontekst procesa

8

Page 9: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

kome se dodeljuje procesor. Tom prilikom se u ukazivač na ST upisuje početna adresa tabele segmenata procesa kome se dodeljuje procesor. Time se obezbeđuje da jedinica za preslikavanje pristupa tabeli segmenata procesa kome je dodeljen procesor.

Slika 3 Virtuelna adresa, realna adresa i tabela stranica za segmentnu organizaciju VM

9

Page 10: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Polja deskriptora segmenta su:

V (1 bit)—segment u memoriji,D (1 bit)—segment modifikovan,IRW (3 bita)—bitovi prava pristupa,length (w bita)—veličina segmenta,saddr (a bita)—početna adresa segmenta u operativnoj memoriji idisk (d bita)—adresa segmenta na disku.

Polje V označava da li je dati segment u operativnoj memoriji. Postavlja ga operativni sistem prilikom dovlačenja datog segmenta sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako je postavljen, da formira realnu adresu i nije postavljen, da generiše prekid.

Polje D označava da li je dati segment modifikovan. Postavlja ga jedinica za preslikavanje ako je bilo operacija upisa u dati segment. Koristi ga operativni sistem onda kada odabere dati segment za zamenu i to ako je postavljen, da dati segment vrati na disk i nije postavljen, da dati segment ne vraća na disk.

Polje IRW označava dozvoljen pristup datom segmentu. Uzeto je da postavljen bit I označava da iz njega smeju da se čitaju samo instrukcije, postavljen bit R označava da iz njega smeju da se čitaju podaci i postavljen bit W označava da iz njega smeju da se upisuju podaci. Polje IRW formira operativni sistem prilikom formiranja tabele segmenata datog procesa. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem registra accreg, utvrdi da li zahtevani pristup segmentu odgovara dozvoljenom pristupu segmentu.

Polje length označava veličinu segmenta. Polje length postavlja operativni sistem prilikom formiranja tabele segmenata datog procesa. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem polja word virtuelne adrese, utvrdi da li je adresa reči u segmentu unutar specificirane veličine segmenta. Polje saddr označava početnu adresu dela operativne memorije u kome se nalazi dati segment. Vrednost u ovom polju ima smisla jedino ako je polje V postavljeno.

Polje saddr postavlja operativni sistem prilikom dovlačenja segmenta sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje, i to ako je polje V postavljeno, da formira realnu adresu. Polje disk označava adresu datog segmenta na disku. Polje disk postavlja operativni sistem prilikom formiranja tabele segmenata datog procesa. Koristi ga samo operativni sistem i to radi lociranja datog segmenta na disku prilikom dovlačenja segmenta sa diska u odabrani deo operativne memorije i vraćanja modifikovanog segmenta iz dela operativne memorije odabranog za zamenu na disk.Uzeto je da je veličina adrese segmenta na disku d bitova. Preslikavanje virtuelne u realnu adresu za slučaj da je segment u memoriji realizuje se kompletno hardverski i to pomoću jedinice za preslikavanje. Ovo preslikavanje se realizuje u sledećim koracima:

Polje segm virtuelne adrese predstavlja broj ulaza u tabelu segmenata u kome se nalazi deskriptor datog segmenta. S obzirom na to da deskriptor segmenta zauzima 2l reči potrebno je broj ulaza u tabelu segmenata pretvoriti u pomeraj u odnosu na početak tabele segmenata. To se realizuje pomeranjem ulevo za l mesta sadržaja polja segm virtuelne adrese. Sadržaj registra ukazivač na ST predstavlja početnu adresu tabele segmenata. Pomeraj u odnosu na početak tabele segmenata formiran u prethodnom koraku se sabira sa sadržajem registra ukazivač na ST i time dobija adresa deskriptora datog segmenta. Počev od formirane adrese treba očitati odgovarajući broj reči, jer se u njima nalaze polja V, IRW, length i saddr koja koristi jedinica za preslikavanje.

10

Page 11: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Polje V deskriptora ukazuje na to da li je dati segment u memoriji. Stoga se, najpre, sa adrese formirane u prethodnom koraku čita prva reč u kojoj se nalazi polje V deskriptora i vrši provera da li je ovo polje postavljeno. Za slučaj kada je segment u memoriji utvrđuje se da je polje V postavljeno, pa se produžava sa sledećim koracima. Polja IRW, length i saddr deskriptora sadrže bitove prava pristupa, veličinu segmenta i početnu adresu segmenta u fizičkoj memoriji, respektivno. Stoga se sada čita potreban broj reči deskriptora da bi se do njih došlo. Sada se istovremeno: sabiranjem polja saddr iz deskriptora segmenta i polja word iz virtuelne adrese formira realna adresa, upoređivanjem polja IRW iz deskriptora segmenta i sadržaja registra accreg utvrđuje da li se zahteva pristup koji je dozvoljen za dati segment i upoređivanjem polja length iz deskriptora segmenta i polja word iz virtuelne adrese utvrđuje da li je adresa u segmentu unutar specificirane veličine segmenta.

Ukoliko su signali ACCESS i BOUND neaktivni, zahtevani pristup segmentu i virtuelna adresa su korektni, pa se formirana realna adresa koristi za pristup operativnoj memoriji. U suprotnom nema obraćanja operativnoj memoriji već se generiše prekid.

Sve ostalo, što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima: Oduzima procesor datom procesu, njegov kontekst čuva i terminira procesa. Šalje poruku na konzolu da je dati proces terminiran.Dodeljuje procesor nekom od radno sposobnih procesa. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom procesu. U slučaju da segment nije u memoriji realizuju se samo prva tri od četiri koraka za slučaj kada je segment u memoriji. U koraku 3. se u ovom slučaju utvrđuje da polje V nije postavljeno, pa se generiše prekid.

Svi koraci do generisanja signala prekida, uključujući i njegovo generisanje, realizuju se hardverski pomoću jedinice za preslikavanje. Sve ostalo, što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima: Oduzima procesor datom procesu, njegov kontekst čuva i proces stavlja u red blokiranih procesa. Organizuje dovlačenje datog segmenta sa diska u neki od delova operativne memorije veličine segmenta. Dodeljuje procesor nekom od radno sposobnih procesa. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tomnovom procesu.

Dovlačenje segmenta sa diska u neki od delova operativne memorije se realizuje u sledećim koracima: Traži se deo operativne memorije u koji će se smestiti dati segment. Pri tome se izvršava jedan od sledeća dva koraka: Ukoliko ima slobodnih delova operativne memorije po nekom algoritmu se odlučuje koji deo treba dodeliti datom segmentu. Ukoliko nema slobodnih delova operativne memorije po nekom algoritmu se odlučuje koji segment treba izbaciti iz operativne memorije da bi se deo operativne memorije u kome se on nalazi oslobodio i dodelio datom segmentu. Ukoliko je segment odabran za izbacivanje modifikovan mora se vratiti na disk pre nego što se deo operativne memorije u kome se on nalazi koristi da se u njega dovuče novi segment. Adresa na disku segmenta odabranog za izbacivanje dobija se iz polja disk deskriptora segmenta.

Po završenom vraćanju datog segmenta na disk, u polje V deskriptora segmenta koji je vraćen na disk upisuje se nula. Dovlači se dati segment sa diska u odabrani deo operativne memorije. Adresa datog segmenta na disku dobija se iz polja disk deskriptora segmenta. Po završenom dovlačenju datog segmenta sa diska u polje saddr deskriptora segmenta upisuje se početna adresa dela segmenta u operativnoj memoriji, a u polje V jedinica. Proces za koga je dovučen segment prevodi se u red radno sposobnih procesa. U nekom trenutku dati proces ponovo dobija procesor. Dati proces ponovo generiše adresu za koju je bilo utvrđeno da je iz segmenta koji nije bio u operativnoj memoriji. Pošto je sada dati segment u operativnoj memoriji ponoviće se koraci za slučaj kada je segment u memoriji.

11

Page 12: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Segmentno-stranična organizacija

Kod segmentno-stranične organizacije virtuelne memorije virtuelna adresa ima tri polja: broj segmenta (segm) dužine s bita, broj stranice (page) dužine p bita i adresa reči u stranici (word) dužine w bita. Kako je veličina virtuelnog adresnog prostora 2s+p+w reči i sastoji se iz 2s segmenata maksimalne veličine 2w reči, a oni su dalje podeljeni na 2p stranica veličine 2w reči, to su veličine polja segm, page i word s, p i w bita, respektivno.

Kod segmentno-stranične organizacije virtuelne memorije realna adresa ima dva polja: broj bloka (block) dužine b bita i adresa reči u bloku (word) dužine w bita. Kako je veličina realnog adresnog prostora 2b+w reči, a bloka 2w reči, to su veličine polja block i word b i w bita, respektivno. Struktura virtuelne i realne adrese i dužine u bitovima delova virtuelne i realne adrese su prikazani na sledećoj slici. Kod segmentno-stranične organizacije virtuelne memorije svaki proces ima jednu tabelu segmenata i onoliko tabela stranica koliko ima segmenata u virtuelnom adresnom prostoru procesa. Za dati procesor postoji jedna tabela segmenata i maksimalno 2p tabela stranica.

Slika 4. Virtuelna adresa, realna adresa i tabela stranica za segmentno-straničnu organizaciju VM

12

Page 13: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Tabela segmenata (ST) jednog procesa je data na prethodnoj slici. Tabela segmenata ima poseban ulaz za svaki segment procesa. U njima se nalaze informacije neophodne za preslikavanje segmenata virtuelnog adresnog prostora procesa u blokove fizičke memorije. Te informacije se nazivaju deskriptori segmenata.

S obzirom da u virtuelnom adresnom prostoru procesa ima 2s segmenata, to i tabela segmenata ima 2s ulaza. Početna adresa tabele segmenata sadržana je u posebnom registru procesora koji se naziva ukazivač na ST (STP). Na osnovu sadržaja ukazivača na ST i broja segmenta, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora segmenta, a time i do informacija neophodnih za preslikavanje. U fizičkoj memoriji postoji posebna tabela segmenata svakog procesa. Početne adrese tabela segmenata svih procesa čuva operativni sistem. Prilikom prebacivanja procesora sa procesa na procesa operativni sistem, najpre, čuva kontekst procesa kome se oduzima procesor, a potom, restaurira kontekst procesa kome se dodeljuje procesor. Tom prilikom se u ukazivač na ST upisuje početna adresa tabele segmenata procesa kome se dodeljuje procesor. Time se obezbeđuje da jedinica za preslikavanje pristupa tabeli segmenata procesa kome je dodeljen procesor.

Polja deskriptora segmenta su:

IRW (3 bita)—bitovi prava pristupa,length (p bita)—veličina segmenta iPTP (b + w bita)—početna adresa tabele stranica u fizičkoj memoriji.

Polje IRW označava dozvoljen pristup datom segmentu. Uzeto je da postavljen bit I označava da iz njega smeju da se čitaju samo instrukcije, postavljen bit R označava da iz njega smeju da se čitaju podaci i postavljen bit W označava da iz njega smeju da se upisuju podaci. Polje IRW formira operativni sistem prilikom formiranja tabele segmenata datog procesa. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem registra accreg, utvrdi da li zahtevani pristup segmentu odgovara dozvoljenom pristupu segmentu.

Polje length označava veličinu segmenta u stranicama. Polje length postavlja operativni sistem prilikom formiranja tabele segmenata datog procesa. Koristi ga jedinica za preslikavanje da, upoređivanjem sa sadržajem polja page virtuelne adrese, utvrdi da li je broj stranice u segmentu unutar specificirane veličine segmenta.

Polje PTP označava početnu adresu operativne memorije u kome se nalazi tabela stranica datog segmenta. Polje PTP postavlja operativni sistem prilikom formiranja tabele segmenata i tabela stranica. Koristi ga jedinica za preslikavanje da formira realnu adresu. Uzeto je da se STP i PTP predstavljaju u brojevima blokova, a length u broju stranica. Tabela stranica (PT) jednog segmenta je data na prethodnoj slici. Tabela stranica ima poseban ulaz za svaku stranicu datog segmenta. U njima se nalaze informacije neophodne za preslikavanje stranica segmenta u blokove fizičke memorije. Te informacije se nazivaju deskriptori stranica. S obzirom da segment ima najviše 2p stranica, to i tabela stranica može da ima najviše 2p ulaza. Početna adresa tabele stranica sadržana je u polju PTP deskriptora datog segmenta. Na osnovu sadržaja polja PTP deskriptora datog segmenta i broja stranice, jedinica za preslikavanje virtuelnih adresa u realne adrese dolazi do deskriptora stranice, a time i do informacija neophodnih za preslikavanje.

Polja deskriptora stranice su:

V (1 bit)—stranica u memoriji,

13

Page 14: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

D (1 bit)—stranica modifikovana,block (b bita)—broj bloka idisk (d bita)—adresa na disku.

Polje V označava da li je data stranica u operativnoj memoriji. Postavlja ga operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje i to ako je postavljen, da formira realnu adresu i nije postavljen, da generiše prekid.

Polje D označava da li je data stranica modifikovana. Postavlja ga jedinica za preslikavanje ako je bilo operacija upisa u datu stranicu. Koristi ga operativni sistem onda kada odabere datu stranicu za zamenu i to ako je postavljen, da datu stranicu vrati na disk nije postavljen, da datu stranicu ne vraća na disk.

Polje block označava broj bloka operativne memorije u kome se nalazi data stranica. Vrednost u ovom polju ima smisla jedino ako je polje V postavljeno. Polje block postavlja operativni sistem prilikom dovlačenja date stranice sa diska u operativnu memoriju. Koristi ga jedinica za preslikavanje, i to ako je polje V postavljeno, da formira realnu adresu. Polje disk označava adresu date stranice na disku.

Polje disk postavlja operativni sistem prilikom formiranja tabele stranice datog procesa. Koristi ga samo operativni sistem i to radi lociranja date stranice na disku prilikom dovlačenja stranice sa diska u odabrani blok operativne memorije vraćanja modifikovane stranice iz bloka operativne memorije odabranog za zamenu na disk. Uzeto je da je veličina adrese stranice na disku d bitova.

Preslikavanje virtuelne u realnu adresu za slučaj da je stranica u memoriji realizuje se kompletno hardverski i to pomoću jedinice za preslikavanje. Ovo preslikavanje se realizuje u sledećim koracima: Polje segm virtuelne adrese predstavlja broj ulaza u tabelu segmenata u kome se nalazi deskriptor datog segmenta. S obzirom na to da deskriptor segmenta zauzima 2l reči potrebno je broj ulaza u tabelu segmenata pretvoriti u pomeraj u odnosu na početak tabele segmenata. To se realizuje pomeranjem ulevo za l mesta sadržaja polja segm vitruelne adrese. Sadržaj registra ukazivač na ST predstavlja početnu adresu tabele segmenata. Pomeraj u odnosu na početak tabele segmenata formiran u prethodnom koraku se sabira sa sadržajem registra ukazivač na ST i time dobija adresa deskriptora datog segmenta. Počev od formirane adrese treba očitati potreban broj reči, jer se u njima nalaze polja IRW, length i PTP koja koristi jedinica za preslikavanje. Polja IRW, length i PTP deskriptora sadrže bitove zaštite, veličinu segmenta i početnu adresu tabele stranica u fizičkoj memoriji, respektivno. Stoga se sada čita potreban broj reči da bi se do njih došlo. Sada se istovremeno: upoređivanjem polja IRW iz deskriptora segmenta i sadržaja registra accreg utvrđuje da li se zahteva pristup koji je dozvoljen za dati segment i upoređivanjem polja length iz deskriptora segmenta i polja page iz virtuelne adrese utvrđuje da li je broj stranice u segmentu unutar specificirane veličine segmenta. Ukoliko su signali ACCESS i BOUND neaktivni, zahtevani pristup segmentu je korektan, pa se pristupa deskriptoru stranice u tabeli stranica na način prikazan počev od koraka 4. U suprotnom nema obraćanja tabeli stranica već se generiše prekid i prelazi na aktivnosti prikazane počev od koraka 8. Polje page virtuelne adrese predstavlja broj ulaza u tabelu stranica u kome se nalazi deskriptor date stranice. S obzirom na to da deskriptor stranice zauzima 2h reči potrebno je broj ulaza u tabelu stranica pretvoriti u pomeraj u odnosu na početak tabele stranica. To se realizuje pomeranjem ulevo za h mesta sadržaja polja page vitruelne adrese. Sadržaj polja PTP koji predstavlja početnu adresu tabele stranica sabira se sa pomerajem u odnosu na početak tabele stranica koji je formiran u prethodnom koraku i time se dobija adresa deskriptora date stranice. Počev od formirane adrese treba očitati potreban broj reči, jer se u njima nalaze polja V i block koja koristi jedinica za preslikavanje. Polje V

14

Page 15: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

deskriptora ukazuje na to da li je data stranica u memoriji. Stoga se, najpre, sa adrese formirane u prethodnom koraku čita prva reč u kojoj se nalazi polje V deskriptora i vrši provera da li je ovo polje postavljeno. Za slučaj kada je stranica u memoriji utvrđuje se da je polje V postavljeno, pa se produžava sa sledećim koracima.

Polje block deskriptora sadrži broj bloka u kome se nalazi data stranica. Stoga se sada čita potreban broj reči deskriptora da bi se do njega došloPrevođenjem polja block iz deskriptora stranice i polja word iz virtuelne adrese formira se realna adresa. Ovo je kraj preslikavanja virtuelne u realnu adresu za slučaj da je stranica u memoriji.

U slučaju generisanog prekida, zbog pojave aktivne vrednosti jednog ili oba signala ACCESS ili BOUND, sve što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima: Oduzima procesor datom procesu, njegov kontekst čuva i terminira procesa. Šalje poruku na konzolu da je dati proces terminiran. Dodeljuje procesor nekom od radno sposobnih procesa. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom procesu. U slučaju da stranica nije u memoriji realizuju se svi koraci sem koraka 7 kao i za slučaj kada je stranica u memoriji. Moguće su dve situacije. U prvoj situaciji se ide od koraka 1 do koraka 3 u kome se utvrđuje da je jedan od ili oba signala ACCESS ili BOUND aktivni, pa se prelazi na korak 8. U drugoj situaciji se ide od koraka 1 do koraka 6. U koraku 6 se u ovom slučaju utvrđuje da polje V nije postavljeno, pa se generiše prekid. Svi koraci do generisanja signala prekida, uključujući i njegovo generisanje, realizuju se hardverski pomoću jedinice za preslikavanje.

Sve ostalo, što za ovaj slučaj potom treba uraditi, radi operativni sistem i to u sledećim koracima: Oduzima se procesor datom procesu, njegov kontekst čuva i proces stavlja u red blokiranih procesa. Organizuje se dovlačenje date stranice sa diska u neki od blokova operativne memorije. Dodeljuje se procesor nekom od radno sposobnih procesa. Tada se restaurira njegov kontekst. U okviru toga se u programski brojač upisuje nova vrednost i time kontrola predaje tom novom procesu.

Dovlačenje stranice sa diska u neki od blokova operativne memorije se realizuje u sledećim koracima: Traži se blok u koji će se smestiti data stranica. Pri tome se izvršava jedan od sledeća dva koraka: Ukoliko ima slobodnih blokova po nekom algoritmu se odlučuje koji blok treba dodeliti datoj stranici. Ukoliko nema slobodnih blokova po nekom algoritmu se odlučuje koju stranicu treba izbaciti iz operativne memorije da bi se blok u kome se ona nalazi oslobodio i dodelio datoj stranici.

Ukoliko je stranica odabrana za izbacivanje modifikovana mora se vratiti na disk pre nego što se blok u kome se ona nalazi koristi da se u njega dovuče nova stranica. Adresa na disku stranice odabrane za izbacivanje dobija se iz polja disk deskriptora stranice. Po završenom vraćanju date stranice na disk, u polje V deskriptora stranice koja je vraćena na disk upisuje se nula. Dovlači se data stranica sa diska u odabrani blok operativne memorije. Adresa date stranice na disku dobija se iz polja disk deskriptora stranice. Po završenom dovlačenju date stranice sa diska u polje block deskriptora stranice upisuje se broj bloka, a u polje V jedinica. Proces za koji je dovučena stranica prevodi se u red radno sposobnih procesa. U nekom trenutku dati proces ponovo dobija procesor. Dati proces će ponovo generisati adresu za koju je bilo utvrđeno da je iz stranice koja nije bila u memoriji. Pošto je sada data stranica u memoriji ponoviće se koraci za slučaj kada je stranica u memoriji.

15

Page 16: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

STRANIČENJE NA ZAHTEV (engl. demand paging) - DP

Potrebno je posebno istaći da svaki proces ima sopstvenu tabelu stranica i da se, kada su sve njegove stranice učitane u radnu memoriju, napravi tabela stranica za proces i učita u radnu memoriju. Svaka tabela i stavka sadrži broj okvira odgovarajuće stranice u radnoj memoriji

Straničenje na zahtev koristi koncept sličan prebacivanju. Proces je smešten na sekundarnoj memoriji, obično disku. Kada se namerava izvesti proces upisuje se samo jedan njegov deo u radnu memoriju. Kod upisivanja procesa u memoriju uobičajeno se koristi tzv. lenji prebacivač (engl. lazy swapper) koji upisuje stranicu u memoriju tek kada je ona potrebna. Termin swapper može se smatrati netačnim jer se on obično odnosi na prebacivanje celog procesa. Ispravnije je upotrebiti termin pegger koji se odnosi na prebacivanje stranice. Proces se sada može promatrati kao niz stranica koji se prema potrebi upisuju u memoriju.

Ovakav pristup dodeli memorije zahteva i određenu sistemsku podršku. Prvenstveno potrebno je razdvojiti koje su stranice upisane u memoriju, a koje se samo nalaze na disku. Ovaj problem rešava se proširenjem tablice stranica bitom prisutnosti koji daje informaciju da li se stranica nalazi u radnoj memoriji ili ne.

Slika 5. Tablica stranica kad sve stranice nisu u radnoj memoriji

Kada se pristupa pojedinoj stranici, operativni sitem preko tablice stranica ispituje da li je adresirana stranica u memoriji ili ne. Ako je stranica upisana u fizičku memoriju, bit prisustva je postavljen u jedinicu, tada se izračunava fizička adresa naredbe ili podatka i pristupa mu se. Ali

16

virtuelna memorija

Page 17: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

ako adresirana stranica nije u memoriji tada je potrebno tu stranicu upisati u memoriju i tek onda izvršiti pristup. Procedura pristupa stranici može se opisati na sledeći način:

1. Sistem prvo proverava bit prisustva adresirane stranice kako bi se odredilo da li je stranica u memoriji ili ne;

2. Ukoliko stranica nije u memoriji (došlo je do tzv. promašaja) generiše se prekid koji dojavljuje operativnom sistemu da treba pronaći stranicu na sekundarnoj memoriji i prebaciti je u radnu memoriju. Obično promašaj rezultira prekidom prava korišćenja procesora, te se proces prebacuje u red čekanja na U/I uređaj, u ovom slučaju disk;

3. Oprativni sistem pronalazi slobodan okvir u radnoj memoriji (operativni sistem vodi listu slobodnih okvira);

4. Prebacuje se tražena stranica u odabrani okvir;5. Osvežava se tablica stranica procesa na način da se stranici pridružuje dodijeljeni okvir. Ovim

je praktično proces spreman da nastavi s izvođenjem;6. Prekinuta naredba se ponovo izvodi a stranici se pristupa kao da je ona oduvek bila u memoriji.

Opisani proces prikazan je slikom 6.

Slika 6. Koraci u slučaju promašaja stranice

17

virtuelna memorija

virtuelna memorija

Page 18: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

PF (page fault)

Koraci u manipulisanju sa PF-om:1. Referenca (load M) prouzrokovala je prekid PF, jer je prilikom čitanja stranice u tabeli

detektovan invalid bit.2. Operativni sistem poziva sistemsku rutinu za obradu, PF. Ukoliko referenca nije validna,

proces se prekida jer sadrži pogrešnu instrukciju. Ukoliko je referenca validna, PF započinje učitavanje stranice u memoriju.

3. PF rutina pronalazi stranicu na disku, u prostoru za razmenjivanje.4. PF rutina traži slobodan okvir u fizičkoj memoriji, nakon čega prebacuje stranicu sa diska u

pronađeni slobodan okvir.5. PF rutina ažurira tabelu stranica. Na ulazu koji je napravio PF prekid, upisuje se adresa okvira i

poništava i bit (postavlja se v bit).6. Prekinuta instrukcija koja je uzrokovala PF prekid izvršava se iz početka, s tim što sada ima

sve što joj treba u memoriji.

Slika 7. Koraci u manipulisanju sa Page fault-om

HARDVER POTREBAN ZA STRANIČENJE NA ZAHTEV - DP

Za realizaciju DP tehnike neophodni su hardver za straničenje i hardver za razmenjivanje. Sledeće dve komponente su obavezne:

1. Tabela stranica – Eksplicitno se zahteva prisustvo bita validnosti u tabeli stranica. Pomoću bita validnosti, koji se čuva u tabeli stranica, može se opisati trenutni položaj stranice. Vrednost bita v (engl. valid), ukazuje na to da se logička stranica nalazi u memoriji. Vrednost bita i (engl. invalid), ukazuje na to da se ne nalazi u memoriji, već na disku, u swap prostoru. Vrednost i takođe može označiti da stranica ne pripada adresnom prostoru diska.

2. Sekundarna tabela – Služi za smeštaj svih stranica koje nisu u memoriji. Po pravilu, koristi se disk.

18

Page 19: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

PERFORMANSE DP TEHNIKE

Performanse DP tehnike zavise od tri faktora: 1. verovatnoće da se dogodi PF greška (p, p pripada skupu od 0 do 1);2. trajanja memorijskog ciklusa (tMA) i trajanja obrade PF prekida (tPF);3. efektivno vreme pristupa memoriji (Effective Access Time - EAT) – ukoliko se koristi

DP tehnika iznosi: tEA = (1 - p) * tMA + p * tPF .

Razmotrimo od čega zavisi trajanje obrade PF prekida. Uprošćeno, komponente obrade PF prekida su :

Servisiranje PF prekida prekidni signal PF izaziva prelazak u operativni sistem; čuvanje konteksta prekinutog procesa (registri procesora); određivanje da li je prekidni signal izazvan PF greškom;

Čitanje stranice disk I/O izazva čekanje, tj. blokadu PF rutine; dok se čeka na disk CPU se daje nekom drugom; prekidni signal koji znači da je disk I/O operacija završena; određivanje da li je disk I/O prekidni signal;

Restrartovanje procesa koji je izazvao PF korekcija tabele stranica; obnova konteksta procesa;

COW TEHNIKA (COPY-ON-WRITE).

Copy-on-Write (COW) - omogućava da roditelji i dete proces inicijalno dele iste stranice u memoriji. Ako bilo koji proces pokuša da modifikuje deljenu stranicu, tada će se prvo kreirati kopija za tu stranicu. CoW tehnika funkcioniše na sledeći način: stranice roditeljskog procesa inicijalno se ne kopiraju, niti se nova memorija dodeljuje procesu detetu. Procesi roditelj i dete inicijalno dele sve stranice, koja se označava sa CoW. Ako bilo koji proces pokuša da modifikuje stranicu, najpre se pravi kopija stranice koja se dodeljuje tom procesu. Nakon toga, proces može da izmeni svoju kopiju.

MEMORIJSKI MAPIRANE DATOTEKE (MEMORY MAPPED FILES)

Memorijski mapirana I/O datoteka omogućava da se I/O datotekama pristupa preko memorijskih referenci tako što se deo virtuelnog memorijskog prostora dodeli datotekama. Inicijalni pristup datoteci se odvija preko DP tehnike koja će izazvati PF grešku i kao rezultat te greške deo datoteke će se učitati u memoriju. Sledeće čitanje/upis u/iz datoteke se tretira kao običan pristup memoriji. Pristup datoteci je uprošćen (brži) ako se I/O datoteci pristupa kroz memoriju češće nego preko read-write sistemskih poziva. Deljenje datoteke: omogućava da više procesa mogu deliti istu datoteku tako što se datoteka učita u memoriju.

19

Page 20: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Slika 8. Memorijski mapirane datoteke

PROBLEM ZAMENJIVANJA STRANICA KOD VIRTUELNE MEMORIJE

Kod pre-alociranja memorije pojavljuje se veliki broj PF grešaka, tada se koristi zamena stranica. Koristi se dirty bit koji opisuje da je stranica modifikovana – na disk se upisuju samo modifikovane stranice. Zamena stranica je odvojena između logičke i fizičke memorije - velika virtuelna memorija se koristi samo kada je fizička memorija mala.

Na slici su prikazana dva procesa sa po 4 logičke stranice, i memorija sa 8 okvira, koja je trenutno popunjena. Proces P1 izvršava instrukciju load M koja ima referencu na stranicu 3. Stranica 3 se ne nalazi u fizičkoj memoriji, nego na disku, tako da nastupa PF prekidni signal. Kako nema slobodnih okvira, jedan mora da se žrtvuje i da se oslobodi za stranicu M. Zamena stranica prikazano na slici funkcioniše na sledeći način:

Slika 9. Efekat povećanja broja aktivnih procesa na sistemima sa VM

20

Page 21: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

1. Najpre se bira okvir u koji će biti smeštena željena stranica. Ako ima slobodnih okvira, uzima se jedan od njih. Ukoliko nema nijednog slobodnog okvira, pomoću algoritma za zamenjivanje stranica bira se žrtva (engl. victim), to jest okvir u kome se nalazi stranica koja će biti zamenjena.

2. Žrtvovana stranica se upisuje na disk ukoliko je sadržaj okvira izmenjen u odnosu na postojeću sliku na disku. Ovaj korak zahteva da se u tabelu stranica uvede bit čistoće (engl. dirty flag). On opsuje da li je okvir izmenjen, ali znatno poboljšava performanse, jer se sadržaj neizmenjenih okvira ne prebacuje na disk.

3. Žrtvovani okvir se u tabeli stranica obeležava bitom i (engl. invalid) kao nevalidan.4. Željena stranica se učitava u oslobođeni okvir.5. Tabela stranica se ažurira i nova stranica se – bitom validnosti v(engl. valid) – obeležava kao

validna.

Slika 10. Zamena stranica

ALGORITMI ZA ZAMENU STRANICA

Najosnovniji su sledeći algoritmi:

1. FIFO - First-In-First-Out;2. LRU - Least Recently Used; 3. Optimal;4. LFU - Least Frequently Used ;

A postoje još i sledeći:

1. NRU – Not recently used2. MFU – Most frequently used

FIFO ALGORITAM

21

Page 22: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Jedan od jednostavnijih je algoritam FIFO, koji prilikom razmene bira najstariju stranicu kao žrtvu. Kao parametar se, po pravilu, ne koristi vreme punjenja okvira stranicom, već se formira FIFO red na čiji se kraj stavljaju stranice prilikom učitavanja u memoriju. Prilikom zamene, memoriju napušta stranica koja se nalazi na početku reda.

Belady anomalija

Bilejdijeva (Belady) anomalija je karakteristična za algoritam FIFO, a odnosi se na smanjenje broja PF grešaka s povećanjem broja okvira, bez obzira na ulaznu sekvencu referenci. Ako primenimo algoritam FIFO na niz referenci: 1,2,3,4,1,2,5,1,2,3,4,5 i variramo broj okvira, dobićemo kao što je na prikazanom grafiku. Umesto strogog smanjenja broja PF sa povećanjem broja okvira, analiza pokazuje da algoritam FIFO izaziva veći broj PF-a u slučaju memorije sa 4 okvira nego u memoriji sa 3 okvira.

Slika 11. Grafik PF-a u zavisnosti od broja okvira

Slika 12. Bilejdijeva anomalija

OPTIMALNI ALGORITAM - OPT

22

Page 23: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Optimalni algoritam (OPT, MIN) jeste onaj koji daje najmanji broj PF grešaka i nikada ne dovodi do Bilejdijeve anomalije. Prilikom zamene žrtvuje se stranica koja se najduže neće koristiti, čime se maksimalno odlaže pojavljivanje sledeće PF greške. OPT je najbolji mogući algoritam, ali na žalost ne može se implementirati. Ne postoji način da operativni sistem dođe do potrebne informacije o tome, kada će koja stranica biti potrebna.

LRU ALGORITAM I NJEGOVO APROKSIMIRANJE

LRU - Least Recently Used

Za razliku od samog optimalnog algoritma, njegove aproksimacije se mogu implemetirati. Algoritam LRU kao kriterijum koristi vreme poslednje upotrebe stranice, što je podatak iz prošlosti, tako da je implementacija samog algoritma moguća. Po algoritmu LRU, zamenjuje se stranica koja najduže nije korišćena. LRU svakoj stranici dodeljuje vreme poslednjeg korišćenja, koje se ažurira po svakom pristupu stranici. Algoritam se može realizovati na sledeća dva načina:

1. Realizacija pomoću brojača - Svaka stranica ima svoj interni brojač, svaki put kada se pristupi stranici, sadržaj brojača kopira se u interni brojač. Kada dođe do PF prekida, algoritam pregleda sve interne brojače i bira stranicu čiji je broj najmanji (što znači da najduže nije korišćena);

2. Realizacija pomoću steka - formira se stek koji opisuje redosled pristupanja stranicama (head list & tail list). Nakon PF prekida: bira se stranica sa vrha steka na njeno mesto se stavlja stranica kojoj se pristupa .

Ova realizacija je veoma spora jer se pri svakom pristupu memoriji stek ažurira. Može se aproksimirati: pomoću hardverske podrške u obliku bita reference (engl. reference bit, R-bit) i,da bi se dobila informacija o redosledu korišćenja stranica, uvode se dodatni bitovi koji se koriste u kombinaciji sa R-bitovima.

LRU aproksimativni algoritmi

Neki sistemi obezbeđuju hardversku podršku za algoritam LRU, obično u u obliku bita reference (engl. reference bit, R-bit) koji se nalazi u tabeli stranica. Za svaki ulaz u tabeli stranica postoji bit reference koji se postavlja kad god se stranica, to jest okvir, referencira. Vrednost R bitova inicijalno se postavlja na 0. Nakon određenog vremena, R bit se briše pomoću tajmerskog prekida. R bitovi obezbeđuju informaciju o korišćenju konkretnog okvira, ali ne i redosledu korišćenja okvira. Da bi se dobila informacija o redosledu korišćenja stranica, uvode se dodatni bitovi koji se koriste u kombinaciji sa referentnim bitom. Uzima se jedan bajt koji se dodeljuje svakom ulazu u tabelu stranica čija je početna vrednost 0.

Druga šansa - FIFO baziran

23

Page 24: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Koristi referentni bit. Kada treba izbaciti stranicu, uzima se poslednja iz reda čekanja, i pogleda R bit. Ako stranica ima referenti bit R = 1. onda se R setuje na 0, a stranica se ostavlja u memoriji. Zatim se gleda sledeća stranica na kraju reda.

Algoritam zamene stranica poznat pod imenom druga šansa (engl. Second Chance) varijanta je algoritma FIFO koja u obzir uzima i korišćenost stanica. Ovaj kombinovani kriterijum predstavlja pokušaj izbegavanja nedostatka FIFO rešenja. Kao pomoć, koristi se vrednost R (reference) bitova (1 ako smo pristupili stranici, 0 ako nismo). Potencijalna žrtva je stranica na kraju reda čekanja. Ako je za stranicu R = 0, stranica se dugo nalazi u memoriji, a da joj nismo pristupili. Dakle, stranica očigledno nije potrebna, pa se može žrtvovati. Ako je R = 1, stranica je dugo u memoriji, ali je nedavno korišćena. R bit te stranice biće resetovan posle provere, a sama stranica biće prebačena na početak reda opsluživanja. Pretraga se nastavlja: sledeća potencijalna žrtva opet je stranica na kraju reda. Ako je stranica korišćena (R = 1), dobiće još jednu šansu, a ako nije, žrtvovaće se. Algoritam nastavlja rad dok se ne pronađe žrtva. Jedna od mogućih realizacija ovog algoritma koristi kružni red čekanja, tako da se ovaj algoritam naziva i satnim algoritmom (engl. clock algorithm).

Slika 13. Druga šansa – realizacija pomoću kružnog reda čekanja

POBOLJŠANI DRUGA ŠANSA ALGORITAM

NRU – Not Recently Used

Na osnovu vrednosti R (označava da li smo pristupili tom okviru) i M (označava da li smo menjali sadržaj tog okvira) bitova okvire delimo u 4 klase:

klasa 0. (0,0) stranica nije ni korišćena ni modifikovana

24

Page 25: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

klasa 1. (0,1) stranica nije korišćena ali je modifikovana klasa 2. (1,0) stranica je korišćena ali nije modifikovana klasa 3. (1,1) stranica je i korišćena i modifikovana

1. Stranica za zamenu je svaka stranica u najnižoj klasi2. Svaka klasa sa više stranica je FIFO bazirana

FREKVENCIJSKI BAZIRANI ALGORITMI.

Čuva informaciju koliko je puta svaka stranica bila referencirana.

LFU (engl. least frequently used) algoritam: zamenjuje stranicu koja ima najmanji broj referenci.

MFU (engl. most frequently used) algoritam: baziran na činjenici da je stranica sa najmanjim brojem referenci verovatno upravo učitana i upravo treba da se koristi.

ALOKACIJA OKVIRA FIZIČKE MEMORIJE PO PROCESIMA

Minimalan broj okvira po procesu zavisi od konkretne procesorske arhitekture, a najmanji je dva, zato što instrukcija koja se sastoji od više bajtova može da bude na granici između dve stranice. Maksimalan broj okvira koji proces može da dobije ograničen je velišinom fizičke memorije.

Dve najvažnije šeme za alokaciju:

1. fiksna alokacija - Jednaka alokacija – npr., ako ima 100 okvira i 5 procesa, svaki dobija 20 stranica.

2. proporcionalna alokacija - Svakom procesu pripašće sledeći broj okvira:

3. prioritetna alokacija - Koristi šemu za proporcionalnu alokaciju upotrebljavajući prioritet češće nego veličinu.

Ako proces Pi generiše PF, postoje dva načina za zamenu

1. bira za zamenu jedan od njegovih okvira.2. bira za zamenu okvir čiji proces ima najmanji prioritet.

GLOBALNA I LOKALNA RAZMENA STRANICA

25

Page 26: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

1. Globalna zamena – Algoritmu se dozvoljava da odabere bilo koji okvir fizičke memorije, što znači da jedan proces može žrtvovati tuđu stranicu (to jest poslati je u swap prostor). Broj okvira dodeljenih procesu može se menjati u vremenu. Na broj PF prekida utiču i drugi procesi.

2. Lokalna zamena – Algoritmu se dozvoljava da odabere bilo koji okvir dodeljen procesu koji želi da taj okvir napuni svojom stranicom. Prosto rečeno, jedan proces može žrtvovati isključivo svoje stranice. Broj okvira dodeljenih procesu ne menja se u vremenu. U slučaju lokalne zamene, proces sam diktira svoje PF prekide (drugi procesi ne utiču na broj PF prekida koje taj proces izaziva).

Lokalna zamena ima manu, jer blokiran proces ne može ustupiti svoje okvire drugim procesima, što znači da aktivan proces mora žrtvovati sopstvene stranice. Zbog toga globalna zamena daje bolje rezultate.

THRASHING EFEKAT

Proces zahteva radnu memoriju kao resurs. Ukoliko broj raspoloživih okvira padne ispod minimalne vrednosti, proces se mora dovesti u stanje WAIT jer resurs nije slobodan pa proces ne može da se izvršava, ali su veoma česte PF greške. Pri tome, proces veoma često ili stalno zamenjuje svoje stranice, što uključuje veliki broj I/O operacija sa diskom. Pojava čestog zamenjivanja stranica, koja nastaje kao posledica visokog stepena multiprogramiranja, naziva se efekat zasićenja (engl. trashing). U takvim situacijama, performance se značajno pogoršavaju. Razmatrajmo sledeći slučaj: ako je stepen iskorišćenja CPU-a previše mali, operativni sistem povećava stepen multiprogramiranja tako što aktivira nove procese.

Slika 14. Thrashing

Radi zaštite od zasićenja, proces mora unapred obezbediti informaciju o broju okvira koje će tražiti u toku svog izvršavanja. U svaki proces uvešćemo model lokalnosti koji će nam pomoći da objasnimo efekat zasićenja.

Lokalnost predstavlja skup stranica koje proces koristi zajedno u jednom intervalu vremena. Proces može menjati svoje lokalnosti a one se mogu preklapati.Efekat zasićenja nastupa kada je suma lokalnosti za sve aktivne procese veća od fizičke memorije.

Uvodimo nov model koji ćemo nazvati radni model (engl. working-set model).D º prozor radnog skupa º fiksni broj referenciranih stranica

26

Page 27: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

Primer: 10,000 instrukcija (memorijskih refernci)WSSi (veličina radnog skupa procesa Pi) = ukupan broj stranica koje proces traži u vremenskom prozoru D D = S WSSi º ukupna veličina radnog prostoraAko je D > m Þ Thrashing . Kada D dođe do veličine sistemske memorije, pojedini procesi suspenduju na disk.

Slika 15. Radni model (Working-Set Model)

PREPAGING

Kada se koristi čista DP tehnika, prilikom pokretanja procesa dolazi do velikog broja PF grešaka. Ukoliko je poznata lista stranica koje će proces zahtevati, što je siguran slučaj sa suspendovanim procesom u swap prostoru, može se primeniti tehnika straničenja unapred (engl. prepaging). Pri primeni te tehnike, u memoriju se odjedanput učitava više stranica, za razliku od čiste DP tehnike koja učitava samo jednu stranicu.

Tehnika se izvodi na sledeće način: operativni sistem prati radno stanje svih aktivnih procesa. Kada se proces suspenduje, na disku se osim stranica čuva i njegov radni skup (engl. working set). Radni skup procesa može se obnoviti nakon izlaska iz suspendovanog stanja.

Slika 16. Broj PF grešaka u funkciji broja okvira

VELIČINA STRANICE

Na izbor veličine stranice utiču mnogi faktori. Faktori koji utiču da stranice budu veće su:

27

Page 28: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

1. Veličina tabele stranica (što su stranice veće, tabele stranica je manja, pa je manje i premašenje sistema);

2. I/O ciklusi swap tehnike (manji broj većih transfera podataka traje kraće od većeg broja manjih transfera);

3. TLB efikasnost (poželjno je da sav radni prostor jednog procesa može da stane u TLB procesora, što se postiže samo ako su stranice veće).

Faktori koji utiču da stranice budu manje jesu:

1. Bolje iskorišćenje memorije;2. Manja interna fregmentacija (manja stranica=>manja fragmentacija)

I/O LOCK

Dok proces obavlja I/O transfer:2. Može biti suspendovan;3. Stranica za I/O transfer može biti dodeljena drugom procesu; i4. Postoje dva rešenja za ovaj problem.

I/O se nikad ne izvršavaja u korisničkoj memoriji nego u kernelskim baferima; Mehanizam za zaključavanje stranice;

1. I/O zaključavanje – Stranice su ponekad zaključane u memoriji.2. I/O zaključavanje: Stranice koje se koriste za kopiranje datoteke sa uređaja moraju biti

zaključane od buduće selekcije uz pomoć algoritma za zamenu stranica.

Slika 17. Razlog zbog kog se okviri koji se koriste moraju biti u memoriji

28

Page 29: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

ZAKLJUČAK

Prednost virtuelne memorije je u tome što se omogućava efikasnu upotrebu raspoloživih resursa računarskog sistema. Jednostavna je podela upravljanja, utvrđivanje odluka i sadrži prihvatljivu raspodelu rada. Kod straničenja dolazi do izbegavanja nepotrebnih događaja te lakšeg i jednostavnog deljenja stranica. Prilikom straničenja na zahtjev brže i efikasnije se pokreću programi u odnosu na radnu memoriju, sa druge strane postoje i određeni nedostaci ovog načina rada. Veličina memorije i veličina programa koji treba realizovati mogu se značajno razlikovati. Potreban je poseban tvrdi disk (hardware) za prevođenje adresnog prostora. Prilikom tog prevođenja adresnog prostora produžava se vrieme radnog ciklusa memorije, može doći i do unutarašnje fragmentacije.

LITERATURA

29

Page 30: Seminarski rad Operativni sistemi - Miodrag Kovačević - IT 161-2011

[1] http://www.link-elearning.com/linkdl/elearning/jedinica.php?IDJedinice=405[2] Elektrosko izdanje udzbenika za elektrotehnčke fakultete „Računarske tehnike i memorije u računarima“ http://rti.etf.rs/rti/ri3aor/lab/KES_OPIS.pdf[3] Elektornsko izdanje knjige „Memorije“http://rti.etf.rs/rti/ri3aor/literatura/predavanja/Memorija_iz_AOR1_2005_2006_v2.pdf[4] Operating systems: Internlas and Design Principles, Fifth edition,2005 by Pearson education, Upper Saddle River, New York 07458, USA

30