Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde 117... p1p2p117... internet.

Slides:



Advertisements
Lignende præsentationer
Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
Advertisements

Velkommen til Softwarekonstruktion
Programmeringsparadigmer.
Almindelige ("hårde") links (i filsystemer med i-noder) opg.txt jens: pia: ln /home/pia/opg.txt /home/jens/opg.txt hård link: ny post får i-node-nummer.
1 C-kursus 6. Lektion n Repetition af 5. Lektion n Vi mødes igen kl til gennemgang af 6. Lektion.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Symbolsk maskinsprog.
Datastrukturer Simple-type structs
Intro Forelæsning 2 Linux install-party lør.14.sept kl – man. 14.okt – Kursets omfang :7,5 ECTS Kursussammensætning: forelæsning.
Flerbrugermaskine Fælles maskine Root: webserver Peter: uploader filer Pia: programudvikling 1 langvarig proces, evt. med børneprocesser skiftende behov.
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
DS-kursusgang nr. 4 IPC generelt IPC eksempel: beskedkøer IPC tidsforbrug: kontekstskift, skedulering C: abstraktion, funktionsbiblioteker.
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
OTA - et skoleprojekt ved E. Sjørlund, ES-DATA Projekt : News: news://news.the- coffeeshop.dk/coffeeshop.ota.
Adresserum Adresserum: Det interval af adresser, der kan arbejdes med i den samme proces (fra 0 til største adresse) Lippiatt++: adresser fylder 8 bit.
GP5, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 5 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
18 – Java Server Faces. 2 NOEA2009Java-kursus – JSF 2 Web-applikationer - 1 Brugere interagerer med en Web-browser Browseren sender forespørgsler til.
Intro Forelæsning 6 Linux Install Party i PC-Cafeen i morgen.
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
Delphi og C++ Builder C++ Builder. C++ Historie Sproget blev designet for AT&T af danskeren Bjarne Stoustrup En objektorienteret videreudvikling.
To måder at overføre objekt- referencer mellem processer (1) Via naming service - interface RMISolver (2) Som parametre til fjernprocedurekald - interface.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
Fundamentale datastrukturer
Beskeder/beskedkøer Afsender- proces hej Modtager- proces.. msgsnd(..,"hej",..);.. msgrcv(..);.. Afsender skal bl.a. angive den besked der ønskes afsendt.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
Simulering af spisende filosoffer
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Paradigmer i Programmering 1. Program for idag : Funktioner og udtryk i SML : Øvelse : Frokost – 14.00: Deklarative.
Paradigmer i Programmering 1. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Uge 14: distribuerede objekter, fjernprocedurekald, RMI Tirsdag: Introduktion Mulige fordele ved distribuerede objekter Introduktion til RMI: - Interfacets.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Hvad består en distribueret applikation af ? Processer der kører på hver deres maskine Tråde - 1 eller flere "letvægtsprocesser" per proces Objekter i.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
GP3, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 3 Vi begynder Slides ligger på hjemmesiden. Du er velkommen til.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
1 Processer. 2 fork int fork(); Danner en ny proces med samme indhold som forældre processen. I begge processer er programtælleren placeret lige efter.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6A.1 Programmering med interfaces – en stak og en HP-regnemaskine push pop.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Indledende Programmering Uge 6 - Efterår 2006
Kari Rye Schougaard, Ph.d.-stud. Værktøjer og Teknikker, 2006 A A R H U S U N I V E R S I T E T DATALOGISK INSTITUT Java på 20 minutter (eller lidt mere)
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Programmering med interfaces – en stak og en HP-regnemaskine push pop.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Deadlock Definition deadlock (baglås) er en tilstand som en mængde af processer kan være i en mængde processer er i deadlock hvis alle processerne står.
Embedded SW – C & picoBlaze
1587 Server - Blandet miljø Webintegrator HF1
IOT – Elkedel på internettet
Præsentationens transcript:

Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet

Hvad er en proces ? Simpel definition Kørende program Kompleks definition Adresserum med stak, tekst og data Procestabel-indgang med bl.a. systemressourcer En eller flere tråde der deles om tekst, data og ressourcer

ps: Vis processer init login shell ps ps -af UID..PID..CMD nielsj man ps nielsj ps -af man

Procestilstande kørende blokeretklar OS (skedulator) vælger næste klare proces Blokerede processer skal være klar før de kan køre igen

Skabelse af proces med system() C: // start.c main() { printf("Nu starter jeg ps-programmet \n"); system("ps -af"); printf("Faerdig ! \n"); } Java: // start.java main() { System.out.println("Nu starter jeg ps-programmet"); Runtime.getRuntime().exec("ps -af"); System.out.println("Færdig !"); }

Procestræ ved brug af system() init login sh start System() tillader enhver kommando som forstås af shellen. Kommandoen som overføres til system() fortolkes af ny shell. shps

Implementation af processkabelse: fork() // start.c (jf. Wrox s. 356).. pid = fork(); switch(pid) { case -1: printf("fork() mislykkedes \n"); break; case 0: printf("Jeg er børneprocessen"); break; default: printf("Jeg er faderprocessen"); }.. start sh.. børneprocessen.... faderprocessen..

Skabelse af proces til at afvikle nyt program: exec() Eksempel: shell sh ps forælder Barn før/efter overlejring // minish.c (jf. Tanenbaum s. 295).. while(1) { type_prompt(); read_command(cmd,pars); pid = fork(); swich(pid) { case -1: printf("ups"); break; case 0: execve(cmd,pars,0); break; default: {.. vent på børneproces..}; }.. ps -af

fork() + exec() stak tekst data sh ps efter fork() efter exec() sh ps

Internet-ormen Cracker: vil udføre et program - f.eks. sekvensen xy på en maskine hvor han ikke er oprettet som bruger kan kalde programmer f.eks. "finger" på maskinen fra fjern maskine x = "start unix shell", y = "der gør det og det" Ide: kald "finger" med for en for lang parameter, der ender på "xy": finger Forudsætninger bl.a. at C ikke har automatisk tjek af om et array-indeks er udenfor arrayets grænser.

Arrays i C - brug // Kernighan/Ritchie s. 29: #define MAXLINE 1000 main (..).. char line[MAXLINE]; while … getline(line,MAXLINE).. // kald int getline(char s[],int lim).. // def. Arrays parameteroverføres via pointer (jf. objektreferencer i Java). Ingen tjek af array-grænser. main getline line s

Implementation af CALL og RETURN (med rekursion) CALL PR.. PR:.. RETURN Retur-adresser for mere end et procedurekald gemmes på stakken. Indholdet af SP-registret er adressen på toppen af stakken. [[SP]] <- [PC] [SP] <- [SP]-1 [PC] <- PR [SP] <- [SP]+1 [PC] <- [SP] !!!!!!!!

Brug af stakken til implementation af RETURN IR IP SP stak tekst (program) data Plads til næste ret.adr. Returadresse CALL.. ?!?

Stak i Linux stak Returadresse adresse på shellen tekst data /bin/finger USER PATH CLASSPATH Environment- variable Parametre til programmet SP Filnavn

Simple og sammensatte typer i C Simple typer: int a; char b; // altid 1 byte float c; // ingen boolsk type Sammensatte typer: arrays og strukturer: struct kat_post { char navn[14]; // tegn-array bruges som streng int i_node; };

Brug af tegn i C #include main() { char b = 'A'; printf("Tegnværdi af b: %c \n", b); // udskriver A; printf("Tegnværdi af b: %c \n", ++b); // udskriver B; printf("Talværdi af b: %d \n", b); // udskriver 66; while (b--) printf("Talværdi af b: %d \n", b); // udskriver 65,64,..,0 } Tegn kan opfattes som heltal Både tegn og heltal kan opfattes som boolske værdier 0 = false alt andet = true operatorne (funktionerne) -- og ++ har både "effekt" og "returværdi" præfix/postfix afgør rækkefølge

Brug af strukturer i C struct kat_post { // erklæring af struct-type char navn[14]; int i_node; }; struct kat_post min_post; // erklæring af instans af typen min_post; min_post.navn = "MitNyeFilNavn"; // strukturens attributter tilgås via "." min_post.i_node = 147; // ingen metoder i strukturer !

Pointere Intuition: Tænk på pointere som fysiske RAM-adresser Erklæring: Der kan erklæres pointere til alle typer char ch; // ch er tegn char *p; // p er pointer til tegn Brug: & er "adresse-operator" og * er "peger-på-operator": ch = 'A'; // værdien af ch er 'A'; p = &ch; // værdien af p er ch's adresse; printf("p peger på: %c \n", *p); // udskriver A printf("p er adressen: %d \n", p); // ikke meningen // (udskriver langt heltal) p: 'A' ch:

Formål med brug pointere Java m.fl. har også "pointere" nemlig referencer til objekter. Arrays parameteroverføres i C og Java som referencer. Forskellen er at i C kan pointere manipuleres direkte. Formål med pointere bl.a.: - hurtig gennemløb af arrays - kommunikation mellem funktions og kaldsomgivelser int retur_vaerdi; char tegn; retur_vaerdi = read(FilDeskriptor,&tegn,1); // både returværdi og det læste tegn skal overføres til kaldsomgivelser