View
393
Download
5
Category
Preview:
DESCRIPTION
Seminarski rad
Citation preview
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.
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
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
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
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
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
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
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
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
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
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
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
Recommended