KDP

Слични документи
KDP

PASCAL UVOD 2 II razred gimnazije

Microsoft Word - 11 Pokazivaci

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

NIZOVI

Microsoft Word - 02 Elementi programskog jezika Pascal

Univerzitet u Nišu Prirodno-Matematički fakultet Marko D. Petković OSNOVI KONKURENTNOG PROGRAMIRANJA SA ZBIRKOM ZADATAKA Niš, 2010

Microsoft PowerPoint - C-4-1

PowerPoint Presentation

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

Osnovi programiranja Beleške sa vežbi Smer Računarstvo i informatika Matematički fakultet, Beograd Jelena Tomašević i Sana Stojanović November 7, 2005

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

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

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

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

МОДЕЛ КОНТРОЛНЕ ВЕЖБЕ Информатика и рачунарство за шести разред разред Наставна тема: Редни број часа: 8. РАЧУНАРСТВО Циљ часа: Теститарање постигнућа

Algoritmi SŠ P1

SPR , IV godina, VHDL – Ispitna pitanja

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

Microsoft PowerPoint - 12a PEK EMT VHDL 1 od 4 - Uvod (2011).ppt [Compatibility Mode]

06 Poverljivost simetricnih algoritama1

Uvod u PHP

Tutoring System for Distance Learning of Java Programming Language

PROMENLJIVE, TIPOVI PROMENLJIVIH

Privremene regulacije prometa na autocestama za vrijeme vikenda u periodu od godine do godine Autocesta A1 (Zagreb Split - Dub

ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ УНИВЕРЗИТЕТ У НИШУ ПРАВИЛНИК О ИЗБОРИМА СТУДЕНТСКОГ ПАРЛАМЕНТА Ниш, Aприл године

3.Kontrlne (upravlja~ke) strukture u Javi

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

KATUŠIĆ ANTONIO.pdf

Програмирај!

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

UDŽBENIK 2. dio

Republika Srbija MINISTARSTVO PROSVJETE, NAUKE I TEHNOLOŠKOG RAZVOJA ZAVOD ZA VREDNOVANJE KVALITETA OBRAZOVANJA I ODGOJA ZAVRŠNI ISPIT NA KRAJU OSNOVN

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

9. : , ( )

Kombinatorno testiranje

Pojačavači

12 Stanje

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

Tutoring System for Distance Learning of Java Programming Language

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

TEST Na putu izvan naselja zaustavljeno je vozilo zbog kvara. Na kojoj udaljenosti morate postaviti sigurnosni trougao iza zaustavljenog vozila

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

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

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

Uputstva za oblikovanje doktorske disertacije

Slide 1

Slide 1

Tutoring System for Distance Learning of Java Programming Language

Microsoft Word - ETH2_EM_Amperov i generalisani Amperov zakon - za sajt

Skripte2013

Grananje u programu predavač: Nadežda Jakšić

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

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

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

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ТЕСТ МАТЕМАТИКА школска 2015/

GEOGRAFIJA EKSTERNA PROVJERA ZNANJA NA KRAJU III CIKLUSA OSNOVNE ŠKOLE 10. maj GOD. UPUTSTVO ZA BODOVANJE Napomene: Pridržavajte se predloženog

Microsoft Word - IWT0906R.doc

I колоквијум из Основа рачунарске технике I СИ- 2017/2018 ( ) Р е ш е њ е Задатак 1 Тачка А Потребно је прво пронаћи вредности функција f(x

Funkcije predavač: Nadežda Jakšić

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

Република Србија МИНИСТАРСТВО ПРОСВЕТЕ, НАУКЕ И ТЕХНОЛОШКОГ РАЗВОЈА ЗАВОД ЗА ВРЕДНОВАЊЕ КВАЛИТЕТА ОБРАЗОВАЊА И ВАСПИТАЊА ЗАВРШНИ ИСПИТ НА КРАЈУ ОСНОВН

Microsoft PowerPoint - 5. Predavanje-w2.pptx

PowerPoint Presentation

PowerPoint Presentation

My_P_Red_Bin_Zbir_Free

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Microsoft Word - Tok casa Elektronski elementi Simeunovic Bosko

The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature opti

UNIVERZITET U NIŠU PRIRODNO MATEMATIČKI FAKULTET DEPARTMAN ZA RAČUNARSKE NAUKE Algoritmi za determinizaciju i minimizaciju nedeterminističkih automata

Microsoft Word - 13pavliskova

Inženjering informacionih sistema

TEST 2 Auto Škola LEMI FORCE mob: Da li je vozaču zabranjeno da pretiče vozilo koje se približava obilježenom pješačko

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

Programiranje 1

ТЕОРИЈА УЗОРАКА 2

PHP kod

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

PowerPoint Presentation

3_Elektromagnetizam_09.03

Microsoft Word - ASIMPTOTE FUNKCIJA.doc

Analiticka geometrija

OOP08

Tutoring System for Distance Learning of Java Programming Language

Microsoft PowerPoint - A02 - P. ZDRAVKOVIC [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Polovni Automobili - Media Kit 2019_rd3

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред

Aksiomatska semantika kroz primere Seminarski rad u okviru kursa Verifikacija softvera Matematički fakultet Nikola Katić, 1094/2017

Microsoft PowerPoint - jkoren10.ppt

Funkcije predavač: Nadežda Jakšić

Analiticka geometrija

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

ТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља www.

Microsoft Word - 7. cas za studente.doc

PowerPoint Presentation

Транскрипт:

Региони

Региони Програмска парадигма за приступ критичној секцији Увођење посебне синтаксе за експлицитно означавање критичних секција Обезбеђивање међусобног искључивања процеса Условни критични регион је критични регион који поред обезбеђивања међусобног искључивања има и механизам за синхронизацију процеса преко (опционих) await наредби 2/33

Региони Декларација ресурса одређеног типа се обавља као и декларација сваке друге дељене променљиве: res: shared type; Условни критични регион се синтаксно дефинише на следећи начин (await наредба је опциона и ако се изостави добијамо обичан критични регион): region res do... [await(condition);]... 3/33

Задаци

Условна синхронизација Дат је упоредни програм на проширеном Pascal-у: procedure makepoints; var i: integer; for i := 1 to n do x := i; y := i*i; end procedure printpoints; var i: integer; for i := 0 to n do write('(', x, ', ', y, ')'); end Жељени излаз програма је низ парова облика: (0,0) (1,1) (2,4)... (n,n 2 ) Отклонити временску зависност у датом програму употребом условних критичних области. 5/33

Условна синхронизација program graph; const n =...; type point = record x, y:integer; full: boolean var p: shared point; procedure makepoints; var i: integer; for i := 1 to n do region p do await(not p.full); p.x := i; p.y := i*i; p.full := true end 6/33

Условна синхронизација procedure printpoints; var i: integer; for i := 0 to n do region p do await(p.full); write('(, p.x, ',, p.y,')'); p.full := false end p.x := 0; p.y := 0; p.full := true; co makepoints; printpoints; coend end. 7/33

One-lane bridge problem 8/33

One-lane bridge problem Аутомобили који долазе са севера и југа морају да пређу реку преко моста. На мосту, на жалост, постоји само једна возна трака. Значи, у било ком тренутку мостом може да прође један или више аутомобила који долазе из истог смера (али не и из супротног смера). Написати алгоритам за аутомобил са севера и аутомобил са југа који долазе на мост, прелазе га и напуштају га са друге стране. 9/33

One-lane bridge problem var most: shared record juzni, severni: integer end "u početku oba su nula" "automobil sa juga" region most do end predji_most; region most do juzni := juzni - 1; end await (severni = 0); juzni := juzni + 1; 10/33

One-lane bridge problem Усавршити решење претходног задатка тако да се смер саобраћаја мења сваки пут након што га пређе 10 аутомобила из истог смера, ако су за то време један или више аутомобила чекали да га пређу из супротног смера. 11/33

One-lane bridge problem type smer = record; cekaju, prelaze, ispred: integer; end var most: shared record juzni, severni: smer; end "automobil sa juga" region most do with juzni do cekaju := cekaju + 1; await (severni.prelaze = 0 AND ispred < 10); cekaju := cekaju - 1; prelaze := prelaze + 1; if (severni.cekaju > 0) then ispred := ispred + 1; predji_most; region most do with juzni do prelaze := prelaze - 1; if (prelaze = 0) then severni.ispred := 0; end end 12/33

Dining philosophers problem 13/33

Dining philosophers problem Пет филозофа седи око стола. Сваки филозоф наизменично једе и размишља. Испред сваког филозофа је тањир шпагета. Када филозоф пожели да једе, он узима две виљушке које се налазе уз његов тањир. На столу, међутим, има само пет виљушки. Значи, филозоф може да једе само када ниједан од његових суседа не једе. Прокоментарисати дата решења описаног проблема (исправност, праведност,...). 14/33

Dining philosophers problem - 1 var viljuske: shared array [0..4] of 0..2; procedure filozof (i:0..4); var levi, desni: 0..4; levi := (i-1) mod 5; desni := (i+1) mod 5; repeat razmisljaj; region viljuske do await (viljuske[i] = 2); viljuske[levi] := viljuske[levi] - 1; viljuske[desni] := viljuske[desni] - 1; jedi; region viljuske do viljuske[levi] := viljuske[levi] + 1; viljuske[desni] := viljuske[desni] + 1; forever; 15/33

Dining philosophers problem - 2 var viljuska : array [0..4] of shared boolean; "filozof i" repeat razmisljaj; region viljuska [i] do region viljuska [(i+1) mod 5] do jedi; forever 16/33

Dining philosophers problem - 3 var razmisljanje: shared array [0..4] of boolean; "u početku sve je tacno" "filozof i" repeat razmisljaj; region razmisljanje do await (razmisljanje[(i-1) mod 5] AND razmisljanje[(i+1) mod 5]); razmisljanje[i] := false; jedi; region razmisljanje do razmisljanje[i] := true; forever; 17/33

Readers Writers problem 18/33

Readers Writers problem Група упоредих процеса који приступају заједничком средству састоји се од читалаца Ri, i = 1,...,m, и писаца Wj, j = 1,...,n. v: shared record r, w: integer v1: shared integer; v.r := 0; v.w := 0; co R1;... Rm; W1;... Wn coend end За сва предложена решења одговорити да ли је: Међусобно искључење осигурано. Могуће узајамно блокирање читалаца и писаца. Могуће узајамно блокирање писаца (при r=0). Могуће 'изгладњивање' читалаца. Могуће 'изгладњивање' писаца. 19/33

Readers Writers problem - 1 "Ri" repeat region v do await (w = 0); r := r + 1 read; region v do r := r - 1; nekritične_operacije; forever "Wi" repeat region v do w := w + 1; await (r = 0) write; region v do w := w - 1; nekritične_operacije; forever 20/33

Readers Writers problem - 2 "Ri" repeat region v do await (w = 0); r := r + 1 read; region v do r := r - 1; nekritične_operacije; forever "Wi" repeat region v do w := w + 1; await ((r = 0) and (w = 1)) write; region v do w := w - 1; nekritične_operacije; forever 21/33

Readers Writers problem - 3 var v: shared record r, w: integer; rturn: boolean v.r := 0; v.w := 0; v.rturn := false; co R1;... Rm; W1;... Wn coend 22/33

Readers Writers problem - 3 "Ri" repeat region v do if (rturn) then r := r + 1; await (w = 0) end else await (w = 0); r := r + 1 read; region v do r := r - 1; rturn := false nekritične_operacije; forever 23/33

Readers Writers problem - 3 "Wi" repeat region v do if (rturn) then await (r = 0); w := w + 1 end else w := w + 1; await (r = 0) write; region v do w := w - 1; rturn := true nekritične_operacije; forever 24/33

Cigarette Smokers problem 25/33

Cigarette Smokers problem Користећи условне критичне регионе написати програм који решава проблем и симулира систем нервозних пушача (Cigarette Smokers problem). Постоји један агент и три нервозна пушача. Агент поседује резерве три неопходна предмета за лечење нервозе: папир, дуван и шибице. Један од пушача има бесконачне залихе папира, други дувана, а трећи - шибица. Агент почиње тако што два различита предмета ставља на сто, један по један. Пушач, коме баш та два предмета фале, узима их, завија и пали цигарету и ужива. Након тога обавештава агента да је завршио, а агент онда ставља два нова предмета на сто, итд. 26/33

Cigarette Smokers problem program CigaretteSmokers(input, output); type table = record paper, tobacco, matches : boolean; ok : boolean; var p: shared table; 27/33

Cigarette Smokers problem procedure Agent; var n : integer; while (true) do n := RANDOM(0, 2); region p do case n of 0: p.paper := false; p.tobacco := true; p.matches := true; 1: p.paper := true; p.tobacco := false; p.matches := true; 2: p.paper := true; p.tobacco := true; p.matches := false; else ; await(p.ok); p.ok := false; 28/33

Cigarette Smokers problem procedure smoker_with_matches; while (true) do region p do await(p.paper and p.tobacco); p.paper := false; p.tobacco := false; enjoy; p.ok := true; 29/33

Cigarette Smokers problem procedure smoker_with_tobacco; while (true) do region p do await(p.paper and p.matches); p.paper := false; p.matches := false; enjoy; p.ok := true; 30/33

Cigarette Smokers problem procedure smoker_with_paper; while (true) do region p do await(p.matches and p.tobacco); p.matches := false; p.tobacco := false; enjoy; p.ok := true; 31/33

Cigarette Smokers problem p.paper := false; p.tobacco := false; p.matches := false; p.ok := false; co Agent; smoker_with_paper; smoker_with_tobacco; smoker_with_matches; co end. 32/33

Питања? Захарије Радивојевић, Сања Делчев Електротехнички Факултет Универзитет у Београду zaki@etf.rs, sanjad@etf.rs