Atomi műveletek őrfeltételének meghatározása. Konkrét program elkészítése. 1. Példa: Számítógép labor használata.
|
|
- Ernő Gáspár
- 7 évvel ezelőtt
- Látták:
Átírás
1 Funkcionalitás és szinkronizáció SZINKRONIZÁCIÓS KÓD SZINTÉZISE A konkurens programokkal megoldandó feladatok jelentős részénél a szinkronizációs problémák megoldása (és az ehhez szükséges szinkronizációs kód előállítása) elválasztható a funkcionális probléma megoldásától. 3 Szinkronizációs kód szintézisének lépései Modell alkotás Feladat Modell Absztrakt program Konkrét program Elemzés Követelmények leírása Statikus modell Dinamikus modell Változók kezdeti értékei Folyamatok szerkezete Atomi műveletek kijelölése Szemaforok bevezetése Egyszerűsítés, ha lehet Kijelöljük a feladat megoldásának folyamatait, és az azok által közösen használt erőforrásokat, a folyamatok egymáshoz viszonyított szerepét (osztálydiagram). Meghatározzuk a folyamatok és az erőforrások lehetséges állapotait (állapotdiagram). A folyamatok állapotai aktív állapotok, tehát tevékenységekre (köztük az erőforrásokra irányuló tevékenységekre) utalnak. Az erőforrások állapotai a folyamatok tevékenységei közötti szinkronizációs feltételeiket tükrözik. Ha a folyamatoknak különböző prioritásaik is lehetnek, akkor a magasabb prioritásúak számára speciális állapotokat vezetünk be a korrekt ütemezés érdekében. 4 5 Modell alkotás Meghatározzuk az állapot-átmenetek műveleteit, az előfeltételeikkel együtt különös tekintettel az aktív állapotok be- (entry) és kilépési (exit) fázisaira (ezek őrfeltételes atomi műveletek lesznek majd az absztrakt programban), illetve az erőforrás-igénylést elindító (request) tevékenységre. Töröljük azokat a műveleteket, amelyek nem eredményeznek állapot-átmenetet. Absztrakt program tervezése A rszer állapotait jellemző változókat vezetünk be. Az állapotok invariánsát felírjuk a változók segítségével. Meghatározzuk az így bevezetett változók kezdeti értékeit. Elkészítjük a folyamatok vázát a kezdeti értékadásokkal együtt. Az osztott változókon dolgozó értékadásokat (az állapotdiagram műveleteit) a folyamatokhoz reljük úgy, hogy a folyamatok önmagukban helyes eredményt adjanak. Az értékadó utasításokat (ha kell őrfeltételes) atomi tevékenységekké fogjuk össze, ha azok csak kölcsönös kizárással hajthatók végre. (lásd külön a következő dián) Igazoljuk a az egyes folyamatok helyességét
2 Atomi műveletek őrfeltételének meghatározása Konkrét program elkészítése <await β then S ta> 1. Az S művelet a modell egy aktív folyamatának művelete, amely olyan, úgynevezett szinkronizációs feltétellel van ellátva, amelyik egy közös erőforrás állapotától függ. Ekkor ez a feltétel lesz a β őrfeltétel. 2. Kezdetben csak az S műveletet és az ahhoz tartozó I invariánst (a közös, osztott változókra hivatkozó predikátum) ismerjük. Először meghatározzuk a {K} <S> {L} tételt úgy, hogy a K és L csak az S-re lokális változókra hivatkozhatnak. Ellenőrizzük, hogy az egyes folyamatok bizonyításai ezzel nem interferálnak. A β őrfeltételre az alábbinak kell teljesülni: K I β lf(s, L I) Szemaforokat relünk az őrfeltételes utasításokhoz. Definiáljuk a szemaforok kezdeti értékeit. Implementáljuk az őrfeltételes utasításokat a szemaforokat használó sémákkal. Ha lehetséges, akkor egyszerűsítjük a programot Példa: Számítógép labor használata (Sike Sándor és Varga László esettanulmánya) Egy számítógép laborban számítógépek vannak van. Hallgatók a tanulmányaikhoz számítógépet is használnak. Ha nincs szabad gép, akkor a laboron kívül várakoznak, amíg fel nem szabadul egy. A számítógép-használat befejeztével elhagyják a labort, és mással foglalkoznak, amíg újra nincs szükségük számítógépre. A labor karbantartását rszergazdák látják el. Bármelyik rszergazda kezdeményezhet karbantartást, de egy adott pillanatban csak egy végezhet karbantartást. A karbantartás addig nem kezdhető meg, amíg hallgató tartózkodik a laborban. Szimuláljuk ennek a rszernek a működését! Osztály diagram System * * Crew maintain use Lab cap Student cap {exclude} Dinamikus modell Állapotok: a rszer állapotát a rszergazdák állapota, a hallgatók állapota és a labor állapota együttesen határozza meg. Hallgatók dinamikus modellje Egy hallgató kétféle állapotban lehet: o Számítógépet használ (do/use). o Egyéb tevékenységet folytat (do/work). system crew i lab student j student j use.ent[φ 1 ] do / work use.ex do / use
3 Rszergazdák dinamikus modellje Egy rszergazda háromféle állapotban lehet: o Pihen (do/rest) o Karbantartási igénye van (requesting). o Karbantart (do/maintain) crew i request do / rest requesting maintain.ex do / maintain maintain.ent[φ 2 ] Labor dinamikus modellje A labor állapotát a benn tartózkodó hallgatók száma (t), a karbantartási igényt benyújtó rszergazdák száma (r), és a karbantartást végző rszergazdák száma (w) határozza meg. Az állapot átmeneteket a Student és a Crew műveletek végzik. use.ent use.ent[φ 3 ] empty normal full use.ex[φ 4 ] use.ex t=0 0<t<cap t=cap lab request maintain.ent OK requested maintained r=0 w=0 maintain.ex[φ 6 ] r>0 w=0 maintain.ex[φ 5 ] w= Állapot-átmenetek feltételei A diagrammokban feltüntettük, hogy hol van szükség őrfeltételre: o φ 1 (use.ent) : in full in OK o φ 2 (maintain.ent) : in empty in maintained o φ 3 (use.ent) : t = cap 1 o φ 4 (use.ex) : t = 1 o φ 5 (maintain.ex) : r>0 o φ 6 (maintain.ex) : r = 0 A fentiek közül a φ 1 és φ 2 szinkronizációs feltétel is egyben. o φ 1 (use.ent) :t cap w=0 r=0 o φ 2 (maintain.ent) : w=0 t=0 Megoldás váza t, r, w :=0, 0, 0; parbegin crew 1 crew n student 1 student m par változók t, r, w : N crew i : request; student j : tevékenység feltétel atomi utasítás request igaz <r := r+1> maintain.ent φ 1 w=0 t=0 <r := r1; w := w+1> maintain.ex igaz <w := w1> use.ent φ 2 t cap w=0 r=0 <t := t+1> use.ex igaz <t := t1> Megoldás váza t, r, w :=0, 0, 0; parbegin crew 1 crew n student 1 student m par A rszer invariánsa: I 0 t cap r 0 (w=0 w=1) crew i : <r := r+1> <w=0 t=0 r := r1; w := w+1> <w := w1> student j : <t cap w=0 r=0 t := t+1> <t := t1> Absztrakt program crew i : await igaz then r := r+1 ta; await w=0 t=0 then r := r1; w := w+1 ta; await igaz then w := w1 ta; student j : await t cap w=0 r=0 then t := t+1 ta; await igaz then t := t1 ta;
4 Helyesség Parciális helyesség: Interferencia-mentesség: crew i crew j? student i student j? crew i student j? student j : { I } { I } await t cap w=0 r=0 then t := t+1 ta; { I t>0 w=0 } await igaz then t := t1 ta; { I t < cap } I 0 t cap r 0 (w=0 w=1) crew i : { I } { I } await igaz then r := r+1 ta; { I r>0 } await w=0 t=0 then r := r1; w := w+1 ta; { I t =0 w=1} await igaz then w := w1 ta; { I } 22 Új annotáció Kisegítő változók: w k, r k : {0,1} k=1..n t k : {0,1} k=1..m Új invariáns: I régi w = Σ k=1..n w k t = Σ k=1..m t k r = Σ k=1..n r k student j : { I } w i = 0 r i = 0 t j = 0 { I } t j = 0 await t cap w=0 r=0 then t := t+1 ta; t t { I t>0 w=0} j = 1 j :=1 await igaz then t := t1 ta; t j :=0 { I } t j = 0 crew i : { I } w i = 0 r i = 0 w i = 0 r i = 0 { I } await igaz then r := r+1 ta; r i :=1 { I r>0 } w i = 0 r i = 1 await w=0 t=0 then r := r1; w := w+1 ta; { I t =0 w=1} w i = 1 r i = 0 await igaz then w := w1 ta; { I} r i :=0; w i :=1 w i :=0 23 Parciális helyesség crew i : { I w i =0 r i = 0 } { I w i =0 r i = 0 } await igaz then r:=r+1; r i :=1 ta; { I r>0 w i =0 r i = 1 } await w=0 t=0 then r:=r1 ; r i :=0; w:=w+1; w i :=1 ta; { I t=0 w=1 w i =1 r i = 0 } await igaz then w:=w1; w i :=0 ta; student j : { I t j =0 } { I t j =0 } await t cap w=0 r=0 then t:=t+1; t j :=1 ta; { I t>0 w=0 t j =1} await igaz then t:=t1; t j :=0 ta; I 0 t cap (w=0 w=1) w = Σ k=1..n w k t = Σ k=1..m t k r = Σ k=1..n r k 24 Interferencia mentesség crew i crew j student i student j crew i student j student j : { I t j =0 } { I t j =0 } await t cap w=0 r=0 then t:=t+1; t j :=1 ta; { I t>0 w=0 t j =1} await igaz then t:=t1; t j :=0 ta; crew i : { I w i =0 r i = 0 } { I w i =0 r i = 0 } await igaz then r:=r+1; r i :=1 ta; { I r>0 w i =0 r i = 1 } await w=0 t=0 then r:=r1 ; r i :=0; w:=w+1; w i :=1 ta; { I t=0 w=1 w i =1 r i = 0 } await igaz then w:=w1; w i :=0 ta; 25 Kölcsönös kizárás use maintain maintain i maintain j legfeljebb cap darab use j crew i : await igaz then r:=r+1 ta; await w=0 t=0 then r:=r1; w:=w+1; w i :=1 ta; { I t=0 w=1 w i =1} await igaz then w:=w1; w i :=0 ta; student j : await t cap w=0 r=0 then t:=t+1; t j :=1 ta; { I t>0 w=0 t j =1} await igaz then t:=t1; t j :=0 ta; I 0 t cap (w=0 w=1) w = Σ k=1..n w k t = Σ k=1..m t k r = Σ k=1..n r k Kiéheztetés lehet 26 Holtpontmentesség student j : { I t j =0 } await t cap w=0 r=0 then t:=t+1; t j :=1 ta; await igaz then t:=t1; t j :=0 ta; i=1..n ( I w i =0 (w 0 t 0)) I 0 t cap (w=0 w=1) w = Σ k=1..n w k t = Σ k=1..m t k r = Σ k=1..n r k crew i : await igaz then r:=r+1 ta; { I w i =0 } await w=0 t=0 then r:=r1; w:=w+1; w i :=1 ta; await igaz then w:=w1; w i :=0 ta; j=1..m (I t j =0 (t=cap w 0 r 0 )) t=0 w=0 t
5 Három szemafor (s, bw, bt), két egész típusú változó (cw, ct): s ~ univerzális célú, sw, cw ~ await w=0 t=0 then r := r1; w := w+1 ta st, ct ~ await t cap w=0 r=0 then t := t+1 ta s, sw, cw, st, ct, t, r, w :=1, 0, 0, 0, 0, 0, 0, 0; parbegin crew 1 crew n student 1 student m par Használjuk majd az alábbi ütemezőt: if w =0 t =0 cw>0 cw := cw 1; V(sw) t cap w =0 r =0 ct>0 ct := ct1; V(st) crew i : r := r+1; if w 0 t 0 then cw := cw+1; V(s); P(sw) r := r1; w := w+1; w := w1; crew i : await igaz then r := r+1 ta; await w=0 t=0 then r := r1; w := w+1 ta; await igaz then w := w1 ta; student j : if t=cap w 0 r 0 then ct := ct+1; V(s); P(st) t := t+1; t := t1; student j : await t cap w=0 r=0 then t := t+1 ta; await igaz then t := t1 ta; 30 Egyszerűsítés r-t elimináljuk, mert crew i : r és cw jelentése azonos 3 3 r := r+1; if w 0 t 0 then cw := cw+1; V(s); P(sw) 3 r := r1; w := w+1; V(s) 4 rszergazda igényét rögtön elégítsük ki vagy álljon be sw-hez itt nem teljesülhet w =0 w := w1; 3 cw =0 if w =0 t =0 cw>0 cw cw := := cw cw 1; 1; V(sw) t cap w =0 r =0 ct>0 ct ct := := ct1; V(st); 5 schedule helyett V(s) 1 itt nem teljesülhet r =0 (r:=r+1 miatt), sem w =0 t =0 cw>0 (ennek már a megelőző kritikus szakasz végén is fenn kellene állnia, ami nem lehet. Tfh lehet, de ekkor r>0 miatt az ottani schedule a V(sw) révén újabb kritikus szakaszt indít. V(s);P(s) helyett skip 2 31 Egyszerűsítés student j : cw 0 if t=cap w 0 r 0 then ct := ct+1; V(s); P(st) t := t+1; if w =0 t =0 cw>0 cw := cw 1; V(sw) t cap w =0 r =0 ct>0 ct := ct1; V(st) t := t1; elsif V(s) if w =0 t =0 cw>0 cw := cw 1; V(sw) t cap w =0 r =0 ct>0 ct := ct1; V(st) cw = 0 Konkrét program crew i : s, sw, cw, st, ct, t, w :=1, 0, 0, 0, 0, 0, 0; parbegin crew 1 crew n student 1 student m par if w 0 t 0 then cw := cw+1; V(s); P(sw) w := w+1; V(s); w := w1; if cw>0 cw := cw 1; V(sw) r =0 ct>0 ct := ct1; V(st)
6 Egyszerűsítés student j : if t=cap w 0 cw 0 then ct := ct+1; V(s); P(st) t := t+1; if t cap ct>0 ct := ct1; V(st) t := t1; if t =0 cw>0 cw := cw 1; V(sw) r =0 ct>0 ct := ct1; V(st); 2. Példa: kritikus szakaszok Egymással párhuzamosan hajtsunk végre olyan tevékenységeket, amelyekben lehetnek olyan (kritikus) szakaszok, amelyek egy erőforrást kizárólagos módon használnak, és olyan (nem kritikus) szakaszok, amelyek csak lokális adatokat használnak. Egy konkurens program minden folyamata ismétlődően hajtson végre egy kritikus és egy nem kritikus szakaszból álló tevékenységet Statikus modell Dinamikus modell system System client i server Server use * Client client i server do / otherjob unused use.ent[ in unused] use.ex use.ent use.ex do / use used Megoldás váza parbegin client 1 client n par Legyen in:{0,1} n egy tömb, client i : otherjob; in k =1 ~ client k kritikus szakaszában (use) van A rszer invariánsa: I Σ k=1..n in k 1 Kritikus szakaszba lépés őrfeltétele (use.ent): Σ k=1..n in k = 0 in :=0 parbegin client 1 client n par client i : otherjob; <in i :=1> <in i :=0> Atomi értékadások őrfeltételei KIβ lf(s, LI) Tekintsük az <in i :=1> atomi utasítást. lf(in i :=1; in i =1 I) = (1=1 in 1 + +in i 1 +1+in i+1 + +in n 1 ) =(in 1 + +in i 1 +in i+1 + +in n =0 ) Ez nem következik az I-ből, ezért kell őrfeltétel: β= in 1 + +in i 1 +in i in n =0 vagy helyette β = in in n =0 Tekintsük az <in i :=0> atomi utasítást. lf(in i :=0; in i =0 I) = (0=0 in 1 + +in i 1 +0+in i+1 + +in n =0 1 ) Ez következik az I-ből, tehát nem kell őrfeltétel
7 Absztrakt algoritmus in :=0 I Σ k=1..n in k 1 { I Σ k=1..n in k = 0 } parbegin client i : crew 1 crew otherjob; n par { I in i = 0 } await Σ k=1..n in k = 0 then in i :=1 ta ; { I in i = 1 } await igaz then in i :=0 ta ; { I in i = 0 } helyes (interferencia-mentes) kölcsönös kizárás, holtpontmentesség kiéheztetés lehet Konkrét algoritmus in :=0; s, sc, cc:= 1, 0, 0; parbegin client 1 client n par Vezessük be az s 1 Σ k=1..n in k mutexet, amelynek segítségével a várakozó utasításokat client i : másképpen is írhatjuk. otherjob; <s>0 s:=s 1; in i :=1>; <s:=s+1; in i :=0>; client i : otherjob; P(s) ; V(s) ; Ekkor in k (k=1 n) kisegítő változók feleslegessé válnak, és az < s>0 s:=s 1>-t P(s)-sel, az <s:=s+1>-t a V(s)-sel implementálhatjuk Példa: termelő fogyasztó probléma Kétféle fajtájú párhuzamosan futó tevékenység egyetlen egyelemű puffert használ: az egyik fajta beletesz (deposit) egy újabb elemet, feltéve hogy az üres (elem nem írható felül) A másik fajta kivesz (fetch) egy elemet, feltéve hogy nem üres (egy elemet csak egyszer lehet kivenni). Osztály diagram System 1.. n 1.. m Producer deposit fetch Buffer Consumer 0 v cap {exclude} Dinamikus modell producer i do/ produce system buffer d.ex d.ent f.ent f.ex d.ent [v=0] [v=1] f.ent [ in full] normal [ in empty] do/ deposit empty d.ent f.ent [v+1=cap] [v=cap ] full consumer j do/ process do/ fetch 45 Megoldás váza Változók: vol:n, free:{0,1}, p :{0,1} n, c:{0,1} m vol: a puffer feltöltöttsége. P i : produce; deposit; free: 0, ha valamelyik folyamat használja a puffert, különben 1. p i : 1, ha P i folyamat használja a puffert, különben 0. c j : 1, ha C j folyamat használja a puffert, különben 0. Invariáns: I 0 vol cap free=1 Σ k=1..n p k Σ l=1..m c l p, c, vol, free := 0, 0, 0, 1; parbegin P 1 P n C 1 C m par P i : produce; <p i :=1; free:=0; vol:=vol+1>; deposit; <p i :=0; free:=1> C j : fetch; process; C j : <c j :=1; free:=0; vol:=vol 1>; fetch; <c j :=0; free:=1> process; 46 7
8 Atomi értékadások őrfeltételei (termelő) QIβ lf(s, RI) {p j =0 vol=v } <p j :=1; free:=0; vol:=vol+1> {p j =1 free=0 vol=v +1} lf(p j :=1 ; free:=0; vol:=vol+1; p j =1 free=0 vol=v +1 I)= 1=1 0=0 vol+1=v +1 0vol+1cap 0=1 Σ k=1..n p k Σ l=1..m c l Ez nem következik az p j =0 vol=v I-ből, ezért kell őrfeltétel: β= vol<cap free=1 {p j =1} <p j :=0; free:=1> {p j =0 free=1 } lf(p j :=0 ; p j =0 free=1 I)= 0=0 1=1 0vol cap 1=1 Σ k=1..n p k Σ l=1..m c l Ez következik az I-ből, tehát itt nem kell őrfeltétel. I 0 vol cap free=1 Σ k=1..n p k Σ l=1..m c l Atomi értékadások őrfeltételei (termelő) QIβ lf(s, RI) {c j =0 vol=v } <c j :=1; free:=0; vol:=vol 1> {c j =1 free=0 vol=v 1} lf(c j :=1 ; free:=0; vol:=vol+1; c j =1 free=0 vol=v +1 I)= 1=1 0=0 vol 1=v 1 0vol 1cap 0=1 Σ k=1..n p k Σ l=1..m c l Ez nem következik az c j =0 vol=v I-ből, ezért kell őrfeltétel: β= vol>0 free=1 {c j =1} <c j :=0; free:=1> {c j =0 free=1 } lf(c j :=0 ; c j =0 free=1 I)= 0=0 1=1 0vol cap 1=1 Σ k=1..n p k Σ l=1..m c l Ez következik az I-ből, tehát itt nem kell őrfeltétel. I 0 vol cap free=1 Σ k=1..n p k Σ l=1..m c l Absztrakt program P i : {I p i =0} e:= produce(); await vol<cap free=1 then p i := 1; free:=0; vol:=vol+1 ta; {I p i =1 free=0} deposit(e); await igaz then p i := 0; free:=1 ta; {I p i =0} helyes (interferencia) free=0 p i =1 c j =1 kölcsönös kizárás p i =1 c j =1 holtpontmentesség free=0 p i =0 c j =0 kiéheztetés lehet p, c, vol, free:= 0, 0, 0, 1; parbegin P 1 P n C 1 C m par C j : {I c j =0} await vol>0 free=1 then c j := 1; free:=0; vol:=vol 1 ta; {I c j =1 free=0} e:=fetch(); await igaz then c j := 0; free:=1 ta; {I c j =0} process(e); I 0 vol cap free=1 Σ k=1..n p k Σ l=1..m c l 49 Három szemafor (s, bw, bt) és két egész típusú változó (cw, ct): s ~ univerzális célú, sp, cp ~ await vol<cap free=1 sc, cc ~ await vol>0 free=1 Használjuk majd az alábbi ütemezőt: s, sp, cp, sc, cc, p, c, vol, free :=1, 0, 0, 0, 0, 0, 0, 0, 1; parbegin P 1 P n C 1 C m par if vol<cap free=1 cp>0 cp := cp1; V(sp) vol>0 free=1 cc>0 cc := cc1; V(sc) igaz V(s) 50 P i : e:= produce(); if vol=cap free=0 then cp:=cp+1; V(s); P(sp); fi p i := 1; free:=0; vol:=vol+1; deposit(e); p i := 0; free:=1; P i : e:= produce(); await vol<cap free=1 then p i := 1; free:=0; vol:=vol+1 ta; deposit(e); await igaz then p i := 0; free:=1 ta; C j : if vol=0 free=0 then cc:=cc+1; V(s); P(sc); fi c j := 1; free:=0; vol:=vol 1; e:=fetch(); c j := 0; free:=1; process(e); C j : await vol>0 free=1 then c j := 1; free:=0; vol:=vol 1 ta; e:=fetch(); await igaz then c j := 0; free:=1 ta; process(e);
9 Egyszerűsítés P i : e:= produce(); if vol=cap free=0 then cp:=cp+1; V(s); P(sp); fi p i := 1; free:=0; vol:=vol+1; deposit(e); V(s); p i := 0; free:=1; V(s); if vol<cap free=1 cp>0 cp := cp1; V(sp) vol>0 free=1 cc>0 cc := cc1; V(sc) Egyszerűsítés C j : if vol=0 free=0 then cc:=cc+1; V(s); P(sc); fi c j := 1; free:=0; vol:=vol 1; e:=fetch(); V(s); c j := 0; free:=1; process(e); if vol<cap free=1 cp>0 cp := cp1; V(sp) vol>0 free=1 cc>0 cc := cc1; V(sc); Példa: Étkező filozófusok Osztály diagram Adott számú filozófus ül egy kör alakú asztal körül, az asztal közepén egy nagy tál étel, minden filozófus előtt egy tányér, attól jobbra illetve balra egy-egy villa, amelyet jobb illetve baloldali szomszédjukkal közösen, de nem egyszerre használhatnak. A filozófusok felváltva esznek és gondolkodnak. Ha enni akarnak, meg kell várniuk, hogy a tőlük jobbra illetve balra eső villa is szabad legyen, ezután megkezdhetik az evést, majd az evés végeztével visszateszik az asztalra villáikat. n Fork 0, 2 System use n Philosopher Dinamikus modell philosopher i do/ think system fork j eat.ex eat i.ex eat.ent [ in free i eat i.ent eat i 1.ex in free i 1 ] eat i 1.ent do/ eat free used P i : Megoldás váza think; eat; Változók: p :{0,1} n, p k =1 k. filozófus eszik f :{0,1} n, f k =1 k. filozófustól balra eső villa használatban Invariáns: I k {1 n}: (p k =0 p k 1 =0) p k =1 (f k =1 f k 1 =1) f k =1 (f k 1 =1 f k 1 =1) p, f := 0, 0; parbegin P 1 P n par P i : think; < f i =0 f i 1 =0 p i := 1; f i :=1; f i 1 :=1>; eat; < p i := 0; f i :=0; f i 1 :=0 >
10 Absztrakt program I k {1 n}: (p k =0 p k 1 =0 ) p k =1 (f k =1 f k 1 =1) f k =1 (f k 1 =1 f k 1 =1) P i : { I p i =0 } think; await f i =0 f i 1 =0 then p, f := 0, 0; p i := 1; f i :=1; f i 1 :=1 ta; parbegin P 1 P n par { I p i = 1 f i =1 f i 1 =1 } eat; await igaz then p i := 0; f i :=0; f i 1 :=0 ta; { I p i =0 f i =0 f i 1 =0 } helyesség (interferencia) {(I p j =0) pre(u ik )} u ik {I p j =0} {(I p j = 1 f j =1 f j 1 =1 ) pre(u ik )} u ik {I p j = 1 f j =1 f j 1 =1 } kölcsönös kizárás (csak a szomszédos filozófusokra) (I p i = 1 f i =1 f i 1 =1) (I p i 1 = 1 f i 1 =1 f i 2 =1) holtpontmentesség (kiéheztetés lehet) i {1 n}: I p i = 0 (f i =1 f i 1 =1) Három szemafor (s, bw, bt) és két egész típusú változó (cw, ct): s ~ univerzális célú, sf, cf ~ await f i =0 f i 1 =0 p, f, s, se, ce:= 0, 0, 1, 0, 0, 0, 0; parbegin P 1 P n par Használjuk majd az alábbi ütemezőt: if f i =0 f i 1 =0 cf>0 then cf := cf1; V(sf) P i : think; if f i 0 f i 1 0 then cf:=cf+1; V(s); P(se) p i := 1; f i :=1; f i 1 :=1; eat; p i := 0; f i :=0; f i 1 :=0; P i : think; await f i =0 f i 1 =0 then p i := 1; f i :=1; f i 1 :=1 ta; eat; await igaz then p i := 0; f i :=0; f i 1 :=0 ta; Példa (adatbázis) Egy adatbázist kétféle folyamat használhat n>0 darab író (writer) és m>0 darab olvasó (reader) Az író folyamatok egymást kölcsönösen kizárják az adatbázis használatából. Az olvasó folyamatok közül tetszőleges számú folyamat használhatja egyidejűleg az adatbázist. Egy író és egy olvasó folyamat kölcsönösen kizárja egymást az adatbázis használatából. parbegin W 1 W n R 1 R m par Osztály diagram Dinamikus modell system System writer i database reader j 1.. n 1.. m Writer write read Database 0..1 * Reader reader j read.ex do / read read.ent[φ 1 ] do / work database {exclude} writer i write.ent[φ 2 ] do / work write.ex do / write write.ent read.ent unused used read.ex[φ 3 ] write.ex read.ex[φ 4 ]
11 Megoldás váza Az adatbázis állapotát az olvasás illetve írás flagjei (r, w : {0,1}), és az olvasást végző folyamatok száma (c : N) jellemzi. tevékenység feltétel atomi utasítás write.ent φ 1 w=0 r=0 <w := 1> write.ex igaz <w := 0> read.ent φ 2 w=0 <c := c+1; r:=1> read.ex igaz <c := c 1; if c=0 then r := 0 > w, r, c := 0, 0, 0; parbegin W 1 W n R 1 R m par W i : write; R j : read; Példa (adatbázis): segédváltozók Vezessünk be megfelelő annotáláshoz kisegítő változókat: w i :{0,1} ~ 1, ha az i-dik folyamat éppen ír (i=1...n) r j : {0,1} ~ 1, ha a j-dik folyamat éppen olvas (j=1...m) Invariáns állítás: I w=sgn( k=1..n w k ) c = k=1..m r k r=sgn(c) (w=0 r=0) w, r, c, w, r:=0, 0, 0, 0, 0; {I} parbegin W 1 W n R 1 R m par { } Példa (adatbázis): annotálás és helyesség R j : { I r j =0 } await w=0 then c:=c+1; r:=1; r j :=1 ta; { I r j =1 r=1 c>0 } read; { I r j =1 r=1 c>0 } await igaz then c:=c 1; if c=0 then r := 0 r j :=0 ta; { I r j =0 } W i : { I w i =0 } { I w i =0 } await w=0 r=0 then w:=1; w i :=1 ta; { I w i =1 w=1 } write; { I w i =1 w=1 } await igaz then w:=0; w i :=0 ta; I w=sgn( k=1..n w k ) c = k=1..m r k r=sgn(c) (w=0 r=0) Példa (adatbázis): interferencia-mentesség { I r j =0 } await w=0 then c:=c+1; r:=1; r j :=1 ta; { I r j =1 r=1 cr>0 } await igaz then c:=c 1; if c=0 then r := 0 r j :=0 ta; { I w i =0 } await w=0 r=0 then w:=1; w i :=1 ta; { I w i =1 w=0 } await igaz then w:=0; w i :=0 ta { I r k =1 r=1 c>0 } { I r k =1 r=1 c>0 } { I r k =0 } { I w k =0 } { I w k =1 w=1 } { I w k =1 w=1 } { I r k =1 r=1 c>0 } { I r k =1 r=1 c>0 } { I r k =0 } { I w k =0 } { I w k =1 w=1 } { I w k =1 w=1 } I w=sgn( k=1..n w k ) c = k=1..m r k r=sgn(c) (w=0 r=0) Példa (adatbázis): kölcsönös kizárás Egy író és egy olvasó folyamat kölcsönösen kizárják egymást az adatbázis használatából, azaz bármelyik i {1 n}-re és bármelyik j {1 m}-re: pre writei pre readj o [ I w i =1 w=1] [I r j =1 r=1 c>0] Az író folyamatok kölcsönösen kizárják egymást az adatbázis használatából, azaz bármelyik i,j {1 n}-re, ahol i j : pre writei pre writej o [ I w i =1 w=1] [ I w j =1 w=1] Példa (adatbázis): holtpontmentesség A holtpontmentességhez bizonyítani kell, hogy: i=1..n D(W i ) j=1..m D(R j ) ahol D(W i ) = I w i=0 (w=1 r=1) és D(R j ) = I r j=0 w=1 i=1..n D(W i ) j=1..m D(R j ) I k=1..n w k =0 w=1 I w=sgn( k=1..n w k ) c = k=1..m r k r=sgn(c) (w=0 r=0) I w=sgn( k=1..n w k ) c = k=1..m r k r=sgn(c) (w=0 r=0)
12 Példa (adatbázis): koplaltatás A rszer nem mentes a koplaltatástól. Lehet olyan helyzet hogy o minden író folyamat várakozik: i=1..n ( I w i =0 (w=1 r=1)) o mert az adatbázist olvasó folyamatok használják: I r=1 o és további olvasó folyamatok részére szabad az út a belépéshez: I r j =0 w=0 I w=sgn( k=1..n w k ) c = k=1..m r k r=sgn(c) (w=0 r=0) W i : if w 0 r 0 then cw:=cw+1;v(s); P(sw) w:=1; write; w:=0; W i : await w=0 r=0 then w:=1 ta; write; await igaz then w:=0 ta R j : if w 0 then cr:=cr+1; V(s); P(sr) c:=c+1; r:=1; read; c:=c 1; if c=0 then r := 0 R j : await w=0 then c:=c+1; r:=1 ta; read; await igaz then c:=c 1; if c=0 then r := 0 fi ta; 73 12
... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
RészletesebbenTermelő-fogyaszt. fogyasztó modell
Termelő-fogyaszt fogyasztó modell A probléma absztrakt megfogalmazása Adott egy N 1 kapacitású közös tároló. Adott a folyamatok két csoportja, amelyek a tárolót használják. n 1 termelő folyamat, m 1 fogyasztó
Részletesebben6. Közös változóval rendelkező párhuzamos program, Közös változó,
6. Közös változóval rendelkező párhuzamos program, Közös változó, Reynold kritérium. Atomi művelet, atomi utasítás. szintaxis, szemantika, tulajdonságok. Szinkronizációs párhuzamos program, szintaxis,
RészletesebbenNEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere
Szekvenciális programok kategóriái strukturálatlan strukturált NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE Hoare-Dijkstra-Gries módszere determinisztikus valódi korai nem-determinisztikus általános fejlett
RészletesebbenOsztott rendszer. Osztott rendszer informális definíciója
Osztott rendszer Osztott rendszer informális definíciója Egymástól elkülönülten létező program-komponensek egy halmaza. A komponensek egymástól függetlenül dolgoznak saját erőforrásukkal. A komponensek
RészletesebbenS0-01 Szintézis és verifikáció (Programozás elmélet)
S0-01 Szintézis és verifikáció (Programozás elmélet) Tartalom 1. Programozási alapfogalmak 2. Elemi programok és program konstrukciók definíciói 3. Nem-determinisztikus strukturált programok formális verifikációja
RészletesebbenC# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21
C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)
Részletesebben5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás
Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:
RészletesebbenOperációs rendszerek Folyamatközi kommunikáció 1.1
Operációs rendszerek Folyamatközi kommunikáció 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK Operációs rendszerek p. Az IPC
RészletesebbenAz UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
Részletesebben8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.
8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus. Ágens rendszer definíciója. Példák. Fairness. (Fair tulajdonság). Gyenge fair követelmény. A fair nem determinisztikus szemantika definíciója
RészletesebbenProgramkonstrukciók A programkonstrukciók programfüggvényei Levezetési szabályok. 6. előadás. Programozás-elmélet. Programozás-elmélet 6.
Programkonstrukciók Definíció Legyen π feltétel és S program A-n. A DO A A relációt az S-ből a π feltétellel képezett ciklusnak nevezzük, és (π, S)-sel jelöljük, ha 1. a / [π] : DO (a) = { a }, 2. a [π]
RészletesebbenKiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
RészletesebbenALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha
ALAPFOGALMAK 1 Á l l a p o t t é r Legyen I egy véges halmaz és legyenek A i, i I tetszőleges véges vagy megszámlálható, nem üres halmazok Ekkor az A= A i halmazt állapottérnek, az A i halmazokat pedig
RészletesebbenPROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK
PROGRAMOZÁS MÓDSZERTANI ALAPJAI I. TÉTELEK ÉS DEFINÍCIÓK Szerkesztette: Bókay Csongor 2012 tavaszi félév Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: 2012. június
RészletesebbenAz optimális megoldást adó algoritmusok
Az optimális megoldást adó algoritmusok shop ütemezés esetén Ebben a fejezetben olyan modellekkel foglalkozunk, amelyekben a munkák több műveletből állnak. Speciálisan shop ütemezési problémákat vizsgálunk.
RészletesebbenProgramok értelmezése
Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése
RészletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
RészletesebbenProgramozási módszertan. Mohó algoritmusok
PM-08 p. 1/17 Programozási módszertan Mohó algoritmusok Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu PM-08 p. 2/17 Bevezetés Dinamikus programozás
RészletesebbenElőadás_# Az első ZH megírása
Előadás_#05. 1. Az első ZH megírása 2. Szinkronizáció [OR_02_Folyamatok_zs.ppt az 57-114. diáig / nem minden diát érintve] Azok a folyamatok, melyek egymástól nem függetlenek, azaz valamilyen függőség
RészletesebbenSzálak szinkronizálása (Ro- Sincronizarea threadurilor)
Szálak szinkronizálása (Ro- Sincronizarea threadurilor) A gyakorlat célja: Megismerkedni a szálak szinkronizációs metódusaival és alkalmazásuk a Windows környezetben. Elméleti bevezető: Szálak szinkronizálása:
RészletesebbenAlgoritmusok bonyolultsága
Algoritmusok bonyolultsága 9. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm 1 / 18 Közelítő algoritmusok ládapakolás (bin packing) Adott n tárgy (s i tömeggel) és végtelen sok 1 kapacitású láda
RészletesebbenSzenzorhálózatok programfejlesztési kérdései. Orosz György
Szenzorhálózatok programfejlesztési kérdései Orosz György 2011. 09. 30. Szoftverfejlesztési alternatívák Erőforráskorlátok! (CPU, MEM, Energia) PC-től eltérő felfogás: HW közeli programozás Eszközök közvetlen
RészletesebbenGráfelméleti feladatok. c f
Gráfelméleti feladatok d e c f a b gráf, csúcsok, élek séta: a, b, c, d, e, c, a, b, f vonal: c, d, e, c, b, a út: f, b, a, e, d (walk, lanţ) (trail, lanţ simplu) (path, lanţ elementar) 1 irányított gráf,
RészletesebbenGauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei
A Gauss-Jordan elimináció, mátrixinvertálás Gauss-Jordan módszer Ugyanazzal a technikával, mint ahogy a k-adik oszlopban az a kk alatti elemeket kinulláztuk, a fölötte lévő elemeket is zérussá lehet tenni.
RészletesebbenBevezetés az informatikába
Bevezetés az informatikába 6. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
RészletesebbenIdőzített átmeneti rendszerek
Időzített átmeneti rendszerek Legyen A egy ábécé, A = A { (d) d R 0 }. A feletti (valós idejű) időzített átmeneti rendszer olyan A = (S, T,,, ) címkézett átmeneti rendszert ( : T A ), melyre teljesülnek
RészletesebbenDinamikus modell: állapotdiagram, szekvencia diagram
Programozási : állapotdiagram, szekvencia diagram osztályszerep Informatikai Kar Eötvös Loránd Tudományegyetem 1 osztályszerep Tartalom 1 2 3 osztályszerep 2 Bevezető Állapot Interakciós Tevékenység osztályszerep
RészletesebbenA modell-ellenőrzés gyakorlata UPPAAL
A modell-ellenőrzés gyakorlata UPPAAL Uppsalai Egyetem + Aalborgi Egyetem közös fejlesztése; 1995. első verzió megjelenése; részei: - grafikus modellt leíró eszköz (System editor) - szimulátor (Simulator)
RészletesebbenProgramozási módszertan
1. fejezet Programozási módszertan elmélete 1.1. Az absztrakt adattípus egy matematikai modellje. (Univerzális algebra és absztrakt adattípus). Az adattípus egy komplex leírása, típusosztály morfizmusdiagramja.
RészletesebbenAlapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
RészletesebbenKupac adatszerkezet. A[i] bal fia A[2i] A[i] jobb fia A[2i + 1]
Kupac adatszerkezet A bináris kupac egy majdnem teljes bináris fa, amely minden szintjén teljesen kitöltött kivéve a legalacsonyabb szintet, ahol balról jobbra haladva egy adott csúcsig vannak elemek.
RészletesebbenStruktúra nélküli adatszerkezetek
Struktúra nélküli adatszerkezetek Homogén adatszerkezetek (minden adatelem azonos típusú) osztályozása Struktúra nélküli (Nincs kapcsolat az adatelemek között.) Halmaz Multihalmaz Asszociatív 20:24 1 A
RészletesebbenRendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék
Rendszermodellezés Modellellenőrzés Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Ismétlés: Mire használunk modelleket? Kommunikáció, dokumentáció Gondolkodás,
RészletesebbenAlgoritmusok helyességének bizonyítása. A Floyd-módszer
Algoritmusok helyességének bizonyítása A Floyd-módszer Algoritmusok végrehajtása Egy A algoritmus esetében a változókat három változótípusról beszélhetünk, melyeket az X, Y és Z vektorokba csoportosítjuk
RészletesebbenTartalomjegyzék. Előszó... 10
Előszó... 10 1. Bevezetés a Symbian operációs rendszerbe... 11 1.1. Az operációs rendszer múltja...11 1.2. Az okos telefonok képességei...12 1.3. A Symbian felépítése...15 1.4. A könyv tartalma...17 2.
RészletesebbenMódosítható Prioritási sor Binomiális kupaccal. Wednesday, March 21, 12
Módosítható Prioritási sor Binomiális kupaccal modosit(x,k) {! if (k>x.kulcs) {!! x.kulcs=k ;!! y=x!! z=x.apa ;!! while(z!=nil and y.kulcs
Részletesebben... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)
6. Fabejáró algoritmusok Fa bejárásán olyan algoritmust értünk, amelynek bemenete egy F fa és egy M művelet, és az algoritmus adott sorrendben pontosan egyszer végrehajtja az M műveletet a fa pontjaiban
RészletesebbenOperációs rendszerek Folyamatok 1.1
Operációs rendszerek p. Operációs rendszerek Folyamatok 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK A rendszermag Rendszermag
Részletesebben5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
RészletesebbenTuring-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1
Turing-gépek Logika és számításelmélet, 7. gyakorlat 2009/10 II. félév Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1 A Turing-gép Az algoritmus fogalmának egy intuitív definíciója:
RészletesebbenTartalom. Operációs rendszerek. Precedencia. 3.2 Szinkronizáció. 3.1 Folyamatokból álló rendszerek. Együttműködő folyamatok használatának indokai
Tartalom Operációs rendszerek 3. Folyamatok kommunikációja Simon Gyula Bevezetés Szinkronizáció A kritikus szakasz megvalósítási módozatai Információcsere ok között Felhasznált irodalom: Kóczy-Kondorosi
RészletesebbenFicsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
RészletesebbenElőadó: Dr. Oniga István DIGITÁLIS TECHNIKA 3
Előadó: Dr. Oniga István DIGITÁLIS TEHNIK 3 Logikai függvények logikai függvény olyan egyenlőség, amely változói kétértékűek, és ezek között csak logikai műveleteket végzünk függvények megadása történhet
RészletesebbenChomsky-féle hierarchia
http://www.cs.ubbcluj.ro/~kasa/formalis.html Chomsky-féle hierarchia G = (N, T, P, S) nyelvtan: 0-s típusú (általános vagy mondatszerkezet ), ha semmilyen megkötést nem teszünk a helyettesítési szabályaira.
RészletesebbenAlgoritmizálás, adatmodellezés tanítása 6. előadás
Algoritmizálás, adatmodellezés tanítása 6. előadás Tesztelési módszerek statikus tesztelés kódellenőrzés szintaktikus ellenőrzés szemantikus ellenőrzés dinamikus tesztelés fekete doboz módszerek fehér
RészletesebbenZH feladatok megoldásai
ZH feladatok megoldásai A CSOPORT 5. Írja le, hogy milyen szabályokat tartalmazhatnak az egyes Chomskynyelvosztályok (03 típusú nyelvek)! (4 pont) 3. típusú, vagy reguláris nyelvek szabályai A ab, A a
RészletesebbenLogika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?
,,Alap kiskérdések Logika és informatikai alkalmazásai kiskérdések 2012. február 19. 1. Hogy hívjuk a 0 aritású függvényjeleket? 2. Definiálja a termek halmazát. 3. Definiálja a formulák halmazát. 4. Definiálja,
RészletesebbenAlap fatranszformátorok II
Alap fatranszformátorok II Vágvölgyi Sándor Fülöp Zoltán és Vágvölgyi Sándor [2, 3] közös eredményeit ismertetjük. Fogalmak, jelölések A Σ feletti alaptermek TA = (T Σ, Σ) Σ algebráját tekintjük. Minden
RészletesebbenIdőzített rendszerek és az UPPAAL II
Időzített rendszerek és az UPPAAL II Dr. Németh L. Zoltán (zlnemeth@inf.u-szeged.hu) SZTE, Informatikai Tanszékcsoport 2008/2009 I. félév 2008.11.15 MODELL 11 1 Rendszerek leírása az UPPAAL-ban Modellelenőrzés
RészletesebbenOsztott jáva programok automatikus tesztelése. Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január
Osztott jáva programok automatikus tesztelése Matkó Imre BBTE, Kolozsvár Informatika szak, IV. Év 2007 január Osztott alkalmazások Automatikus tesztelés Tesztelés heurisztikus zaj keltés Tesztelés genetikus
RészletesebbenOperációs rendszerek II. Folyamatok ütemezése
Folyamatok ütemezése Folyamatok modellezése az operációs rendszerekben Folyamatok állapotai alap állapotok futásra kész fut és várakozik felfüggesztett állapotok, jelentőségük Állapotátmeneti diagram Állapotátmenetek
RészletesebbenProcesszusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)
1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)
RészletesebbenAlgoritmusok bonyolultsága
Algoritmusok bonyolultsága 11. előadás http://www.ms.sapientia.ro/~kasa/komplex.htm () 1 / 1 NP-telesség Egy L nyelv NP-teles, ha L NP és minden L NP-re L L. Egy Π döntési feladat NP-teles, ha Π NP és
RészletesebbenGyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Formális modellek használata és értelmezése Formális modellek
RészletesebbenUNIX: folyamatok kommunikációja
UNIX: folyamatok kommunikációja kiegészítő fóliák az előadásokhoz Mészáros Tamás http://home.mit.bme.hu/~meszaros/ Budapesti Műszaki Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 A kommunikáció
RészletesebbenRekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
RészletesebbenProcesszusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)
1 Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication) 1. A folyamat (processzus, process) fogalma 2. Folyamatok: műveletek, állapotok, hierarchia 3. Szálak (threads)
RészletesebbenCsima Judit november 15.
Adatbáziskezelés Normalizálás Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2017. november 15. Csima Judit Adatbáziskezelés Normalizálás 1 / 26 Normalizálás Tétel Tetszõleges (R,
Részletesebbenangolul: greedy algorithms, románul: algoritmi greedy
Mohó algoritmusok angolul: greedy algorithms, románul: algoritmi greedy 1. feladat. Gazdaságos telefonhálózat építése Bizonyos városok között lehet direkt telefonkapcsolatot kiépíteni, pl. x és y város
RészletesebbenA számítógépes nyelvészet elmélete és gyakorlata. Automaták
A számítógépes nyelvészet elmélete és gyakorlata Automaták Nyelvek és automaták A nyelvek automatákkal is jellemezhetőek Automaták hierarchiája Chomsky-féle hierarchia Automata: új eszköz a nyelvek komplexitásának
RészletesebbenSzoftver karbantartási lépések ellenőrzése
Szoftverellenőrzési technikák (vimim148) Szoftver karbantartási lépések ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/
RészletesebbenMatematikai és Informatikai Intézet. 4. Folyamatok
4. Folyamatok A folyamat (processzus) fogalma Folyamat ütemezés (scheduling) Folyamatokon végzett "mûveletek" Folyamatok együttmûködése, kooperációja Szálak (thread) Folyamatok közötti kommunikáció 49
RészletesebbenDiszkrét matematika 2.C szakirány
Diszkrét matematika 2.C szakirány 2017. tavasz 1. Diszkrét matematika 2.C szakirány 11. előadás Nagy Gábor nagygabr@gmail.com nagy@compalg.inf.elte.hu compalg.inf.elte.hu/ nagy Komputeralgebra Tanszék
RészletesebbenCsak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnök informatikus szak BME Villamosmérnöki és Informatikai Kar. 2010. január 4.
Név, felvételi azonosító, Neptun-kód: MI pont(90) : Csak felvételi vizsga: csak záróvizsga: közös vizsga: Közös alapképzéses záróvizsga mesterképzés felvételi vizsga Mérnök informatikus szak BME Villamosmérnöki
RészletesebbenAssembly. Iványi Péter
Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter
RészletesebbenAWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
RészletesebbenMaximum kiválasztás tömbben
ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while
RészletesebbenHardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
RészletesebbenALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára. 11. Előadás
ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára 11. Előadás Előadó: Hajnal Péter Jegyzetelő: Hajnal Péter 2011. április 26. 1. Mahaney-tétel bizonyítása Emlékeztető. Mahaney-tétel
Részletesebbenút hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.
1 Az utazó ügynök problémája Utazó ügynök feladat Adott n számú város és a városokat összekötő utak, amelyeknek ismert a hossza. Adott továbbá egy ügynök, akinek adott városból kiindulva, minden várost
Részletesebbentétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is
A tétel (record) tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel elemei mezők. Például tétel: személy elemei: név, lakcím, születési
RészletesebbenOperációs rendszerek MINB240
Mutex Operációs rendszerek MINB24 3. előadás Ütemezés Bináris szemafor Szemaforváltozója csak két értéket vehet fel ( / 1; foglalt / szabad) Kölcsönös kizárásra 1 kezdőértékű mutex A kritikus szakaszba
RészletesebbenArchitektúra, megszakítási rendszerek
Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép
RészletesebbenProgramozási nyelvek 6. előadás
Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan
RészletesebbenModellek és Algoritmusok - 2.ZH Elmélet
Modellek és Algoritmusok - 2.ZH Elmélet Ha hibát elírást találsz kérlek jelezd: sellei_m@hotmail.com A fríss/javított változat elérhet : people.inf.elte.hu/semsaai/modalg/ 2.ZH Számonkérés: 3.EA-tól(DE-ek)
RészletesebbenElső lépések. File/New. A mentés helyét érdemes módosítani! Pl. Dokumentumok. Fájlnév: pl. Proba
Első lépések File/New A mentés helyét érdemes módosítani! Pl. Dokumentumok Fájlnév: pl. Proba (megj. ékezetes karaktereket nem használhatunk a fájlnévben) 1 Konvejor pálya elkészítése System/New Rendszer
RészletesebbenVé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread
Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális
RészletesebbenCsima Judit október 24.
Adatbáziskezelés Funkcionális függőségek Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2018. október 24. Csima Judit Adatbáziskezelés Funkcionális függőségek 1 / 1 Relációs sémák
RészletesebbenOperációs rendszerek MINB240
Szemaforok Operációs rendszerek MINB24 3. előadás Ütemezés Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1;
Részletesebben10. Előadás. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai
Optimalizálási eljárások MSc hallgatók számára 10. Előadás Előadó: Hajnal Péter Jegyzetelő: T. Szabó Tamás 2011. április 20. 1. Feltétel nélküli optimalizálás: Az eljárás alapjai A feltétel nélküli optimalizálásnál
RészletesebbenSzámításelmélet. Második előadás
Számításelmélet Második előadás Többszalagos Turing-gép Turing-gép k (konstans) számú szalaggal A szalagok mindegyike rendelkezik egy független író / olvasó fejjel A bemenet az első szalagra kerül, a többi
RészletesebbenCsima Judit BME, VIK, november 9. és 16.
Adatbáziskezelés Függőségőrzés, 3NF-re bontás Csima Judit BME, VIK, Számítástudományi és Információelméleti Tanszék 2018. november 9. és 16. Csima Judit Adatbáziskezelés Függőségőrzés, 3NF-re bontás 1
RészletesebbenAlgoritmuselmélet. Legrövidebb utak, Bellmann-Ford, Dijkstra. Katona Gyula Y.
Algoritmuselmélet Legrövidebb utak, Bellmann-Ford, Dijkstra Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem 3. előadás Katona Gyula Y. (BME
RészletesebbenOperációs rendszerek. Folyamatok ütemezése
Operációs rendszerek Folyamatok ütemezése Alapok Az ütemezés, az események sorrendjének a meghatározása. Az ütemezés használata OPR-ekben: az azonos erőforrásra igényt tartó folyamatok közül történő választás,
RészletesebbenProgramozási Nyelvek: C++
Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();
RészletesebbenA logikai következmény
Logika 3 A logikai következmény A logika egyik feladata: helyes következtetési sémák kialakítása. Példa következtetésekre : Minden veréb madár. Minden madár gerinces. Minden veréb gerinces 1.Feltétel 2.Feltétel
RészletesebbenLabView Academy. 4. óra párhuzamos programozás
LabView Academy 4. óra párhuzamos programozás Ellenőrző kérdések Hogyan lehet letiltani az automatikus hibakezelés funkciót? a) Engedélyezzük az Execution highlighting ot b) A subvi error out cluster-jét
Részletesebben2018, Funkcionális programozás
Funkcionális programozás 6. előadás Sapientia Egyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro 2018, tavaszi félév Miről volt szó? Haskell modulok, kompilálás a
RészletesebbenBGF. 4. Mi tartozik az adatmodellek szerkezeti elemei
1. Mi az elsődleges következménye a gyenge logikai redundanciának? inkonzisztencia veszélye felesleges tárfoglalás feltételes függés 2. Az olyan tulajdonság az egyeden belül, amelynek bármely előfordulása
RészletesebbenIntellio Video System 2. Csatlakozási útmutató a demószerverhez
Intellio Video System 2 Csatlakozási útmutató a demószerverhez Az Intellio Video System Client 2 telepítése Az Intellio Video System Client 2 kliens telepítését az IntellioClient2Setup.exe fájl elindításával
RészletesebbenOE-NIK 2010/11 ősz OE-NIK. 2010. ősz
2010/11 ősz 1. Word / Excel 2. Solver 3. ZH 4. Windows 5. Windows 6. ZH 7. HTML 8. HTML 9. ZH 10. Adatszerkezetek, változók, tömbök 11. Számábrázolási kérdések 12. ZH 13. Pótlás A Windows felhasználói
RészletesebbenAutóipari beágyazott rendszerek. Komponens és rendszer integráció
Autóipari beágyazott rendszerek és rendszer integráció 1 Magas szintű fejlesztési folyamat SW architektúra modellezés Modell (VFB) Magas szintű modellezés komponensek portok interfészek adattípusok meghatározása
Részletesebbenń ó ľ ó ę ľ Ĺ ü ľ ó ľ ľ ľ Í ü ľ ľ ó ľ ľ ü đö ź É É ó ł Á É ľ ľ É Íľ ľ Ü ľ łą É Ü É É ł ą ľ É Ł Á Á ł ťą łł ą ą ľ ü ź ź ü ę ę Í ź ü ü ú ó ľ ľ ľ ó ó ľ ó ľ ó ü ó ö ź ű ö öľ ü ü ľ ű ö ľ ó ű ź ű ü ę ö ó ľó
RészletesebbenProgramfejlesztési Modellek
Programfejlesztési Modellek Programfejlesztési fázisok: Követelmények leírása (megvalósíthatósági tanulmány, funkcionális specifikáció) Specifikáció elkészítése Tervezés (vázlatos és finom) Implementáció
RészletesebbenBrósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások
Megoldások 1. Tekintsük az alábbi szabályos hatszögben a következő vektorokat: a = AB és b = AF. Add meg az FO, DC, AO, AC, BE, FB, CE, DF vektorok koordinátáit az (a ; b ) koordinátarendszerben! Alkalmazzuk
RészletesebbenDualitás Dualitási tételek Általános LP feladat Komplementáris lazaság 2017/ Szegedi Tudományegyetem Informatikai Intézet
Operációkutatás I. 2017/2018-2. Szegedi Tudományegyetem Informatikai Intézet Számítógépes Optimalizálás Tanszék 7. Előadás Árazási interpretáció Tekintsük újra az erőforrás allokációs problémát (vonat
RészletesebbenA digitális számítás elmélete
A digitális számítás elmélete 8. előadás ápr. 16. Turing gépek és nyelvtanok A nyelvosztályok áttekintése Turing gépek és a természetes számokon értelmezett függvények Áttekintés Dominó Bizonyítások: L
RészletesebbenFordítás Kódoptimalizálás
Fordítás Kódoptimalizálás Kód visszafejtés. Izsó Tamás 2016. október 20. Izsó Tamás Fordítás Kódoptimalizálás / 1 Aktív változók Angol irodalomban a Live Variables kifejezést használják, míg az azt felhasználó
RészletesebbenOperációs rendszerek. Folyamatok
Operációs rendszerek Folyamatok Folyamatok A folyamat (process) a multiprogramozott rendszerek alapfogalma. Folyamat általános definíciója: Műveletek meghatározott sorrendben történő végrehajtása. Műveletek
Részletesebben