Objekt-tjenere og deres implementasjon

Størrelse: px
Begynne med side:

Download "Objekt-tjenere og deres implementasjon"

Transkript

1 Objekt-tjenere og deres implementasjon Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan!Arkitektur for objekt-tjenere!prosesser og tråder (threads) " Tråd-synkronisering i Java!Fler-trådede tjenere!corba Portable Object Adapter " POA policies " POA managers " ORBacus threading policies Frank Eliassen, SRL & Ifi/UiO 2 1

2 Objekt-tjenere: Tjenere som er skreddersydd til å understøtte distribuerte objekter!tjenester realiseres ved objekter som tjeneren innkapsler " Tjenester legges til eller fjernes ved legge til eller fjerne objekter!objekt-tjenere opptrer som steder der objekter kan leve!flere måter å aktivisere et objekt på Frank Eliassen, SRL & Ifi/UiO 3 Objekt-tjenere må tilordne prosesseringsressurser til objekter når de aktiviseres! Når et objekt aktiviseres, hvilke prosesseringsressurser skal implementasjonen av det tilordnes? " Skal en ny prosess eller tråd opprettes? " Finnes mange måter dette kan gjøres på? " Finnes det én beste måte?! Hvordan bruke prosesser og tråder i distribuerte system? " Bedre ytelse " Bedre utnyttelse av ressurser " Forenkle programmering Frank Eliassen, SRL & Ifi/UiO 4 2

3 Objekt-tjenere bør understøtte flere aktiviserings-policies! Aktiviserings-policy " En bestemt måte å aktivisere et objekt på " Ulike dimensjoner Hvordan oversette mellom ROR og lokal implementasjon? Skal tjeneren være enkelt-trådet eller fler-trådet? Dersom fler-trådet, hvordan tilordne tråder til objekter og forespørsler? En pr objekt? En pr forespørsel? Transiente vs persistente objekter, etc! Objektene kan grupperes etter hvilken aktiviserings-policy de er underlagt Frank Eliassen, SRL & Ifi/UiO 5 Organisering av objekt-tjener som støtter forskjellige aktiviserings-policies! Objekt-adapter: programvare som implementerer en spesifikk aktiviserings-policy skeleton skeleton skeleton Object adapter Object adapter OS dispatcher Frank Eliassen, SRL & Ifi/UiO 6 3

4 CORBAs ROR format (IOR) reflekterer organiseringen av objekt-tjenere skeleton skeleton skeleton Object adapter Object adapter dispatcher OS CORBA Interoperable Object Reference (IOR) Type name (repository id) Protocol and Address details Object Key (Adapter and Object name) Frank Eliassen, SRL & Ifi/UiO 7 Motivasjon for tråder: behov for intern samtidighet i prosesser! tradisjonelt prosessbegrep fra Unix anno 1980 " 1-1 relasjon mellom prosess og prosesseringsaktivitet! Løsning: " generalisere prosess-begrepet til å kunne assosieres med flere samtidige (concurrent) prosesseringsaktiviteter! Prosess " tråder OS-ets abstraksjon av en prosesseringsaktivitet " kjøretidsomgivelse ett adresserom trådsynkronisering (f.eks. semaforer) og komm.ressurser (ports) Frank Eliassen, SRL & Ifi/UiO 8 4

5 Flere-trådede prosesser! Hver prosess har flere kontrolltråder som deler ett adresserom og eksekverer i (kvasi)parallell Datamaskin Datamaskin prosess tråd programteller Frank Eliassen, SRL & Ifi/UiO 9 Tråder er billigere å forvalte enn prosesser! kjøretidsomgivelser (adresserom) er dyre å opprette! tråder er mye billigere å opprette og terminere! tråder kan dele kjøretidsomgivelser (f.eks. globale variable, åpne filer, timere, signal,. )! prosesser definerer beskyttelsesdomener " en tråd i en prosess kan (normalt) ikke aksessere data og ressurser i en annen prosess Frank Eliassen, SRL & Ifi/UiO 10 5

6 En trådpakke er et sett med primitiver for å forvalte tråder! Ofte realisert som et bibliotek med primitiver for " Opprette tråder " Terminere tråder " Synkronisere tråder (rendevouz) " Gi opp prioritet (yield)! Tråder kan opprettes og termineres under kjøretid! Trådterminering kan være frivillig eller påtvunget fra utenfor tråden Frank Eliassen, SRL & Ifi/UiO 11 Trådpakker: detaljer! Tråder deler felles lager " aksess til delte data --> kritisk region " semaforer, monitorer o.l.! Trådpakker tilbyr ofte en mutex " abstraksjon for gjensidig utelukkelse " tilsvarer binær semafor: to tilstander locked og unlocked " operasjoner: LOCK, UNLOCK og noen ganger TRY_LOCK " LOCK: tråd blokkeres hvis den må vente på tilstand unlocked! Trådpakker kan og tilby betingelsesvariable " kø forbundet med hver variabel " condition_wait(conditionid,mutexid) inkluderer unlock av mutexid " condition_signal(conditionid) tråd som venter på conditionid og som vekkes, prøver å utføre relock på mutexid Frank Eliassen, SRL & Ifi/UiO 12 6

7 Tråder i Java Thread run() MyThread run() Runnable run() MyRun run() target Thread class MyThread extends Thread { public void run () { // } } Thread a = new MyThread(); public interface Runnable { public abstract void run() } class MyRun implements Runnable { public void run () { // } } Thread b = new Thread(new MyRun); Frank Eliassen, SRL & Ifi/UiO 13 Thread metoder static void sleep tråden pauser i oppgitt antall millisek. static void yield gir opp prioritet (settes bakerst i klar køen ) static Thread currentthread tråden som eksekverer nå ( denne koden ) void run( ) koden som eksekveres når tråden startes void start ( ) oppretter ny tråd og legger den i klar-køen boolean isalive( ) false hvis tråden har terminert void join( ) den kallende tråd blokkeres inntil den kallte tråd terminerer. Finnes og variant der man angir timeout (dvs. maks. ventetid på at tråden skal terminere) Frank Eliassen, SRL & Ifi/UiO 14 7

8 Synkronisering i Java! Introduserer kritiske regioner ved et monitor-begrep. " Token assosiert ved hvert objekt som bare én tråd kan eie av gangen " vente-kø av blokkerte tråder assosiert med hvert token tråder som venter på tokenet Monitor-objekt har synkroniserte metoder. Innkapsler felles data. public class buffer { public synchronized Data get { //.. Gjør noe som leser dataene.. } public synchronized put (Data d) { //.. Gjør noe som endrer dataene.. } } synchronized metoder: -prøver(automatisk) å tilegne seg objektets token -girdetfrasegnår metoden er ferdig Frank Eliassen, SRL & Ifi/UiO 15 Betinget synkronisering i Java!Koordinere adgang til felles ressurser (buffer o.l.)!tre metoder som tilbys av class Object: public final void notify(); vekker opp en enkel tråd som venter i objektets kø. public final void notifyall(); vekker opp alle tråder som venter i objektets kø. public final void wait()throws InterruptedException; venter på å bli vekket av en annen tråd. Den ventende tråd frigjør token assosiert med monitoren. Når tråden vekkes må den vente til den har alle sine token igjen. Andre tråder kan imellomtiden ha hatt disse (og oppdatert de delte data). Frank Eliassen, SRL & Ifi/UiO 16 8

9 Betinget synkronisering i Java! Implementeres som guarded action i monitor-metode: public synchronized void action() throws InterruptedException { while (!cond) wait(); // modifiser monitor data; notify(); } Frank Eliassen, SRL & Ifi/UiO 17 Flertrådet tjener Forespørsel dispatch ingen disk caching ingen disk caching disk caching disk caching disk caching Inn-Ut 8 ms forsinkelse 2 ms m/cache i snitt 2 ms prosessering 2.5 ms m/cache # prosessorer # tråder Maks. anrop/sekund Frank Eliassen, SRL & Ifi/UiO 18 9

10 Flertrådet klient opprett tråd RMI hovedtråd utfør RMI Frank Eliassen, SRL & Ifi/UiO 19 Flertrådet klient Tråd 1 genererer resultater, men krever ikke svar fra tjener Flere varianter er tenkelige. RMI utfør RMI (blokkerende) Frank Eliassen, SRL & Ifi/UiO 20 10

11 CORBA Portable Object Adapter (POA)! Muliggjør portable tjenerimplementasjoner " fullstendig spesifisert i CORBA 2.2 (1997) " standard POA språkbinding for hvert prog.språk! policies styrer adferden til en POA! root POA " POA som må understøttes av alle implementasjoner " utøver én bestemt policy! kanlageegnepolicies for egnepoa " Spesialiseringer/varianter av root POA " kan ha flere POA per applikasjon ulike objekt kan være gjenstand for ulike policies Frank Eliassen, SRL & Ifi/UiO 21 POA spesifikasjonen! OMG, ORB Portability Joint Submission (Final) Part 1 of 2, orbos/ (chap 3) Frank Eliassen, SRL & Ifi/UiO 22 11

12 CORBA Portable object adapter (POA)! Muliggjør portabilitet av objektimplementasjoner mellom ulike ORBer! Understøtter lettvekts transiente objekter og persistente objektidentifikatorer (f.eks. i ODBMSer)! Tillater tjenere å implementere mange objekter! Understøtter transparent objekt-aktivisering! Utvidbar mekanisme for aktiviseringspolicies! Flere POAer i en tjener CORBA klient CORBA tjener ORB? POA servants Frank Eliassen, SRL & Ifi/UiO 23 CORBA server arkitektur Klient ORB POA manager Tjener minpoa Servant manager Objekt refereanse ID Objekt ID Objekt IOR [IRref, nettadr, (minpoa,objid)] ID Objekt Servants: Implementerer anrop på objekter Frank Eliassen, SRL & Ifi/UiO 24 12

13 POA policies!poa policy " kontrollerer kjøretidsomgivelsen til en servant " utøves av POA og servant managers!policy type " et aspekt ved kjøretidsomgivelsen/aktivisering " spesifieres som et attributt!policy " er spesifikasjon av en POA policy mengde attributtverdier " oppgis som argument når man oppretter en ny POA createpoa (navn, POAmngr,policy) Frank Eliassen, SRL & Ifi/UiO 25 POA policy typer: Object Life Span! Spesifiserer persistensmodellen for en POA " TRANSIENT Objektene i denne POAen overlever ikke prosessen i hvilken de ble først opprettet " PERSISTENT Objektene i denne POAen overlever prosessen i hvilken de ble først opprettet " Root POA default TRANSIENT Frank Eliassen, SRL & Ifi/UiO 26 13

14 POA policy typer: Id Assignments! Spesifiserer om Objekt ID i denne POA er generert av applikasjonen eller POAen " USER_ID Objektene tilordnes Object ID av applikasjonen Benyttes typisk av applikasjoner med persistente objekter POA metode: activate_object_with_id(objid, object_pointer) " SYSTEM-ID Objektene tilordnes Object ID av POAen. POA metode: activate_object(object_pointer) Hvis POAen også har PERSISTENT Object Life Span Policy, må de tilordnede Object ID være entydige over alle instansieringer av den samme POA " Root POA default SYSTEM-ID Frank Eliassen, SRL & Ifi/UiO 27 POA policy typer: Object Id Uniqueness! Spesifiserer om de servants som aktiviseres i denne POA har entydige Object ID. " UNIQUE_ID Servants aktivisert med denne POA understøtter nøyaktig en Object Id Benyttes typisk av applikasjoner med få transiente objekter " MULTIPLE_ID en servant aktivisert med denne POA kan understøtte en eller flere Object Id. Benyttes typisk av applikasjoner med mange persistente objekter eksempel: en servant inkarnerer alle objektene en servant representerer et database entry " Root POA default UNIQUE-ID Frank Eliassen, SRL & Ifi/UiO 28 14

15 POA policy typer: illustrasjon Object Id Uniqueness! UNIQUE_ID POA Servants Object ID Servant pointer Object reference POA Active Object Map Frank Eliassen, SRL & Ifi/UiO 29 POA policy typer: illustrasjon Object Id Uniqueness! MULTIPLE_ID POA Servant Object ID Servant pointer Object reference POA Active Object Map Frank Eliassen, SRL & Ifi/UiO 30 15

16 POA policy typer: Implicit Activation! Spesifiserer om denne POA understøtter implisitt aktivisering av objekter. " IMPLICIT_ACTIVATION Denne POA vil kun understøtte implisitt aktivisering når en applikasjon prøver å få tak i en objektreferanse for en inaktiv servant (kaller metode servant_to_reference), vil POAen automatisk generere en Object Id for denne servant og aktivisere det resulterende objekt anbefales ikke å kombinere IMPLICIT_ACTIVATION med PERSISTENT " NO_IMPLICIT_ACTIVATION Denne POA vil kun understøtte eksplisitt aktivisering " Root POA default IMPLICIT_ACTIVATION Frank Eliassen, SRL & Ifi/UiO 31 POA policy typer: Servant Retention! Spesifiserer om denne POA vil oppbevare aktive servants i en Active Object Map. " RETAIN Denne POA vil oppbevare aktive servants i sin Active Object Map " NON_RETAIN Servants oppbevares ikke i denne POA. Kun meningsfull i kombinasjon med USE_DEFAULT_SERVANT eller USE_SERVANT_MANAGER policies " Root POA default RETAIN Frank Eliassen, SRL & Ifi/UiO 32 16

17 POA policy typer: Request Processing! Spesifiserer hvordan forespørsler prosesseres av denne POA. " USE_ACTIVE_OBJECT_MAP_ONLY Hvis denne POA ikke finner en Object Id i sin tabell, returnerer den en exception til klienten " USE_DEFAULT_SERVANT Hvis denne POA ikke finner en Object Id i sin tabell, eller hvis NO_RETAIN policien er spesifiert, vil kallet bli formidlet til en default servant som tidligere er blitt registrert hos POAen (set_servant) " USE_SERVANT_MANAGER Hvis denne POA ikke finner en Object Id i sin tabell, eller hvis NO_RETAIN policien er spesifiert, vil kallet bli formidlet til en servant manager som tidligere er blitt registrert hos POAen (set_servant_manager) " Root POA default USE_ACTIVE_OBJECT_MAP_ONLY Frank Eliassen, SRL & Ifi/UiO 33 POA policy typer: Thread! Spesifiserer threading modellen som brukes av denne POA. " ORB_CTRL_MODEL POAen er ansvarlig for å tilordne anrop til tråder. I en fler-trådet omgivelse kan samtidige anrop formidles til flere tråder applikasjonen må programmeres for å handtere multi-threading I Java: synchronized metoder og betinget synkronisering svakhet: kunne ønske oss mer finkornet kontroll (jfr. ORBacus) " SINGLE_THREAD_MODEL Denne POA vil prosessere anrop sekvensielt. Applikasjonen trenger ikke programmeres for å handtere multithreading ( thread-safe kode) " Root POA default ORB_CTRL_MODEL Frank Eliassen, SRL & Ifi/UiO 34 17

18 Noen nyttige POA policy kombinasjoner! RETAIN og USE_ACTIVE_OBJECT_MAP_ONLY " Tjenere som forvalter et endelig (lite) antall prestartede objekter! RETAIN og USE_SERVANT_MANAGER " Tjenere som forvalter et stort antall persistente objekter! RETAIN og USE_DEFAULT_SERVANT " Tjenere som forvalter et stort antall transiente objekter! NON_RETAIN og USE_SERVANT_MANAGER " Tjenere som benytter en servant per metodekall! etc. etc. Frank Eliassen, SRL & Ifi/UiO 35 Opprette nye POA! Kan opprette et hierarki av POAer " POA metode create_poa(navn, POAmngr,policy_spec) " merk: ingen arv av policies! Hver POA utøver en viss policy " ulike grupper av objekter forvaltes på ulike måter root_poa POA A POA B POA C POA D Frank Eliassen, SRL & Ifi/UiO 36 18

19 POA managers! Kontrollerer flyten av anrop inn i en samling POAer " Factory metode create_poa_manager(navn)! POA_managerinterface " tillater applikasjonen å utøve denne kontrollen " activate lar anrop flyte til de assosierte POAer " hold_requests alle anrop til de assosierte POAer køes opp " discard_requests kaster alle anrop til de assosierte POAer exceptions sendes til klienter som anroper " deactivate ingen anrop kan lenger mottas. Anrop avvises på en implementasjonsspesifikk måte Frank Eliassen, SRL & Ifi/UiO 37 Kontrol av anropsflyt vha POA managers Applikasjon ORB root_poa POA manager POA POA POA POA POA POA POA manager Frank Eliassen, SRL & Ifi/UiO 38 19

20 ORBacus: Utdrag av kode for init av ORB & POA public class Server { static public void main (String[] args) { // initialiserer ORBen org.omg.corba.orb orb = org.omg.corba.orb.init(args,props); // få tak i referanse til rootpoa org.omg.portableserver.poa rootpoa = org.omg.portableserver.poahelper.narrow( orb.resolve_initial_reference( RootPOA ); // få tak i referanse til rootpoaens POAManager org.omg.portableserver.poamanager manager = rootpoa.the_poamanager; //annen initialisering (f.eks. opprette/registrere servants)... //aktiviser POA manager og ORBen (vente på anrop) manager.activate() orb.run(); Frank Eliassen, SRL & Ifi/UiO 39 Thread policy i ORBacus 4.0!Kommando-linjeopsjoner " forfiner POAens Thread policy!eksempler " tråd-per-klient tjener en aktiv tråd per klient, flertrådet tjener en klient kan ikke ha flere samtidige forespørsler i samme tjener " tråd-per-anrop tjener en ny tråd opprettes for hvert forespørsel " tråd-pool tjener statisk forråd av tråder som allokeres til innkommende forespørsler pool-størrelsen gir øvre grense for samtidighet i tjeneren Frank Eliassen, SRL & Ifi/UiO 40 20

21 ORBacus: Tråd-per-klient tjener connect f() h() accept dispatch accept dispatch connect g() dispatch Klient A Klient B Tjener Frank Eliassen, SRL & Ifi/UiO 41 ORBacus: Tråd-per-anrop tjener connect f() h() connect g() Klient A Klient B Tjener Frank Eliassen, SRL & Ifi/UiO 42 21

22 ORBacus: Tråd-pool tjener f() g() h() i() Klient A Tjener Frank Eliassen, SRL & Ifi/UiO 43 Mer detaljer om CORBA! Se CORBA Programmer s Guide: pguide_java/html/index.html Frank Eliassen, SRL & Ifi/UiO 44 22

23 Oppsummering! Objekt-tjenere " Et sted for objekter å leve " Understøtter flere aktiviserings-policies realisert ved objekt-adaptere! Flere-trådede tjenere " kan i noen tilfeller benyttes til å øke gjennomstrømningen (metodekall/tidsenhet) dersom f.eks. I/O er flaskehalsen " fler-trådede tjenere kan utnytte fler-cpu tjenermaskiner! CORBA Portable Object Adapter " kan spesifisere ulike policies for hvordan innkommende anrop skal prosesseres og allokeres ressurser (inkl. threading policy) Frank Eliassen, SRL & Ifi/UiO 45 23

Objekt-tjenere og deres implementasjon

Objekt-tjenere og deres implementasjon Objekt-tjenere og deres implementasjon Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan Arkitektur for objekt-tjenere Prosesser og tråder (threads) Tråd-synkronisering i Java Fler-trådede

Detaljer

Modeller av prosessering Implementasjon av tjenere

Modeller av prosessering Implementasjon av tjenere Modeller av prosessering Implementasjon av tjenere Foreleser: Kjell Åge Bringsrud 1 Oversikt Motivasjon for flertrådede prosesser og deres anvendelse i distribuerte system Modeller av prosessering i CORBA

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2004 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare?! Innkapsling " naturlig tilnærming

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF5040 foreleser: Olav Lysne Frank Eliassen, SRL & Ifi/UiO 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

Objekt-interaksjon. INF 5040 høst 2006

Objekt-interaksjon. INF 5040 høst 2006 Objekt-interaksjon Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan Prinsipper for realisering av fjernmetodekall (RMI) Objekt-tjenere CORBA RMI Java RMI Fler-trådede objekt-tjenere Frank

Detaljer

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2006 foreleser: Frank Eliassen INF5040 Frank Eliassen 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer

Objekt-interaksjon. Plan. INF 5040 høst 2005

Objekt-interaksjon. Plan. INF 5040 høst 2005 Objekt-interaksjon Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan!Prinsipper for realisering av fjernmetodekall (RMI)!Objekt-tjenere!CORBA RMI!Java RMI!Fler-trådede objekt-tjenere Frank

Detaljer

CORBA Objektmodell (Java RMI)

CORBA Objektmodell (Java RMI) CORBA Objektmodell (Java RMI) IN-ODP høst 2002 foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 OMG & CORBA Object Mangement Group (OMG): non-profit organisasjon med over 800 medlemsorganisasjoner

Detaljer

Hentet fra Suns Totorial:

Hentet fra Suns Totorial: Sun s Hello-eksempel Hentet fra Suns Totorial: http://java.sun.com/j2se/1.4.2/docs/guide/idl/gshome.html Andre nyttige URIer: Java IDL documentation: http://java.sun.com/j2se/1.4.2/docs/guide/idl/index.html

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

CORBA Component Model (CCM)

CORBA Component Model (CCM) CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva

Detaljer

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent?

DCOM. 21. oktober Mai et al. Hva er egentlig en komponent? DCOM 21. oktober 2004 Mai et al. Komponent Hva er egentlig en komponent? En komponent er et programvareobjekt, ment å samvirke med andre komponenter, og tilbyr en gitt funksjonalitet. En komponent har

Detaljer

Operativsystemer, prosesser og tråder

Operativsystemer, prosesser og tråder Dagens program Grunnleggende tråd-programmering i Java: Java-tråder: definisjoner, egenskaper Interferens Låsing og synkronisering Venting og signallering Løpende eksempel: lesere og skrivere Erfaringer

Detaljer

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter DCOM Distributed Component Object Model Almir Delkic og Frank Jensen Institutt for Informatikk, Universitetet i Oslo, oktober 2003 Introduksjon Utvikling av distribuerte applikasjoner Utvidelse av COM

Detaljer

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,

Detaljer

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Antagelser og forutsetninger Implementasjonseksemplet kompileres og kjøres på Java SDK 1.4.2 Dokumentasjon

Detaljer

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:

Detaljer

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold Java RMI Markus Foss Hans-Gunnar Vold Introduksjon Java Remote Method Invocation Tillater metodekall mellom Java virituelle maskiner Introdusert i Java 1.02 Javas svar på RPC, men er objekt orientert,

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

Eksempler på ikke-blokkerende systemkall:

Eksempler på ikke-blokkerende systemkall: Blokkerende systemkall Thread-modeller Thread-modeller Blokkerende systemkall Viktigste grunn for tråder: blokkerende I/O forespørsler Applikasjonen som ber om I/O blir satt på vent av operativsystemet

Detaljer

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon. Hardware-støttet Semafor og Implementasjon av semafor i OS til å synkronisere Hardware-støttet alle softwareløsninger innebærer mange instruksjoner i tillegg til busy-waiting, som koster CPU-tid. I praksis

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

La oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet

La oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet K A P I T T E L 18 Tråder N år et program kjøres, utføres programsetningene i en bestemt rekkefølge. En tråd er det samme som denne programflyten, og i dette kapitlet skal vi se på hvordan vi starter og

Detaljer

Objekt-interaksjon i objektbasert mellomvare:

Objekt-interaksjon i objektbasert mellomvare: Objekt-interaksjon i objektbasert mellomvare: Fjerne metodekall (RMI) Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan CORBA objektmodell Java RMI Prinsipper for realisering av fjernmetodekall

Detaljer

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,

Detaljer

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06 Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06 Agenda Kort introduksjon til Spring med Spring Praktiske eksempler Forskjellige rammeverk for caching April 2006 2 Kort om Spring

Detaljer

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også

Detaljer

Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006

Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Prosesser og tråder Datamaskinen lager prosesser. En prosess organiserer arbeidet i et program ved å administrere tråder. Det er

Detaljer

RM-ODP og Multimedia middleware (M3W):

RM-ODP og Multimedia middleware (M3W): RM-ODP og Multimedia middleware (M3W): INF 5040 høst 2003 foreleser: Frank Eliassen SRL & Ifi/UiO 1 Litteratur Gordon Blair, Jean-Bernard Stefani, Distributed Processing and Multimedia, Addison-Wesley

Detaljer

Kort notat om parallellstyring IN147

Kort notat om parallellstyring IN147 Kort notat om parallellstyring IN147 Kristin Skar 18. mai 2001 1 Kommunikasjon mellom prosesser Mange problemer man kommer borti kan kreve en paralell løsning: Man kan ha behov for økt hastighet, og dermed

Detaljer

Objekt-interaksjon i objektbasert mellomvare:

Objekt-interaksjon i objektbasert mellomvare: Objekt-interaksjon i objektbasert mellomvare: Fjerne metodekall (RMI) Foreleser: Frank Eliassen Frank Eliassen, SRL & Ifi/UiO 1 Plan!CORBA objektmodell!java RMI!Prinsipper for realisering av fjernmetodekall

Detaljer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 13.des 2011 Faglig

Detaljer

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon Kapittel 9 Distribusjon Tjenermaskin Fjernbruker LAN Nærbruker WAN Figur 9-1: En enkel klient/tjener distribusjon 195 Tjenermaskin Fjernbruker LAN Replikert tjener Nærbruker WAN Figur 9-2: Klient/tjener-konfigurasjon

Detaljer

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Gruppe 11. Frank Petter Larsen Vegard Dehlen qoskets Gruppe 11 Frank Petter Larsen Vegard Dehlen Problematikk Dagens mellomvare for objektbaserte distribuerte systemer har ikke innebygget støtte for å spesifisere, overvåke og kontrollere tjenestekvalitet

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

Forelesning III Kap 8 & 7; Dagsplan. Gjenbruk. Condition synchronization. Gjennomgående eksempler. Kode: Design: Verktøy

Forelesning III Kap 8 & 7; Dagsplan. Gjenbruk. Condition synchronization. Gjennomgående eksempler. Kode: Design: Verktøy Forelesning III Kap 8 & 7; Dagsplan Moral: Gjenbruk Kap 8: Shared variable-based synchronization and communication Condition synchronization Mutual Exclution Conditional Critical Regions Suspend & Resume

Detaljer

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til

Detaljer

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint

Detaljer

Avdeling for ingeniørutdanning Institutt for teknologi

Avdeling for ingeniørutdanning Institutt for teknologi Avdeling for ingeniørutdanning Institutt for teknologi Oppgavetittel: Lab Fag(nr./navn): DOPS2021 - Operativsystemer Gruppemedlemmer: T. Alexander Lystad Faglærer: Karoline Moholth Dato: 15. oktober 2009

Detaljer

Utfordringer til mellomvare: Multimedia

Utfordringer til mellomvare: Multimedia Utfordringer til mellomvare: Multimedia IN-ODP høst 2001 foreleser: Frank Eliassen SRL & Ifi/UiO 1 Utfording fra multimedia til middleware ÿ Støtte for multimedia ÿ Programmeringsmodell og systemstøtte

Detaljer

Synkronisering I. Kapittel 6. Tråd A. ferdig. t.varsle() u.vente() Tråd B. ferdig. tid

Synkronisering I. Kapittel 6. Tråd A. ferdig. t.varsle() u.vente() Tråd B. ferdig. tid Kapittel 6 Synkronisering I Tråd A t.varsle() u.vente() ferdig Tråd B t.vente() u.varsle() ferdig tid Figur 6-1: Tråder som venter og varsler langs en tidsakse. Heltrukket linje betyr aktiv, og stiplet

Detaljer

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk INF2440 Prøveeksamen, løsningsforslag, 20 mai 2015 Arne Maus PSE, Inst. for informatikk 1 Prøveeksamen Er en modell av hva du får til eksamen: - like mange (+-1) oppgaver som eksamen og nesten samme type

Detaljer

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

INF1010 Tråder II 6. april 2016

INF1010 Tråder II 6. april 2016 INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Oppgave 1 RMI-tjenerobjekt (databasewrapper) A Sentral tjenermaskin med database, RMi-register og RMI-tjenerprogram vis kart gjør bestilling

Detaljer

Synkronisering II. Kapittel 7. Betingelse oppfylt (0) liste. tråd-deskriptor. venteliste. tråd-deskriptor. tråd-deskriptor.

Synkronisering II. Kapittel 7. Betingelse oppfylt (0) liste. tråd-deskriptor. venteliste. tråd-deskriptor. tråd-deskriptor. Kapittel 7 Synkronisering II etingelse oppfylt (0) liste venteliste tråd-deskriptor tråd-deskriptor tråd-deskriptor tråd-deskriptor Figur 7-1: Datastrukturen for en etingelse. are når oppfylt er 0 kan

Detaljer

Utfordringer til mellomvare: Multimedia

Utfordringer til mellomvare: Multimedia Utfordringer til mellomvare: Multimedia INF 5040 høst 2003 foreleser: Frank Eliassen SRL & Ifi/UiO 1 Utfording fra multimedia til middleware Støtte for multimedia Programmeringsmodell og systemstøtte for

Detaljer

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne Side 1 av 7 Bokmålstekst Emne: PROGRAMMERING (nytt pensum, 10 studiep.) Grupper: laa, lab, lac, lia, lib, lic Eksamensoppgaven best~r av: Tillatte hjelpemidler: Antall sider (inkl. forsiden): 7 Alle trykte

Detaljer

Definisjon av prosess

Definisjon av prosess Prosesser og tråder Definisjon av prosess Enkel definisjon: En prosess er et program som kjører på datamaskinen Mer presis definisjon: En prosess er en samling av ressurser som er nødvendige for å utføre

Detaljer

Introduksjon til Distribuerte System (DS)

Introduksjon til Distribuerte System (DS) Introduksjon til Distribuerte System (DS) INF5040 høst 2005 foreleser: Olav Lysne Olav Lysne, SRL & Ifi/UiO 1 Hva er et distribuert system? Definisjon [Coulouris & Emmerich] Et distribuert system består

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

IN våren 2019 Onsdag 16. januar

IN våren 2019 Onsdag 16. januar IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel

Detaljer

IN våren 2018 Tirsdag 16. januar

IN våren 2018 Tirsdag 16. januar IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

Tråder og concurrency i Linux

Tråder og concurrency i Linux Tråder og concurrency i Linux Lars Vidar Magnusson September 27, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 27, 2011 1 / 14 Oversikt Tråder i Linux 1 Tråder i Linux

Detaljer

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface») del 2 GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/

Detaljer

Foreleser: Kjell Åge Bringsrud

Foreleser: Kjell Åge Bringsrud Replikering Foreleser: Kjell Åge Bringsrud 1 Hvorfor replikere I? Forbedret ytelse Flere servere tilbyr samme tjeneste - parallellitet Distribuerte kopier av data fører til mindre nettverksforsinkelse

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF2440 Effektiv parallellprogrammering Prøveeksamensdag: 1. juni 2016 Tidspunkter: 09.00 16.00 Oppgavesettet er på: 4 sider

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av prosess = At en kokk lager en porsjon middag i et kjøkken CPU = kokk ressurser = kjøkken, matvarer, oppskrift thread/tråd = den sammenhengende serien(tråden) av hendelser som skjer når kokken lager en

Detaljer

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende

Detaljer

CORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA

CORBA & Java RMI & J2EE & CORBA CCM OMG & CORBA CORBA & Java RMI & J2EE & CORBA CCM IN-ODP høst 2001 foreleser: Frank Eliassen Frank Eliassen, Simula RL &Ifi/UiO 1 OMG & CORBA Object Mangement Group (OMG): non-profit organisasjon med over 800 medlemsorganisasjoner

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Tildeling av minne til prosesser

Tildeling av minne til prosesser Tildeling av minne til prosesser Tildeling av minne til prosesser OS må hele tiden holde rede på hvilke deler av RAM som er ledig/opptatt Når (asynkrone) prosesser/run-time system krever tildeling av en

Detaljer

INF2440 Uke 6, v2015 om faktorisering av primtall + tre løsninger på et produsent/konsumentproblem. Arne Maus PSE, Inst.

INF2440 Uke 6, v2015 om faktorisering av primtall + tre løsninger på et produsent/konsumentproblem. Arne Maus PSE, Inst. INF2440 Uke 6, v2015 om faktorisering av primtall + tre løsninger på et produsent/konsumentproblem Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i Uke5 1. Mer om ulike strategier for å dele opp et

Detaljer

Sortering med tråder - Quicksort

Sortering med tråder - Quicksort Sortering med tråder - Quicksort Skisser til to programmer INF1010 våren 2016 Stein Gjessing Institutt for informatikk Universitetet i Oslo Sortering som tema, slikt som valg av sorteringsmetode, hastigheten

Detaljer

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Arv. Book book1 = new Book(); book1. title = Sofies verden class Book { String title; } class Dictiona ry extends Book { Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

Replikering. Olav Lysne

Replikering. Olav Lysne Replikering Olav Lysne 1 Hvorfor replikere I? Forbedret ytelse Flere servere tilbyr samme tjeneste - parallellitet Distribuerte kopier av data fører til mindre nettverksforsinkelse Caching av data gir

Detaljer

INF våren 2017

INF våren 2017 INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer

Detaljer

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider

Detaljer

INF2440 Uke 6, v2017. Arne Maus PSE, Inst. for informatikk

INF2440 Uke 6, v2017. Arne Maus PSE, Inst. for informatikk INF2440 Uke 6, v2017 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i uke 5 1. Enda bedre Matrise-multiplisering 2. Modell2-kode for sammenligning av kjøretider på (enkle) parallelle og sekvensielle

Detaljer

Inf1010 oppgavesamling

Inf1010 oppgavesamling Table of ontents Inf1010 oppgavesamling.. 1 Subklasser... 1 Grensesnitt.. 2 Rekursjon... 3 Datastrukturer... 3 GUI. 4 Sortering... 6 Tråder... 6 Inf1010 oppgavesamling Subklasser Klassehirarki for dyr

Detaljer

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

Detaljer

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten

Det finnes ingenting. som kan gjøres med interface. men som ikke kan gjøres uten Interface, Abstract Class... i-120 : H-98 2a. Abstraksjon i JAVA: 1 Det finnes ingenting som kan gjøres med interface i-120 : H-98 2a. Abstraksjon i JAVA: 2 som kan gjøres med bruk av unntak i-120 : H-98

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF2440 Praktisk parallell programmering Eksamensdag : 2. juni 2014 Tidspunkter: 14.30 Oppgavesettet er på : 4 sider Vedlegg

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

Kapittel 8: Programutvikling

Kapittel 8: Programutvikling Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Abstrakte klasser og grensesnitt, redefinering av metoder Java-programmering Arv og bruk av abstrakte klasser Eclipse Undersøke instanser i Eclipse 1 Dagens

Detaljer

Test 2 OOP. - Prøveeksamen

Test 2 OOP. - Prøveeksamen Test 2 OOP - Prøveeksamen 2007 - Viktig: Jobb med oppgavene som om det var eksamen Ikke snakk med sidemann, ta korte pauser, benytt kun skriftlige hjelpemidler du hadde tenkt til å hatt med på eksamen.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Fredag 4. desember 2015 Tid for eksamen: 14.30 (4 timer)

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.

. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye. ~KSAMENSOPPGA VE Les gjennom hele oppgavesettet før du begynner A besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i oppgaveteksten, dog med unntak av metodenes parametemavn som

Detaljer

Generiske mekanismer i statisk typede programmeringsspråk

Generiske mekanismer i statisk typede programmeringsspråk Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive

Detaljer

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen? OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.

Detaljer

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

Detaljer

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace

Detaljer

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi, Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Kontinuasjonsløsning

Detaljer

OOT Seminar H-97 CORBA. Praktisk del

OOT Seminar H-97 CORBA. Praktisk del OOT Seminar H-97 CORBA Praktisk del Valg av ORB implementasjon Har valgt å bruke Visigenic sin ORB implementsjon ORB en er 100% Java kodet Bygger på OMG sin IDL to Java language mapping fra Jun 97 Gratis

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 10.desember 2008 Varighet: 0900 1200 Fagnummer: Fagnavn: LO346D Java EE og distribuerte systemer Klasse(r): NETT

Detaljer

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig. Synkronisering En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig. Behov for synkronisering Mange prosesser/tråder

Detaljer

Tilstandsmaskiner med UML og Java

Tilstandsmaskiner med UML og Java Tilstandsmaskiner med UML og Java DAT2160 DAT2160 Høst Høst 2002 2002 Tilstandsmaskiner Tilstandsmaskiner med med UML UML og og Java Java Hva er en (endelig) tilstandsmaskin? En tilstandsmaskin kan sees

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer