Definisjon av prosess

Størrelse: px
Begynne med side:

Download "Definisjon av prosess"

Transkript

1 Prosesser og tråder

2 Definisjon av prosess Enkel definisjon En prosess er et program som kjører Mer presis definisjon En prosess er en samling av ressurser som er nødvendige for å utføre en oppgave beskrevet med programkode Ressursene til en prosess er: Programkoden (kompilerte maskininstruksjoner) Minne/RAM og evt. diskplass OS-kontrolldata som f.eks. prioriteter og rettigheter En eller flere tråder ( threads of execution ) som utfører maskininstruksjoner

3 Analogi med et kjøkken Kjøkken Formål: Lage mat Kokker Råvarer og utstyr Oppskrifter Prosess Formål: Løse oppgave Tråder Minne, disk, kontrolldata Programkode Merk at begrepene program, prosess og tråd / thread ofte brukes om hverandre og upresist

4 Tråder / Threads I gamle dager hadde ikke OS prosesser med mer enn én tråd : Begrepet threads fantes ikke, bare separate prosesser Deling av data mellom prosesser er vanskelig Prosesser stopper når de venter på en ressurs Tråder og internett/distribuerte systemer: Multi-thread OS ble vanlige for år siden Trådene i en prosess deler på det samme minneområdet Gjør at f.eks. nettlesere og mailklienter lett kan fortsette selv om en server ikke svarer Både Windows og Linux er multi-thread

5

6 Tråd vs. prosess Tråder er sekvensielle flyt av utførelse inni i en prosess, som kan kjøre parallelt/ samtidig Trådene er lettvekts-prosesser Mye raskere å opprette ny tråd enn ny prosess Oftest mye raskere kommunikasjon mellom samarbeidende tråder enn prosesser Tråder er utfordrende for programmereren: Trådene deler samme minne, mye feil/inkonsistens mulig Samarbeidende tråder må synkroniseres i koden Tråd-API'er i både C (POSIX-threads aka Pthreads) og i Java (java.lang.thread)

7 Prosessenes tilstand En prosess har hele tiden en tilstand, som endres etter som programmet kjøres/tiden går Tilstanden til en prosess bestemmes av: Dataene Prosessomgivelsenes tilstand Trådenes tilstand Hele tilstanden til en prosess må kunne lagres unna ved f.eks. avbrudd i CPU eller stand-by Prosessen må kunne hentes frem igjen og gjenskapes slik at den fortsetter å kjøre med nøyaktig samme tilstand som da den ble lagret

8 Lagring av prosesstilstander i OS Tilstanden til hver enkelt prosess lagres i en prosessdeskriptor, som bl.a. inneholder: Prosessnavn og -eier Prioritet og rettigheter Informasjon om minneområde(r) som er tildelt Trådliste Informasjon om selve programmet for prosessen Informasjon om forelder- og barneprosesser Deskriptorene for alle prosessene som finnes på maskinen lagres i prosesstabellen i OS-et

9 Lagring av trådtilstander Tilstanden til hver av trådene i en prosess lagres i en tråddeskriptor, som bl.a. inneholder: Instruksjonspeker som inneholder adressen til instruksjonen som tråden nå utfører Innholdet i CPU-registre Trådens utføringsstatus, som er en av tre mulige: ready klar til å kjøre i CPU, venter på tur running kjører i CPU blocked kan ikke kjøre, venter på f.eks. I/O Tråddeskriptorene lagres lokalt i prosessene

10

11 Forelder- og barneprosesser Alle prosesser skapes/opprettes ved at en tråd i en prosess oppretter en ny prosess gjennom systemkall til OS-et * Prosessen som lages er barn av prosessen som opprettet den, forelder-prosessen OS-et holder rede på barn-forelder forholdene mellom prosesser Forelderprosessen kan kontrollere, stoppe, starte og slette barna Alle shell-kommandoer starter prosesser som blir barn av shellet Tilsvarende slektskap finnes mellom trådene i en prosess * Med unntak av den aller første prosessen som kjøres ved oppstart og som startes av ROM-kode stamfaren til alle andre prosesser på systemet

12 Brukerhåndtering av prosesser i Linux Alle prosesser som opprettes i Linux tildeles en unik (gjenbrukbar) prosessidentifikator i form av et heltall som kalles PID. PPID er PID til forelder. PID 1 : init Brukere kan håndtere sine egne prosesser fra shellet bl.a. med kommandoene: & CTRL Z fg bg top pstree ps kill nice

13 Forgrunns- og bakgrunnsprosesser Linux shellkommandoer kjøres i forgrunnen shellet venter inntil kommandoen er ferdig '&' etter en Linux-kommando kjører kommandoen i bakgrunnen : Prosessen kjøres samtidig med shellet Shellet venter ikke til kommandoen er ferdig Kommandoen fg brukes for å flytte prosesser fra bakgrunn til forgrunn Nåværende prosess (i forgrunnen) kan suspenderes (tråden settes i wait-tilstand) ved å taste CTRL Z Kommandoen bg vil starte opp siste suspenderte jobb som en bakgrunnsprosess

14 Prosessinformasjon i Linux top : Løpende systemstatus og info. om alle prosesser på systemet, sortert på ressursbruk (top H for tråd-info). pstree : Hele slektstreet for prosessene (init er stamfar) ps : Skriver ut (deler av) prosesstabellen e Alle prosesser på systemet u Prosessene til en bestemt bruker m Informasjon om tråder [PID] Informasjon om en bestemt prosess-id For å få info. om bestemte programnavn/kommandoer: ps grep programnavn pgrep

15 Linux-prosesser og signaler Alle prosesser i Linux responderer på signaler Signaler er beskjeder fra OS-et om at en prosess skal avslutte eller endre oppførsel Signalene identifiseres med nummer eller navn Brukere kan sende signaler til prosesser med kommandoen kill Liste over alle signaler: kill l (/bin/kill L) Spesielt signal: KILL (signal 9) for å drepe en prosess: KILL sendes ikke til prosessen, men bare til OS-et sure kill : Prosessen kan ikke selv stoppe en KILL

16 kill - kommandoen Brukere kan sende signaler til egne prosesser: kill PID Terminér en bestemt prosess kill <signal> PID Send et bestemt signal til prosess kill HUP PID Brukes ofte for å restarte servere kill KILL PID Sure kill kill KILL 1 Massemord Shellprogrammer kan håndtere / ignorere signaler med trap trap "echo SIGINT d***er vi i" 2 Se også: pkill killall

17 Prioritering av prosesser i Linux Prosesser får en nice-verdi ved oppstart: -20 <= nice-verdi <= 19 19: Prosessen er super-nice og prioriteres lavt av OS langsom utførelse -20: Prosessen er grådig og prioriteres på topp rask utførelse Default er oftest 0 (null) Brukere kan sette nice-verdi med f.eks: nice 15 kommando Delte Linux-systemer er ofte satt opp slik at bare sys.adm./root kan bruke negative nice-verdier Prioriteten til en kjørende prosess kan endre med renice

18 Time-sharing og scheduling Time-sharing (med én enkel CPU): CPU kan bare utføre én instruksjon om gangen Alle prosesser som ønsker å kjøre en tråd i CPU ligger lagret i en kø/liste OS velger en tråd fra køen, som får kjøre i CPU i en kort periode (en time-slice, typisk 20 millisek.) Prosessen tas ut og må igjen vente i kø. Scheduling-algoritme i OS ( kjøreplan i læreboken): Bestemmer når bytte av prosess/tråd (context switch) skal gjøres må være svært rask for å unngå trege systemer Velger ut neste prosess/tråd som skal få kjøre i CPU i henhold til gitte kriterier og/eller prioriteter

19 Context switch Prosessen som lagrer og gjenoppretter tilstanden (konteksten) til en prosess/tråd, slik at utførelsen kan gjenopptas korrekt og på samme sted senere. Utføres av OS og består av: Tråden som er running stoppes og lagres, trådens utføringsstatus settes til ready Scheduling-algoritmen velger en av alle trådene med ready-status som den neste som skal få kjøre Tilstanden til valgt tråd og prosess hentes frem og gjenopprettes, trådens status settes til running Context switch ferdig, valgt tråd kjøres i CPU frem til neste context switch

20 Ulike typer scheduling preempt : ordne på forhånd/reservere/forhindre Preemptive scheduling: Timer starter context switch med jevne mellomrom, f.eks ganger per sekund Scheduling-algoritme velger neste tråd som kjøres Rettferdig fordeling av CPU-tid mellom trådene Nonpreemptive scheduling: Kjørende tråd bestemmer når context switch skjer, OS kan ikke avbryte. Krever at trådene/prosessene samarbeider og ikke er grådige cooperative multitasking Ikke for vanlige OS, finnes oftest i real-time systemer der presisjon er spesielt viktig (eks. styring av romfartøy)

21 Enkel preemptive scheduling: Round Robin Kjør prosess i én time-slice, legg deretter bakerst i kø Alle behandles likt Bruker en timer som sender avbruddsignal f.eks. 50 ganger i sekundet for å bytte prosess/tråd i CPU med en context switch Relativt lett å modifisere til å håndtere prioriteter for tråder/prosesser og flere enn en CPU De fleste OS bruker en eller annen variant av Round Robin scheduling

22 Hvordan velge tråder i scheduling? Alle tråder kan ha en prioritet: Velg alltid den som har høyest prioritet Like prioriteter behandles med Round Robin Alternativ: Variér lengden på time-slice iht. prioritet Store jobber kan nedprioriteres: Lagre brukt CPU-tid for alle tråder Velg alltid den som har brukt minst CPU-tid Prioriterer interaktive brukere fremfor tunge jobber Estimert gjenværende kjøretid: Prosessene gjetter på hvor mye CPU-tid som gjenstår Velg den med minst gjenværende tid for å prioritere småjobber

23 Scheduling i Linux * Bruker p.t. en relativt komplisert algoritme som kalles Completely Fair Scheduler Prøver å utnytte CPU så effektivt som mulig og samtidig prioritere interaktivitet Hovedregelen er å velge prosessen som har brukt minst CPU-tid til nå Interaktive prosesser prioriteres med sleeper fairness": Prosesser som er blocked er typisk interaktive programmer som sover fordi de venter på input fra bruker Disse behandles på samme måte som prosessene som er ready og venter på å kjøre i CPU igjen Felles scheduling av tråder og prosesser tråder betraktes som spesielle prosesser som deler ressurser. *: Beskrivelsen i læreboken er utdatert

24 Scheduling og avbruddsrutiner Avbrudd skjer f.eks. når en prosess kaller en systemrutine for å lese fra en I/O-enhet CPU avbryter kjøring av programmet og hopper til koden for avbruddsrutinen som håndterer I/O Det gjøres ikke context switch eller scheduling: Avbruddsrutinen er ikke en egen prosess Tråden som forårsaket avbruddet er fortsatt running Dette betyr at avbruddsrutinen har tilgang til både instruksjonen og dataene for prosessen, som er lagret i RAM disse må ikke endres Det er strenge krav til kvalitet og sikkerhet (og hastighet) ved (assembler)programmering av avbruddsrutiner

25 Virkemåte for avbruddsrutiner Avbruddsrutinen lagrer alle prosessdata som er nødvendig (CPU-registre) for å kunne restarte prosessen/tråden nøyaktig slik den var før avbrudd Dette må ikke lagres i prosessens minne-område, men i egne statiske minneceller satt av spesielt for avbruddsrutinen Avbruddsrutiner gjør alltid bare svært enkle operasjoner som f.eks. å starte en I/O-enhet, flytte data, eller endre status til en tråd. CPU må være i kjernemodus. Avslutter ved å sette lagrede data tilbake i CPU-registre og utføre en return from interrupt, slik at avbrutt prosess kan fortsette utføring.

26 Kjernetråder og brukertråder Kjernetråder: Kernel-level threads / Native threads Tråder som opprettes og håndteres av OS-et selv Brukertråder: User-level threads, Green threads Tråder som lages og håndteres av et run-time system som f.eks. Java Virtual machine

27 Kjernetråder Operativsystemets API tilbyr systemkall (C-funksjoner i Linux) for å opprette nye tråder inne i en prosess kjernetråder. Disse trådene er kjente for OS-et og håndteres med scheduling og context switch. Fordeler: OS-et kan utnytte maskiner med flere prosessorer/cpu-kjerner effektivt ved å kjøre kjernetråder parallellt, og kan f.eks. prioritere tunge prosesser med mange tråder. Kjernetråder er blokkeringsfrie, dvs. at en tråd som f.eks. venter på I/O ikke stopper andre tråder i samme prosess fra å kjøre. Ulemper: Opprettelse og context switch er relativt tidkrevende.

28 Brukertråder i Java Opprettes og håndteres av JVM Enklere med trådhåndtering i høynivå, API: java.lang.thread Tidligere versjoner av JVM (læreboken): Java-trådene fantes ikke i OS-et, som bare så en prosess JVM gjorde selv scheduling av trådene Bytte av brukertråd i JVM raskere enn OS context switch Kan ikke utnytte flere prosessorer effektivt (men virker også for single-thread OS) Ikke blokkeringsfrie: En brukertråd som trenger I/O kan stoppe alle andre brukertråder, fordi OS-et bare ser én prosess I nyere Java-systemer: JVM oppretter en kjernetråd som svarer til hver brukertråd i Javakoden (standard i Windows og Linux)

29

30 Programmering med tråder i Java Java-tråder er vanlige klasseobjekter i Java Trådene er er objekter av klassen java.lang.thread, eller av subklasser av denne I tillegg til å være objekter, kan Java-tråder også eksekvere kode. Opprettelse av ny tråd: Thread thread = new Thread(); Starte kjøring av den nye tråden: thread.start(); thread.start setter i gang metoden void run() i trådobjektet

31 To måter å starte tråden på 1.Lag en subklasse av Thread som definerer sin egen void run() metode. 2.Bruk et objekt som implementerer Runnable, som parameter til konstruktøren til Threadobjektet. Runnable-objektet må selv implementere metoden void run(), og kjøring av tråden vil starte i denne metoden.

32 Metode 1 public class MyThread extends Thread { public void run() { System.out.println("MyThread running"); } } public class ThreadTest1 { public static void main(string[] args) { MyThread mythread = new MyThread(); mythread.start(); } }

33 Metode 2 public class MyRunnable implements Runnable { public void run() { System.out.println("MyRunnable running"); } } public class ThreadTest2 { public static void main(string[] args) { Thread thread = new Thread(new MyRunnable()); thread.start(); } }

34 Sette navn på tråder Thread thread = new Thread("Mittnavn"); System.out.println(thread.getName()); MyRunnable runnable = new MyRunnable(); Thread thread = new Thread(runnable, "Mittnavn"); System.out.println(Thread.currentThread().getName ());* *: MyRunnable er ikke subklasse av Thread, og kan derfor ikke kalle getname i Thread. Løsningen er å bruke metoden Thread.currentThread() som alltid refererer til den tråden som til enhver tid er aktiv.

35 Eksempel: Tråder som skriver ut navnet public class Thread2 extends Thread { Thread2(String S) { super(s); } public void run() { System.out.println("Thread: " + getname() + " Running"); } } public class ThreadNames { public static void main(string[] args) { // Skriver ut navn til tråden som kjører main System.out.println(Thread.currentThread().getName()); // Oppretter og starter 10 nummererte tråder for(int i = 0; i < 10; i++) { Thread2 T = new Thread2("" + i); T.start(); } } }

36

37

Generelt om operativsystemer

Generelt 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

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

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

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

Detaljer

Tildeling av minne til prosesser

Tildeling 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å

Detaljer

Håndtering av minne i et OS

Hå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,

Detaljer

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Hovedfunksjoner i et OS OS skal sørge for: Styring av maskinvaren Deling av maskinens ressurser Abstraksjon vekk fra detaljer om maskinvaren

Detaljer

1. Introduksjon til operativsystemer

1. Introduksjon til operativsystemer 1. Introduksjon til operativsystemer mets plassering: Lagdeling: applikasjon, system, maskinvare Basisfunksjoner: Abstraksjon, deling, isolering Prosesser og ressurser Kjøring: sekvensiell, multitasking

Detaljer

Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014. Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014. Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram: Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014 Oppgave 1 a) Linux-kommando: java Beregn & b) Shellprogram: java Beregn & java Beregn Eventuelt, hvis man vil gjøre det med bare en linje

Detaljer

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D Eksamen DAT 103 Kandidatnr.: 145 Oppgave 1 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D Oppgave 2 a) Et OS er den administrerende softwaren i en datamaskin. Den bygger på prinsippene om filhåndtering,

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 12: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR 1. ING FU Studiepoeng:

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

Løsningsforslag til eksamen 24. november 2015

Løsningsforslag til eksamen 24. november 2015 Operativsystemer med Linux Løsningsforslag til eksamen 24. november 2015 Oppgave 1 a) Et OS deler tiden inn i små deler, typisk et hundredels sekund, og fordeler slike korte timeslices til alle prossene

Detaljer

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

Generelt om permanent lagring og filsystemer

Generelt om permanent lagring og filsystemer Generelt om permanent lagring og filsystemer Filsystem Den delen av OS som kontrollerer hvordan data lagres på og hentes frem fra permanente media Data deles opp i individuelle deler, filer, som får hvert

Detaljer

Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker.

Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker. Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Introduksjon til operativsystemer Geir Maribu 2.9.2014 Lærestoffet er utviklet for faget «IINI2008 Operativsystemer med Linux» Resymé: I

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk 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

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 4Hybelhus litt mer tips enn i oppgaven Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,

Detaljer

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kapittel 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

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

1. Introduksjon til operativsystemer

1. Introduksjon til operativsystemer Avdeling for informatikk og elæring, Høgskolen i Sør-Trøndelag Introduksjon til operativsystemer Geir Maribu 30.1.2007 Lærestoffet er utviklet for faget LO249D Operativsystemer med Linux 1. Introduksjon

Detaljer

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det? Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje

Detaljer

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

EKSAMEN. Operativsystemer. 1. Læreboken A Practical Guide to Red Hat Linux av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater. EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

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

Operativsystemer og nettverk

Operativsystemer og nettverk Løsningsforslag til eksamen i Operativsystemer og nettverk 04.06.2015 Oppgave 1: Generelt om Linux a) Det grunnleggende brukergrensesnittet i Linux er et tastaturbasert CUI (Commandline User Interface),

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

Argumenter fra kommandolinjen

Argumenter 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

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering 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

Detaljer

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:

Detaljer

Hvorfor lære om maskinvaren*?

Hvorfor lære om maskinvaren*? Litt om maskinvare Hvorfor lære om maskinvaren*? Hovedoppgaven til et OS er å styre maskinvare Vi må ha grunnleggende kjennskap til maskinvarens oppbygging for å forstå hvordan OS fungerer Skal bare se

Detaljer

Rekursiv programmering

Rekursiv programmering Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man

Detaljer

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider: Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering

Detaljer

Algoritmer - definisjon

Algoritmer - definisjon Algoritmeanalyse Algoritmer - definisjon En algoritme er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede

Detaljer

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

Filer i Linux og Bourne-again shell

Filer i Linux og Bourne-again shell Filer i Linux og Bourne-again shell Filbegrepet En fil * er en grunnleggende lagringsenhet i et OS Brukes for alle data som: Lagres utenfor RAM (primærminnet) På permanente media (sekundærminne) Definisjoner

Detaljer

Programmeringsspråket C

Programmeringsspråket C Programmeringsspråket C Programmeringsspråket C Laget til implementasjon av Unix ved AT&Ts Bell labs i Palo Alto 1969 73. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI-standard

Detaljer

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte «Fluency with Information Technology» Sixth Edition by Lawrence Snyder Oversatt av Rune Sætre, 2013 bearbeidet av Terje Rydland, 2015

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

Kap 19. Mer om parallelle programmer i Java og Kvikksort

Kap 19. Mer om parallelle programmer i Java og Kvikksort Arne Maus, 5.april 2011: Kap 19. Mer om parallelle programmer i Java og Kvikksort Parallell programmering er vanskelig, og det er derfor utviklet flere synkroniseringsmåter og biblioteker for mer strukturert

Detaljer

DAT 103 - kandidatnummer: 142

DAT 103 - kandidatnummer: 142 DAT 103 - kandidatnummer: 142 Oppgave 1: 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) C 9) A 10) D Oppgave 2: a) Et operativsystem er en samling av systemprogrammer og brukes som et bindeledd mellom brukerprogrammer

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

TDT4100 Objektorientert programmering

TDT4100 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

Detaljer

Real-time Operativsystem

Real-time Operativsystem Real-time Operativsystem c Ketil Danielsen November 8, 2002 Oversikt hvilke behov har vi (kap. 1-2) hvordan organiseres arbeidet (kap. 3) CPU scheduling (kap. 6) Minnescheduling (kap. 10) Scheduling av

Detaljer

Filer og kataloger, prosesser og jobber

Filer og kataloger, prosesser og jobber Introduksjon til dataanlegget Filer og kataloger, prosesser og jobber Marc Bezem Institutt for informatikk Universitetet i Bergen August 2005 1 Filer En l er en samling data som ligger lagret på maskinen

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 4 Utlevert : Veke 9 Innleveringsfrist : 19. mars 2010 Klasse : 1 Data og 1 Informasjonsteknologi Ta gjerne 1 og 2 først! Gruppearbeid: 2 personar pr. gruppe

Detaljer

En algoritme for permutasjonsgenerering

En algoritme for permutasjonsgenerering Innledning La oss tenke oss at vi har en grunnskole-klasse på 25 elever der enkelte av elever er uvenner med hverandre. Hvis uvenner sitter nær hverandre blir det bråk og slåssing. Er det mulig å plassere

Detaljer

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Prosesser og Tråder. Ketil Danielsen January 16, 2005. en tråd arbeider sekvensielt gjennom program

Prosesser og Tråder. Ketil Danielsen January 16, 2005. en tråd arbeider sekvensielt gjennom program Prosesser og Tråder Ketil Danielsen January 16, 2005 Prosess og tråd en tråd arbeider sekvensielt gjennom program en prosess har minst en tråd i gang en tråd er Running (er tildelt CPU), Ready (venter

Detaljer

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere

Detaljer

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk IT1101 Informatikk basisfag I dag Programmeringsspråk Problemer med maskinspråk I dag: 5.1-5.3 Fra lavnivå til høynivå programmeringsspråk - utvikling Kompilator / tolker Programmeringsparadigmer Tradisjonelle

Detaljer

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser INF1010, 21. januar 2016 Klasser med parametre = Parametriserte klasser = Generiske klasser Stein Gjessing Inst. for Informatikk Universitetet i Oslo Først litt repetisjon fra i går class LagBiler { public

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

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

Lynkurs i shellprogrammering under Linux

Lynkurs i shellprogrammering under Linux Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).

Detaljer

Ny EKSAMEN. Operativsystemer og nettverk

Ny EKSAMEN. Operativsystemer og nettverk Ny EKSAMEN Emnekode: ITF22514 Dato: 4. juni 2015 Emne: Operativsystemer og nettverk Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Alle trykte og skrevne. Faglærere: Jan Høiberg og Tore Petter Engen

Detaljer

Forelesning inf1000 - Java 1

Forelesning inf1000 - Java 1 Litt Java-historikk Forelesning inf1000 - Java 1 Tema: Javas historie Bestanddelene i et Java-program Programvariabler Ole Christian Lingjærde, 22. august 2012 The Green Team I 1991 opprettet Sun Microsystems

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet

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

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner IT1101 Informatikk basisfag, dobbeltime 18/9 I dag: Kommunikasjon med perifere enheter (på maskinspråknivå) Kommunikasjonsrater Kommunikasjonsfeil Feildetektering Feilkorrigering (Hammingdistanse) Operativsystemer

Detaljer

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data Øving 9 (Obligatorisk) Kommentarer til øvingen: Utlevert: 29. oktober 2010. Øvingen gjøres på lab A516 eller A521: Halve klassen møter torsdag 4.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1060 Introduksjon til operativsystemer og datakommunikasjon Eksamensdag: 6. desember 2012 Tid for eksamen: 14.30 18.30 Oppgavesettet

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 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 17.jan 2013 Faglig

Detaljer

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00 Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. 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...

Detaljer

Kapittel 9: Sortering og søking Kort versjon

Kapittel 9: Sortering og søking Kort versjon Kapittel 9: Sortering og søking Kort versjon 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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Eksamensdag: 17. august 2012 Tid for eksamen: 09.00 15.00 Oppgavesettet er på 5 sider. Vedlegg:

Detaljer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 Bokmål Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert

Detaljer

Å lese tall fra en fil, klassen Scanner

Å lese tall fra en fil, klassen Scanner Å lese tall fra en fil, klassen Scanner 1. Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2. Kan skanne teksten etter data av ulike typer. 3. Kan kun skanne framover i teksten. Vis

Detaljer

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 16 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag, 2003. ISBN 82-02-23274-0

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅ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

Detaljer

Socket og ServerSocket

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

Detaljer

Kapittel 5: Objektkommunikasjon

Kapittel 5: Objektkommunikasjon Kapittel 5: Objektkommunikasjon 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øsningsforslag til eksamen i INF1000 våren 2006

Løsningsforslag til eksamen i INF1000 våren 2006 Løsningsforslag til eksamen i INF1000 våren 2006 Oppgave 1 a) -1 false 7 b) 30 c) Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 d) Andre if-test er true Tredje if-test er true e) k = 4 k =

Detaljer

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

Tips til arbeidet med obligatorisk oppgave 2 i MAT-INF 1100 høsten 2004

Tips til arbeidet med obligatorisk oppgave 2 i MAT-INF 1100 høsten 2004 Tips til arbeidet med obligatorisk oppgave 2 i MAT-INF 1100 høsten 2004 Knut Mørken 3. november 2004 Etter samtale med noen av dere de siste dagene skjønner jeg at noen strever med del 2 av oblig2. Problemene

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

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:

Detaljer

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk. Java som første programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Forelesningsnotater for: Java som første programmeringsspråk Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag, 2003. ISBN 82-02-23274-0

Detaljer

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til 09.00-12.00 Ant. oppgaver 6

Tittel Objektorientert systemutvikling 1. Eksamenstid, fra-til 09.00-12.00 Ant. oppgaver 6 EKSAMENSFORSIDE Fagnr. OBJ208a Tittel Objektorientert systemutvikling 1 Ansvarlig faglærer Viggo Holmstedt Klasse(r) IS 2 og IN 2 Eksamensoppgaven består av følgende: Tillatte hjelpemidler: Dato 17.12.2008

Detaljer

22 45 32 00. faks: 22 45 32. Avdeling for Ingeniørutdanning. Cart Aælersgate 30-0254 Oslo - tlf 05. iu@hio.no

22 45 32 00. faks: 22 45 32. Avdeling for Ingeniørutdanning. Cart Aælersgate 30-0254 Oslo - tlf 05. iu@hio.no IKandidaten må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle ~klarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger Itil grunn for løsningen. Avdeling for Ingeniørutdanning.

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

Algoritmeanalyse. (og litt om datastrukturer)

Algoritmeanalyse. (og litt om datastrukturer) Algoritmeanalyse (og litt om datastrukturer) Datastrukturer definisjon En datastruktur er den måten en samling data er organisert på. Datastrukturen kan være ordnet (sortert på en eller annen måte) eller

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

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

Eksamen Objektorientert Programmering 2013

Eksamen Objektorientert Programmering 2013 Eksamen Objektorientert Programmering 2013 Høgskolen i Østfold 2013-01-07 Emnekode Emne ITF10611 Dato 2013-01-07 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering To A4-ark (fire

Detaljer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Universitetet i Bergen Matematisk naturvitskapleg fakultet Institutt for informatikk Side 1 av 7 Nynorsk Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Fredag 10. desember 2004 Tid:

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

Hvorfor operativsystemer? Introduksjon til operativsystemer. Samtidighet. Praktiske hensyn. Kjell Åge Bringsrud INF103

Hvorfor operativsystemer? Introduksjon til operativsystemer. Samtidighet. Praktiske hensyn. Kjell Åge Bringsrud INF103 Hvorfor operativsystemer? Introduksjon til operativsystemer Kjell Åge Bringsrud INF103 Hardwaren i en enkelt maskin er i prinsippet i stand til å utføre ett program Når maskinen slås på begynner den å

Detaljer

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000 Drosjesentralen I-120: Obligatorisk oppgave 2, 2000 Frist Mandag 20. November 2000 kl.10:00, i skuff merket I120 på UA. Krav Se seksjon 4 for kravene til innlevering. Merk krav om generisk løsning for

Detaljer

Operativsystemer: Litt IT- og Linux-historie

Operativsystemer: Litt IT- og Linux-historie Operativsystemer: Litt IT- og Linux-historie Mark I fra 1944 var en en av de første fungerende elektroniske datamaskinene. Den ble brukt til å beregne banene til artillerigranater. Begrepene "bug" og debugging

Detaljer

INF1010 våren 2014. Arv og subklasser - del 2

INF1010 våren 2014. Arv og subklasser - del 2 INF1010 våren 2014 Onsdag 19. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger

Detaljer

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Prøveeksamen tirsdag 23. november 2010 Tid for eksamen:

Detaljer

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 Delkapittel 9.1 Generelt om balanserte trær Side 1 av 13 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 9.1 Generelt om balanserte trær 9.1.1 Hva er et balansert tre? Begrepene balansert og

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer