ࡱ> '`%bjbjDD V&&L&3 ( 222X  Ah^ ~"b???????$BhZE?M(VZ< ?@Nzzz x?zV?zz6=13R M$226BAHA92E~E83E3VVzVVVVV??^VVVAVVVV $0: JEK.J :JE.  SVEU ILI`TE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA UNARSTVA ZAVR`NI RAD br. 1414 UPRAVLJANJE SPREMNI KIM PROSTOROM U SUSTAVIMA S OGRANI ENIM RESURSIMA Marko Pla ko Zagreb, lipanj 2010 SVEU ILI`TE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA UNARSTVA ODBOR ZA ZAVR`NI RAD MODULA Zagreb, 3. o~ujka 2010. ZAVR`NI ZADATAK br. 1414 Pristupnik: Marko Pla ko Studij: Ra unarstvo Modul: Ra unarska znanost Zadatak: Upravljanje spremni kim prostorom u sustavima s ograni enim resursima Opis zadatka: Prou iti na ine upravljanja spremni kim prostorom za sustave kojima su raspolo~ivi resursi ograni eni. Posebice obratiti pozornost na slo~enost algoritma, predvidljivost trajanja, potreba za dodatnim sklopovljem, potrebnu podatkovnu strukturu. Odabrati jedan od pristupa za upravljanje spremnikom te ga ostvariti. Eksperimentalno utvrditi svojstva ostvarenog podsustava za upravljanje spremnikom te navesti mogunosti njegova koriatenja u razli itim okolinama, kao i mogua poboljaanja. Radu prilo~iti tehni ku dokumentaciju uspostavljenog sustava, rezultate analize te zaklju ke. Citirati koriatenu literaturu te dobivenu pomo. Zadatak uru en pristupniku: 5. o~ujka 2010. Rok za predaju rada: 18. lipnja 2010. Mentor: Predsjednik odbora za __________________________ zavrani rad modula: Doc.dr.sc. Leonardo Jelenkovi __________________________ Djelovoa: Prof.dr.sc. Siniaa Srblji __________________________ Doc.dr.sc. Domagoj Jakobovi  Zahvala doc.dr.sc. Leonardu Jelenkoviu za izvrsno voenje, davanje dobrih savjeta i kontrolu napretka izrade zavranog rada. SADR}AJ   TOC \o "1-3" \h \z \u  HYPERLINK \l "_Toc264497290" 1. Uvod  PAGEREF _Toc264497290 \h 5  HYPERLINK \l "_Toc264497291" 2. Postupci upravljanja spremni kim prostorom  PAGEREF _Toc264497291 \h 6  HYPERLINK \l "_Toc264497292" 2.1. Memory pool  PAGEREF _Toc264497292 \h 6  HYPERLINK \l "_Toc264497293" 2.2. Slab allocation  PAGEREF _Toc264497293 \h 7  HYPERLINK \l "_Toc264497294" 2.3. Buddy memory allocation  PAGEREF _Toc264497294 \h 7  HYPERLINK \l "_Toc264497295" 3. Detaljniji pogled na buddy algoritam  PAGEREF _Toc264497295 \h 8  HYPERLINK \l "_Toc264497296" 3.1. Opis algoritma  PAGEREF _Toc264497296 \h 8  HYPERLINK \l "_Toc264497297" 3.2. Implementacija buddy algoritma upravljanja spremni kim prostorom  PAGEREF _Toc264497297 \h 12  HYPERLINK \l "_Toc264497298" 4. Iskoristivost i analiza rezultata algoritma  PAGEREF _Toc264497298 \h 13  HYPERLINK \l "_Toc264497299" 5. Zaklju ak  PAGEREF _Toc264497299 \h 15  HYPERLINK \l "_Toc264497300" 6. Literatura  PAGEREF _Toc264497300 \h 16  HYPERLINK \l "_Toc264497301" 7. Sa~etak  PAGEREF _Toc264497301 \h 17  HYPERLINK \l "_Toc264497302" 8. Summary  PAGEREF _Toc264497302 \h 18  Uvod1. Uvod U ovom radu e bitisu opisani postupci upravljanja spremni kim prostorom za sustave s ograni enim resursima. To su oni sustavi koji nemaju na raspolaganju gigabajtne spremnike niti brze procesore. Ve dan danas takvi sustavi su zapravo mobiteli, digitalni satovi, mp3 playeri, mikrokontroleri i drugi manji ureaji, ali i oni ve polako dobijaju sve viae resursa kako tehnologija napreduje. Ukratko e bitisu opisania dva na ina upravljanja spremni kim prostorom:, a to su Memory pool  te Slab, allocation. a znatno I puno opairnije e se bavitije prikazan Buddy memory allocationalgoritam tehnikom memorijske alokacije tjkoji. je i algoritma te njegovom implementacijomiran, te detaljnije analiziran s aspekta problemimaproblema koji se u njemu javljaju, njegovom u inkovitoau i te mogunosti poboljaanju poboljaanjadoti nog. 2. Postupci upravljanja spremni kim prostorom Postoji mnogo tehnika, algoritama, na ina upravljanja spremni kim prostorom. Neki su bolji neki su loaiji, a to sve ovisi od sustava do sustava u kojima se koristi. Upravljanje spremni kim prostorom je jako va~na stvar za ra unarske sistemesustave. Zato ato jako se esto deaava da je spremni ki prostor previae podijeljen te se ne radi automatska defragmentacija ili ato je joa gore ne oslobaa se dio spremni ke memorije koji se viae nee tako brzo koristiti te dolazi do nemogunosti koriatenja spremni kog prostora. Te boljke se nalaze i u sustavima s ograni enim spremni kim prostorom kao i u veim sustavima ako se ne pazi. U nastavku su prikazana Prou iti i opisati e se tri postupka, a to su: Memory Pool, Slab Allocation i Buddy Memory Allocation. U daljnjem razmatranju detaljnije e se analizirati Buddy Memory Allocation. 2.1. Memory pool Memory pool omoguava dinami ko alociranje spremni kog prostora koje se mo~e usporediti sa funkcijom malloc. Kako su te implementacije podlo~ne fragmentaciji zbog promjenjljivih veli ina blokova, gotovo nemogue ih je koristiti u sistemima sustavima koji se vrterade u realnom vremenu, a zbog gubitaka u radnom u inku, tj. zbog nepredvidljivog trajanja alociranja spremnika (slo~enost pretra~ivanja ureene liste). Zato je puno efikasnije prealocirati odreeni broj blokova spremni kog prostora iste veli ine te tako nastaje memory pool. Takava sustav moz~e bez problema pristupati, oslobaati te alocirati teakve blokove spremnika pomou njihovih handel-ovaopisnika i runtime-a. 2.2. Slab allocation Slab allocation Jje mehanizam upravljanja spremni kim prostorom koji je namjenjen effikasnijem alociranju spremni kog prostora i uklanjanjem fragmentacije u veem opsegu. Bit tog algoritma je zadr~avanje alociranog spremni kog prostora koji je sadr~avao podatke objekta odreenog tipa kako bi ubrzo ponovno iskoristio tu taj spremni ki prostor memoriju za slijedeu alokoaciju drugog objekta koji ima istiog tipa. Slab allocation je vrlo rasprostranjen na UnixUNIX operativnim operacijskim sustavima, kao npr. FreeBSD, Linux. A od tamo je i doala ideja za nastankom slab allocation tehnike. 2.3. Buddy memory allocation Buddy algoritam, Je sli ano kao i slab-u allocation , je algoritam za upravnljanje spremni kim prostorom. Glavna ideja je dijeljenje spremni kog prostora u particije kako bi zadovoljili zahtjev za odreenim dijelom memorije spremni kog prostora kako je najbolje mogue. Postupak dijeli odreeni memorijski spremnikspremni ki prostor na polovice kako bi dodijela svakom zahtijevu za odreenim dijelom spremni kog prosotora najviae odgovarala. 3. Detaljniji pogled na buddy algoritam Detaljniji pogled na buddy memory allocationalgoritam 3.1. Opis algoritma Prva bitna stvar kod ovoga alogritma algoritma je ta ato se koristi veli ina spremni kog prostora potencije broja 2 (po etnog i samih blokova). Dakle, ve postoji ograni enje na koje se mora paziti. A odgovor na pitanje zaato potencije broja 2 je zato ato uvijek dijelimo spremni ki prostor na dva jednaka dijela. Dakle, ako imamo sistemsustav koji ima 4000 kB spremni kog prostora tada e se moi alocirati samo 211 tj. 2048 kB, a ostatak od 1952 kB e se morati podijeliti u manje blokove. Zna i u po etku se mora odrediti gornja granica x koji je najvei mogui dio spremni kog prostora kojega onda alociramo. Kada je to gotovo, programer mora odrediti i najmanji blok na koje e se maksimalno podijeliti spremni ki prostor. Ako imamo 2048 kB tj. gornja granica je 211 i stavi se donja granica na 26 tada imamo 32 bloka po 64 kB. Donja granica je nu~na zato ato smanjuje overhead spremajueg slobodnog i zauzetog spremni kog prostora. Da donja granica ne postoji, a mnogi programi bi zahtjevali mali blokove memorije spremni kog prostora od 4 kB pa do 8 kB tada bi sistemsustav gubio mnogo prostora pokuaavajui zapamtiti koji su dijelovi alocirani, a koji nisu. Tipi no donja granica je oko 4 kB kako mi se smanjio gubitak prostora, ali joa uvijek dovoljno veliki kako bi se izbjegao pretjerano veliki overhead. Zato algoritam i nije pogodan za sustave u kojima su esti zahtjevi za blokovima manjih veli ina. Kratak opis algoritma: Ako se alocira spremni ki prostor Pronai odgovarajui memorijski blok za odreeni zahtjev, 2x memorijski blok spremni kog prostora koji se jednak ili vei za zadani zahtjev Ako je naen, alocira se programu Ako nije onda se upuata u slijedei postupak Podijeli prvi vei slobodni memorijski blok spremni kog prostora na dva jednaka dijela Ako je donja granica dosegnuta alocirati taj iznos spremni kog prostora Vratiti se na po etak, pronalazak odgovarajueg memorijskog bloka spremni kog prostora Iterirati kroz postupak dok se ne nae odgovarajui blok memorijespremni kog prostora Ako se oslobaa memorijaspremni ki prostor Oslobodi blok Pogledati susjedni blok i vidjeti da li je slobodan Ako je spojiti ih te vratiti se na drugi korak te iziterirati sve dok gornja granica nije dostignuta tj. cijeli spremni ki prostor je slobodan Ono ato je va~no za napomenuti je to ato algoritam radi zapravo na principu binarnog stabla. To zna i da je metoda oslobaanja spremni kog prostora vrlo djelotvorna poato je sa~imanje vrlo brzo. Najvei broj sa~imanja je jednak log2(gornja granica/donja granica) Na kratkom primjeru biti e opisan i vidljiv rad buddy memory allocationalgoritma. 128128128128128128128128128128128128128128128128020481A12825651210242A128B51210243A128BC10244ADBC10245128DBC10246256BC10247512C102482048U primjeru se koristiImamo spremni ki prostor od 2048 kB. Najmanja veli ina blokova je 128 kB. Tablica 1. Primjer rada buddy algoritma 1. Program A zahtjeva 88 kB memorije spremni kog prostora te se sprema u 128 kB blok 2. Program B zahtjeva 130 kB spremni kog prostoramemorije te se sprema u 256 kB blok 3. Program C zahtjeva 479 kB spremni kog prostoramemorije te se sprema u 512 kB blok 4. Program D zahtjeva 32 kB spremni kog prostoramemorije te se sprama u 128 kB blok 5. Program A se oslobaa 6. Program D se oslobaa 7. Program B se oslobaa 8. Program C se oslobaa Glavno je uo iti da se prvo popunjava lijeva strana memorije (po binarnom stablu) ako ima dovoljno mjesta tek onda se ide na desnu stranu. To sprije ava nastanak nepotrebne fragmentacije te iskoriatava zadani memorijski prostor jako u inkovito. Tablica 2. Primjer nezgodnih situacija buddy algoritma 128128128128128,vB D  J ôuRu0BHhh=#hlwUCJOJQJ^JaJ憃*CJaJEHhh=#h5CJOJQJ^JaJ憃*CJaJEHhh=#hlwU5CJOJQJ^JaJ憃*CJaJhoCJOJQJ^JaJhmCJOJQJ^JaJhm5CJ(OJQJ^JaJ(hj5CJ(OJQJ^JaJ(hjCJOJQJ^JaJhj5CJOJQJ^JaJ hjhjCJOJQJ^JaJ ,xz|~D ^ ` b d f h j l n $dha$gd=# 8!%  J z XTdhC$Eƀgd=#od&$a$JdhC$Eƀgd=#dhgd=#J z | T үxZ;Z:Hhh=#hlwUOJQJ^J憃*CJaJ=Hhh=#hlwU5OJQJ^J憃*CJaJ:Hhh=#hlwUOJQJ^J憃*CJaJ'HhhlwUCJ$OJQJ^JaJ$EHhh=#hlwU5CJ$OJQJ^JaJ$憃*CJ aJ EHhh=#hlwU5CJ$OJQJ^JaJ$憃*CJ aJ HhhlwUOJQJ^J:Hhh=#hlwUOJQJ^J憃*CJaJ z | WTdhC$Eƀgd=#od&$a$TdhC$Eƀgd=#od&$a$ B iJdhC$Eƀgd=#JdhC$Eƀgd=#B D ]O>dhgd=#od&$a$dhgd=#od&QdhC$Eƀgd=#od&QdhC$Eƀgd=#od&T V  åpI2-h=#h)OJQJ^J憃*CJaJ-h=#hOJQJ^J憃*CJaJLh=#hh OJQJ^JcHdhdhdh憉憃*CJaJ3h=#h5OJQJ^J憃*5CJaJ5h=#h CJOJQJ^JaJ憃*CJaJ:Hhh=#hlwUOJQJ^J憃*CJaJ=Hhh=#hlwU5OJQJ^J憃*CJaJ:Hhh=#h<OJQJ^J憃*CJaJʶpR4:Hhh=#h<OJQJ^J憃*CJaJ:Hhh=#h<OJQJ^J憃*CJaJ:Hhh=#hOJQJ^J憃*CJaJ'HhhCJOJQJ^JaJ'Hhh=#CJOJQJ^JaJ'Hhh<CJOJQJ^JaJ:Hhh=#hOJQJ^J憃*CJaJ-h=#hW,:OJQJ^J憃*CJaJWWWWWTdhC$Eƀgd=#od&$a$TdhC$Eƀgd=#od&$a$TWTdhC$Eƀgd=#od&$a$TdhC$Eƀgd=#od&$a$026İĒ~hR3=Hhh=#h=#5OJQJ^J憃*CJaJ*Hhh=#5CJOJQJ^JaJ*Hhh=#5CJOJQJ^JaJ'HhhCJOJQJ^JaJ:Hhh=#h=#OJQJ^J憃*CJaJ'Hhh=#CJOJQJ^JaJ:Hhh=#h=#OJQJ^J憃*CJaJ:Hhh=#h=#OJQJ^J憃*CJaJ j`JdhC$Eƀgd=#TdhC$Eƀgd=#od&$a$6:<Bh궘zfR3=Hhh=#h=#5OJQJ^J憃*CJaJ'HhhCJOJQJ^JaJ'HhhCJOJQJ^JaJ:Hhh=#h=#OJQJ^J憃*CJaJ:Hhh=#h=#OJQJ^J憃*CJaJ:Hhh=#h=#OJQJ^J憃*CJaJ*Hhh5CJOJQJ^JaJ*Hhh=#5CJOJQJ^JaJ j`cQdhC$Eƀgd=#od&JdhC$Eƀgd=#$(*^`®®|fR;1$hhW,:OJQJ^Jjhg*0JU-hhOJQJ^J憃*CJaJ'HhhCJOJQJ^JaJ*Hhh5CJOJQJ^JaJ:Hhh=#h=#OJQJ^J憃*CJaJ'HhhCJOJQJ^JaJ'Hhh=#CJOJQJ^JaJ:Hhh=#h=#OJQJ^J憃*CJaJ=Hhh=#h=#OJQJ^J憃*5CJaJ O>>>$dha$gd=#od&QdhC$Eƀfgd=#od&dhgd=#od&QdhC$Eƀgd=#od&TVXZhjlοsjsPsE6Ejh"8UmHnHuh"8mHnHu2jh"8h >*B*UmHnHphuh"8mHnHuh h"80JmHnHu$jh h"80JUmHnHuhjhj5OJQJ^J$jhjhj5OJQJU^Jjhg*0JUhj5CJOJQJ^JaJho5CJOJQJ^JaJhW,:5CJOJQJ^JaJhPqOJQJ^JhW,:OJQJ^JHJL&¹««u¹«[«2jh"8h >*B*UmHnHphu jwh UmHnHuh"8mHnHu2jh"8h >*B*UmHnHphuh h"80JmHnHuh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu j}h UmHnHu 2OT.LN$dhgd=#od&$a$dhgd=#od& f# dhgd=#od& f# dhgd=#od&&(*,.0246nprt-./I¹««u¹«[«2jh"8h >*B*UmHnHphu jkh UmHnHuh"8mHnHu2jh"8h >*B*UmHnHphuh h"80JmHnHuh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu jqh UmHnHu IJKLMNOPQmnop ¹««u¹«[«2jh"8h >*B*UmHnHphu j_h UmHnHuh"8mHnHu2jh"8h >*B*UmHnHphuh h"80JmHnHuh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu jeh UmHnHu     -./ npr¹««u¹«[«2jh"8h >*B*UmHnHphu jSh UmHnHuh"8mHnHu2jh"8h >*B*UmHnHphuh h"80JmHnHuh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu jYh UmHnHu FHJNPRTVX¹««u¹«[«2j h"8h >*B*UmHnHphu jG h UmHnHuh"8mHnHu2jh"8h >*B*UmHnHphuh h"80JmHnHuh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu jMh UmHnHu 2468LNP ¹««u¹«[«2j h"8h >*B*UmHnHphu j; h UmHnHuh"8mHnHu2j h"8h >*B*UmHnHphuh h"80JmHnHuh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu jA h UmHnHu "$(*,.02:<JLNP¹eYKA1HhzfhOJQJ^JhNJOJQJ^JhjhW,:5OJQJ^JHhxfh0J2jh3h0JUcHdhdhdhxf/hphNJh0JcHdhdhdhxfhphNJCJOJQJ^J$jhjhj5OJQJU^Jh"8mHnHu$jh h"80JUmHnHuhlKmHnHujh"8UmHnHu j5 h UmHnHuPRTjx| (!^!r!!!!!!!!!!!"""mmXF"Hh.fhAt6OJQJ^J(hAthZOJQJ^J+f*61hZhAtOJQJ^JcHdhdhdh+fhZOJQJ^J1hbMhAtOJQJ^JcHdhdhdh+fHh+fhAtOJQJ^Jh5|yOJQJ^JHh*fhAtOJQJ^J1hbMhAtOJQJ^JcHdhdhdh*fjhAt0JUhbMOJQJ^J" """("0"2"6"H"J"P"R"T"`"ҽnUEUE5Hh,fhAtOJQJ^JHh.fhAtOJQJ^J1hbMhAtOJQJ^JcHdhdhdh.f1hbMhAtOJQJ^JcHdhdhdh+f1hZhAtOJQJ^JcHdhdhdh+f8Hh.fhAthAt6OJQJ^J.f*6(hAthZOJQJ^J+f*6hZOJQJ^J1hZhAtOJQJ^JcHdhdhdh.fjh30JU `"d"j"n"""""""""""0#4#<#>#@#J#v######ʹ͚{bRb{{͚{BHh-fhAtOJQJ^JHh/fhAtOJQJ^J1hlhAtOJQJ^JcHdhdhdh/fhlOJQJ^J(hAthZOJQJ^J,f*6Hh,fhAtOJQJ^JhZOJQJ^J1hZhAtOJQJ^JcHdhdhdh,f1hlhAtOJQJ^JcHdhdhdh,f1hbMhAtOJQJ^JcHdhdhdh,f##<$@$R$n$r$$$$$$$$$,%.%0%2%&&''ֳ̣wmcYc@1hi'h3OJQJ^JcHdhdhdh3fhH2OJQJ^Jhi'OJQJ^Jh5|yOJQJ^JhzUCOJQJ^J hjhNJ hjhzUCHhfh74hAtOJQJ^JHh/fh8tOJQJ^J1hlhAtOJQJ^JcHdhdhdh.fhlOJQJ^JHh-fhAtOJQJ^J1hlhAtOJQJ^JcHdhdhdh-f$$.%0%* *+++++(/*/vhgd=#od&dhdhgd=#od&dhgd=#od&$a$dhgd=#gd=#od&dhTdhC$Eƀ/fgd=#od&$a$ ' '** *"*R**** +$+++++++++++lbXQJQb hjhZ hjhzHHhfh74hzHOJQJ^J1hzHh3OJQJ^JcHdhdhdh5f1h9;hOJQJ^JcHdhdhdh{fh9;OJQJ^J1h9;h3OJQJ^JcHdhdhdh4fHh4fh3OJQJ^Jh5|yOJQJ^JhzUCOJQJ^JhH2OJQJ^JHh3fh3OJQJ^J++,,------ .".$.(.b."/$/&/(/00 0(0*0,0.0B0D0F00ȸȸ៕vfvMvMfv1h_h3OJQJ^JcHdhdhdh6fHh6fh3OJQJ^Jh_OJQJ^J(h3h5|yOJQJ^J7f*6hzHOJQJ^J1h5|yhOJQJ^JcHdhdhdhzfHh5fh3OJQJ^J1h5|yh3OJQJ^JcHdhdhdh5fh5|yOJQJ^J(h3h5|yOJQJ^J5f*6000000001"1:1<1>1@1B1L1l1n1p111112óy^E͎1h`h3OJQJ^JcHdhdhdh8f5Hh8fh3h3OJQJ^J9f*6(h3h`OJQJ^J9f*6h`OJQJ^J hjhZHhfh74h|0hOJQJ^JHhfh|0hOJQJ^Jh5|yOJQJ^JHh8fh3OJQJ^J1hZh3OJQJ^JcHdhdhdh8fhZOJQJ^J*/>1@1B1l1n14466N6P699vTdhC$Eƀfgd=#od&$a$dhgd=#gd=#od&dhdhgd=#od&dhgd=#od&$a$ 223333 424444444445 555.5H5ܳqqaaaH8qaHh\fhhNOJQJ^J1h`hhNOJQJ^JcHdhdhdh\fHh:fh3OJQJ^J1h`h3OJQJ^JcHdhdhdh:f1h`h|0hOJQJ^JcHdhdhdhfHhfh|0hOJQJ^J1h`h|0hOJQJ^JcHdhdhdhfHh9fh3OJQJ^Jh`OJQJ^J1h`h3OJQJ^JcHdhdhdh9fH5Z5p5~555556666N6P6R6\6p6r6t6v6죜wgWg>1hVrh*OJQJ^JcHdhdhdh:fHh;fh*OJQJ^JHh:fh*OJQJ^J5Hh:fh*h*OJQJ^J:f*6hVrOJQJ^J hjh0GLHhfh74(h*h0GLOJQJ^J:f*6(hhNh0GLOJQJ^J]f*6(hhNh0GLOJQJ^J\f*6h0GLOJQJ^Jh`OJQJ^Jv6z66666666666666688<88889999ܳ܏zjjjQAQAjHhfh|0hOJQJ^J1hVrh|0hOJQJ^JcHdhdhdhfHh;fh*OJQJ^J(h*hVrOJQJ^J;f*6Gh*hVrh*OJQJ^JcHdhdhdh:f;f*61hVrh*OJQJ^JcHdhdhdh:fHh:fh*OJQJ^JhVrOJQJ^J1hVrh*OJQJ^JcHdhdhdh;f9999::::4:6:V:x:θv6v/hS1Sh6hS1ScHcHdhdh@fdhf~jhS1Sh*hS1S0J5KHOJQJU\^JcHdhdhdhff*j5CJ KH OJQJU\^J+hS1Sh6hS1ScHdhdhdhf+hS1Sh%h|0hcHdhdhdhf+hS1Sh%h|0hcHdhdhdhf+hS1ShVrh|0hcHdhdhdhfHhfhS1SHhfh|0hOJQJ^Jh0GLh|0hOJQJ^JhVrOJQJ^J 99::::::::>qiXdhgd=#od&$a$dhgd=#gd=#od&dhgd=#od&FdhQC$Eƀfgd=#od&dhgd=#od&dh$dha$gd=#od& x::::::::::;;;;;;<0=R=üwgWWMCh? *OJQJ^Jh(IOJQJ^JHhAfh*OJQJ^JHh@fh*OJQJ^J1h=h*OJQJ^JcHdhdhdh@fh=OJQJ^JhTOJQJ^J hjh; hjhTHhfh|0h hS1ShS1SHhfh;+h.h6hS1ScHdhdhdhf8Hh@fhS1Sh*hS1ScHdhdhdhfR=^=j========>>><>@>@@@@@@@AA>EEEFFJFbGGHH>IIJJJ & Fdhgd=#od& & Fdhgd=#od& & Fdhgd=#od&dhgd=#od&dhgd=#od&$a$dhgd=#BBBCC&C2CDEEEEEEEEEFFFɹzp[7[pGh*h\ogh*OJQJ^JcHdhdhdhDfDf*5(h*h\ogOJQJ^JDf*5h\ogOJQJ^JhbhOJQJ^JHhDfh*OJQJ^JHhCfh*OJQJ^J(h82nhTOJQJ^Jf*6HhAfh*OJQJ^J1hTh*OJQJ^JcHdhdhdhAfhMEOJQJ^Jh^c*OJQJ^JhTOJQJ^JFFHFFFFFFF GGH&H8HNHXHHIIII^JnJJJJ޺렐ww^NDhOJQJ^JHhfh%#OJQJ^J1hkAh%#OJQJ^JcHdhdhdhf1hkAh%#OJQJ^JcHdhdhdhfHhEfh*OJQJ^JhkAOJQJ^JHhfh%#OJQJ^J1h\ogh%#OJQJ^JcHdhdhdhfh\ogH*OJQJ^JhMEh\ogOJQJ^Jh\ogOJQJ^Jjh*0JUJJJJLLRMRNfNhNNNNNNOOk[Q<(hJPhg_ROJQJ^Jf*6hOJQJ^JHhGfh*OJQJ^J1hg_RhOJQJ^JcHdhdhdhfhg_ROJQJ^Jh=!h=!H*OJQJ^Jh=!h=!OJQJ^Jh=!OJQJ^JhKwLOJQJ^JHhfhOJQJ^JHhfhJPOJQJ^J1h+IhJPOJQJ^JcHdhdhdhfh+IOJQJ^JJKvKLLNLONOPOXOqT$dh$&P#$/Ifa$gd=#od&dh$&P#$/Ifgd=#dhgd=#RdhEƀfgd=#od&$a$dhgd=#od& & Fdhgd=#od& OO O"O6OHONOPOVOXO^O`OfOhOnOpOvOxO~OOOOOOOOOOOOOOOOOOOOOOO6PŬŘ~~~~~~~~~~~~~~tjhK!OJQJ^JhX~OJQJ^JhVhX~OJQJ^JhP*hX~OJQJ^JhX~HhfhJPOJQJ^J1hg_RhJPOJQJ^JcHdhdhdhfhg_ROJQJ^J(hJPhg_ROJQJ^Jf*65HhfhJPhJPOJQJ^Jf*6)XO`OhOpOxOOOOOOOOOOOOOOO$dh$&P#$/Ifa$gd=#Ff$dh$&P#$/Ifa$gd=#od&OOOOOOPnXXX;;$dh$&P#$/Ifa$gd=#od&$dh$&P#$/Ifa$gd=#kd$$Ifl0'^& 6P 0'64 lagƅfph6P PPPPP"P*P4P6P:P>PFPJPNPXPZP^PbPfPjPnPxPFfFf&$dh$&P#$/Ifa$gd=#Ff$dh$&P#$/Ifa$gd=#od&xPzP~PPPPPPPPPPPPFf #$dh$&P#$/Ifa$gd=#od&$dh$&P#$/Ifa$gd=#Fff 6PzPPPPPPPQ QzQQQQQQQQQؾqgWG5G"Hhȅfh; 6OJQJ^JHhȅfh; OJQJ^JHhDžfh!6EOJQJ^Jh!6EOJQJ^JHhƅfhVOJQJ^JHhHfh*OJQJ^JhVOJQJ^JhX~OJQJ^J1hX~h*OJQJ^JcHdhdhdhGfHhGfh*OJQJ^Jjh*0JUhZHSOJQJ^JhVMOJQJ^Jh(bOJQJ^Jh>OJQJ^JPP kd.%$$Iflr :'^ H @ 6P (3f0'64 lagƅfp23fh6PPPPP$dh$&P#$/Ifa$gd=#od&$dh$&P#$/Ifa$gd=#PPP)$dh$&P#$/Ifa$gd=#kd&$$Ifl\ :'^  H  6P 0'64 lagƅfp(h6PPPQXPdhgd=#kd'$$Ifl0'^& 6P 0'64 lagƅfph6$dh$&P#$/Ifa$gd=#QQQQRRRVSTTT U>UpUrUtU`Wdhgd=#od&dhgd=#dhgd=#od&$a$JdhC$Eƀƅfgd=#QQQR:RLRvRRSS\SSSSST8T`TpTpUrUtUvUV^W鷧駷靧靧zazWMh3OJQJ^JhVOJQJ^J1h h OJQJ^JcHdhdhdhJfh OJQJ^J1h>h"#OJQJ^JcHdhdhdh h>OJQJ^JHh h"#OJQJ^J1hK!h"#OJQJ^JcHdhdhdh 1hK!h*OJQJ^JcHdhdhdhHfhK!OJQJ^Jh; hVOJQJ^J^W`W|WWWWWWWWWWWWWWWWX &(.068>@FHNPVXϽϯoooomooooooooooU%HhfhVh)OJQJ^J%HhfhP*h)OJQJ^JHhfh)Hhfh)OJQJ^JhCuh/$OJQJ^J"HhfhCu6OJQJ^JHhfhCuOJQJ^JHhfhCuOJQJ^JHhfhnOJQJ^J)`WbWdWfWWWZZTdhC$Eƀfgd=#od&$a$QdhC$Eƀfgd=#od&WWWWPPY$dh$&P#$/C$EƀfIfa$gd=#Vdh$&P#$/C$EƀfIfgd=#WWWX (08@HPXZFfY*_$dh$&P#$/C$EƀfIfa$gd=#od&128128128128128128128128128128128020481A1282565121024220483A1282565121024420485A12825651210246A128256B10247A128256BC5128A128DBC5129A128DBCE25610A128256BCE25611A128256BCE256 1. Program A zahtjeva 88 kB spremni kog prostora te se sprema u 128 kB blok 2. Program A se oslobaa 3. Program A zahtjeva 88 kB spremni kog prostora te se sprema u 128 kB blok 4. Program A se oslobaa 5. Program A zahtjeva 88 kB spremni kog prostora te se sprema u 128 kB blok 6. Program B zahtjeva 415 kB spremni kog prostora te se sprema u 512 kB blok 7. Program C zahtjeva 332 kB spremni kog prostora te se sprema u 512 kB blok 8. Program D zahtjeva 200 kB spremni kog prostora te se sprema u 256 kB blok 9. Program E zahtjeva 255 kB spremni kog prostora te se sprema u 256 kB blok 10. Program D se oslobaa 11. Program F zahtjeva 275 kB spremni kog prostora, ali se nemo~e spremiti nigdje Iz prva etri koraka je vidljivo da se cijeli spremni ki prostor mora podijeliti da bi se alocirao program A te se opet mora sa~eti kada se oslobaa spremni ki prostor za program A. Takoer uo ava se manji problem u jedanaestom koraku kada se pokuaava dodijeliti spremni ki prostor programu F, a ne mo~e se makar bi bilo dovoljno mjesta kada bi samo program E spremili u spremni ki prostor gdje se nalazio predhodno program D. (Pokazati primjer gdje se u po etku alocira segment od npr. 100KB, pa se isti oslobaa, pa se isti opet tra~i i tako par puta - iz primjera se vidi da svaki put treba najprije napraviti podjelu, pa opet sve spojiti, pa opet sve podijeliti ... (prakti ki najgori slu aj)) 3.2. Implementacija buddy memory alokacijealgoritma upravljanja memorijomspremni kim prostorom Algoritam sam po sebi nije jako zahtjevan za shvatiti razumijevanje niti ga implementirati implementaciju jer nije ovisan o sklopovskoj potpori. Te ga je mogue implementirati na elementarnim mikroprecesorima kao npr. Intel 80286 procesoru. Zapravo on se koristi i u sustavima sa strani enjem radi upravljanja slobodnim stranicama, ali isto tako mo~e se koristiti i u viaoj razini, npr. u samom programu (koji implicitno koristi strani enje u ni~oj razini - sklopovskoj). nije potreban memory management unit (MMU) koji je kompjuterska komponenta zadu~ena za obradu dohvata spremni kog prostora zatra~enu od strane procesora. Te ga je mogue implementirati na elementarnim mikroprecesorima kao npr. Intel 80286 procesoru. U usporedbi s drugim jednostavnijim tehnikama kao sto je dinami ka alokacija, buddy memory sistemsustav ima malu vanjsku fragmentaciju i mali overhead koji je zadu~en za sa~imanje spremni kog prostora. `to se ti e unutarnje fragmentacije postoji mogunost da se spremni ki prostor ne iskoristi zadovoljavajue. Tako potraen prostor je veem postotku ako je zahtjevanai memorija spremni ki prostor malo veia nego najmanj blok memorijespremni kog prostora. Unutarnja fragmentacija se deaava tamo gdje je potrebna vea koli ina memorije spremni kog prostora nego ato je tra~eno. Vanjska fragmentacija se deaava tamo gdje je dovoljno spremni kog prostora slobodno da zadovolji zahtjev, ali se dijeli na dva dijela koja nisu dovoljna za izdani zahtjev. U implementaciji algoritma je koriateno pseudo binarno stablo koje je baa napravljeno za ovaj algoritam kojemu se vorovi i sve ato je u njima sprema u polje vorova. Na in spremanja u polje se ini kao bolje rijeaenje nego da se vorovi spremaju u listu vorova. U svakom voru je spremljen njegov broj, status, koli ina memorije spremni kog prostora koju taj blok omoguava te ime programa koji je zauzeo taj blok. Takoer emo napomenuti da broj elemenata polja vorova iznosi najvei blok memorije spremni kog prostora podjeljen sa najmanjim moguim blokom memorije spremni kog prostora pomno~eno s dva. Veli ina memorije spremni kog prostora tog polja je otprilike broj elemenata polja puta 20 bajtova. Broj 20 bajtova je dobiven izra unom koliko prostora zauzimaju varijable u klasi cvor. Dakle vidljivo je ato viae manjih blokova imamo da e trebati viae spremni kog prostora za kontrolu koji dio memorije spremni kog prostora je alociran i s im, a koji nije. Prikaz klasa/struktura, mo~da i (dijela) koda! Prikaz funkcija koje zauzimaju i oslobaaju spremni ki prostor static bool ZauzmiMemorijskiProstor(Program p, Cvor c) { if (p.ZauzeceMemorije > c.KolicinaMemorije || c.Status == CvorStatus.Zauzeto) { return false; } else if (p.ZauzeceMemorije <= c.KolicinaMemorije / 2 && c.KolicinaMemorije > NAJMANJA_VELICINA_BLOKA) { if (c.Status == CvorStatus.Slobodno) { Podijeli(c); return ZauzmiMemorijskiProstor(p, Cvorovi[c.BrojCvora * 2]); } else { if (ZauzmiMemorijskiProstor(p, Cvorovi[c.BrojCvora * 2])) { return true; } return ZauzmiMemorijskiProstor(p, Cvorovi[c.BrojCvora * 2 + 1]); } } else { if (c.Status == CvorStatus.Slobodno) { c.Status = CvorStatus.Zauzeto; c.ZauzimajuciProgram = p; statistika_ukupno += c.KolicinaMemorije; statistika_zauzeto += p.ZauzeceMemorije; return true; } else { return false; } } } static void Podijeli(Cvor c) { c.Status = CvorStatus.Podijeljeno; Cvorovi[c.BrojCvora * 2] = new Cvor(c, c.BrojCvora * 2); Cvorovi[c.BrojCvora * 2 + 1] = new Cvor(c, c.BrojCvora * 2 + 1); } static void OslobodiMemorijskiProstor(Program x) { for (int i = 1; i < Cvorovi.Length; ++i) { if (Cvorovi[i] != null && Cvorovi[i].ZauzimajuciProgram == x) { Cvorovi[i].Status = CvorStatus.Slobodno; Cvorovi[i].ZauzimajuciProgram = null; Spoji(Cvorovi[i]); } } } static void Spoji(Cvor c) { if (c.Korijen) return; if (Cvorovi[c.Susjed].Status == CvorStatus.Slobodno) { Cvorovi[c.BrojCvora] = null; Cvorovi[c.Susjed] = null; Cvorovi[c.Roditelj].Status = CvorStatus.Slobodno; Spoji(Cvorovi[c.Roditelj]); } } 4. Iskoristivost i analiza rezultata algoritma U ovom dijelu e se vidjeti i na kraju analizirati rezultati dobiveni pokretanjem algoritma sa razli itim po etnim uvijetima. Ukupna iskoristivost svakog od pokusa dobivena je ukupnim prolaskom kroz algoritam 50000 puta. Sve vrijednosti su u kilobajtima. Tablica 3X. Rezultati ... Ukupna veli ina blokaNajmanja veli ina blokaNajmanja veli ina programaNajve a veli ina programaIskoristivost u postocima (%)10246464102475.081024646451275.301024646425675.311024646412875.581024643212875.31102464128102474.7610246425651275.3210243232102475.011024323251275.001024323225675.32102432166475.69102432163274.95102432128102475.0010243225651275.16102464326474.97102464166462.59102464163237.55 Iz prilo~ene tablice mo~e se vidjeti kako je iskoristivost spremni kog prostora izmeu 75% i 75.6% ato joa nije idealno. Takoer se mo~e vidjeti kako za programe koji zahtjevaju manje spremni kog prostora od donje granice blokova iskoristivost jako brzo pada. t 5. Zaklju ak U ovom radu prikazani su slijedei mehanizmi, algoritmi za upravnljanje spremni kim prostorom: memory pool, slab allocation te buddy memory allocation. Detaljnije je razraen, implementiran te analiziran buddy memory allocation. Implementacija algoritma je napravljena u programskom jeziku C#. Analizom rezultata dobivena je iskoristivost od 75.3% za sve programe koji su veli inom zahtjevali izmeu najmanje veli ine bloka i ukupne veli ine bloka memorijespremni kog prostora. Ako su programi bili manji od najmanjeg mogueg bloka spremni kog prostora tada iskoristivost pada ak na 37.55% kada je program od 2 do 4 puta manji. Takoer je uo eno da se algoritam mo~e poboljaati ato se ti e iskoristivosti spremni kog prostora, ako imamo program koji zahtjieva odreenu koli inu spremni kog prostora, ,a mi je imamo samo je fragmentirana, tako da se doda funkcija koja samo premjesti odreeni program na drugi slobodan blok te tako dobijemo spojeni blok koji je dovoljan za slijedei program koji zahtijeva memorijuspremni ki prostor. 6. Literatura Memory pool -  HYPERLINK "http://en.wikipedia.org/wiki/Memory_pool" \t "_blank" http://en.wikipedia.org/wiki/Memory_pool Buddy memory allocation -  HYPERLINK "http://en.wikipedia.org/wiki/Buddy_memory_allocation" \t "_blank" http://en.wikipedia.org/wiki/Buddy_memory_allocation Slab allocation -  HYPERLINK "http://en.wikipedia.org/wiki/Slab_allocation" \t "_blank" http://en.wikipedia.org/wiki/Slab_allocation Dodati: Sa~etak (na posebnoj stranici) U ovom radu prikazano je to i to... (2-3 reenice) Klju ne rije i: upravljanje spremnikom, ... Summary (na posebnoj stranici) Title: Memory management in constrained environment (prevesti sa~etak) Keywords: ... 7. Sa~etak U ovom radu prikazana je implementacija buddy memory algoritma. Eksperimentalno je dobivena iskoristivost algoritma sa razli itim po etnim uvjetima te je dan uvid na mogue poboljaanje algoritma. Klju ne rije i: upravljanje spremni kim prostorom, buddy memory 8. Summary Title: Memory management in constrained environment In this work it is shown implementation of buddy memory algorithm. Algorithm efficiency was obtained experimentally with different initial conditions and there is an insight on the possible improvement of the algorithm. Keywords: memory management, buddy memory     PAGE  PAGE 19 Na ovom jestu u rad treba staviti orginalni zadatak (kad se bude uvezivalo) Neka naslovi poglavlja budu numerirani. Neka numeracija stranica kreu od stranice s Uvodom. Stranice prije ne numerirati Numerirati i uvod (1. Uvod) sve paragrafe poravnati i s jedne i s druge strane (Justify) Sve nazive koji nisu hrvatski, pisati koso! Novo poglavnje (Heading 1) neka po ne na novoj stranici!!! ili konzistentno koristit termin "spremnik" ili "memorija". Ne jedno i drugo!!! Staviti zaglavlje za tablicu: Tablica 1. Primjer rada buddy algoritma iznad tablice Z^hY$dh$&P#$/C$EƀfIfa$gd=#hjnrY$dh$&P#$/C$EƀfIfa$gd=#kdB.$$Ifl0w(^& 6P0'64 lagfpXnprxz ճ߳߳߳߳߳աճwh= ,OJQJ^JHhfh= ,OJQJ^JHhfh= ,OJQJ^J#HHhfh/$OJQJ^JHhfh/$OJQJ^J#HHhfh/$OJQJ^Jh/$OJQJ^JHhfh/$OJQJ^JHhfh)OJQJ^J(nrzFFFAFfm0_$dh$&P#$/C$EƀfIfa$gd=#od&Y$dh$&P#$/C$EƀfIfa$gd=#akdz2$$Ifl0w(^& 6P0'64 lap$dh$&P#$/Ifa$gd=#FFFAFf65_$dh$&P#$/C$EƀfIfa$gd=#od&Y$dh$&P#$/C$EƀfIfa$gd=#akd8$$Ifl0w(^& 6P0'64 lap$dh$&P#$/Ifa$gd=# FFFAFfZ;_$dh$&P#$/C$EƀfIfa$gd=#od&Y$dh$&P#$/C$EƀfIfa$gd=#&*46:>FNRV^`dhptx|FfxEFf}@$dh$&P#$/Ifa$gd=#od&$dh$&P#$/Ifa$gd=#$&(*26:<>DFLNPRTV\dfhnprtvxz|ɷɧɧɷɕɧɃssscHhh"#OJQJ^JHhh"#OJQJ^J#HHhh"#OJQJ^J#HHhh"#OJQJ^JHhh"#OJQJ^J#HHhh"#OJQJ^Jh"#OJQJ^JHhh"#OJQJ^Jh= ,OJQJ^J#HHhfh= ,OJQJ^J!|ѿweUHh h"#OJQJ^J#HHh h"#OJQJ^J'HHHh h"#OJQJ^JHhh"#OJQJ^J#HHhh"#OJQJ^J#HHhh'OJQJ^J#HHhh"#OJQJ^J'HHHhh"#OJQJ^Jh"#OJQJ^JHhh"#OJQJ^JFfUFfcO$dh$&P#$/Ifa$gd=#od&$dh$&P#$/Ifa$gd=#FfJGJdhC$Eƀgd=#JdhC$Eƀfgd=#Ffk[$dh$&P#$/Ifa$gd=#od&Jr<r<Djp Z`px ׷׷Ƿ׷׷ǷǧǧǧǧǧǧǧǧǷwHh hs'<OJQJ^JHh h"#OJQJ^JHh h"#OJQJ^JHh h"#OJQJ^JHh h"#OJQJ^JHh h"#OJQJ^JHhh"#OJQJ^J/HHhKfhfhCuh)OJQJ^J.t>r ccccccQdhC$Eƀgd=#od&JdhC$Eƀgd=# ]QdhC$Eƀ gd=#od&QdhC$Eƀ gd=#od&>H~\0.ϿϯlLB81 hjhnHhfh82nh OJQJ^J>HhKfh hCuOJQJ^JcHdhdhdhf%Hhh"#hCuOJQJ^JHhhTlOJQJ^JHhhTlOJQJ^JHhhTlOJQJ^JHhhTlOJQJ^JHhh"#OJQJ^JHhhs'<OJQJ^JHh hs'<OJQJ^JHh h"#OJQJ^JZT$dhC$Eƀa$gd=#od&QdhC$Eƀgd=#od&bdFHyydhgd=#dhgd=#od&$a$dhgd=#od&dhgd=#od&QdhC$EƀKfgd=#od&.Nz(DHRTr,flŻwwwgwWgWgW>1hh OJQJ^JcHdhdhdhOfHhNfh OJQJ^JHhPfh OJQJ^JHhMfh OJQJ^J1hh OJQJ^JcHdhdhdhMfhOJQJ^Jh[[OJQJ^J hjhnHhąfh!6E2HhMfh h!6EcHdhdhdhąfHhMfh +hjhnh cHdhdhdhMf `(4HV &HJîÕ{î{kR{91hu5~hJ OJQJ^JcHdhdhdhf1hf{Kh OJQJ^JcHdhdhdhQfHhQfh OJQJ^Jhf{KOJQJ^JHhAfh*OJQJ^J1hu5~h*OJQJ^JcHdhdhdhAf(hJ hu5~OJQJ^Jf*6hu5~OJQJ^J1hu5~h OJQJ^JcHdhdhdhPf1hh OJQJ^JcHdhdhdhPfJLN`DFHjh $©叅{qXqNhN?OJQJ^J1hxqhJ OJQJ^JcHdhdhdhfhxqOJQJ^JhgZOJQJ^Jh@#OJQJ^Jh7rOJQJ^JHhfhJ OJQJ^J1hf{KhJ OJQJ^JcHdhdhdhfhf{KOJQJ^J1hu5~hJ OJQJ^JcHdhdhdhfhu5~OJQJ^JHhfhJ OJQJ^J$6<>`.XZlƶƶyoyoyVyFHhSfh,@OJQJ^J1ho*hJ OJQJ^JcHdhdhdhfh*OJQJ^Jho*OJQJ^JHhfhJ OJQJ^J1hN?hJ OJQJ^JcHdhdhdhfhN?OJQJ^JHhfhJ OJQJ^JHh߅fhd&OJQJ^JHhfhd&OJQJ^J1hN?hJ OJQJ^JcHdhdhdhf8:<ccJdhC$Eƀgd=#QdhC$EƀSfgd=#od&8:<JmE!FHh3h>phOJQJ^J7憃*CJOJQJ^JaJOHh3hhOJQJ^JV憃*B*CJOJQJ^JaJph3f8HhhlKhlK5OJQJ^J憃*5"HhhlK5OJQJ^J"Hh6h5OJQJ^J"HhhlK5OJQJ^JHhhlKOJQJ^JHhhmuOJQJ^J>HhSfhmuhlKOJQJ^JcHdhdhdh <*.$cccccccccQdhC$Eƀ3gd>po7d&JdhC$Eƀgd=# ".04׳׳w׳OOHh3hhOJQJ^JW憃*B*CJOJQJ^JaJph3fOHh3hhOJQJ^JV憃*B*CJOJQJ^JaJph3f'Hh:hm-CJOJQJ^JaJFHh3h>phOJQJ^J7憃*CJOJQJ^JaJOHh3hhOJQJ^JW憃*B*CJOJQJ^JaJph׳cO;;c'Hh@hb4CJOJQJ^JaJ'Hh@hm-CJOJQJ^JaJOHh3hhOJQJ^JW憃*B*CJOJQJ^JaJph3f'Hh;hm-CJOJQJ^JaJ'Hh:hm-CJOJQJ^JaJFHh3h>phOJQJ^J7憃*CJOJQJ^JaJOHh3hhOJQJ^JX憃*B*CJOJQJ^JaJph3f$(,2LR^djnv׳ccc;OHh3hhOJQJ^JX憃*B*CJOJQJ^JaJph3fOHh3hhOJQJ^JW憃*B*CJOJQJ^JaJph3f'HhAh#mHCJOJQJ^JaJ'Hh@hm-CJOJQJ^JaJFHh3h>phOJQJ^J7憃*CJOJQJ^JaJOHh3hhOJQJ^JW憃*B*CJOJQJ^JaJph$,Ldn"*0<BnQdhC$Eƀ3gd>po7d&"&*,02<>BFJfzܴܠ܌xxxddphOJQJ^J7憃*CJOJQJ^JaJnt  "&*ǟwwcAwcCHhDhh#mHCJOJQJ^JaJX憃*B*ph3f'HhEh#mHCJOJQJ^JaJOHh3hhOJQJ^JX憃*B*CJOJQJ^JaJph3fOHh3hhOJQJ^JX憃*B*CJOJQJ^JaJphFHh3h>phOJQJ^J7憃*CJOJQJ^JaJ'HhDh#mHCJOJQJ^JaJn&.48:]QdhC$EƀEgd>po7d&QdhC$Eƀ3gd>po7d& *.068:<>T|~ܤlD0'HhFh#mHCJOJQJ^JaJOHh6hhOJQJ^JY憃*B*CJOJQJ^JaJph3fFHh6h>ph#mHOJQJ^J7憃*CJOJQJ^JaJ'HhEhCJOJQJ^JaJFHh6h>phOJQJ^J7憃*CJOJQJ^JaJ'HhEh#mHCJOJQJ^JaJFHh3h>phOJQJ^J7憃*CJOJQJ^JaJ :<>x|8]]]]]]]QdhC$Eƀ6gd>po7d&QdhC$EƀEgd>po7d& 8:x~׳w׳w׳S+OHh3hhOJQJ^JY憃*B*CJOJQJ^JaJph3fFHh3h>phOJQJ^J7憃*CJOJQJ^JaJOHh6hhOJQJ^JY憃*B*CJOJQJ^JaJph3f'HhFh#mHCJOJQJ^JaJFHh6h>phOJQJ^J7憃*CJOJQJ^JaJOHh6hhOJQJ^JY憃*B*CJOJQJ^JaJph$(~ dQdhC$Eƀ3gd>po7d& (*0~ :NdjܴܠxܠܠxxܠܠܴܠPܠܠܠOHh3hhOJQJ^JZ憃*B*CJOJQJ^JaJph3fOHh3hhOJQJ^JY憃*B*CJOJQJ^JaJph3f'HhFh#mHCJOJQJ^JaJOHh3hhOJQJ^JY憃*B*CJOJQJ^JaJphFHh3h>phOJQJ^J7憃*CJOJQJ^JaJ .04NZ^`d :BFJױױ{U{{{{UKHhJhhu0CJOJQJ^JaJZ憃*B*CJaJph'HhJh%VCJOJQJ^JaJBHhJhu0hu0CJOJQJ^JaJJ憃*CJaJKHhJhhu0CJOJQJ^JaJZ憃*B*CJaJph3f'HhJhu0CJOJQJ^JaJ'HhJhCJOJQJ^JaJ*.^FccccccccccJdhC$EƀJgdu0QdhC$EƀJgd>po7d& ,@TVRdɵɑ|rkdkZPF<2hqOJQJ^JhOJQJ^JhXOJQJ^Jh@OJQJ^Jh,@OJQJ^J hjh@ hjh,@Hhfhi[(hhlKOJQJ^J憃*5FHh3hu0hu0OJQJ^JJ憃*CJOJQJ^JaJ'HhJh%VCJOJQJ^JaJBHhJhu0hu0CJOJQJ^JaJJ憃*CJaJ'HhKh%VCJOJQJ^JaJTVVcUM<dhgd=#od&$a$dhgd=#gd=#od&dhQdhC$Eƀgdod&JdhC$EƀJgdu0dTVfhj( * ,         6 @ b l p    ̬܌scYYOOOOOEhmkOJQJ^Jh;OJQJ^JhSOJQJ^JHhUfhmuOJQJ^J1h8hmuOJQJ^JcHdhdhdhUf>HhTfhmuh; OJQJ^JcHdhdhdhDžf>HhTfhmuh<OJQJ^JcHdhdhdhfHhfhCuOJQJ^JHhTfhmuOJQJ^JhZkOJQJ^Jh8OJQJ^JV T   $dh$Ifa$gd=#od&$dh$Ifa$gd=#dhgd=#dhgd=#od&$a$     N???$dh$Ifa$gd=#kd ^$$IflrX#AABBB t0644 la     8)$dh$Ifa$gd=#kd|^$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&     $dh$Ifa$gd=#od&$dh$Ifa$gd=#     N???$dh$Ifa$gd=#kd^$$IflrX#AABBB t0644 la    " 8)$dh$Ifa$gd=#kd`_$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&" ( . 6 B $dh$Ifa$gd=#od&$dh$Ifa$gd=#B D N T Z N???$dh$Ifa$gd=#kd_$$IflrX#AABBB t0644 laZ b n p z 8)$dh$Ifa$gd=#kdD`$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&z     $dh$Ifa$gd=#od&$dh$Ifa$gd=#     N???$dh$Ifa$gd=#kd`$$IflrX#AABBB t0644 la     8)$dh$Ifa$gd=#kd(a$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&     $dh$Ifa$gd=#od&$dh$Ifa$gd=#          $ 8 < > D F P d h j n p z ~                " , L V v      ĺĺĺĪHhfhJ OJQJ^JHhfhJ OJQJ^JHhfhOJQJ^JhOJQJ^JhOJQJ^Jh;OJQJ^Jh;OJQJ^Jh.OJQJ^JhmkOJQJ^Jh8OJQJ^J0     N???$dh$Ifa$gd=#kda$$IflrX#AABBB t0644 la  & ( 2 8)$dh$Ifa$gd=#kd b$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&2 8 > F R $dh$Ifa$gd=#od&$dh$Ifa$gd=#R T ^ d j N???$dh$Ifa$gd=#kd~b$$IflrX#AABBB t0644 laj p | ~  8)$dh$Ifa$gd=#kdb$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&     $dh$Ifa$gd=#od&$dh$Ifa$gd=#     N???$dh$Ifa$gd=#kdbc$$IflrX#AABBB t0644 la     8)$dh$Ifa$gd=#kdc$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&     $dh$Ifa$gd=#od&$dh$Ifa$gd=#     N???$dh$Ifa$gd=#kdFd$$IflrX#AABBB t0644 la " . 0 : 8)$dh$Ifa$gd=#kdd$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&: @ F L X $dh$Ifa$gd=#od&$dh$Ifa$gd=#X Z d j p N???$dh$Ifa$gd=#kd*e$$IflrX#AABBB t0644 lap v   8kde$$IflrX#AABBB t0644 la$dh$Ifa$gd=#od&    iXdhgd=#od&$a$JdhC$Eƀfgd=#JdhC$Eƀfgd=#   $̢̯udWF3)hed,OJQJ^J%h.hed,CJaJf*CJ !h.hZk0Jf*0J Hhfh.hi[!Hhfh.5CJKH\=h.hSFhD5CJKH\cHcHdhdhVfdhfh.h%J5CJKH\hDhDOJQJ^J8HhfhDhD5\f*OJQJ^J2HhfhDhDf*OJQJ^J2HhfhDhDf*OJQJ^J ^VEV7dhgd=#od&dhgd=#od&$a$dhgd=#VdhC$Eƀfgd=#od&FdhJdhC$Eƀfgd=#8:vP~8Hpt&wmcmYIYHhWfhmuOJQJ^JhU9OJQJ^JhjOJQJ^JhJuOJQJ^JhpOJQJ^JHhfh.OJQJ^J1hih.OJQJ^JcHdhdhdhfhiOJQJ^JhSOJQJ^JhVOJQJ^J(h.h/OJQJ^Jf*61h/hmuOJQJ^JcHdhdhdhVfh/OJQJ^J ãÓ܆we[TMC?,%hK*hcHdhdhdhfhK*h^eOJQJ^J hjh^e hjhFHhfh%##hed,hed,5CJOJQJ^JaJhed,5CJOJQJ^JaJhed,hed,OJQJ^JHhfh.OJQJ^J>HhWfhmuh.OJQJ^JcHdhdhdhf1hU9h.OJQJ^JcHdhdhdhfhU9OJQJ^J1hU9hmuOJQJ^JcHdhdhdhWf.@FT & F dhC$EƀWfgd=#od&N & F dhC$EƀWfgd=#dhgd=#gd=#od&dh"$*,.0TV<>@sPDHh[fhmuhmuh2jOJQJ^JcHdhdhdhf>HhYfhmuh2jOJQJ^JcHdhdhdhf>HhXfhmuh2jOJQJ^JcHdhdhdhfHhWfh^e%hK*hcHdhdhdhf%hK*hmucHdhdhdhWfHhWfhmu hK*0JhK*jhK*U@BDTPR]QdhC$EƀWfgd=#od&QdhC$EƀXfgd=#od&:<RXVdhC$EƀYfgd=#od&FdhQdhC$EƀYfgd=#od&:<PRT|~&ݽyiyiYGY7Hh܅fh-OJQJ^J"Hhׅfh-6OJQJ^JHhׅfh-OJQJ^JHh؅fh-OJQJ^JHhօfh-OJQJ^JHhօfhOJQJ^JHhfhmuHhfhHhfhOJQJ^J>HhYfhmuh2jOJQJ^JcHdhdhdhfDHhYfhmuhmuh2jOJQJ^JcHdhdhdhfRTZTC$Eƀfgd=#od&$dha$QC$Eƀօfgd=#od&dh&"@D\^rtdϿ߭vfSC3HhfhZOJQJ^JHhfhZOJQJ^J%HhfhZh(OJQJ^JHhfh(OJQJ^JHhfh(OJQJ^JHhfhHhfh%Hhfhd&h-OJQJ^J"Hhޅfh-6OJQJ^JHhfhd&OJQJ^JHhޅfhd&OJQJ^JHhޅfh-OJQJ^JHh݅fh-OJQJ^J^tXVdhC$Eƀ…fgd=#od&FdhQC$Eƀޅfgd=#od&dhtv iJdhC$Eƀfgd=#JdhC$Eƀfgd=# "            !!!!!!!!(!*!.!0!2!6!8!:!!}}}}smsmisms^smi}Tijh/@0JUhq" 0JmHnHuh/@ h/@0Jjh/@0JUh jh U%hZh1f*OJQJ^J#Hhfh10JOJQJ^J#Hhfh(0JOJQJ^J#HhfhZ0JOJQJ^J#HhfhZ0JOJQJ^J6HhfhZhZ0Jf*OJQJ^J         !!!!!2!4!6!8!h]hgd^Z &`#$gd0QdhC$Eƀfgd=#od&8!!$""#~##P$$0%%%%%QdhC$Eƀfgd=#od& !!""##~####P$R$$$`%j%%%%%%hZh1f*OJQJ^Jh  h h/@ h/@6h/@jh/@0JU,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% ,1h. A!"#$% }DyK _Toc264497290}DyK _Toc264497290}DyK _Toc264497291}DyK _Toc264497291}DyK _Toc264497292}DyK _Toc264497292}DyK _Toc264497293}DyK _Toc264497293}DyK _Toc264497294}DyK _Toc264497294}DyK _Toc264497295}DyK _Toc264497295}DyK _Toc264497296}DyK _Toc264497296}DyK _Toc264497297}DyK _Toc264497297}DyK _Toc264497298}DyK _Toc264497298}DyK _Toc264497299}DyK _Toc264497299}DyK _Toc264497300}DyK _Toc264497300}DyK _Toc264497301}DyK _Toc264497301}DyK _Toc264497302}DyK _Toc264497302$$If!vh5^5i5i5i5i5i5i5i5 i5 i5 i5 i5 i5 i5i5i5i#v^#vi:V l^ 6P 0'65^5i4gƅfp֪h6kd $$Ifl^z[- h: uG "%'^iiiiiiiiiiiiiiii 6P 0'6DDDD4 lagƅfp֪h6$$If!vh5^5&#v^#v&:V l 6P 0'65^5&4gƅfph6^$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l  6P 0'65^5i55 5H4gƅfp<h6kdP$$Iflֈ[ :'^ii H  6P 0'64 lagƅfp<h6v$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l @ 6P (3f0'65^5i55 5H4gƅfp<3fh6kd$$Iflֈ[ :'^ii H @ 6P (3f0'64 lagƅfp<3fh6$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l @ 6P 23f0'65^5i55 5H4gƅfp<3fh6 kd<$$Iflֈ[ :'^ii H @ 6P 23f0'64 lagƅfp<3fh6$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l @ 6P 23f0'65^5i55 5H4gƅfp<3fh6 kd$$Iflֈ[ :'^ii H @ 6P 23f0'64 lagƅfp<3fh6$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l @ 6P 23f0'65^5i55 5H4gƅfp<3fh6 kd!$$Iflֈ[ :'^ii H @ 6P 23f0'64 lagƅfp<3fh6V$$If!vh5^555 5H#v^#v#v #vH:V l @ 6P (3f0'65^55 5H4gƅfp23fh6*$$If!vh5^5 5 5H#v^#v #vH:V l  6P 0'65^5 5H4gƅfp(h6$$If!vh5^5&#v^#v&:V l 6P 0'65^5&4gƅfph6$$If!vh55i5i5i5i5i5i5i5 i5 i5 i5 i5 i5 i5i5i5i#v#vi:V l^ 6P0'65^5i4gfp֪kd($$Ifl^zwI V(c 5#%(^iiiiiiiiiiiiiiii 6P0'6DDDD4 lagfp֪$$If!vh55&#v#v&:V l 6P0'65^5&4gfp`$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l  6P0'65^5i55 5H4gfp<h6#v kd /$$Iflֈ[ :'^ii H  6P0'64 lagfp<h6wI ($$If!vh55&#v#v&:V l 6P0'65^5&4p$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l @ 6P23f0'65^5i55 5H4gfp<3fh6 2#vp2fkd93$$Iflֈ[ :'^ii H @ 6P23f0'64 lagfp<3fh6twI (^ii 2p2$$If!vh55&#v#v&:V l 6P0'65^5&4p$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l @ 6P23f0'65^5i55 5H4gfp<3fh6 2#vp2fkd]9$$Iflֈ[ :'^ii H @ 6P23f0'64 lagfp<3fh6twI (^ii 2p2$$If!vh5^5i5i55 5H#v^#vi#v#v #vH:V l 6P0'65^5i55 5H4gp<h6 `2#vp2$kd>$$Iflֈ[ :'^ii H 6P0'64 lagp<h6twI (^ii `2p2$$If!vh5^5i5i55 5 5 #v^#vi#v#v :V l 6P0'65^5i55 4gpFh6 `<#vp<kdC$$Ifl֞[ :'^ii   6P0'64 lagpFh6֊wI c(^ii  `<p<$$If!vh55i5i55 5 5 #v#vi#v#v :V l ` 6PF0'65^5i55 4pFWkd I$$Ifl֞wI c(^ii   ` 6PF0'64 lapFo$$If!vh5^5i5i55 5 55#v^#vi#v#v #v:V l ` 6PP0'65^5i55 54gpPh6 `F̙#vpF̙bkdL$$Iflִ[ :"'^ii   ` 6PP0'6    4 lagpPh6֠wI c5#(^ii   `F̙pF̙'$$If!vh55i5i55 5 55#v#vi#v#v #v:V l ` 6PP̙0'65^5i55 54gpP̙h6 (p(kdS$$IflִwI c5#(^ii   ` 6PP̙0'6    4 lagpP̙h6dwI c5#(^ii (p($$If!vh55i5i55 5 55#v#vi#v#v #v:V l ` 6PP̙0'65^5i55 54gpP̙kdY$$IflִwI c5#(^ii   ` 6PP̙0'6    4 lagpP̙p$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5Bp$$If!vh5A5A5B5B5B#vA#vB:Vl t65A5B@@@ NormalCJ_HaJmHsHtHZ@Z i Heading 1$<@&5CJ KH OJQJ\^JaJ \@\ i Heading 2$<@& 56CJOJQJ\]^JaJDA@D Default Paragraph FontRi@R  Table Normal4 l4a (k(No List4 @4 Footer  p#.)@.  Page Number&O& bhtexhtmlj@#j g_R Table Grid7:V04U@14 K* Hyperlink >*phbOAb iHeading 1 Char.5CJ KH OJQJ\^J_HaJ mHsHtH&@& jTOC 1.@. jTOC 2 ^B'@qB g*Comment ReferenceCJaJ<@< g* Comment TextCJaJ@j@ g*Comment Subject5\H@H g* Balloon TextCJOJQJ^JaJ4@4 g*Header  p#.O. Z medium_textLeonardo JelenkoviqM Y ? JS$OLJzLJLJ}LJV}LJnLJLJLJԅf)f3f*f7fFfDfIfM#P25h#.+?}CGNJ_KO.\Bp(<=>?@ABCDEFG\hpqsV W ?@"#9:WX=>?vx{|01U 0 &!|!}!!!!z"{"#############$$$ $$$$$$ $!$#$%$)$-$1$6$7$9$;$?$A$E$J$K$M$O$S$U$W$\$]$_$a$c$e$g$l$m$o$s$u$w$y$~$$$$$$$$$$$$$$$$%.%/%0%1%%%0&&&&&&&&( ($(((,(0(4(8(<(@(D(H(L(P(T(X(\(_(d(g(i(m(q(u(z(}(((((((((((((((((((((((((((9))))*O***.. / /114488+?Z?[?[@u@v@@@@@@@@@AA AAAAAAA%A&A+A.A1A5A;ABABGBHBMBPBSBVB\B]BbBeBhBkBqBrBzCCCGGGGG%HHPIQIRIZIyIIIII,J?JMJO0000@000000000000000000000000@0@000000@0@0@0@0 @0@0! @0! @0! @0! @0! @0! @0! @0@0@0@0@0@0! @0P@0P@0P@0P@0P@0! @0@0@0@0@0 @0@0M@0M@0@0@0@0@0@0@0@0@0@ 0A 0HA 0H@ 0@ 0@ 0@ 0@0@0@ 0@ 0@ 0@0@0@0@0@0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0@0@0@0@0@0@0@0K00K00@0@0@0@0@0@0@0K00K00 @0@0@0@0@0@0 @0 @0 @0 @0@0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0 @0@0@0@0@0K00 @0@0@0K00K00K00K00K00K00K00K00K00K00K00K00K00$$ $!$6$7$J$K$\$]$l$m$~$$$$$$$$\(](d(e(z({((((((((((((((((())) )7)8)@@AA%A&A;A?@ABCDEFG\ %=>WXqwxyz{|}~5T}hpqsFO Z G V W ?@"#9:WX=>?vwx{|01U 0 &!|!}!!!!z"{"#############$$$ $$$$$$ $!$#$%$)$-$1$6$7$9$;$?$A$E$J$K$M$O$S$U$W$\$]$_$a$c$e$g$l$m$o$s$u$w$y$~$$$$$$$$$$$$$$$$%%.%/%0%1%%%0&&&&&&&&''''((( ($(((,(0(4(8(<(@(D(H(L(P(T(X(\(](_(d(e(g(i(m(q(u(z({(}(((((((((((((((((((((((((((((((((((((((((((((((()))) ) ))))))) )#)%)))-)/)1)3)7)8)9))))*O***6+++++.. / /11448888 99E9G99999::B:F:V:::::::::A;E;H;N;Q;x;|;;;;<#<'<.<2<C<G<J<L<M<N<O<l<n<<<===B=D=o=r==== >!>%>(>*>+>E>G>_>>>>>?%?(?*?+?Z?[?[@u@v@@@@@@@@@AA AAAAAAA%A&A+A.A1A5A;ABABGBHBMBPBSBVB\B]BbBeBhBkBqBrBsBtBuBzC}CCCGGGGG%HHPIQIRIZIyIIIII,J?JMJNJYJZJKK_KjKkKK{L|LLLLLLLLLLLLLLLLLMBMMMMNXNNNNNO0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000:0:0:0:000000v0v0x0x0x0x0x0x0x0x0x 0x 0Ux 0Ux 0x 0x 0x 0x0x0x 0x 0x 0x0x0x0x0x0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x 0x 0x 0x00x00x00x00x00x00x00x 0x 0x 0x00x00x00x00x00x00x00x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x 0x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x0x0x0x0x0x0x0x0x0x0x0x0x0x0x0v0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.00+?0+?0+?0+?0+? 0+? 0+? 0+? 0+?0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+? 0+?0+?0+?0+?000}C0}C0}C0}C00G 0G 0G 0G0G0G0G0G0G0G0G0G0G0G0G0G00NJ0NJ0NJ0NJ00_K0_K0_K0_K0_K@000@000@000@000@0@0@0@0@0@0H00$@08@0@0@0@0@0@0@0@0@0@0002<=>?@ABCDEFG\ %=>WXqwxyz{|}~5T}hpqsFO Z G V W ?@"#9:WX=>?vwx{|01U 0 &!|!}!!!!z"{"#############$$$ $$$$$$ $!$#$%$)$-$1$6$7$9$;$?$A$E$J$K$M$O$S$U$W$\$]$_$a$c$e$g$l$m$o$s$u$w$y$~$$$$$$$$$$$$$$$$%%.%/%0%1%%%0&&&&&&&&''''((( ($(((,(0(4(8(<(@(D(H(L(P(T(X(\(](_(d(e(g(i(m(q(u(z({(}(((((((((((((((((((((((((((((((((((((((((((((((()))) ) ))))))) )#)%)))-)/)1)3)7)8)9))))*O***6+++++.. / /11448888 99E9G99999::B:F:V:::::::::A;E;H;N;Q;x;|;;;;<#<'<.<2<C<G<J<L<M<N<O<l<n<<<===B=D=o=r==== >!>%>(>*>+>E>G>_>>>>>?%?(?*?+?Z?[?[@u@v@@@@@@@@@AA AAAAAAA%A&A+A.A1A5A;ABABGBHBMBPBSBVB\B]BbBeBhBkBqBrBsBtBuBzC}CCCGGGGG%HHPIQIRIZIyIIIII,J?JMJNJYJZJKK_KjKkKK{L|LLMBMMMMNXNNNNNO0000@000000000000000000000000000000000000@0I0)@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@000000I0#I0#I0#I0#I0#I0#I0#I0#I0#I0#I0#I0#I0#@0@0@0@0@0@0X @0X @0X @0X @0X @0X @0X @0@0@0@0@0@0@0X @0@0@0@0@0@0X @0@0@0@0@0@0@0@0@0@05@05@07@07@07@07@07@07@07@07@07@ 07A 07A 07@ 07@ 07@ 07@ 07@07@07@ 07@ 07@ 07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07 @07 @07 @07@07@07@07 @07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07I00@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@070@070@070@07@07@07@07@07@07@07@07@07@07@07@07@07@0$ @07@07@07@07@07@07@07@07@07@0$ @07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07I00@07@07@07I00I00I00I00I00@0$ I01 I01 I00I00I00I00I00I00@07I010I010I010I010I010I010I010I010@07I0"10I0"10I0"10I0"10I0"10I0"10I0"10I0"10@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@07@05@06%@06%@06%@06%@06%@06%@06%@06%@06%@06%@06%I0c1I0e1I0c1I0c1I0c1I0j1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0t1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1I0c1@0@06%I0c1I0c1I0c1I0c1I0c1I0c1I0c1@0@06%@0@06%@06%I01I01I01I01I01I01I01I01I01@0@0@0I01I01I01I01I01I01I01I01@06%@0@06%@0@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/ @0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0A/@0@0@03@03@03@03@0@07 07 07 07@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0000I0d00020000000000000000000000 002 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(J T 6&I  P"`"#'+02H5v69x:R=BFFJO6PQ^WX|.J$*d  &!%,0458:<>?ABCDEFGHIJLMNPQRSUVXYZ\agh z B j$*/9>JXOOPxPPPPPQ`WWWZhn <$n:V     " B Z z      2 R j       : X p  @Rt 8!%-/123679;=@KOTW[]^_`bcdefijk%.s%ACDFfx.JLMOo  / v    * 8 T W X Z z  % A D E G GG#HAHHHH!INIO X%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕX%ĕ̕XXX !(!!1 _Toc264491326 _Toc264492078 _Toc264492214 _Toc264497290 _Toc264491327 _Toc264492079 _Toc264492215 _Toc264497291 _Toc264491328 _Toc264492080 _Toc264492216 _Toc264497292 _Toc264491329 _Toc264492081 _Toc264492217 _Toc264497293 _Toc264491330 _Toc264492082 _Toc264492218 _Toc264497294 _Toc264497295 _Toc264491332 _Toc264492084 _Toc264492220 _Toc264491333 _Toc264492085 _Toc264492221 _Toc264497296 _Toc264491334 _Toc264492086 _Toc264492222 _Toc264497297 _Toc264491335 _Toc264492087 _Toc264492223 _Toc264497298 _Toc264491336 _Toc264492088 _Toc264492224 _Toc264491337 _Toc264492089 _Toc264492225 _Toc264497299 _Toc264491338 _Toc264492090 _Toc264492226 _Toc264497300 _Toc264497301 _Toc264497302N N N N ::::???xxxx....+?+?+?+?{C{C{C}C}C}C}CGGGGNJ_KO  !"#$%&'()*+,-./0U U U U !!!!VVVV<uuu... /Y?Y?Y?Y?|C|C|CCCCCGGGGXJiKO z}V}nI X + ?A#LM Y ? JS$L;G$%<>EFQRVXbdpqyzv~!35SghoN U X Y [ e l n o ( 3 > A H V X Y ` g q } #-NPgiw>AYr~!$/0 #*./@Bac?AFHQR<=&)@Ipy|}/08:VY^_hms{09<x#%./78:<PQ{}z{.2SUL W !!!%!&!A!B!_!g!{!~!!!!!z"|"d#e#y#z##########################$$$$$ $ $$$$$$$ $!$6$7$J$K$\$]$l$m$~$$$$$$$$$$$$%%%%#%$%-%1%M%V%j%k%%% &&/&0&`&i&&&''((((( (#($('(((+(,(/(0(3(4(7(8(;(<(?(@(C(D(G(H(K(L(O(P(S(T(W(X([(](d(e(h(i(l(m(p(q(t(u(y({((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))) )7)9)i)j)))))))****3*4*N*O*[*\*h*i*******************++++-+.+5+6+B+C+O+P+g+h+z+{+++++++++++++++++++++++++,,2,3,\,],^,_,n,o,u,v,,,,,,,,,,,--;-<-B-C-w-x----..... //;/D/T/i/y0z00001=2D2J2K2[2\2y2z22222T3U3V3`3|3~333333344446 66677>7G777]8f888 99E9H9999999::B:I:V:Y:_:`::::::::;A;I;N;S;x;;;;;;;;<<#<)<.<5<C<O<l<o<<<<<==B=E=o=t===== >>!>+>E>H>_>`>>>>>>>? ?%?+?Z?\?????Z@[@d@g@p@v@@@@@AA$A&A:AH?HAHHHHH"ININJXJZJoJpJJJJJJJJJKKPKRK^K_KiKkKLLALBLyL|LLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMNNXNYNNNNNNNO;G[\ $%<>VXpqv~45Sb|ghoN U X >A!$8:VY<xz}.2TU  / 0 %!&!{!~!!!!!!!y"|"#######################$$$$$ $ $$$$$$$$!$($)$,$-$0$1$5$7$>$?$D$E$I$K$R$S$[$]$k$m$r$s$}$$$$$$$$$$$$%%-%1%%%%%/&0&&&&&&&&&&&''((( (#($('(((+(,(/(0(3(4(7(8(;(<(?(@(C(D(G(H(K(L(O(P(S(T(W(X([(](c(e(l(m(p(q(t(u(y({((((((((((((((((((((((((((((((((((((((()) ) )))))) )")#)())),)-)6)9)))))))**N*O*****5+6+++++++-. //014488 99D9E9G9H999999999::::A:D:F:I:U:Y::::::::::::::::;@;C;E;F;H;I;M;O;Q;S;w;z;|;;;;;;;;<<"<%<'<)<-<0<2<5<B<E<G<H<L<O<k<l<n<o<<<<< ====A=B=D=E=n=p=r=t======= >> >#>%>&>*>+>D>E>G>H>^>`>>>>>>>>>? ?$?&?*?+?Y?\?Z@[@p@v@@@@@@@@@@@@@@@AAAAA AAAAAAAAAAA$A&A*A+A-A.A0A1A4A5A:AB@BABFBHBLBMBOBPBRBSBUBVB[B]BaBbBdBeBgBhBjBkBpBvByC}CCCGGGG$H&HHHOINJXJZJKK^K_KiKkKKKzL|LLLLLLLLLLLLLLLLLLLLLMMAMBMMMMMMMNNWNYNNNNNNNNNOY:Y:_:_:)>*>E>E>F>F>G>H>_>`>>>>>>>>>? ?%?&?(?(?LLLLLLLLLLLLLLLLLLLMMMMMMMMNNXNXNNNNOLLLLLLLLLLLLLLO 9^TzoD:>Z+8G>Xw*yNn7K^v&Sd"?Ai$J~~OJqև"<tݨH9z|4h ^`hH.h   ^ `hH.h  L ^ `LhH.h xx^x`hH.h HH^H`hH.h L^`LhH.h ^`hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.h^`OJQJo(hHh   ^ `o(hH.h  ^ `OJQJo(hHhii^i`OJQJo(hHh99^9`OJQJ^Jo(hHoh  ^ `OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohyy^y`OJQJo(hHh ^`hH.h ^`hH.h pLp^p`LhH.h @ @ ^@ `hH.h ^`hH.h L^`LhH.h ^`hH.h ^`hH.h PLP^P`LhH.^`o(.   ^ `hH.  L ^ `LhH. xx^x`hH. HH^H`hH. L^`LhH. ^`hH. ^`hH. L^`LhH.h ^`hH.h aa^a`hH.h 1 L1 ^1 `LhH.h ^`hH.h ^`hH.h L^`LhH.h qq^q`hH.h AA^A`hH.h L^`LhH.h ^`hH.h aa^a`hH.h 1 L1 ^1 `LhH.h ^`hH.h ^`hH.h L^`LhH.h qq^q`hH.h AA^A`hH.h L^`LhH.{ { ^{ `o(.h KK^K`o(hH. L^`LhH. ^`hH. ^`hH. L^`LhH. [[^[`hH. + + ^+ `hH. "L"^"`LhH.h pp^p`hH.h @ @ ^@ `hH.h L^`LhH.h ^`hH.h ^`hH.h L^`LhH.h PP^P`hH.h   ^ `hH.h L^`LhH.DD^D`o(. ^`hH. L^`LhH. | | ^| `hH. LL^L`hH. L^`LhH. ^`hH. ^`hH. L^`LhH. yN?AiSd>OJq9^"<t7K^9zZ+8oD   &jN&(?*S%Jq"  ,@2j U93.TYJ %#T; K!"#P#/$i'? *K*^c*o*= ,ed,m-u074b46W,:;9;s'<N???@/@kAzUCME!6ESF#mHlKf{K0GLKwL5MbMhN~Qg_RSS1SZHSOeUlwUyU^ZZ[[i[}`*bgc^e9f\og|0hZhmk82nr7rCu&_vLx5|yu5~X~ VNJJu*xq0Tj %K/.>%9B =#8bhg*JP+IVV1(I, "8PVr)<jZzHmVMmuD(bl>pi8t; 3gZPqH2=X _ZkCB@#Y`n.pTl_o'-FaAt)<q;=!%Vd&###########$$$ $$$$$$ $!$#$%$)$-$1$6$7$9$;$?$A$E$J$K$M$O$S$U$W$\$]$_$a$c$e$g$l$m$o$s$u$w$y$~$$$$$$$$$$$$$$$$(( ($(((,(0(4(8(<(@(D(H(L(P(T(X(\(](_(d(e(g(i(m(q(u(z({(}(((((((((((((((((((((((((((((((((((((((((((((((()))) ) ))))))) )#)%)))-)/)1)3)7)8)v@@@@@@@@AA AAAAAAA%A&A+A.A1A5A;ABABGBHBMBPBSBVB\B]BbBeBhBkBqBrBO@LL;cLLH0 0 0 0 0000000000000 0$0%0&0'0(O@@ @ @@0@@@@ @"@$@*@.@0@2@6@8@:@>@B@D@F@H@P@R@T@V@UnknownElutrazLeonardo JelenkoviG:Ax Times New Roman5Symbol3& :Cx Arial?5 :Cx Courier New5& :[`)Tahoma;Wingdings"12f1dp 6A'p 6A'4dLL 2QHP ?j2SVEU ILI`TE U ZAGREBUElutrazLeonardo Jelenkovi8         Oh+'0 ( H T `lt|SVEUILITE U ZAGREBUElutraz Normal.dotLeonardo Jelenkovi49Microsoft Office Word@X1@1c @C$p 6A՜.+,D՜.+,D hp  EPSILON'L' SVEUILITE U ZAGREBU Title 8@ _PID_HLINKSA`N7W-http://en.wikipedia.org/wiki/Slab_allocation }(T5http://en.wikipedia.org/wiki/Buddy_memory_allocation Y1Q)http://en.wikipedia.org/wiki/Memory_pool <J _Toc264497302<D _Toc264497301<> _Toc264497300=8 _Toc264497299=2 _Toc264497298=, _Toc264497297=& _Toc264497296=  _Toc264497295= _Toc264497294= _Toc264497293= _Toc264497292= _Toc264497291= _Toc264497290  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry FM$Data f1Table"FWordDocumentVSummaryInformation(DocumentSummaryInformation8CompObjq  FMicrosoft Office Word Document MSWordDocWord.Document.89q