Forord. Produktrapport
|
|
- Trond Holte
- 7 år siden
- Visninger:
Transkript
1
2 Forord Produktdokumentasjonen omhandler sluttproduktet gruppen har utviklet som er en samling av 32 Munin plugin som henter ut ressursbruken til en JVM instans. Prosjektarbeidet har blitt utført av Mo Amini, Diyar Amin og Younes Hajji ved Høgskolen i Oslo, avdeling for ingeniørutdanning våren Produktdokumentasjonen er ment for de som skal benytte seg av produktet eller vil vite hva som skjer under panseret. Her vil gruppen forklare med tekst, diagrammer og grafer hvordan produktet fungerer og hvordan dataene blir overført mellom de forskjellige delene av systemet. Ved å lese dette dokumentet skal leseren også bli kjent med hva som skal til for å implementere systemet i et Unix miljø. Derfor er det også forutsatt at lesere av dokumentet har sin bakgrunn innenfor IT generelt og særlig innenfor Unix installasjon og administrasjon, samt programmering generelt og særlig Java. Kommentarer og informasjon om grafer i den aktuelle pluginen vil være skrevet på engelsk da dette er synlig for administratorer fra alle land på internett. Dette er Munin standard og et praktisk valg. Leseren må derfor også forvente engelsk tekst i dokumentet. 2
3 Innhold Forord...2 Beskrivelse av produktet OperatingSystemMXBean Available processors ThreadMXBean DeadlockedThreads CurrentThreadCpuTime CurrentThreadUserTime DaemonThreadCount PeakThreadCount ThreadCount TotalStartedThreadCount RuntimeMXBean Uptime ClassLoadingMXBean LoadedClassCount TotalLoadedClassCount UnloadedClassCount MemoryMXBean HeapMemoryUsage NonHeapMemoryUsage ObjectPendingFinalizationCount GarbageCollectorMXBean CollectionCount CollectionTime CompilationMXBean TotalCompilationTime MemoryPoolMXBean Collection Usage Peak Usage Usage Kilder: Ordliste
4 Beskrivelse av produktet Produktet er en samling av 32 Munin plugin. Disse pluginene benytter seg av JMX rammeverket for å hente ut ressursbruken og annen informasjon om ønsket JVM instans. Med instans menes en Java prosess, da hver prosess har hver sin virtuelle maskin i Java og har hvert sitt sett med ressursbruk som er uavhengig av en annen Java prosess. Disse 32 pluginene kan kopieres og bli konfigurert til å hente ut ressursbruken til så mange JVM instanser som ønskelig. Det er viktig å merke seg at pluginene ikke henter ut den akkumulerte ressursbruken til Java i sin helhet på en plattform. 1. OperatingSystemMXBean Dette MXBean interfacet inneholder metoder for å hente ut informasjon fra JVM om operativsystemet den kjører på. Den inneholder også metoder for å hente ut konstanter eller andre variable som ikke lar seg plotte på grafer slik som operativsystemversjon. Disse metodene har blitt ignorert. 4
5 5
6 1.1 Available processors Denne pluginen viser antall prosessorer som er tilgjengelig for den aktuelle JVM. Dette kan være interessant å overvåke på fysiske maskiner som inneholder flere CPU. Det finnes tilfeller hvor ikke alle prosessorer blir benyttet til enhver tid. Årsaken til at denne variabelen er interessant å overvåke er at oppdragsgiveren har erfart applikasjoner som ikke utnytter alle prosessorer som er tilgjengelig for JVM til enhver tid, noe som har ført til ytelsesproblemer. OperatingSystemMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection, ManagementFactory.OPERATING_SYSTEM_MXBEAN_NAME, OperatingSystemMXBean.class); System.out.println("AvailableProcessors.value " + mxbean. getavailableprocessors()); 6
7 2.ThreadMXBean Dette MXBean interfacet inneholder metoder for JVM tråder. Det finnes en instans av dette interfacet for hver JVM. 2.1 DeadlockedThreads Denne pluginen viser antall tråder som er deadlocked. Dette kan være en nyttig graf for å overvåke tråder som har stoppet opp. Dersom en eller flere tråder er deadlocked og forblir deadlocked vil jobber i Java applikasjonen stoppe opp. Dersom denne har en verdi over 0 vil det være lurt å sjekke loggfiler for applikasjonen for hva som har stoppet og eventuelt restarte applikasjonen. ThreadMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); System.out.print("DeadlockedThreads.value "); if(mxbean.findmonitordeadlockedthreads() == null) else System.out.println("0"); + ""); System.out.println(mxbean.findMonitorDeadlockedThreads().length 7
8 2.2CurrentThreadCpuTime Denne pluginen viser den totale CPU tiden tråden i nanosekunder (men er ikke i nanosekund nøyaktighet).dersom Java distribusjonen som er installert på systemet skiller mellom usertime og systemtime blir summen av disse returnert. ThreadMXBean threadmxbean = ManagementFactory.newPlatformMXBeanProxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); System.out.println("CurrentThreadCpuTime.value " + mxbean.getcurrentthreadcputime()); 8
9 2.3 CurrentThreadUserTime Denne pluginen viser CPU tiden som tråden har brukt i usermodus. Tiden er ikke nødvendigvis ikke i nanosekund nøyaktighet. ThreadMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); System.out.println("CurrentThreadUserTime.value " + mxbean.getcurrentthreadusertime()); Dette er tilsvarende metode som å kalle: getthreadusertime(thread.currentthread().getid()); Som ville vært ad-hoc metoden dersom man hadde kjørt koden i inneværende JVM. 9
10 2.4 DaemonThreadCount Denne pluginen viser antall kjørende tråder som er daemon tråder. Daemon tråder er tråder som er hjelpetråder for runtime miljøet. Eksempler på daemon tråder er garbage collector tråden og time handler tråden m.m. ThreadMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); System.out.println("DaemonThreadCount.value "+mxbean.getdaemonthreadcount()); 10
11 2.5 PeakThreadCount Denne pluginen viser det høyeste antall tråder som har kjørt i løpet av JVM sin oppetid. Denne vil derfor øke dersom antallet øker til høyere verdi enn tidligere og vil ikke gå ned. Denne verdien kan resettes manuelt og er en alternativ måten å endre verdien til 0 uten å restarte JVM. ThreadMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); System.out.println("PeakThreadCount.value "+mxbean.getpeakthreadcount()); 11
12 2.6 ThreadCount Denne pluginen vil vise antall nåværende kjørende tråder. Dette vil gjelde både daemon tråder og ikke-daemon tråder. ThreadMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); System.out.println("ThreadCount.value "+mxbean.getthreadcount()); 12
13 2.7 TotalStartedThreadCount Denne pluginen vil vise antall tråder som har blitt startet siden JVM startet. Denne grafen vil i normale tilfeller vokse som en tilnærmet lineær linje med små avvik. Dersom applikasjonen blir benyttet med varierende last slik det vanligvis vil være for en applikasjon vil denne grafen øke med ulik stigningstall. For eksempel vil mange applikasjoner toppe belastning klokken 18:00 dersom det er en webapplikasjon. Årsaken kan være at personer kommer hjem fra jobb og skole og benytter seg mer av applikasjonen. Overvåking av denne grafen vil ettersom tiden går bli mindre nyttig da endringer blir mindre prosentvis og små endringer vil ikke komme frem i grafen. ThreadMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class); 13
14 System.out.println("TotalStartedThreadCount.value "+mxbean.gettotalstartedthreadcount()); 3. RuntimeMXBean Dette MXBean interfacet inneholder metoder for runtime for JVM. Det finnes èn instans av dette interfacet for hver JVM. 3.1 Uptime Denne pluginen viser oppetiden til JVM. Verdien som blir hentet ut er i millisekunder som senere blir gjort om til dager. 14
15 RuntimeMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection, ManagementFactory.RUNTIME_MXBEAN_NAME, RuntimeMXBean.class); System.out.println("Uptime.value " + mxbean.getuptime()/(1000*60*60*24)); 15
16 4. ClassLoadingMXBean Dette MXBean interfacet inneholder metoder for klassesystemet til en JVM. Det finnes en instans av dette interfacet for hver JVM. 16
17 4.1 LoadedClassCount Denne pluginen viser antall klasser som er lastet inn i JVM. ClassLoadingMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.CLASS_LOADING_MXBEAN_NAME, ClassLoadingMXBean.class); System.out.println("LoadedClassCount.value "+mxbean.getloadedclasscount()); 17
18 4.2 TotalLoadedClassCount Denne pluginen viser antall klasser som har blitt lastet inn siden JVM startet. Denne grafen vil naturligvis bare øke og resettes dersom JVM restartes. ClassLoadingMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.CLASS_LOADING_MXBEAN_NAME, ClassLoadingMXBean.class); System.out.println("TotalLoadedClassCount.value "+mxbean.gettotalloadedclasscount()); 18
19 4.3 UnloadedClassCount Denne pluginen viser antall klasser som har blitt lastet ut av JVM. ClassLoadingMXBean mxbean=managementfactory.newplatformmxbeanproxy(connection, ManagementFactory.CLASS_LOADING_MXBEAN_NAME, ClassLoadingMXBean.class); System.out.println("UnloadedClass.value "+mxbean.getunloadedclasscount()); 5. MemoryMXBean Dette MXBean interfacet inneholder metoder for å hente ut ressursbruk for minne og er et av de viktigste interfacene hva angår overvåking av JVM ressurser. Dette interfacet har metoder for å returnere MemoryUsage objekter som i sin tur kan være Heap og Non-Heap. Det finnes èn instans av dette interfacet for hver JVM. Heap minne er meget interessant å overvåke da det representerer minne for runtime data. Dette inneholder minne for klasser og array. Heap minnet kan i tillegg også økes eller 19
20 minskes etter behov. Derfor er dette meget variable data som burde overvåkes. Dette minnet blir behandlet av garbage collectoren når objektet ikke lenger blir referert til. Non-Heap minnet er den delen av minnet som ikke inngår i heap. Dette blir også kalt for metode-området da det i stor grad lagrer metoder, konstruktører og konstanter. I likhet med heap minnet kan størrelsen av dette minnet endres. Dette minnet blir derimot ikke nødvendigvis behandlet av garbage collectoren. Dette er naturlig da denne type data ofte må ligge i minnet over lengre tid på grunn av sin konstante natur. Ved å overvåke variable som kan returneres via MemoryMXBean interfacet kan man oppdage og tolke: Minneforbruket og forløpet til en applikasjon (JVM). Arbeidsmengden til JVM minnehåndteringssytemet. Minnelekkasje. Pluginene som er generert fra MemoryMXBean interfacet kan og er anbefalt til å bli benyttet når en applikasjon skal lastebalanseres mellom flere JVM. Her kan man enkelt finne utnyttelsesgrenser og fordele arbeidet mellom prosessene ved riktige grenser. På denne måten kan man utnytte JVM instansen til det ytterste uten å påvirke ytelsen. 20
21 21
22 5.1 HeapMemoryUsage Denne pluginen viser variablene comitted, max, init og used for heap minnet. MemoryMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection,ManagementFactory. MEMORY_MXBEAN_NAME, MemoryMXBean.class); System.out.println("Committed.value " + mxbean.getheapmemoryusage().getcommitted()); System.out.println("Max.value " + mxbean.getheapmemoryusage().getmax()); System.out.println("Init.value " + mxbean.getheapmemoryusage().getinit()); System.out.println("Used.value " + mxbean.getheapmemoryusage().getused()); 22
23 5.2 NonHeapMemoryUsage Denne pluginen viser variablene comitted, max, init og used for non-heap minnet. MemoryMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection,ManagementFactory. MEMORY_MXBEAN_NAME, MemoryMXBean.class); System.out.println("Committed.value " + mxbean.getnonheapmemoryusage().getcommitted()); System.out.println("Max.value " + mxbean.getnonheapmemoryusage().getmax()); System.out.println("Init.value " + mxbean.getnonheapmemoryusage().getinit()); System.out.println("Used.value " + mxbean.getnonheapmemoryusage().getused()); 23
24 Forklaringer for heap og non-heap minnet: Comitted minnet viser mengden minne (i byte) som er garantert å være tilgjengelig for JVM. Max er forkortelse for maksimum minne som kan bli brukt for minnehåndtering. Init er forkortelse for initial som er mengden av det initielle minnet som JVM forespør fra operativsystemet for minnehåndtering under oppstart. Used viser mengden minne som er opptatt. 5.3 ObjectPendingFinalizationCount Denne pluginen viser antall objekter som venter på avslutning fra JVM. Denne grafen vil være meget interessant å overvåke i tilfeller hvor minnelekkasjer skjer ofte. En årsak til minnelekkasje er når en klasse inneholder en finalize metode og denne blir misbrukt eller benyttet ofte. Objekter av denne typen vil ikke bli frigitt av garbage collectoren men derimot puttet inn i en kø for finalization som vil bli behandlet ved et senere tidspunkt. Dersom finalizer tråden ikke kan behandle finalization køen raskere enn den blir fylt opp kan heap minneområdet bli overfylt og skape en OutOfMemoryError exception. Dette kan skje i 24
25 tilfeller hvor det blir opprettet tråder med høy prioritet. Verdien i denne grafen er kun en tilnærming av antall objekter som venter på finalization men er allikevel nyttig for å oppdage om en applikasjon er veldig avhengig av finalization. MemoryMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection,ManagementFactory. MEMORY_MXBEAN_NAME, MemoryMXBean.class); System.out.println("Objects.value " + mxbean.getobjectpendingfinalizationcount()); 25
26 6. GarbageCollectorMXBean Dette MXBean interfacet inneholder metoder for å overvåke garbage collectoren. Da garbagecollectoren har en sentral del for JVM, nemlig det å frigjøre objekter som ikke kan nås vil det være naturlig å overvåke hvor mange objekter som har blitt samlet og hvor lang tid det har blitt benyttet for oppgaven. Det finnes et eller flere instanser av dette interfacet for hver JVM. 26
27 27
28 6.1 CollectionCount Denne pluginen viser antall samlinger som har skjedd i tidspunktet. // Denne koden er hentet ut fra GCCount.java men er kun et lite utsnitt av klassen GCCountGet collector = new GCCountGet(connection); String[] temp = collector.gc(); System.out.println("CopyCount.value " + temp[0]); System.out.println("MarkSweepCompactCount.value " + temp[1]); // Denne koden er hentet ut fra GCCountGet.java public String[] GC() throws IOException, MalformedObjectNameException { ObjectName gcname = null; gcname = new ObjectName(ManagementFactory.GARBAGE_COLLECTOR_MXBEAN_DOMAI N_TYPE + ",*"); 28
29 Set mbeans = connection.querynames(gcname, null); if (mbeans!= null) { gcmbeans = new ArrayList<GarbageCollectorMXBean>(); Iterator iterator = mbeans.iterator(); while (iterator.hasnext()) { ObjectName objname = (ObjectName) iterator.next(); GarbageCollectorMXBean gc = ManagementFactory.newPlatformMXBeanProxy(connection, objname.getcanonicalname(), GarbageCollectorMXBean.class); gcmbeans.add(gc); } } int i = 0; for (GarbageCollectorMXBean gc : gcmbeans) { GCresult[i++] = gc.getcollectioncount() + ""; } return GCresult; } 29
30 Forklaring til Minor og MajorCount: Garbagecollectoren utfører hovedsakelig to typer collection. En Minor count som vi har navngitt det i grafen er en enkel innhenting av objekter. Denne heter i Sun sin dokumentasjon Minor Copy collection. En minor collection vil kjøre relativt fort da den vil flytte rundt på objekter i heap minnet mens tråden kjører. En Major count som gruppen har navngitt det i deres graf er en mye mer komplisert algoritme. Denne heter i Sun sin dokumentasjon Major Mark-Sweep-Compact collection. En major sweep garbage collection vil stoppe alle kjørende tråder i JVM mens den utfører sin oppgave. Dette vil derfor påvirke ytelsen til JVM dersom det er mange innhentinger av denne typen. I forhold til ytelse vil det være interessant å overvåke denne variabelen og dersom mulig programmere applikasjonen slik at denne typen innhentinger av garbage collectoren er få, og utføres raskt. 30
31 6.2 CollectionTime Denne pluginen vil vise tiden garbage collectoren har brukt i millisekunder public String[] GC() throws IOException, MalformedObjectNameException { ObjectName gcname = null; gcname = new ObjectName(ManagementFactory.GARBAGE_COLLECTOR_MXBEAN_DOMAI N_TYPE + ",*"); Set mbeans = connection.querynames(gcname, null); if (mbeans!= null) { gcmbeans = new ArrayList<GarbageCollectorMXBean>(); Iterator iterator = mbeans.iterator(); while (iterator.hasnext()) { ObjectName objname = (ObjectName) iterator.next(); GarbageCollectorMXBean gc = ManagementFactory.newPlatformMXBeanProxy(connection, objname.getcanonicalname(), GarbageCollectorMXBean.class); gcmbeans.add(gc); } } 31
32 int i = 0; for (GarbageCollectorMXBean gc : gcmbeans) { GCresult[i++] = formatmillis(gc.getcollectiontime()); } return GCresult; } 32
33 7. CompilationMXBean Dette MXBean interfacet inneholder metoder for kompilering i JVM. Her omtales det just in time(jit) kompilatoren. Det finnes en instans av dette interfacet for hver JVM. 33
34 7.1 TotalCompilationTime Denne pluginen viser tiden som har blitt benyttet for JIT kompilatoren. Denne verdien er ikke en indikasjon på ytelse av JVM og er ikke ment for ytelse sammenligning mellom andre JVMda implementasjoner kan ha ulik definisjon og ulik algoritme for å måle kompilasjonstiden. Verdien blir angitt i millisekunder. CompilationMXBean mxbean = ManagementFactory.newPlatformMXBeanProxy(connection, ManagementFactory.COMPILATION_MXBEAN_NAME, CompilationMXBean.class); System.out.println("TotalCompilationTime.value " + mxbean.gettotalcompilationtime() ); 34
35 8. MemoryPoolMXBean Dette MXBean interfacet inneholder metoder for de forskjellige minnebassengene i JVM. Det finnes èn instans av dette interfacet for hver JVM. Minnebassengene representerer heap og non-heap minnet. Disse går i detaljer og er i stor grad inndelt i tiden objekter har eksistert. Eden Space bassenget inneholder minnet som har blitt opptatt av tidlige objekter. Survivor Space bassenget inneholder minne hvor objekter har overlevd minne fra Eden Space selv etter en garbage collection. Tenured Gen bassenget inneholder objekter som har overlevd mange garbage collections. Perm Gen bassenget inneholder minne for JVM herunder klasser og minneobjekter. Dette vil i stor grad være heap minne, og ikke bli berørt av garbage collector. Herav Perm (Permanent). Disse minnebassengene har i sin tur spesifisert minnebruken slik: Usage Minnebruk Collection Usage Garbage collection minnebruk. Peak usage Topper For hver bassengundergruppe (Usage, Collection Usage og Peak) finnes disse variable: Comitted minnet viser mengden minne (i byte) som er garantert til å være tilgjengelig for JVM. Max er forkortelse for maksimum minne som kan bli brukt for minnehåndtering. Init er forkortelse for initial som er mengden av det initielle minnet som JVM forespør fra operativsystemet for minnehåndtering under oppstart. Used viser mengden minne (i byte) som er opptatt. 35
36 I tillegg finnes variabelen Treshold som kan bli satt manuelt. Dersom denne verdien er satt til et positivt tall vil Treshold sjekk bli automatisk startet for minnebassenget. Den vanlige verdien for denne atributten er 0. class GetCollectionUsage { private ArrayList<MemoryPoolMXBean> mxbean; private String[] GCresult = new String[5]; private MBeanServerConnection connection; private int memtype; public GetCollectionUsage(MBeanServerConnection connection, int memtype) { this.memtype = memtype; this.connection = connection; } public String[] GC() throws IOException, MalformedObjectNameException { ObjectName gcname = null; gcname = new ObjectName(ManagementFactory.MEMORY_POOL_MXBEAN_DOMAIN_TYPE +",*");//GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE + ",*"); 36
37 Set mbeans = connection.querynames(gcname, null); if (mbeans!= null) { mxbean = new ArrayList<MemoryPoolMXBean>(); Iterator iterator = mbeans.iterator(); while (iterator.hasnext()) { ObjectName objname = (ObjectName) iterator.next(); MemoryPoolMXBean gc = ManagementFactory.newPlatformMXBeanProxy(connection, objname.getcanonicalname(), MemoryPoolMXBean.class); mxbean.add(gc); } } int i = 0; GCresult[i++] = mxbean.get(memtype).getcollectionusage().getcommitted()+ ""; GCresult[i++] = mxbean.get(memtype).getcollectionusage().getinit()+""; GCresult[i++] = mxbean.get(memtype).getcollectionusage().getmax()+""; GCresult[i++] = mxbean.get(memtype).getcollectionusage().getused()+""; 37
38 GCresult[i++]= mxbean.get(memtype).getcollectionusagethreshold()+""; return GCresult; } GetCollectionUsage collector = new GetCollectionUsage(connection, 3); String[] temp = collector.gc(); System.out.println("Comitted.value " + temp[0]); System.out.println("Init.value " + temp[1]); System.out.println("Max.value "+temp[2]); System.out.println("Used.value "+temp[3]); System.out.println("Threshold.value "+temp[4]); Gruppen har valgt å fordele variable i flere grafer for hvert basseng. Det ville gjort grafen uoversiktlig dersom alle 12 variable for hvert basseng hadde vært presentert i en graf. 38
39 8.1 Collection Usage 39
40 40
41 8.2 Peak Usage 41
42 42
43 8.3 Usage 43
44 44
45 Kilder: Minnelekkasje forklart. Munin standarder yreporter.java.html Eksempler for polling av data for MemoryPoolMXBean XP programmering Overvåking av JVM Class/ThisVerboseGCclassdemonstratesthecapabilitytogetthegarbagecollectionstatisticsandme moryusageremotely.htm Garbage Collection eksempler Minneovervåking JMX Munin Trunk makefil newplatformmxbeanproxy metoden Mbean server konfigurasjon med eller uten sikkerhet Tomcat JMX konfigurasjon med eller uten sikkerhet Jconsole applikasjonen som benytter samme MXBeans som dette prosjektet forum hvor vi stilte spørsmål 45
46 Ordliste Deamon: Daemon tråder er tråder som er hjelpetråder for runtime miljøet. Garbage collector: GC er en form av automatisk minne behandling. Heap memory: Er minnet som er reservert for et programm under kjøring av programmet. Interface: Refererer til en abstraksjon som en entitet gir av seg til det ytre. Java application: Et java program. JMX: En java teknologi som formidler verktøy for behandling og overvåking av programmer, objekter... JVM: En virtuel maskin som kjøre java byte-code programmer. Memory pool: Minne blokker med samme størrelse. Munin: Et system som overvåker applikasjoner og fremviser info på graffer. Mbean: Presenterer en kilde som kjører i JVM, som en applikasjon eller en Java EE. Kan bli brukt for å hente og sette applikasjoners konfigurasjon for å hente statistikk og feilmeldinger. Non-Heap memory: All minnet som ikke er heap. Plugin: Er et program som kobles til en applikasjon for en viss bruk. Runtime: Tiden et program bruker fra start av kjøring til slutt, kompilasjons tiden. Thread: En sekvens av instruksjoner som kan kjøres parallelt med andre tråder. Threshold: grense 46
Innhold Forord...3 Begreper og akronymer...4 Systembeskrivelse...5 Generelt...5 Funksjonelle krav...7 Ikke-Funksjonelle krav...9 Prioritering...
Innhold Forord...3 Begreper og akronymer...4 Systembeskrivelse...5 Generelt...5 Funksjonelle krav...7 Ikke-Funksjonelle krav...9 Prioritering...9 2 Forord Denne kravspesifikasjonen har blitt utviklet i
Detaljer2 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.
DetaljerTestrapport. periode noe som er et godt tegn i et operativsystem, gruppen har derfor ikke klart å konstruere en slik situasjon for testing.
Forord Dette dokumentet er skrevet for personer som vil benytte seg av produktet men vil ha en validering av de ulike pluginene før de tas i bruk. Det er forutsatt at produktdokumentet er lest før dette
DetaljerForord. Brukerveiledning
Forord Dette dokumentet er ment for brukere og administratorer som vil overvåke ressursene som brukes av JVM. Det gir en rask og generisk introduksjon til installasjonen av de forskjellige verktøyene som
DetaljerForord. Javaprogrammering Database Overvåking / Statistikk JSP / Java web teknologi
Forord Prosessrapport for hovedprosjekt våren 2009 ved Høgskolen i Oslo avdeling for ingeniørutdanning, datalinjen. Gruppen består av tre medlemmer, Younes Hajji, Mo Amini og Diyar Amin. Gruppemedlemmene
DetaljerLitt om Javas class-filer og byte-kode
Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerNOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl
NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start
DetaljerNOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse
NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings
DetaljerOperativsystemer og grensesnitt
Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner
DetaljerOPPGAVESETT 7 OBJEKTER OG REFERANSER
OPPGAVESETT 7 OBJEKTER OG REFERANSER Oppgavesett 7 i Programmering: objekter og referanser. I dette oppgavesettet blir du introdusert til objekter og referanser i Java. Dette er del 2 av introduksjonen
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerJavas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)
Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Disse foilene er pensum INF 5110, 30/4-2013, Stein Krogdahl Byte-koden for Java og.nett (C#) kan leses her: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings
DetaljerAv Stein Gjessing, Institutt for informatikk, Universitetet i Oslo
Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret
DetaljerOPPGAVE 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.
DetaljerTildeling 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
DetaljerArray&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
DetaljerMinnehåndtering i operativsystemer
Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet
Detaljerpublic 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
DetaljerObjekter og referanser
Objekter og referanser Datasegmentet heap Vi har sett at verdier i Java blir kopiert ved prosedyrekall. I programmering, ønsker man imidlertid ikke å kopiere objekter ved prosedyrekall. Dette er fordi
DetaljerHva 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
DetaljerKodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO
Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007 Stein Krogdahl, Ifi UiO ASU, kap 9.5: Vi generer kode for én og én basal blokk Da er det lett å holde orden
DetaljerDebugging. Tore Berg Hansen, TISIP
Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...
DetaljerEKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består
DetaljerTildeling av minne til prosesser
Tildeling av minne til prosesser Tildeling av minne til en prosess Når en ny prosess opprettes har den et krav til hvor mye minne som skal reserveres for prosessen Memory Management System (MMS) i OS må
DetaljerEKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.
Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig
DetaljerKapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering
Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep
DetaljerINF 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
DetaljerHva 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 =
DetaljerJava PRP brukermanual
Java PRP brukermanual 1.1 Introduksjon 1.1.1 Hva er Java PRP Java PRP (Parallel Recursive Procedure) gir oss muligheten til automatisk parallellisering av programmer, som baserer seg på noen rekursive
Detaljerpublic 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
DetaljerIN 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
DetaljerIN 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
DetaljerEksekveringsrekkefø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
DetaljerDagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?
Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille
DetaljerArray&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
DetaljerDagens forelesning. Husk prøveeksamen Fredag 15/3-13 kl 12 i R1. Iterator-teknikken. Eksempel med bruk av Iterator og Iterable-grensesnittene
Dagens forelesning Iterator-teknikken Hva er en Iterator og hvorfor bruke den? Hvordan virker en Iterator? Vi lager en Iterator for tegnene i en String Iterable-grensesnittet og for-løkker Eksempel med
DetaljerMinnehåndtering i operativsystemer
Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet
DetaljerArgumenter fra kommandolinjen
Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene
DetaljerINF1010, 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å
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerLøsningsforslag for eksamensoppgave, våren 2004
Løsningsforslag for eksamensoppgave, våren 2004 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning Oppgave 1 Node.h // I oppgaven i n d i k e r e s d e t a t en s k a l kunne l a g r e t a l
DetaljerOppsummering. 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
Detaljerprogrameksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"
DetaljerGeneriske 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
DetaljerEnkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
DetaljerRepitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
DetaljerSocket 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
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet
DetaljerEn 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
DetaljerINF1000 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
DetaljerUNIVERSITETET 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)
DetaljerINF 1010, vår 2005 Løsningsforslag uke 11
INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato
DetaljerForkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.
Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010
DetaljerAlgoritmer og datastrukturer E Løkker i Java
Vedlegg E Løkker i Java Side 1 av 6 Algoritmer og datastrukturer E Løkker i Java E Løkker i Java E.1 For-løkker En for-løkke består av de fire delene initialisering, betingelse, oppdatering og kropp (eng:
DetaljerLøsningsforslag Test 2
Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.
DetaljerSortering med Comparable og Comparator
Sortering med Comparable og Comparator Denne siden forklarer hvordan grensesnittene java.util.comparable og java.util.comparator bidrar til sortering i Java. Comparable og Comparator er grensesnitt som
DetaljerGenerelt om operativsystemer
Generelt om operativsystemer Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og
DetaljerGjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7
Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.
DetaljerINF Innleveringsoppgave 6
INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerHåndtering av minne i et OS
Håndtering av minne i et OS Hva er det som skal håndteres? Minnehåndtering (memory management) utføres av de delene av systemet som har ansvar for å håndtere maskinens primærminne Primærminnet (aka hovedminne,
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerListe som abstrakt konsept/datatype
Lister Liste som abstrakt konsept/datatype Listen er en lineær struktur (men kan allikevel implementeres ikke-lineært bak kulissene ) Hvert element har en forgjenger, unntatt første element i listen Hvert
DetaljerDagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering?
Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
DetaljerBOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs
BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN
Detaljer1- 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)
DetaljerTDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
DetaljerEKSAMENSFORSIDE Skriftlig eksamen med tilsyn
BOKMÅL EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: 108 + 108N Dato: 19.12.201 Ansv. faglærer: Roy M. Istad Campus: Bø Antall oppgaver: 5 Tillatte hjelpemidler (jfr. emnebeskrivelse): Alt trykt
DetaljerInformasjon Eksamen i IN1000 høsten 2017
Informasjon Eksamen i IN000 høsten 207 Tid 8. desember kl. 09.00 (4 timer) Faglærerne vil besøke lokalet ca kl 0. Oppgavene Oppgave 2b og 2c er flervalgsoppgaver. Her får man det angitte antall poeng om
DetaljerHva er kompilering? Dagens tema. En kompilator En kompilator leser Minila koden og lager Flok koden.
Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan analysere et program? Hvordan programmere dette i Java? Hvordan
DetaljerObligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
Detaljerclass 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
Detaljer1- 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)
DetaljerGUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v18/gui/fx-intro-in1010.pdf
DetaljerUNIVERSITETET 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
DetaljerGenerelt om operativsystemer
Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres
DetaljerFaglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.
IN1010/INF1010 v2019 Eksamensinfo Eksamen IN1010/INF1010 våren 2019 Tid: 7. juni kl. 14:30-18:30 (4 timer) PRAKTISK INFORMASJON Hvis du synes noen deler av oppgaven er uklare, kan du legge dine egne forutsetninger
DetaljerLøsnings forslag i java In115, Våren 1998
Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker
DetaljerINF Obligatorisk innlevering 6
INF1000 - Obligatorisk innlevering 6 Frist: 16. Oktober kl 22:00 Tema denne uka: Et første objektorientert program. Målet med oppgaven er å utvikle et verktøy for enkel analyse av tekster som vi leser
DetaljerINF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
DetaljerINF1020 Algoritmer og datastrukturer. Dagens plan
Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser
DetaljerHvordan en prosessor arbeider, del 1
Hvordan en prosessor arbeider, del 1 Læringsmål Kompilator, interpret og maskinkode CPU, registre Enkle instruksjoner: de fire regnearter Mer informasjon om temaet Internett Lokalnett (LAN) Mitt program
DetaljerEKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerHva 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
DetaljerI 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
DetaljerStein 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:
DetaljerHva 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
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerEKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerDefinisjon 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
DetaljerUNIVERSITETET 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.
DetaljerRepetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)
Dagens tema Kjøresystemer (Ghezzi&Jazayeri.6,.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/5 Repetisjon: Statiske språk uten rekursive
DetaljerDagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)
Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/25 Forelesning 11 5.11.2003 Repetisjon:
Detaljer"Nelsons kaffebutikk"
"Nelsons kaffebutikk" et eksempel på systemutvikling med objekter Originale lysark av Jens Kaasbøll - mindre endringer av G. Skagestein og Knut Hegna IN105-javaNelson-1 Nelsons kaffebutikk Området som
DetaljerTildeling av minne til prosesser
Tildeling av minne til prosesser Tildeling av minne til en prosess Når en prosess opprettes har den et krav til hvor mye minne som skal reserveres for prosessen Memory Management System (MMS) i OS må da:
DetaljerLeksjon 7. Filer og unntak
6108 Programmering i Java Leksjon 7 Filer og unntak Del2: 7.2 og 7.4 Roy M. Istad 2015 Fil: Permanent lagring av data PrintWriter(filnavn) throws Exception usjekkede/sjekkede unntak? skriver.println(data-i-tekstlinje)
DetaljerStack. En enkel, lineær datastruktur
Stack En enkel, lineær datastruktur Hva er en stack? En datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi
DetaljerNy/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
Detaljer