seminarski rad - upravljanje memorijom - segmentacija.doc

16
VISOKA POSLOVNA ŠKOLA STRUKOVNIH STUDIJA BLACE SEMINARSKI RAD PREDMET: OPERATIVNI SISTEMI Tema: Upravljanje memorijom - segmentacija Mentor: Student: Suzana Marković Darko Potić

Upload: darko-potic

Post on 12-Aug-2015

398 views

Category:

Documents


5 download

DESCRIPTION

Seminarski rad

TRANSCRIPT

Page 1: Seminarski rad - Upravljanje memorijom - segmentacija.doc

VISOKA POSLOVNA ŠKOLA STRUKOVNIH STUDIJA BLACE

SEMINARSKI RAD

PREDMET: OPERATIVNI SISTEMI

Tema: Upravljanje memorijom - segmentacija

Mentor: Student:

Suzana Marković Darko Potić

br. indeksa: 52/11r

Blace, 2013.

Page 2: Seminarski rad - Upravljanje memorijom - segmentacija.doc

Sadržaj

UVOD...................................................................................................................3

1. RAM memorija...............................................................................................4

2. Upravljanje memorijom.................................................................................5

2.1 Dodela memorije.............................................................................................................5

2.2 Logički i fizički adresni prostor....................................................................................6

2.3 Zaštita memorije.............................................................................................................6

2.4 Razmena ( swap )............................................................................................................7

3. Tehnike dodele memorije...............................................................................7

4. Segmentacija...................................................................................................8

4.1 Hardverska podrška segmentacije................................................................................8

4.2 Zaštita i deljenje segmenata..........................................................................................9

Zaključak...........................................................................................................11

Literatura..........................................................................................................12

2

Page 3: Seminarski rad - Upravljanje memorijom - segmentacija.doc

UVOD

Operativni sistem je, u osnovi, softver ( program, skup više programa ), koji

omogućava komunikaciju između korisnika, odnosno korisničkih aplikacija i hardvera

računara.

Operativni sistem objedinjuje u celinu raznorodne delove računara i sakriva od

krajnjeg korisnika detalje funkcionisanja ovih delova. Operativni sistem stvara za korisnika

radno okruženje koje rukuje procesima i datotekama, umesto bitovima, bajtovima i

blokovima.

Osnovne funkcije operativnog sistema su: upravljanje dodelom procesora, upravljanje

dodelom memorije i upravljanje ulazno/izlaznim uređajima.

U ovom seminarskom radu ću objasniti pojam RAM memorije, kao i proces

upravljanja memorijom koji predstavlja veoma bitanu i jedanu od tri osnovne funkcije

operativnog sistema.

3

Page 4: Seminarski rad - Upravljanje memorijom - segmentacija.doc

1. RAM memorija

Da bismo govorili o funkciji upravljanja memorijom, pre svega, moramo razjasniti šta

predstavlja RAM memorija u samom računaru.

RAM ( engl. Random Access Memory, memorija sa slučajnim pristupom ) ili

operativna memorija, označava vrstu memorije koja je direktno adresibilna i njenom sadržaju

se može pristupiti proizvoljnoj lokaciji, a ne samo redom ( sekvencijalno, kao kod traka ).

Najčešće se koristi u računarima kao primarna ili glavna memorija, mada to nije neophodno.

Pod terminom RAM se često smatraju memorije koje gube sadržaj po prestanku

napajanja, ali to nije neophodno jer skraćenica RAM jedino označava slobodu u redosledu

pristupa.

RAM memorija se smatra najznačajnijim resursom svakog računara. Bez radne

memorije proces tj. program ne može da obavi neku značajniju aktivnost.

Postoji više tipova RAM memorija, gde u opštem smislu nema neke tačno definisane

podele, ali po nekom nepisanom pravilu možemo ih razvrstati u uobičajne vrste RAM

memorije i ostale vrste.

Uobičajne vrste RAM memorija po hronologiji su:

– SRAM, skraćeno od engl. Static RAM

– NV-RAM od engl. Non-Volatile RAM

– DRAM engl. Dynamic RAM

– SDRAM engl. Synchronous DRAM

– DDR SDRAM engl. Double Data Rate Synchronous DRAM memorija

Vrsta koja se danas najčešće koristi u personalnim računarima je RAM memorija

DDR tipa, gde postoje DDR2 i DDR3 tip memorije koje su zapravo usavršene verzije DDR

memorije čija se efikasnost ogleda u brzini i kapacitetu u odnosu na starije tipove poput

SDRAM i DDR RAM tipa memorija.

4

Page 5: Seminarski rad - Upravljanje memorijom - segmentacija.doc

Slika 1. RAM memorija (DDR tip memorije)

2. Upravljanje memorijom

Upravljanje memorijom ( memory management ) – drugi je najvažniji zadatak

operativnih sistema, posle dodele procesora, pri čemu se misli na RAM memoriju; dakle, ne

na eksternu memoriju.

Razni operativni sistemi koriste različite metode ( tehnike ) upravljanja memorijom:

krajnje jednostavne, ili veoma složene ( straničenje i segmentacija ). Svaka od tih metoda ima

prednosti i nedostatke. Izbor metode zavisi od hardverske podrške, tj. od arhitekture

procesora.

Zadatak operativnog sistema je da upravlja memorijom. On posmatra memoriju kao

resurs koji treba da se dodeli, i da se deli između više aktivnih procesa. Efikasno upravljanje

memorijom veoma je važno za sisteme koji rade sa više programa ( tzv. multiprogramski

sistemi ). Ako se samo nekoliko procesa nalazi u memoriji, onda će najveći deo vremena svi

procesi čekati na U/I operacije i procesor će biti besposlen. Prema tome da bi procesor bio

efikasno iskorišćen poželjno je u glavnoj memoriji održati što više procesa.

Dakle memorija treba da se alocira, tj. dodeli da bi se korisno procesorsko vreme

dodelilo spremnim procesima.

2.1 Dodela memorije

U sistemima koji rade sa jednim programom, glavna memorija se deli na dva dela.

Jedan deo je za jezgro operativnog sistema, najčešće niži deo ( kernel space ), a drugi za

program koji se trenutno izvršava i koji spada u viši deo odnosno deo memorije koji je

zadužen za korisničke procese tj. programe ( user space ). Dakle memorija se deli na dve

particije.

U sistemima koji rade sa više programa korisnički deo memorije mora se dalje deliti i

prolagoditi radu sa više procesa.

5

Page 6: Seminarski rad - Upravljanje memorijom - segmentacija.doc

Glavni problem u upravljanju memorijom je dodela memorije procesima koji su u

ulaznom redu ( alokacija memorije ).

2.2 Logički i fizički adresni prostor

Adresa koju generiše procesorska instrukcija je logička, a adresa same memorijske

jedinice je fizička.

Logičke i fizičke adrese su potpuno iste u fazi prevođenja i u fazi učitavanja

programa, ali se razlikuju u fazi njegovog izvršavanja ( logičke adrese se u fazi izvršavanja

nazivaju i virtuelnim adresama ).

Skup svih logičkih adresa koje generiše program naziva se logički ili virtuelni adresni

prostor, a skup svih fizičkih adresa koje njima odgovaraju naziva se fizički adresni prostor.

Mapiranje ( preslikavanje ) virtuelnog adresnog prostora u fizički obavlja hardverski

uređaj koji se naziva MMU ( Memory Management Unit ) – jedinica za upravljanje

memorijom. Osnovni zadatak MMU je dakle upravljanje i dodela radne memorije. Šeme

mapiranja mogu biti veoma složene. Najjednostavnija je šema koja koristi relokacioni

registar. Relokacioni registar u MMU definiše adresu fizičkog početka programa. Svaka

logička adresa koju generiše program sabira se sa vrednošću relokacionog registra, i tako se

dobija fizička adresa. Korisnički program uvek počinje od nulte adrese i ne treba da vodi

računa o svom fizičkom prostoru, osim o gornjoj granici programa ( max ). Logički adresni

prostor koji se nalazi u opsegu [ 0, max ] mapira se u opseg [ R+0, R+max ], gde je R

vrednost relokacionog registra, tj. fizička adresa početka programa.

2.3 Zaštita memorije

Zaštita OS od korisničkih procesa i međusobna zaštita korisničkih procesa u vezi sa

pristupom memorijskim sekcijama može se realizovati pomoću dva registra:

– relokacionog registra, koji sadrži najnižu adresu procesa,

– registra ograničenja, koji sadrži najveći opseg logičkih adresa procesa.

6

Page 7: Seminarski rad - Upravljanje memorijom - segmentacija.doc

MMU mapira svaku logičku adresu procesa dinamički, tako što prvo proverava da li

je logička adresa manja od vrednosti registra ograničenja, a ako jeste, dodaje vrednost

relokacionog registra. Ukoliko nije manja ( veća je ) znači da je greška u adresiranju.

Dinamička promena veličine memorije koja pripada OS, znači da se delovi koji nisu

potrebni privremeno izbacuju odnosno da se ponovo dovedu u memoriju kada zatrebaju.

2.4 Razmena ( swap )

Prilikom izvršavanja, proces se mora nalaziti u radnoj memoriji.

Postoje situacije kada se proces može privremeno prebaciti iz memorije na disk, kako

bi se oslobodila memorija. Oslobođena memorija puni se drugim procesom. Posle izvesnog

vremena, proces se može vratiti sa diska u memoriju kako bi se nastavilo izvršavanje.

Razmena ( swap ) koristi se u prioritetnim šemama za raspoređivanje procesa, gde se

procesi visokog prioriteta čuvaju u memoriji, dok se svi procesi niskog prioriteta upisuju na

disk i čekaju da se oslobodi memorija. Ova varijanta razmenjivanja naziva se roll out, roll in.

Proces koji se razmenjuje mora biti potpuno oslobođen aktivnosti – ne sme da radi,

niti da čeka kraj neke ulazno - izlazne operacije ( stanja READY i WAIT ).

Tehnika razmene zahteva postojanje tri komponente:

– prostor na disku ( swap space ), na koji će se smeštati “uspavani” procesi;

– mehanizan swap - out koji prebacuje proces iz memorije na disk;

– mehanizan swap - in koji vraća “uspavani” proces sa diska u memoriju.

Najveći deo vremena u ciklusima razmene otpada na prenos podataka između

memorije i diska.

Swap postoji na svim modernim OS, u različitim varijantama.

Tehnika razmene je tesno povezana sa tehnikom virtuelne memorije.

3. Tehnike dodele memorije

Tehnike dodele memorije mogu se grupisati na tehnike kontinualne i diskontinualne

dodele.

Kontinualna dodele ili alokacija ( contiguous alocation ) se sastoji u tome da se i

logički i fizički adresni prostor procesa sastoje se od kontinualnog niza memorijskih adresa,

7

Page 8: Seminarski rad - Upravljanje memorijom - segmentacija.doc

pri čemu memorijske particije koje se dodeljuju procesima, mogu, po veličini, biti jednake

( fiksne ) ili različite ( promenjive ). Zbog toga se naziva i statička i dinamička dodela

particija.

Kod diskontinualne alokacije, u opštem slučaju, fizički adresni prostor procesa nije

realizovan kao kontinulani niz memorijskih adresa. Diskontinualna alokacija obuhvata

metode:

• straničenja,

• segmentacije i

• straničenja sa segmentacijom.

4. Segmentacija

Sama struktura programa ( korisničkih procesa ) obično nije kontinualna ( programi se

dele na više nezavisnih celina: glavni program, procedura, funkcije, moduli ). Podaci se

takođe sastoje od više celina ( tabele, polja, stek, promenljive ).

Svaki od ovih logičkih segmenata dobija ime po kome se referencira i može

nezavisno da učita u memoriju, pa ne zahteva kontinualan memorijski prostor.

Po pravilu, programer definiše logičke segmente u izvornom programu, a prevodilac

na osnovu toga pravi memorijske segmente.

Segmentacija je metoda upravljanja memorijom koja podržava logički korisnički

pogled na memoriju.

Logički adresni prostor sastoji se od skupa segmenata, a svaki segment ima

jedinstveno ime i dužinu.

Logička adresa sastoji se od dva dela:

– imena segmenta ( obično se zadaje broj koji predstavlja identifikator segmenta, tj.

broj segmenta, s ),

– pomeraja unutar segmenta, o.

Pri segmentaciji, kao i pri programiranju s particijama promenljive dužine, javlja se

eksterna fragmentacija. Slobodna memorija se nemože iskoristiti za smeštaj segmenata

ukoliko ne postoji dovoljno velika šupljina, bez obzira na ukupnu količinu slobodne

memorije. Problem se može smanjiti sažimanjem memorije.

8

Page 9: Seminarski rad - Upravljanje memorijom - segmentacija.doc

4.1 Hardverska podrška segmentacije

Korisničke adrese su dvodimenzionalne ( dva dela ), ali se moraju transformisati u

jednodimenzionalne fizičke adrese.

Ovo mapiranje se obavlja preko tabele segmenata ( segment table ) a ima podršku i u

hardveru mikroprocesora. Svaki ulaz u tabeli segmenata opisuje tačno jedan segment, a sadrži

dva parametra ( slika 2 ):

– baznu adresu segmenata ( base ), koja definiše početnu fizičku adresu segmenta u

memoriji;

– ograničenje segmenta ( limit ), koje definiše dužinu segmenta.

Broj segmenta, s, koristi se kao ulaz u tabelu segmenata, iz koje se čitaju bazna adresa

segmenta i ograničenje.

Pomeraj, o, svakako mora biti manji od ograničenja segmenta.

Slika 2. Osnovna arhitektura dodele memorje segmentacijom

4.2 Zaštita i deljenje segmenata

9

Page 10: Seminarski rad - Upravljanje memorijom - segmentacija.doc

Tabela segmenata, pored definicije segmenta u fizičkoj memoriji može sadržati i neke

definicije zaštite, od kojih se najčešće koristi zaštita od modifikacije.

Segmenti sa kodom mogu biti definisani kao nepromenljivi ( eng. read only ).

Slično, kao u metodi straničenja, i segmenti koji se ne menjaju mogu se deliti – na taj

način se efikasno štedi memorija ( delenje koda ). Primer: dva procesa koji koriste isti editor

teksta. Svaki proces ima svoju tabelu segmenata, a segment koji sadrži kod editora, je

zajednički.

4.3 Segmentacija sa straničenjem

Najpopularnije serije procesora Intel ( 80x86 i Pentium ) i Motorola ( 68000 ) imaju

ugrađenu podršku i za segmentaciju i za straničenja ( slika 3. ), pa omogućavaju primenu

kombinovanih metoda diskontinualne alokacije, pa se procesi mogu deliti na fizički

diskontinualne logičke celine. Pri tome straničenje poništava eksternu fragmentaciju

segmenata. Primer: logička adresa sadrži broj segmenta i logički ofset unutar segmenta.

Tabela segmenata obavlja sledeće operacije:

– kontrolu veličine limita segmenta ( u slučaju prekoračenja veličine segmenta generiše

se signal memory trap ),

– i izdvajanje broja segmenta iz jedinstvene logičke adrese. Iz dela logičke adrese koji

predstavlja adresu ofseta, generiše se logička adresa stranice i ofset unutar stranice.

Logička adresa stranice se sabira sa brojem segmenta, koji onda predstavlja indeks za

pretraživanje tabele stranica, koja konačno pridružuje odgovarajuću fizičku adresu.

10

Page 11: Seminarski rad - Upravljanje memorijom - segmentacija.doc

Slika 3. Arhitektura hardverske podrške segmentacije sa straničenjem

Zaključak

Operativni sistem je, u osnovi, softver ( program, skup više programa ), koji

omogućava komunikaciju između korisnika, odnosno korisničkih aplikacija i hardvera

računara.

RAM ( engl. Random Access Memory, memorija sa slučajnim pristupom ) ili

operativna memorija, označava vrstu memorije koja je direktno adresibilna i njenom

sadržaju se može pristupiti proizvoljnoj lokaciji, a ne samo redom ( sekvencijalno, kao kod

traka ).

Upravljanje memorijom ( memory management ) – drugi je najvažniji zadatak

operativnih sistema, posle dodele procesora, pri čemu se misli se na RAM memoriju; dakle,

ne na eksternu memoriju.

Segmentacija je metoda upravljanja memorijom koja podržava logički korisnički

pogled na memoriju.

11

Page 12: Seminarski rad - Upravljanje memorijom - segmentacija.doc

Literatura

1. http://sr.wikipedia.org/sr/RAM_(меморија)

2. http://bs.wikipedia.org/wiki/RAM

3. http://tesla.pmf.ni.ac.rs/Predavanja/racunar%20sist/Knjiga%20-%20Vol4/Glava5.pdf

4. http://www2.fsr.ba/nastava/os/kolokvij2/7-upravljanje-memorijom.pdf

5. S. Pokorni, Računarski sistemi operativni sistemi, Visoka škola strukovnih studija za

informacione tehnologije, Beograd 2011.

6. R. Popović, I. Branović i M. Šarac, Operatin sistemi, Univerzitet Singidunum,

Beograd 2011

12