Dagens tema: Liten repetisjon Håndtering av statusverdier
|
|
- Johanne Aune
- 6 år siden
- Visninger:
Transkript
1 Dagens tema: Liten repetisjon Håndtering av statusverdier Parallellitet Generelt Fraktaler Generelt Julia-kurven Vindussystemet X Parallellitet i UNIX Signaler Ark 1 av 24 Forelesning
2 Kort repetisjon - systemkall pid t fork() oppretter en ny prosess, der den nye prosessen (barnet) er en nøyaktig kopi av foreldre-prosessen. Det eneste som er forskjellig er at de har forskjellig PID. Begge prosessene fortsetter eksekveringen etter fork-kallet. pid t wait(int *status) vil vente på at et av prosessens barn skal bli ferdig. Returnerer barnets PID, samt at barnets statusverdi og data om hvorledes barnet ble avsluttet legges i status. execve brukes for å utføre programmer. execve("/usr/bin/pwd", param, env); Alt innholdet av av prosessen som kaller vil bli erstattet av innholdet av filen path, som så kjøres isteden. PID beholdes. Forelesning Ark 2 av 24
3 Behandling av statusverdier Statusverdien fra et barn til en forelder vil etter wait altså havne i status, og kan fanges opp og behandles der. En kommando man kjører fra en kommandotolker vil også ha en statusverdi (fra exit eller return). Dette kan man benytte i seg av i kommandotolkeren: Kommandoen $? gir oss forrige returverdi: maskin navn> maks Oppgitotall:59 max(5,9) er 9. maskin navn> echo $? 9 program 1 && program 2 Her blir program 2 kun utført hvis program 1 gikk bra. program 1 program 2 Her blir program 2 kun utført hvis program 1 feilet (dvs returnerte status > 0). Forelesning Ark 3 av 24
4 Parallellitet Mange problemer krever en parallell løsning: Behov for økt hastighet Styring av noe som skjer parallelt Parallelle prosesser må kommunisere noe: De må utveksle data. De må av og til synkroniseres, for eksempel fordi de skal aksessere felles data. Imidlertid må ikke parallelle programmer hindre hverandre: Et program som ikke ønsker kommunikasjon, må ikke hindres. Et «ondsinnet» program må ikke få ødelegge for andre programmer. Problem Det er vanskeligere å programmere parallelt enn sekvensielt. Forelesning Ark 4 av 24
5 Ulike former for parallellitet Vi har ekte parallellitet i forbindelse med: datamaskiner med flere prosessorer (som modsognir her ved Ifi), datamaskiner som kommuniserer over et nett, datamaskinen og brukeren, og prosessoren og andre komponenter i datamaskinen (som periferkretsene). Vanlig er også pseudo-parallellitet: flere prosesser på en maskin enn det er prosessorer. Da vil operativsystemet veksle mellom prosessene for å simulere ekte parallellitet. Programmering av parallellitet Problemene og teknikkene er de samme for begge typer parallellitet. Forelesning Ark 5 av 24
6 Fraktaler Løst sagt er fraktaler et geometrisk mønster som gjentar seg, eller «uendelig krøllete linjer». Koch-kurven Et meget enkelt eksempel på en fraktal er Koch-kurven: Forelesning Ark 6 av 24
7 «Naturen er fraktal» Et annet eksempel ser slik ut: 0: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: Dette viser at man enkelt kan lage meget naturtro bilder ved hjelp av fraktaler. Forelesning Ark 7 av 24
8 Julia-kurven Andre kjente fraktalkurver er Mandelbrot-kurven og varianten Julia-kurven. Ved å legge på farge avhengig av hvor raskt det går å avgjøre om et punkt er innenfor kurven eller ikke, får man interessante illustrasjoner. Forelesning Ark 8 av 24
9 Hva brukes fraktaler til? I dag brukes fraktaler til studier av spesielle dynamiske fenomener som turbulens, kunst, komprimering av bilder, og automatisk generering av bilder. De er spesielt nyttige for vår diskusjon om parallellitet fordi det er en del jobb å lage dem, de er meget visuelle, og de er lette å parallellisere siden hvert punkt er uavhengig av de andre. Vi skal bruke generering av Julia-kurven som gjennomgangseksempel. Mål Vårt ønske er et program som raskest mulig tegner opp et fraktalbilde. Forelesning Ark 9 av 24
10 Vindussystemet X I de fleste operativsystemer er vindussystemet en integrert del. Slik er det ikke når det gjelder UNIX og X: Xserver Xlib xclock Brukerens maskin En annen maskin Dette gir følgende fordeler: Brukeren kan velge mellom ulike vindussystemer. Det er mulig å spre kjøringen. Forelesning Ark 10 av 24
11 En enkel X-pakke X er et enormt lavnivåsystem med flere hundre funksjoner, og ganske tungt å programmere. Derfor er det laget pakker for dette: WindowTools, Motif, oa. x147 er en meget enkel pakke som kun tar hensyn til dette kursets behov. Definisjonsfilen x147.h ser slik ut: extern void x147open(int w, int h); /* Open an X window */ extern void x147plot(int x, int y, /* Draw a dot in colour */ int col); extern void x147sync(void); /* Check for events */ extern void x147pause(void); /* Handle events until finished */ extern unsigned long x147black, /* The two standard colours */ x147white; extern unsigned int x147ncolbits; /* Log2(number of screen colours) */ extern int x147done; /* Has user indicated termination? */ Kildekoden ligger på ~in147/x147/. Forelesning Ark 11 av 24
12 x147open lager et nytt vindu med angitt størrelse. x147plot tegner ett punkt i vinduet med angitt farge (Definisjonen av farger er tilfeldig.) x147sync bør kalles jevnlig for å sjekke om brukeren har klikket i vinduet eller det er løftet frem. x147pause venter inntil brukeren har klikket i vinduet. x147black er den svarte fargen (for kall på x147plot). x147white er den hvite fargen. x147ncolbits er antall bit som brukes til å representere farger på den aktuelle skjermen. Typiske verdier er 1, 8 og 24. x147done blir sann når brukeren har klikket i vinduet. Forelesning Ark 12 av 24
13 Eksempel Følgende lille program tegner en sinus-kurve: #include <math.h> #include "x147.h" #define PI #define NX 400 #define NY 200 int main(void) { float x, dx = 2*PI/(NX-1), y; int ix, iy; x147open(nx, NY); for (ix = 0; ix < NX; ++ix) { x = ix*dx; y = sin(x); iy = y/2*(ny-1)+ny/2; x147plot(ix,iy,x147black); x147pause(); return 0; (Definisjonsfilen math.h er nødvendig for å få tilgang til funksjonen sin.) Forelesning Ark 13 av 24
14 Programmet kompileres med kommandoen cc sinus.c x147.c -lx11 -lm -o sinus Det gir følgende vindu på skjermen: Når man klikker på det med musen, forsvinner det. Forelesning Ark 14 av 24
15 Sekvensiell eksekvering En sekvensiell versjon av fraktalprogrammet kan se slik ut: #include <stdio.h> #include <time.h> #include "fraktal.h" #include "x147.h" #define NX 750 #define NY 550 #define MAX 180 float x1 = -0.01, x2 = 0.01, y1 = -0.01, y2 = 0.01; void plot_col(int ix) { float x, y; int iy, fx; x = x1 + ix*(x2-x1)/(nx-1); for (iy = 0; iy < NY; ++iy) { y = y1 + iy*(y2-y1)/(ny-1); fx = fraktal(x, y, 255.0, MAX); x147plot(ix, iy, fx); x147sync(); if (x147done) exit(0); void plot_area(int xstart, int xend) { int ix; for (ix = xstart; ix <= xend; ++ix) plot_col(ix); Forelesning Ark 15 av 24
16 Hovedprogrammet main åpnet vinduet, kaller på plot area for å tegne fraktalen, og angir til slutt hvor lang tid det hele har tatt. int main(void) { time_t start_tid = time(null); x147open(nx, NY); plot_area(0, NX-1); printf("det hele tok %d sekunder.\n", time(null)-start_tid); x147pause(); return 0; Dette programmet gir altså det kjente bildet av Julia-kurven: Dette bildet tar 60 sekunder å lage på spesialmaskinen modsognir og 84 sekunder på tekk som er en vanlig SGI-maskin, så det hadde vært fint å kunne parallellisere arbeidet så det kunne gå raskere. Det er vårt mål de neste ukene. Forelesning Ark 16 av 24
17 Parallellitet i UNIX «Klassisk» UNIX tilbyr tre former for å la prosesser kommunisere seg imellom og dermed styre parallellitet: Signaler (i dag) Filer Rør Signaler Et signal er UNIX-utgaven av et avbrudd, og tilbyr en veldig «simpel» form for kommunikasjon mellom prosesser. Det sendes fra kjernen i operativsystemet til de enkelte prosesser og er en «beskjed» om at noe spesielt har skjedd. Hvis prosessen har sagt fra om at den vil håndtere signalet, startes den spesielle signal-rutinen. Hvis ikke, drepes prosessen. I noen tilfelle skrives dump av lageret (core-fil). Forelesning Ark 17 av 24
18 Listen over alle signalene i UNIX finnes på filen /usr/include/sys/signal.h. Dette er de som finnes i IRIX: #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt (rubout) */ #define SIGQUIT 3 /* quit (ASCII FS) */ #define SIGILL 4 /* illegal instruction (not reset when caught)*/ #define SIGTRAP 5 /* trace trap (not reset when caught) */ #define SIGIOT 6 /* IOT instruction */ #define SIGABRT 6 /* used by abort, replace SIGIOT in the future */ #define SIGEMT 7 /* EMT instruction */ #define SIGFPE 8 /* floating point exception */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ #define SIGSEGV 11 /* segmentation violation */ #define SIGSYS 12 /* bad argument to system call */ #define SIGPIPE 13 /* write on a pipe with no one to read it */ #define SIGALRM 14 /* alarm clock */ #define SIGTERM 15 /* software termination signal from kill */ Forelesning Ark 18 av 24
19 #define SIGUSR1 16 /* user defined signal 1 */ #define SIGUSR2 17 /* user defined signal 2 */ #define SIGCLD 18 /* death of a child */ #define SIGCHLD 18 /* 4.3BSD s/posix name */ #define SIGPWR 19 /* power-fail restart */ #define SIGWINCH 20 /* window size changes */ #define SIGURG 21 /* urgent condition on IO channel */ #define SIGPOLL 22 /* pollable event occurred */ #define SIGIO 22 /* input/output possible signal */ #define SIGSTOP 23 /* sendable stop signal not from tty */ #define SIGTSTP 24 /* stop signal from tty */ #define SIGCONT 25 /* continue a stopped process */ #define SIGTTIN 26 /* to readers pgrp upon background tty read */ #define SIGTTOU 27 /* like TTIN for output if (tp->t_local<ostop) */ #define SIGVTALRM 28 /* virtual time alarm */ #define SIGPROF 29 /* profiling alarm */ #define SIGXCPU 30 /* Cpu time limit exceeded */ #define SIGXFSZ 31 /* Filesize limit exceeded */ #define SIG32 32 /* Reserved for kernel usage */ Man kan også benytte kommandoen man 5 signal. Forelesning Ark 19 av 24
20 De viktigste signalene SIGINT gir et middels sterkt ønske om terminering. SIGQUIT er som SIGINT men gir core-dump. SIGKILL er en drapsordre. SIGALRM er en vekkerklokke. SIGTERM er et vennlig «klapp på skulderen». Hvordan sende et signal? Et signal kan oppstå på flere måter: Fra kjernen av systemet (ved feilsituasjon). Fra kjernen av systemet (vekkerklokken). Fra tastaturet ( ^C eller ^\ ). Fra systemkallet kill. Fra kommandoen kill. $ kill 123 # Send SIGTERM $ kill # Send SIGKILL Forelesning Ark 20 av 24
21 Hvordan fange opp et signal? Systemkallet signal brukes til å fortelle systemet hvilket signal som skal fanges opp og hvilken rutine som skal håndtere det. #include <signal.h> #include <stdio.h> #include <stdlib.h> void catch_int(void) { printf("\net SIGINT-signal fanget opp.\n"); exit(1); int main(void) { int i, j, k; signal(sigint, catch_int); /* Gjør et eller annet i evig løkke... */ for (i = 1; 1; i++) { for (j = 1; j <= ; j++) k = k*3; printf("%5d", i); if (i % 10 == 0) putchar( \n ); maskin navn> signal ^C Et SIGINT-signal fanget opp. Forelesning Ark 21 av 24
22 Følgende er verdt å merke seg: I noen UNIX-versjoner er det slik at når et signal først er fanget opp, må signal kalles på nytt for det signalet. Navnet SIGINT (og de andre signalnavnene) er definert i filen /usr/include/signal.h. Der finnes også prototypen til signal. Noen signaler ignoreres om brukeren ikke har angitt signalhåndteringsrutine; andre dreper prosessen. Signalet SIGKILL kan ikke fanges opp av en brukerprosess. Systemkallet pause vil la en prosess sove til den mottar et signal. Forelesning Ark 22 av 24
23 Eksempel Bruk av signal #include <signal.h> #include <stdio.h> void catch_int(void) { printf("ha, ha! SIGINT vekker ikke meg!\n"); signal(sigint, catch_int); pause(); int main(void) { printf("nå sover jeg...\n"); signal(sigint, catch_int); pause(); maskin navn> sov Nå sover jeg... ^C Ha, ha. SIGINT vekker ikke meg! ^C Ha, ha. SIGINT vekker ikke meg! ^\ Quit - core dumped maskin navn> sov & [1] Nå sover jeg... maskin navn> kill Ha, ha! SIGINT vekker ikke meg! maskin navn> kill [1] Terminated sov Forelesning Ark 23 av 24
24 Vekkerklokker Vekkerklokker er en spesiell type signaler som gjør det mulig å la prosesser vente et gitt antall sekunder og så bli vekket av en alarm. Kallet alarm(10); vil medføre at det (omtrent) 10 sekunder senere kommer et SIGALRM-signal til prosessen. #include <signal.h> #include <stdio.h> void catch_alrm(int x) { printf("nå er tiden ute.\n"); int main(void) { printf("nå tar vi 10 sekunder pause...\n"); signal(sigalrm, catch_alrm); alarm(10); pause(); printf("da er programmet ferdig.\n"); return 0; maskin navn> sov10 Nå tar vi 10 sekunder pause... Nå er tiden ute. Da er programmet ferdig. Forelesning Ark 24 av 24
Dagens tema: Parallellisering Generelt Fraktaler Generelt Julia-kurven Vindussystemet X Parallellitet i UNIX Signaler. IN 147 Program og maskinvare
Dagens tema: Parallellisering Generelt Fraktaler Generelt Julia-kurven Vindussystemet X Parallellitet i UNIX Signaler Ark 1 av 23 Forelesning 29.3.2000 Parallellitet Mange problemer krever en parallell
DetaljerDagens tema. Parallellitet Generelt Fraktaler Polling og avbrudd Multiprosessering i UNIX Opprettelse av prosesser Signaler
Dagens tema Parallellitet Generelt Fraktaler Polling og avbrudd Multiprosessering i UNIX Opprettelse av prosesser Signaler Ark 1 av 19 Forelesning 21.4.1998 Parallellitet Mange problemer krever en parallell
DetaljerProsesser. Dagens tema. Hva er en prosess? En prosess er et program under utførelse.
Dagens tema (kapittel 15 i Englander-boken) Prosesser Hvordan starte prosesser Å vente på prosesser Å utføre programmer Hva gjør en kommandotolker? Signaler Obligatoriske oppgave 2 Prosesser Hva er en
DetaljerDagens tema (kapittel 15 i Englander-boken)
Dagens tema (kapittel 15 i Englander-boken) Prosesser Hvordan starte prosesser Å vente på prosesser Å utføre programmer Hva gjør en kommandotolker? Signaler Obligatoriske oppgave 2 Ark 1 av 25 Prosesser
DetaljerIN 147 Program og maskinvare
Dagens tema Parallellitet Eksempelprogrammet Litt om X En enkelt pakke for tegning på skjerm Et program for å tegne fraktaler Kommunikasjon mellom prosesser Rør Felles lager Ark 1 av 24 Forelesning 28.4.1998
DetaljerOperativsystemets ansvar er å koordinere. programmers bruk av I/O
Operativsystemets ansvar er å koordinere programmers bruk av systemet blir delt av flere programmer som også deler prosessoren bruker ofte avbrudd for å melde tilbake om status til operasjoner avbrudd
DetaljerHW for koordinering med omverdenen. OS syr HW og SW sammen. Tema for denne forelesningen: in 147, våren 1999 Input/Output 2 1
Tema for denne forelesningen: OS syr HW og SW sammen HW for koordinering med omverdenen in 147, våren 1999 Input/Output 2 1 Operativsystemets ansvar er å koordinere programmers bruk av systemet blir delt
DetaljerDagens tema: Parallellstyring
Nyttige forklaringer Sikker opprettelse av nye prosesser Hva er en kommandotolker? Dagens tema: Parallellstyring Generelt Synkronisering med filer Synkronisering med rør Synkronisering med felles lager
DetaljerBrukerhåndtering av prosesser i Linux
Brukerhåndtering av prosesser i Linux Oppstart av prosesser fra shellet Prosesser startes ved å gi en kommando som svarer til navnet på det eksekverbare programmet Hvis programmet ikke ligger i stående
DetaljerDagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer
Dagens program Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer Nyttige forklaringer Sikker opprettelse av nye prosesser Hva
DetaljerDagens tema. Nyttige programmer Programmet make. Hvis én fil endres, hvilke filer må da kompileres på nytt?
Dagens tema Nyttige programmer Programmet make Flyt-tall Representasjon av flyt-tall Standarden IEEE 754 Systemkall i Unix Programmet make Det er mange praktiske problemer forbundet med programmering av
DetaljerIN 147 Program og maskinvare
Dagens tema Operativsystemer Hva er et operativsystem? En meget kort oversikt over operativsystemenes historie Systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer
DetaljerDagens tema. Nyttige programmer Programmet make. Flyt-tall Representasjon av flyt-tall. Standarden IEEE 754. Systemkall i Unix
Dagens tema Nyttige programmer Programmet make Flyt-tall Representasjon av flyt-tall Standarden IEEE 754 Systemkall i Unix Ark 1 av 24 Programmet make Det er mange praktiske problemer forbundet med programmering
DetaljerOppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre
Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre Ark 1 av 12 Forelesning 12.5.1999 Operativsystemer I kurset har vi fokusert på UNIX, men prinsippene gjelder i større eller
DetaljerDagens tema: Synkronisering
Dagens tema: Synkronisering Kappløp og kritiske regioner Blokkering Produsent/konsument-problemet Semaforer Fraktaleksemplet med semaforer og delt lager. «De spisende filosofer»: 3 gale løsninger En foreløbig
DetaljerDagens tema: Synkronisering
Dagens tema: Synkronisering Kappløp og kritiske regioner Blokkering Produsent/konsument-problemet Semaforer Fraktaleksemplet med semaforer og delt lager. «De spisende filosofer»: 3 gale løsninger En foreløbig
DetaljerIN 147 Program og maskinvare. Dagens tema:
Dagens tema: Semaforer Hva er en semafor? Produsent/konsument-problemet Fraktaleksemplet med semaforer og delt lager. Klassisk eksempel: «De spisende filosofer» Vranglås «De spisende filosofer»: løsning
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
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
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk
DetaljerDagens tema INF1070. Info om C. Cs preprosessor. Feilsøking. Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29
Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Informasjon om C Den viktigste kilden til informasjon om C (utenom en god oppslagsbok) er
DetaljerInformasjon om C. Dagens tema INF1070 INF1070 INF1070 INF1070. Den viktigste kilden til informasjon om C (utenom en god. C-funksjonene.
Dagens tema Info om C Cs preprosessor Feilsøking Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 1 av 29 Dag Langmyhr,Ifi,UiO: Forelesning 31. januar 2005 Ark 2 av 29 NAME sqrt - square root function
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
DetaljerDel 4 Noen spesielle C-elementer
Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include
DetaljerProgrammeringssprå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
DetaljerProsesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:
Prosesser i Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunns Opprettelse av : fork og exec pid og ppid Foreldre, barn og barnebarn Utførelse av kommando i Eksempler
DetaljerProgrammeringsspråket C
Programmeringsspråket C Programmeringsspråket C 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;
Detaljeroppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO
oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere
DetaljerDagens tema: Enda mer MIPS maskinkode
Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark
DetaljerIN 147 Program og maskinvare
Dagens tema Deklarasjon av nye typer Typekonvertering mellom pekere Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger
DetaljerInnhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse
Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle
DetaljerIN 147 Program og maskinvare
Dagens tema: Kort repetisjon Mengder Lister Enkle listeoperasjoner Programmering av en listepakke Lister med hode og hale Toveislister Hvaeretoperativsystem? En meget kort oversikt over operativsystemenes
DetaljerEKSAMEN. 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
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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF103 Fra brukergrensesnitt til maskinvare Eksamensdag: 15. desember 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerDagens tema INF2270. Cs preprosessor. Separat kompilering av C funksjoner. C og minnet. Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15
Dagens tema Cs preprosessor Separat kompilering av C funksjoner C og minnet Dag Langmyhr,Ifi,UiO: Forelesning 5. februar 2007 Ark 1 av 15 Cs preprosessor Før selve kompileringen går C kompilatoren gjennom
DetaljerProgrammeringsspråket C Del 2. Hans Petter Taugbøl Kragset
Programmeringsspråket C Del 2 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! 28.08.17 Hans Petter Taugbøl Kragset 2 Arrays Java int[] arr1 = {1,
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
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
DetaljerLabVIEW seriekommunikasjon med mikrokontroller
KYBERNETIKKLABORATORIET FAG: Industriell IT DATO: 08.15 OPPG.NR.: LV3 LabVIEW seriekommunikasjon med mikrokontroller Oppgave Denne oppgaven går ut på å lage et LabVIEW-program som kan kommunisere med en
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Et eksempel til (med diverse forklaringer) Representasjon av tegn og logiske verdier Vektorer Statusverdi Innhenting av definisjoner Inkrementering og dekrementering av variable for-setningen
DetaljerIN 147 Program og maskinvare
Dagens tema Deklarasjon av nye typer Typekonvertering Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne
DetaljerIN 147 Program og maskinvare. Velkommen til IN 147. Program- og maskinvare
Velkommen til IN 147 Program- og maskinvare Dagens tema: Presentasjon av kurset Litt om programmeringsspråket C Registrering av oppmøte Ark 1 av 22 Forelesning 22.1.2001 Foreleserne Sigbjørn Næss Digitaltekniker
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING)
DetaljerINF2270. Input / Output (I/O)
INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen
DetaljerPekere og vektorer. Dagens tema. I C gjelder en litt uventet konvensjon:
Pekere og vektorer I C gjelder en litt uventet konvensjon: Dagens tema Det siste om C Pekere og vektorer Pekere til pekere Vanlige pekerfeil struct-er og typedef Lister Feilsøking Bruk av et vektornavn
DetaljerDagens tema. Det siste om C Pekere og vektorer. Pekere til pekere. Vanlige pekerfeil. struct-er og typedef. Lister. Feilsøking
Dagens tema Det siste om C Pekere og vektorer Pekere til pekere Vanlige pekerfeil struct-er og typedef Lister Feilsøking Ark 1 av 35 Pekere og vektorer I C gjelder en litt uventet konvensjon: Bruk av et
DetaljerIN 147 Program og maskinvare. Vanlige feil ved bruk av pekere Feilsøking Debuggere
Dagens tema Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne testutskrifter Flyt-tall (P&H: 4.8) Representasjon av flyt-tall Standarden IEEE 754 MIPS-operasjoner på flyt-tall
Detaljeroppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO
oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? 1 oppgave 1 Hvorfor har
DetaljerEKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 9. desember 2009 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
DetaljerDagens tema INF1070. Makroer. Sanntidsprogrammering. Avbrudd. Bruker- og supermodus. Blanding av C og assemblerkode. Selvmodifiserende kode
Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Dag Langmyhr,Ifi,UiO: Forelesning 2. mai 2005 Ark 1 av 20 Makroer Ofte gjentar
DetaljerSikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer. IN 147 Program og maskinvare.
Sikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer Ark 1 av 14 Sikkerhet og virus Virus Virus er programmer som «infiserer» andre programmer slik at de endrer
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...
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.
DetaljerIntroduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen
Introduksjon til dataanlegget ved Institutt for informatikk Marc Bezem Institutt for informatikk Universitetet i Bergen August 2005 1 Introduksjonskurset Målgrupper: Alle studenter som skal ta INF100 Andre
DetaljerINF2270. Input / Output (I/O)
INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen
DetaljerDagens tema: Datastrukturer
Dagens tema: Datastrukturer Matriser Dynamiske matriser Ringbuffere Mengder Lister Enkle listeoperasjoner Programmering av en listepakke Lister med hode og hale Toveislister Onsdag 24.3 Avslutning av IN147A
DetaljerKort notat om parallellstyring IN147
Kort notat om parallellstyring IN147 Kristin Skar 18. mai 2001 1 Kommunikasjon mellom prosesser Mange problemer man kommer borti kan kreve en paralell løsning: Man kan ha behov for økt hastighet, og dermed
DetaljerSignaturer. Dagens tema. En vanlig feil int-funksjon. Dette kan noen ganger gi rare feilmeldinger: INF1070 INF1070 INF1070 INF1070
Dagens tema Signaturer Tyekonvertering Pekere og vektorer struct-er Definisjon av nye tyenavn Lister Dag Langmyhr,Ifi,UiO: Forelesning 24. januar 25 Ark 1 av 2 Dag Langmyhr,Ifi,UiO: Forelesning 24. januar
DetaljerEksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl
Eksamensinformasjon Eksamensoppgave Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl. 9.00-12.00 Hjelpemidler: Ingen hjelpemidler er tillatt. Andre opplysninger: Les nøye gjennom oppgavene før
DetaljerDagens tema INF1070. Signaturer. Typekonvertering. Pekere og vektorer. struct-er. Definisjon av nye typenavn. Lister
Dagens tema Signaturer Typekonvertering Pekere og vektorer struct-er Definisjon av nye typenavn Lister Dag Langmyhr,Ifi,UiO: Forelesning 24. januar 2005 Ark 1 av 20 Signaturer I C gjelder alle deklarasjoner
DetaljerFra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
DetaljerEKSAMEN. Operativsystemer. Dato: 10. desember 2008 Eksamenstid: kl til kl
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 10. desember 2008 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
DetaljerOversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models
Oversikt UNIX 1 UNIX Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 2 Linux 3 Process 4 Process models 5 Hvordan kjøre operativsystemet 6 Prosesshåndtering i UNIX SVR4 Lars Vidar
DetaljerIN 147 Program og maskinvare
Dagens tema Basistyper i C Typekonvertering Formater i printf Pekere i C En kort repetisjon om pekere Hva er egentlig en peker? Pekere til alt og ingenting Pekere som parametre Pekere og vektorer Ark 1
DetaljerGUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/
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
DetaljerHØ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.
DetaljerSingletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.
-OS i i L1 og L2 og og Basis for flerprosess-systemer. Adresser.. 2 1 0 OS Device minne Skjerm minne Brukerprogram Brukerdata/heap Stack Stack: brukes bl. a. til å lagre adressen som skal returneres til
DetaljerScheduling og prosesshåndtering
Scheduling og prosesshåndtering Håndtering av prosesser i et OS OS må kontrollere og holde oversikt over alle prosessene som kjører på systemet samtidig Prosesshåndteringen må være: Korrekt Robust Feiltolerant
DetaljerOppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.
Oppgaver uke 35: Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgave 1. Skriv et C-program som leser mål i tommer og skriver det ut i fot og tommer. (Det er 12 tommer
DetaljerDagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene
Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom
DetaljerOppgave 8.1 fra COD2e
Oppgave 8.1 fra COD2e To systemer brukes for transaksjonsprosessering: A kan utføre 1000 I/O operasjoner pr. sekund B kan utføre 750 I/O operasjoner pr. sekund Begge har samme prosessor som kan utføre
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
DetaljerFaglig kontakt under eksamen: Orestis Gkorgkas
Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Faglig kontakt under eksamen:
DetaljerDagens tema. Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det lønne seg å definere en makro:
Dagens tema Makroer Sanntidsprogrammering Avbrudd Bruker- og supermodus Blanding av C og assemblerkode Selvmodifiserende kode Makroer Ofte gjentar man kodelinjer når man skriver assemblerkode. Da kan det
DetaljerIT1101 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
DetaljerDagens tema C, adresser og pekere
Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Ark 1 av 26 Adresser Som nevnt tidligere ligger
DetaljerArk 3 av 26. printf("i adresse %08x ligger b med verdien %d.\n", &b, b); printf("i adresse %08x ligger a med verdien %d.
Dagens tema C, adresser og pekere (Kapittel 17 i Patt&Patel-boken) Variable og adresser Pekervariable Parametre Dynamisk allokering Stakker og ringbuffere Adresser Som nevnt tidligere ligger data og programkode
DetaljerElektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening.
Elektronisk termostat med spareprogram. Lysende LCD display øverst på ovnen for enkel betjening. 27.5 LCD Electronic thermostat with program setting. Bright LCD display placed at the top of the heater
DetaljerKanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen
Kanter, kanter, mange mangekanter Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole
DetaljerArk 1 av 18. programmeringsspråkenes. Velkommen til IN 211. verden. IN 211 Programmeringsspråk
Ark 1 av 18 IN 211 Programmeringsspråk Velkommen til programmeringsspråkenes verden IN 211 Forelesning 20.8.2001 Foreleser Ragnhild Kobro Runde E-post: ragnhilk@ifi.uio.no Kontor: 3345 Treffetid: torsdager
DetaljerBrukerprogram OS hardware
? Hva er et Et OS er et software-grensesnitt mellom brukeren og en datamaskins hardware. Brukerprogram OS hardware ?? Kildekoden til OS som eller er ca fem millioner linjer kode tilsvarer omtrent 100 Tanenbaum-bøker
Detaljer! 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
DetaljerLars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28
Tråder Lars Vidar Magnusson October 11, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 09.09.2011 October 11, 2011 1 / 28 Oversikt Tråder 1 Tråder Introduksjon Multithreading Prosesser og
Detaljeralternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9
Tema for denne forelesningen: store parallelle datamaskiner alternativer til felles hukommelse in 147, våren 1999 parallelle datamaskiner 1 9 Store parallelle datamaskiner Felles hukommelse på én buss
DetaljerDagens tema. Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene
Dagens tema Dagens tema Cs preprosessor Separat kompilering av C-funksjoner C og minnet Oversikt over operatorene Inkludering av filer Cs preprosessor Før selve kompileringen går C-kompilatoren gjennom
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
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
DetaljerProsedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19
Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre
DetaljerSamtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?
Samtidige To (tasks) må ikke ødelegge for hverandre: skrive til samme minne kapre for mye CPU-tid få systemet til å henge Beste løsning: All makt til OS = Preemptive multitasking Preemptive = rettighetsfordelende.
DetaljerKommersiell Unix Linux og frie Unix kloner
og og Desktop- Desktop- Kommersiell Linux og frie kloner og Desktop- Desktop- MS-D 1981, 16-bit Desktop- Windows 1.0 i 1985, 3.0 i 1990, GUI på toppen av D Windows 95 Noe 32-bit kode, mye 16-bit intel
DetaljerNyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr
Nyttige Linux-kommandoer Hvordan du kan jobbe mer effektivt Dag Langmyhr Trenger vi kommandovinduer i dag? Svaret er nei for de fleste brukerne, men ikke for ekspertene. Ofte går det fortere å bruke kommandoer
Detaljer1. Introduksjon til operativsystemer
1. Introduksjon til operativsystemer mets plassering: Lagdeling: applikasjon, system, maskinvare Basisfunksjoner: Abstraksjon, deling, isolering Prosesser og ressurser Kjøring: sekvensiell, multitasking
DetaljerDet viktigste i en moderne datamaskin er hovedkortet («motherboard»):
Hovedkortet Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Data.data Stakk %EAX %ECX %EDX %EBP %ESP Prosessor Kode Minne.text Hovedkortet Grovt sett inneholder et hovedkort En prosessor
DetaljerDagens tema. Kort repetisjon om rutiner. Programmering i C Variable og adresser. Vektorer. Tekster. Preprosessoren. Separat kompilering
Dagens tema Kort repetisjon om rutiner Programmering i C Variable og adresser Vektorer Tekster Preprosessoren Separat kompilering Innlesning og utskrift mot skjerm og fil Ark 1 av 31 Hva er en rutine?
DetaljerSprettende ball. Introduksjon: Steg 1: Vindu. Sjekkliste. Skrevet av: Sigmund Hansen
Sprettende ball Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Naturfag, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon:
Detaljer4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.
Parallellitet når tema pensum 27/4 felles hukommelse 9.2 9.3 4/5 store parallelle maskiner 9.4 9.6 in 147, våren 1999 parallelle datamaskiner 1 Tema for denne forelesningen: kraftigere enn én prosessor
DetaljerKodetime for Nordstrand barneskole
Kodetime for Nordstrand barneskole av Veronika Heimsbakk og Lars Erik Realfsen 1 Hva er Processing? Processing er et programmeringsspråk som er gratis, og tilgjengelig for alle! Man kan programmere i Processing
Detaljer