P9.1 Dodela resursa, Bojenje grafa

Слични документи
P11.3 Analiza zivotnog veka, Graf smetnji

P11.2 Izbor instrukcija, IBURG

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Problemi zadovoljavanja ogranicenja.

P1.3 Projektovanje makroasemblera

Algoritmi i arhitekture DSP I

Postavka 2: Osnovni graf algoritmi 1 DISTRIBUIRANI ALGORITMI I SISTEMI Iz kursa CSCE 668 Proleće 2014 Autor izvorne prezentacije: Prof. Jennifer Welch

P1.2 Projektovanje asemblera

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvrsnog_Programa [Compatibility Mode]

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

PROMENLJIVE, TIPOVI PROMENLJIVIH

Zbirka resenih zadataka iz arhitekture racunara

Vezbe_AOR1_2014_V1.0

Funkcije predavač: Nadežda Jakšić

Microsoft PowerPoint - Ekoloska (city) logistika 8.3

Писање и превођење модула

Classroom Expectations

P11.1 Izbor instrukcija, najveci zalogaj

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Tutoring System for Distance Learning of Java Programming Language

P9.2 Optimizujuci kompajler, prednji deo

P2.1 Projektovanje paralelnih algoritama 1

Precesor Intel 8086

LAB PRAKTIKUM OR1 _ETR_

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Увод у организацију и архитектуру рачунара 1

Logicko projektovanje racunarskih sistema I

Техничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић

P2.1 Formalne gramatike

1 Konusni preseci (drugim rečima: kružnica, elipsa, hiperbola i parabola) Definicija 0.1 Algebarska kriva drugog reda u ravni jeste skup tačaka opisan

IV Spekulativno I predikatsko izvršavanje

Microsoft Word - 11 Pokazivaci

UPUTA za uvođenje JOPPD - prva faza

DUBINSKA ANALIZA PODATAKA

Opticum HD - Uputstvo za skeniranje kanala.docx

Електротехнички факултет Универзитета у Београду Катедра за рачунарску технику и информатику Kолоквијум из Интелигентних система Колоквију

ПА-4 Машинско учење-алгоритми машинског учења

Орт колоквијум

Математика 1. Посматрај слику и одреди елементе скуупова: а) б) в) средњи ниво А={ } B={ } А B={ } А B={ } А B={ } B А={ } А={ } B={ } А B={ } А B={ }

Рачунарска интелигенција

Broj indeksa:

Microsoft Word - IP_Tables_programski_alat.doc

Logicko projektovanje racunarskih sistema I

IV Spekulativno I predikatsko izvršavanje

Tutoring System for Distance Learning of Java Programming Language

Uvod u računarstvo 2+2

Орт колоквијум

Algoritmi

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

PowerPoint Presentation

Microsoft Word - Plan numeracije preciscen tekst

UPUTSTVO ZA KRETANJE KROZ EON KORISNIČKI INTERFEJS 1

Upitni jezik SQL

_sheets.dvi

Funkcije predavač: Nadežda Jakšić

СТАРТ - СТОП АПЛИКАЦИЈА - КОРИСНИЧКО УПУТСТВО

KATALOG ZNANJA IZ INFORMATIKE

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

UPUTSTVO ZA PODEŠAVANJE EON MENIJA 1

Konstrukcija i analiza algoritama vežbe 10 Nina Radojičić 15. decembar Algoritamske strategije - podeli pa vladaj (divide and conquer) Ova stra

Microsoft Word - LelasMarko_routing in ad hoc networks.doc

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

PowerPoint Presentation

RACUNARSKA ELEKTRONIKA – VEŽBE 3

Техничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вуји

PowerPoint Presentation

СТАРТ - СТОП ПАРКИНГ СИСТЕМ КОРИСНИЧКО УПУТСТВО страна 1 од 12

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

Z-16-48

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, поштански преградак 34, ПАК телефон:

Microsoft Word - VEROVATNOCA II deo.doc

DVD Čička Poljana - Vatrogasne igre

Računarski praktikum I - Vježbe 03 - Implementacija strukture string

Прилог бр. 1. НАСТАВНО НАУЧНОМ /УМЈЕТНИЧКОМ ВИЈЕЋУ МАШИНСКОГ ФАКУЛТЕТА ИСТОЧНО САРАЈЕВО СЕНАТУ УНИВЕРЗИТЕТА У ИСТОЧНОМ САРАЈЕВУ Предмет: Извјештај ком

Programski jezik C

6. sluzba transfuzije 2012

Орт колоквијум

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

Javna rasprava o Nacrtu odluke o transakcijskim računima

(Microsoft Word - LOCIRANJE ROBE U SKLADI\212TU-vezbe doc)

Model podataka

KORISNIČKO UPUTSTVO

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

ТЕСТ УЗОРАК Б (за стицање знања предсједника и чланова бирачког одбора) Име и презиме: Мјесто и датум полагања теста: Упутство: Попуњавање овог теста

Задатак 4: Центрифугална пумпа познате карактеристике при n = 2900 min -1 ради на инсталацији приказаној на слици и потискује воду из резервоара А у р

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

Slide 1

Uvodne napomene

Техничко решење: Метода мерења реактивне снаге у сложенопериодичном режиму Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аут

Транскрипт:

Фаза доделе ресурса Ова фаза се у литератури назива и фазом доделе регистара, при чему се под регистрима подразумева скуп ресурса истог типа. Додела регистара променљивама из графа сметњи се обавља тзв. бојењем графа сметњи. 1

Бојење графа сметњи Сваком регистру одредишног процесора одговара једна боја, тако да се код процесора са К регистара, граф сметњи боји са К боја, што се назива К-бојење. Ако је К-бојење неког графа сметњи успешно, оно одређује исправну доделу регистара привременим променљивама. у супротном случају, неке привремене променљиве се морају сместити у неку другу класу ресурса (нпр. меморијске локације), што се назива преливањем (енгл. spill). 2

Ранг чвора и Значајни ранг Деф.: Два чвора графа сметње су суседна уколико су међусобно повезана (тј. ако између њих постоји сметња). Деф.: Ранг чвора графа сметњи је једнак броју њему суседних чворова. Деф.: Ранг чвора који је већи или једнак К (бр. Расположивих боја) је значајан ранг. Деф. За чвор чији ранг је значајан се каже да је значајан чвор. 3

Основне примитиве (фазе) алгоритма за доделу ресурса (1/2) ФОРМИРАЈ: формира граф сметњи. УПРОСТИ: Чвор који није значајан се извлачи из графа и гура на стек (он није кандидат за преливање). Прелиј. ПРЕЛИЈ: Примењује у ситуацији кад су сви преостали чворови значајни. Он изабере један значајан чвор, означи га као кандидата за преливање, извуче из графа и гурне на стек. ИЗАБЕРИ: 1) Додељује боју чвору са стека, који се потом скида са стека и враћа у граф који се постепено реконструише. 4

Основне примитиве (фазе) алгоритма за доделу ресурса (2/2) ИЗАБЕРИ: 2) Уколико нема боје, чвор се прелива. ПОНОВИ : Уколико је дошло до преливања, чвор је смештен у ресурс друге класе (нпр. мем. лок.). Тада се полазни програм мора модификовати додавањем инструкција: За дохватање променљиве из одговарајуће мем. лок. пре сваке употребе променљиве. За ажурирање одговарајуће мем. лок. након сваке дефиниције променљиве. 5

Аномалије примитиве ПОНОВИ Преливена променљива се претвара у више привремених променљивих са врло кратким опсегом живота. Ове привремене променљиве изазивају нове сметње са постојећим променљивама у графу сметњи. Зато се цео поступак доделе ресурса мора поновити на новој верзији програма. 6

Примитива ПОНОВИ доводи до измене стабла међукода ПРЕВОЂЕЊЕ У МЕЂУКОД ИЗБОР ИНСТРУКЦИЈА АНАЛИЗА ЖИВОТНОГ ВЕКА ДОДЕЛА РЕСУРСА да ПРЕЛИВАЊЕ? РАСПОРЕЂИВАЊЕ ИНСТРУКЦИЈА 7

Уклањање непотребних MOVE инструкција Граф сметњи се користи и за уклањање непотребних MOVE инструкција. Уколико између изворишта и одредишта MOVE инструкције не постоји лук графа сметњи, MOVE инструкција се може уклонити, а одговарајући чворови спојити у нови чвор чији лукови су унија лукова чворова које замењује. Од интереса су сигурне стратегије употребе операције спајања, које неће довести до тога да обојив граф постане необојив. 8

Сигурне стратегије спајања чворова графа сметњи Стратегија Бригса (Briggs). Чворови a и b се могу спојити уколико резултантни чвор ab има мање од К значајних суседа. Стратегија Џорџа (George). Чворови a и b се могу спојити уколико сваки сусед чвора а, има сметњу са b, или нема значајан ранг (тј. ранг му је мањи од К). 9

Комбинован алгоритам за доделу рег. и уклањање MOVE инст. formiraj uprosti spoj zamrzni preli izaberi ponovi formiraj novi graf smetnji 10

Модификована примитива УПРОСТИ и нове примитиве СПОЈ и ЗАМРЗНИ УПРОСТИ: Један по један уклањај чворове који нису у вези са MOVE инструкцијом и немају значајан ранг. СПОЈ: Обавља конзервативно спајање чворова. ЗАМРЗНИ: Уколико се ни УПРОСТИ ни СПОЈ не могу применити, тражи се чвор у вези са MOVE који нема значајан ранг. Ако он постоји, сви MOVE у вези с њим се замрзавају (одустаје се од намере да се они елиминишу спајањем чворова путем СПОЈ). 11

Бојење графа са спајањем чворова се обавља и за преливене Посматрајмо a<-b. Ако су a и b преливене, овај MOVE се реализује са t<-m[b]; M[a]<-t. Нова привремена променљива т може довести до преливања још неких привремених променљивих. Бојење графа са спајањем преливених чворова у оквиру примитиве ПОНОВИ сада може бити агресивно. 12

Агресивно Бојење графа са спајањем преливених чворова Конструисати граф сметњи за преливене чворове. Спој парове преливених повезаних са MOVE који немају међусобне сметње. Примени УПРОСТИ и ИЗАБЕРИ додељене боје сада одговарају меморијским локацијама преливених чворова. 13

Претходно обојене привремене променљиве Тј. чворови са предефинисаном бојом Представљају машинске регистре са посебном наменом нпр. показивач стека, итд. Ако нису експлицитно коришћени, они не сметају обичним чворовима. Ако јесу експлицитно коришћени, не могу бити предмет операција УПРОСТИ и ПРОСПИ. Уместо да се стално држи у претходно обојеној прив. пром., регистар се може пребацити у обичну привремену променљиву. 14

Пример (1/3) Пример из анализе животног века; K=2 Улаз: Граф тока управљања Граф сметњи 15

Пример (2/3) Пример из анализе животног века; K=2 1. 1.УПРОСТИ: а иде на стек (b и ц остају у графу) 2. 2.УПРОСТИ: b иде на стек (c остаје у графу) 3. 3.УПРОСТИ: c иде на стек (граф остаје празан) 16

Пример (3/3) Пример из анализе животног века; K=2 4. 4.ИЗАБЕРИ: c добија жуту боју (а и b остају на стеку) 5. 5.ИЗАБЕРИ: b добија плаву боју јер има сметњу са c (a остаје на стеку) 6. 6.ИЗАБЕРИ: a добија такође плаву боју јер нема сметњу са b (стек је испражњен) 17

Пирамида ресурса privremene promenljive lokalne promenljive pokušaj ako ne uspe onda AKUMULATORI globalne promenljive lokalne promenljive od kojih se uzima adresa na stek ili u memoriju pokušaj u memoriju na stek ili u memoriju REGISTRI OPŠTE NAMENE STEK I MEMORIJA 18

Фаза преименовања регистара Фаза доделе ресурса ради на два нивоа, на нивоу функције и на нивоу модула. На нивоу функције се додељују акумулатори и регистри опште намене за параметре функција, стек и регистар повратне адресе. На нивоу модула се додељују преостали регистри опште намене и меморија. 19

Проблем С обзиром да се додела ресурса на нивоу функције обавља за сваку функцију понаособ, долази до појаве да се увек исти ресурси користе у свим функцијама. Непосредна последица тога је да све функције модула увек користе акумулаторе са почетка листе акумулатора 0, 1, 2,..., итд., односно акумулатори са краја листе се ређе користе. 20

Проблем - пример void foo(int x); g = нешто; // g се поставља... foo(5);... нешто = g; // g се користи _foo:... r1 <- 8... Неком операнду у foo је такође додељен регистар r1 r1 <- нешто... r0 <- 5 call _foo... нешто <- r1 Операнду g је додељен регистар r1 Два решења: 1. Променити код тако да се вредност у r1 сачува у меморију пре позива foo, и врати након тога. (Ово се може урадити у позивној функцији, али и на почетку и крају позване функције) 2. Преименовати ресурсе у foo тако да се уместо r1 користи нпр. r2, који позивни код не користи. 21

Улаз у фазу преименовања: граф позива функција, који се формира у фази доделе ресурса, информација о коришћењу акумулатора у појединим функцијама, која се такође скупља у фази доделе ресурса, и информација о акумулаторима који живе преко позива функција. 22

Излаз из фазе преименовања: Излаз ове фазе превођења програма је скуп табела за преименовање акумулатора. Концепцијски, табела за преименовање акумулатора садржи врсте за акумулаторе чије име треба променити, и две колоне, од којих прва садржи старо име акумулатора, а друга ново име акумулатора. 23