Objekt-tjenere og deres implementasjon
|
|
|
- Sarah Rønningen
- 9 år siden
- Visninger:
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-I 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 II 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 Men først Frank Eliassen, SRL & Ifi/UiO 4 2
3 Objekt-tjenere-III 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 En objekt-tjener bør understøtte flere policies Objektene kan grupperes etter hvilken aktiviserings-policy de er underlagt Objekt-adapter: programvare som implementerer en spesifikk aktiviserings-policy Frank Eliassen, SRL & Ifi/UiO 5 Objekt-tjenere-IV Organisering av objekt-tjener som understøtter forskjellige aktiviseringspolicies skeleton skeleton skeleton Object adapter Object adapter OS dispatcher Frank Eliassen, SRL & Ifi/UiO 6 3
4 Prosesser og tråder Motivasjon tradisjonelt prosessbegrep fra Unix anno relasjon mellom prosess og prosesseringsaktivitet behov for intern samtidighet i prosesser Løsning: generalisere prosess-begrepet til å kunne assosieres med flere 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 7 Tråder To modeller Hver prosess har ett adresserom og en eneste kontrolltråd (og program-teller) 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 8 4
5 Motivasjon tråder 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 9 Trådpakker Trådpakke: et sett med primitiver (f.eks. bibl. kall) cthread_fork(func,arg) --> threadid cthread_exit(result) cthread_join(threadid) cthread_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 10 5
6 Trådpakker II 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 11 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 12 6
7 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( ) void start ( ) boolean isalive( ) void join( ) koden som eksekveres når tråden startes oppretter ny tråd og legger den i klar-køen false hvis tråden har terminert 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 13 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 - gir det fra seg når metoden er ferdig Frank Eliassen, SRL & Ifi/UiO 14 7
8 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 15 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 16 8
9 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 17 Flertrådet klient opprett tråd RMI hovedtråd utfør RMI Frank Eliassen, SRL & Ifi/UiO 18 9
10 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 19 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 kan lage egne policies for egne POA Spesialiseringer/varianter av root POA kanhaflerepoa per applikasjon ulike objekt kan være gjenstand for ulike policies Frank Eliassen, SRL & Ifi/UiO 20 10
11 POA spesifikasjonen OMG, ORB Portability Joint Submission (Final) Part 1 of 2, orbos/ (chap 3) Frank Eliassen, SRL & Ifi/UiO 21 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 22 11
12 CORBA server arkitektur Klient ORB POA manager Tjener Objekt refereanse minpoa ID Objekt Servant manager ID Objekt IOR [IRref, nettadr, (minpoa,objid)] ID Objekt Servants: Implementerer anrop på objekter Frank Eliassen, SRL & Ifi/UiO 23 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 24 12
13 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 25 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 26 13
14 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 27 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 28 14
15 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 29 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 30 15
16 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 31 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 32 16
17 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 33 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 34 17
18 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 A B C D Frank Eliassen, SRL & Ifi/UiO 35 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 36 18
19 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 37 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 38 19
20 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 39 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 40 20
21 ORBacus: Tråd-per-anrop tjener connect f() h() connect g() Klient A Klient B Tjener Frank Eliassen, SRL & Ifi/UiO 41 ORBacus: Tråd-pool tjener f() g() h() i() Klient A Tjener Frank Eliassen, SRL & Ifi/UiO 42 21
22 Mer detaljer om CORBA Se CORBA Programmer s Guide: pguide_java/html/index.html Frank Eliassen, SRL & Ifi/UiO 43 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 multi-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 44 22
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
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
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
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
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
INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd
J INF1010 Tråder J Marit Nybakken [email protected] 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,
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
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
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.
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
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
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
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
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
INF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk [email protected] 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
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
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
Kapittel 7: Mer om arv
Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
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
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å
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
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
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
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
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:
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
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
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
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
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
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
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/
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
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
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
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
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
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
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
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
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
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.
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
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
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 =
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
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
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
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
. 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
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
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
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
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
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.
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
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
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
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
INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
Socket og ServerSocket
Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket
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
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
Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28
Tråder Lars Vidar Magnusson October 11, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 1 / 28 Oversikt Tråder 1 Tråder Introduksjon Multithreading Prosesser og
IN1010 våren Repetisjon av tråder. 15. mai 2018
IN1010 våren 2018 Repetisjon av tråder 15. mai 2018 Stein Gjessing,, Universitetet i Oslo 1 Tråder Datamaskinarkitektur prosessor registre cache 1 cache 2 prosessor registre cache 1 Disk System-bus Minne
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.
Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
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)
